-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata-den-options.interface.ts
More file actions
111 lines (97 loc) · 2.98 KB
/
data-den-options.interface.ts
File metadata and controls
111 lines (97 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import { DataDenCellRenderer, DataDenHeaderFilterRenderer } from './modules/rendering';
import { DataDenCellEditor } from './modules/rendering/editor';
export type ClassType<T> = new (...args: any[]) => T;
export type DataDenMode = 'client' | 'server';
export interface DataDenHeaderFilterOptions {
method?: string;
caseSensitive?: boolean;
debounceTime?: number;
dateParserFn?: DataDenDateFilterParserFn;
listOptions?: DataDenListOption[];
}
export type DataDenDateFilterParserFn = (value: string) => Date;
export type DataDenSortComparator = (valueA: any, valueB: any) => number;
export interface DataDenSortOptions {
comparator: DataDenSortComparator;
}
export interface DataDenListOption {
label: string;
value: any;
}
export interface DataDenColDef {
field: string;
headerName?: string;
sort?: boolean;
sortOptions?: DataDenSortOptions;
filter?: boolean;
filterRenderer?: ClassType<DataDenHeaderFilterRenderer>;
filterOptions?: DataDenHeaderFilterOptions;
resize?: boolean;
pinned?: 'left' | 'right';
width?: number;
cellRenderer?: ClassType<DataDenCellRenderer>;
cellEditor?: ClassType<DataDenCellEditor>;
editable?: boolean | ((...args: any[]) => boolean);
defaultSort?: 'asc' | 'desc' | null;
sortOrder?: ('asc' | 'desc' | null)[];
grouped?: boolean;
}
export interface DataDenDefaultColDef {
sort?: boolean;
sortOptions?: DataDenSortOptions;
filter?: boolean;
filterRenderer?: ClassType<DataDenHeaderFilterRenderer>;
filterOptions?: DataDenHeaderFilterOptions;
resize?: boolean;
width?: number;
cellRenderer?: ClassType<DataDenCellRenderer>;
cellEditor?: ClassType<DataDenCellEditor>;
editable?: boolean | ((...args: any[]) => boolean);
defaultSort?: 'asc' | 'desc' | null;
sortOrder?: ('asc' | 'desc' | null)[];
}
export interface DataDenPaginationOptions {
pageSize?: number;
ofText?: string;
}
export interface DataDenQuickFilterOptions {
filterFn?: (params: DataDenActiveFilterParams) => boolean;
}
export interface DataDenActiveFilterParams {
searchTerm: any;
value: any;
columns: DataDenColDef[];
}
export interface DataDenOptions<TData = any> {
cssPrefix?: string;
mode?: DataDenMode;
columns: DataDenColDef[];
defaultColDef?: DataDenDefaultColDef;
rows?: TData;
draggable?: boolean;
rowEditMode?: boolean;
pagination?: boolean;
paginationOptions?: DataDenPaginationOptions;
quickFilterOptions?: DataDenQuickFilterOptions;
rowHeight?: number;
headerHeight?: number;
multiSortKey?: 'shift' | 'ctrl';
multiSort?: boolean;
}
export interface DataDenInternalOptions {
cssPrefix: string;
mode: DataDenMode;
columns: DataDenColDef[];
defaultColDef: Required<DataDenDefaultColDef>;
rows?: any;
draggable: boolean;
rowEditMode: boolean;
pagination: boolean;
paginationOptions: Required<DataDenPaginationOptions>;
quickFilterOptions: Required<DataDenQuickFilterOptions>;
resizable: boolean;
rowHeight: number;
headerHeight: number;
multiSortKey: 'shift' | 'ctrl';
multiSort: boolean;
}