import { Rule, RuleSet } from 'nowcom-angular2-query-builder'; import { ValidationErrors } from '@angular/forms'; import { Operator } from './operator'; import { ColumnMetaData } from './column-meta-data'; import { FilterCriteria } from './filter-criteria'; import { LookupValue } from './lookup-value'; import { ViewDefinition } from './view-definition'; export interface ColumnViewModel { column: string; label?: string; originalLabel?: string; width?: number; excludeFromSummary?: boolean; dataType?: string; summaries?: { total: boolean; min: boolean; max: boolean; avg: boolean; count: boolean; }; } export interface FilterFormOptions { operators: Operator[]; columns: ColumnMetaData[]; rootCriteria: FilterCriteria; } export interface ColumnViewModelMap { [key: string]: ColumnViewModel; } export interface FilterCriteriaTreeViewModel { filterCriteria: FilterCriteria; id: number; parentId?: number; } export interface ColumnOperators { label: string; columnType: string; operators: Array; } export interface ColumnTypes { name: string; queryBuilderType: string; getColumnOperators(): Operators[]; getColumnStrOperators(): string[]; validateRules(rule: Rule, parent: RuleSet): ValidationErrors; } export interface Operators { name: string; description: string; shortname?: string; valueType1?: string; valueType2?: string; lookupValues1?: LookupValue[]; lookupValues2?: LookupValue[]; } export interface ViewDesignerSettingsDimissEvent { definition: ViewDefinition; isDirty?: boolean; } export interface ReportCategory { name: string; iconClass: string; } export interface SortCriteriaColumn { column?: string; sortDirection?: string; } export interface ViewDesignerDismissSettings { isDirty: boolean; quickFilterCriteria?: FilterCriteria; selectedViewDefinitionId?: string; unsavedViewDefinitionsList?: { [id: string]: ViewDefinition; }; viewDefinitionsList?: { [id: string]: ViewDefinition; }; }