@keenthemes/ktui 1.2.5 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -5
- package/dist/ktui.js +1538 -786
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +85 -5
- package/lib/cjs/components/datatable/datatable-checkbox.d.ts +37 -1
- package/lib/cjs/components/datatable/datatable-checkbox.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-checkbox.js +143 -156
- package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-column-utils.d.ts +30 -0
- package/lib/cjs/components/datatable/datatable-column-utils.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-column-utils.js +42 -0
- package/lib/cjs/components/datatable/datatable-column-utils.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-contracts.d.ts +2 -4
- package/lib/cjs/components/datatable/datatable-contracts.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-defaults.d.ts +20 -0
- package/lib/cjs/components/datatable/datatable-defaults.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-defaults.js +193 -0
- package/lib/cjs/components/datatable/datatable-defaults.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.d.ts +7 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.js +338 -0
- package/lib/cjs/components/datatable/datatable-layout-plugin.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts +2 -2
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-local-provider.js +85 -27
- package/lib/cjs/components/datatable/datatable-local-provider.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-pagination-renderer.js +13 -13
- package/lib/cjs/components/datatable/datatable-pagination-renderer.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-registry.d.ts +18 -0
- package/lib/cjs/components/datatable/datatable-registry.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-registry.js +66 -0
- package/lib/cjs/components/datatable/datatable-registry.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-remote-provider.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-remote-provider.js +1 -2
- package/lib/cjs/components/datatable/datatable-remote-provider.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-search-handler.d.ts +10 -0
- package/lib/cjs/components/datatable/datatable-search-handler.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-search-handler.js +65 -0
- package/lib/cjs/components/datatable/datatable-search-handler.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-sort.d.ts +31 -4
- package/lib/cjs/components/datatable/datatable-sort.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-sort.js +86 -58
- package/lib/cjs/components/datatable/datatable-sort.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-spinner.d.ts +30 -0
- package/lib/cjs/components/datatable/datatable-spinner.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-spinner.js +54 -0
- package/lib/cjs/components/datatable/datatable-spinner.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-state-persistence.d.ts +19 -0
- package/lib/cjs/components/datatable/datatable-state-persistence.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-state-persistence.js +59 -0
- package/lib/cjs/components/datatable/datatable-state-persistence.js.map +1 -0
- package/lib/cjs/components/datatable/datatable-table-renderer.d.ts +2 -0
- package/lib/cjs/components/datatable/datatable-table-renderer.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-table-renderer.js +75 -16
- package/lib/cjs/components/datatable/datatable-table-renderer.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-utils.d.ts +10 -0
- package/lib/cjs/components/datatable/datatable-utils.d.ts.map +1 -0
- package/lib/cjs/components/datatable/datatable-utils.js +15 -0
- package/lib/cjs/components/datatable/datatable-utils.js.map +1 -0
- package/lib/cjs/components/datatable/datatable.d.ts +35 -34
- package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +233 -497
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/datatable/index.d.ts +1 -1
- package/lib/cjs/components/datatable/index.d.ts.map +1 -1
- package/lib/cjs/components/datatable/types.d.ts +127 -11
- package/lib/cjs/components/datatable/types.d.ts.map +1 -1
- package/lib/cjs/index.d.ts +1 -1
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +6 -0
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.d.ts +37 -1
- package/lib/esm/components/datatable/datatable-checkbox.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-checkbox.js +142 -155
- package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -1
- package/lib/esm/components/datatable/datatable-column-utils.d.ts +30 -0
- package/lib/esm/components/datatable/datatable-column-utils.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-column-utils.js +38 -0
- package/lib/esm/components/datatable/datatable-column-utils.js.map +1 -0
- package/lib/esm/components/datatable/datatable-contracts.d.ts +2 -4
- package/lib/esm/components/datatable/datatable-contracts.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-defaults.d.ts +20 -0
- package/lib/esm/components/datatable/datatable-defaults.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-defaults.js +190 -0
- package/lib/esm/components/datatable/datatable-defaults.js.map +1 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.d.ts +7 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.js +334 -0
- package/lib/esm/components/datatable/datatable-layout-plugin.js.map +1 -0
- package/lib/esm/components/datatable/datatable-local-provider.d.ts +2 -2
- package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-local-provider.js +85 -27
- package/lib/esm/components/datatable/datatable-local-provider.js.map +1 -1
- package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-pagination-renderer.js +13 -13
- package/lib/esm/components/datatable/datatable-pagination-renderer.js.map +1 -1
- package/lib/esm/components/datatable/datatable-registry.d.ts +18 -0
- package/lib/esm/components/datatable/datatable-registry.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-registry.js +63 -0
- package/lib/esm/components/datatable/datatable-registry.js.map +1 -0
- package/lib/esm/components/datatable/datatable-remote-provider.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-remote-provider.js +1 -2
- package/lib/esm/components/datatable/datatable-remote-provider.js.map +1 -1
- package/lib/esm/components/datatable/datatable-search-handler.d.ts +10 -0
- package/lib/esm/components/datatable/datatable-search-handler.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-search-handler.js +62 -0
- package/lib/esm/components/datatable/datatable-search-handler.js.map +1 -0
- package/lib/esm/components/datatable/datatable-sort.d.ts +31 -4
- package/lib/esm/components/datatable/datatable-sort.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-sort.js +85 -57
- package/lib/esm/components/datatable/datatable-sort.js.map +1 -1
- package/lib/esm/components/datatable/datatable-spinner.d.ts +30 -0
- package/lib/esm/components/datatable/datatable-spinner.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-spinner.js +51 -0
- package/lib/esm/components/datatable/datatable-spinner.js.map +1 -0
- package/lib/esm/components/datatable/datatable-state-persistence.d.ts +19 -0
- package/lib/esm/components/datatable/datatable-state-persistence.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-state-persistence.js +55 -0
- package/lib/esm/components/datatable/datatable-state-persistence.js.map +1 -0
- package/lib/esm/components/datatable/datatable-table-renderer.d.ts +2 -0
- package/lib/esm/components/datatable/datatable-table-renderer.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-table-renderer.js +75 -16
- package/lib/esm/components/datatable/datatable-table-renderer.js.map +1 -1
- package/lib/esm/components/datatable/datatable-utils.d.ts +10 -0
- package/lib/esm/components/datatable/datatable-utils.d.ts.map +1 -0
- package/lib/esm/components/datatable/datatable-utils.js +12 -0
- package/lib/esm/components/datatable/datatable-utils.js.map +1 -0
- package/lib/esm/components/datatable/datatable.d.ts +35 -34
- package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable.js +235 -499
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/datatable/index.d.ts +1 -1
- package/lib/esm/components/datatable/index.d.ts.map +1 -1
- package/lib/esm/components/datatable/types.d.ts +127 -11
- package/lib/esm/components/datatable/types.d.ts.map +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +6 -0
- package/lib/esm/index.js.map +1 -1
- package/package.json +5 -1
- package/skills/ktui/SKILL.md +711 -0
- package/skills/ktui-datatable/SKILL.md +302 -0
- package/skills/ktui-install/SKILL.md +150 -0
- package/skills/ktui-select/SKILL.md +271 -0
- package/src/components/__tests__/component.test.ts +347 -0
- package/src/components/collapse/collapse.css +2 -2
- package/src/components/datatable/__tests__/architecture-boundaries.test.ts +56 -8
- package/src/components/datatable/__tests__/currency-sort.test.ts +25 -28
- package/src/components/datatable/__tests__/datatable-checkbox.test.ts +527 -0
- package/src/components/datatable/__tests__/datatable-column-utils.test.ts +117 -0
- package/src/components/datatable/__tests__/datatable-defaults.test.ts +57 -0
- package/src/components/datatable/__tests__/datatable-finalize-extended.test.ts +361 -0
- package/src/components/datatable/__tests__/datatable-fixed-layout.test.ts +427 -0
- package/src/components/datatable/__tests__/datatable-improvements.test.ts +484 -0
- package/src/components/datatable/__tests__/datatable-pagination-extended.test.ts +508 -0
- package/src/components/datatable/__tests__/datatable-public-api.test.ts +269 -0
- package/src/components/datatable/__tests__/datatable-registry.test.ts +172 -0
- package/src/components/datatable/__tests__/datatable-remote-provider.test.ts +468 -0
- package/src/components/datatable/__tests__/datatable-search-handler.test.ts +124 -0
- package/src/components/datatable/__tests__/datatable-sort-extended.test.ts +417 -0
- package/src/components/datatable/__tests__/datatable-spinner.test.ts +95 -0
- package/src/components/datatable/__tests__/datatable-table-renderer-extended.test.ts +425 -0
- package/src/components/datatable/__tests__/datatable-types.test.ts +117 -0
- package/src/components/datatable/__tests__/datatable-utils.test.ts +52 -0
- package/src/components/datatable/__tests__/locked-layout.test.ts +257 -0
- package/src/components/datatable/__tests__/multi-row-headers.test.ts +7 -7
- package/src/components/datatable/__tests__/pagination-reset.test.ts +147 -6
- package/src/components/datatable/__tests__/race-conditions.test.ts +11 -11
- package/src/components/datatable/__tests__/setup.ts +12 -4
- package/src/components/datatable/datatable-checkbox.ts +139 -143
- package/src/components/datatable/datatable-column-utils.ts +63 -0
- package/src/components/datatable/datatable-contracts.ts +2 -3
- package/src/components/datatable/datatable-defaults.ts +204 -0
- package/src/components/datatable/datatable-layout-plugin.ts +459 -0
- package/src/components/datatable/datatable-local-provider.ts +106 -35
- package/src/components/datatable/datatable-pagination-renderer.ts +13 -15
- package/src/components/datatable/datatable-registry.ts +89 -0
- package/src/components/datatable/datatable-remote-provider.ts +1 -3
- package/src/components/datatable/datatable-search-handler.ts +97 -0
- package/src/components/datatable/datatable-sort.ts +111 -66
- package/src/components/datatable/datatable-spinner.ts +103 -0
- package/src/components/datatable/datatable-state-persistence.ts +67 -0
- package/src/components/datatable/datatable-table-renderer.ts +81 -18
- package/src/components/datatable/datatable-utils.ts +12 -0
- package/src/components/datatable/datatable.css +98 -0
- package/src/components/datatable/datatable.ts +288 -583
- package/src/components/datatable/index.ts +8 -0
- package/src/components/datatable/types.ts +157 -23
- package/src/helpers/__tests__/dom.test.ts +776 -0
- package/src/helpers/__tests__/utils.test.ts +332 -0
- package/src/index.ts +15 -0
- package/skills/ktui-components/SKILL.md +0 -41
- package/skills/ktui-theming/SKILL.md +0 -50
- package/src/components/datatable/datatable-event-adapter.ts +0 -21
|
@@ -13,7 +13,15 @@ export type {
|
|
|
13
13
|
KTDataTableConfigInterface,
|
|
14
14
|
KTDataTableColumnFilterTypeInterface,
|
|
15
15
|
KTDataTableColumnFilterInterface,
|
|
16
|
+
KTDataTableTextFilterInterface,
|
|
17
|
+
KTDataTableNumericFilterInterface,
|
|
18
|
+
KTDataTableDateRangeFilterInterface,
|
|
16
19
|
KTDataTableCheckConfigInterface,
|
|
17
20
|
KTDataTableCheckInterface,
|
|
18
21
|
KTDataTableCheckChangePayloadInterface,
|
|
22
|
+
KTDataTableLockedRowsConfigInterface,
|
|
23
|
+
KTDataTableLockedColumnsConfigInterface,
|
|
24
|
+
KTDataTableLockedLayoutConfigInterface,
|
|
25
|
+
KTDataTableLayoutPluginContextInterface,
|
|
26
|
+
KTDataTableLayoutPluginInterface,
|
|
19
27
|
} from './types';
|
|
@@ -62,6 +62,69 @@ export interface KTDataTableInterface {
|
|
|
62
62
|
showSpinner(): void;
|
|
63
63
|
|
|
64
64
|
hideSpinner(): void;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Redraw the table, optionally navigating to a specific page.
|
|
68
|
+
* @param page The page number to navigate to (defaults to 1)
|
|
69
|
+
*/
|
|
70
|
+
redraw(page?: number): void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Search the data using a string query or object.
|
|
74
|
+
* @param query The search query
|
|
75
|
+
*/
|
|
76
|
+
search(query: string | object): void;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Set or replace a column filter.
|
|
80
|
+
* @param filter The filter to apply
|
|
81
|
+
*/
|
|
82
|
+
setFilter(filter: KTDataTableColumnFilterInterface): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Get the current state of the datatable.
|
|
86
|
+
*/
|
|
87
|
+
getState(): KTDataTableStateInterface;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Dispose of the datatable instance, cleaning up event listeners and DOM nodes.
|
|
91
|
+
*/
|
|
92
|
+
dispose(): void;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Check if all visible rows are checked (header checkbox state).
|
|
96
|
+
*/
|
|
97
|
+
isChecked(): boolean;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Toggle all visible row checkboxes.
|
|
101
|
+
*/
|
|
102
|
+
toggle(): void;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Check all visible row checkboxes.
|
|
106
|
+
*/
|
|
107
|
+
check(): void;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Uncheck all visible row checkboxes.
|
|
111
|
+
*/
|
|
112
|
+
uncheck(): void;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Get all checked row IDs.
|
|
116
|
+
*/
|
|
117
|
+
getChecked(): string[];
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Re-apply checkbox checked states to visible rows after a redraw or pagination change.
|
|
121
|
+
*/
|
|
122
|
+
refreshCheckboxes(): void;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* @deprecated Use {@link refreshCheckboxes} instead.
|
|
126
|
+
*/
|
|
127
|
+
update(): void;
|
|
65
128
|
}
|
|
66
129
|
|
|
67
130
|
export interface KTDataTableResponseDataInterface {
|
|
@@ -69,8 +132,40 @@ export interface KTDataTableResponseDataInterface {
|
|
|
69
132
|
totalCount: number;
|
|
70
133
|
}
|
|
71
134
|
|
|
135
|
+
export interface KTDataTableLockedRowsConfigInterface {
|
|
136
|
+
top?: number;
|
|
137
|
+
bottom?: number;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export interface KTDataTableLockedColumnsConfigInterface {
|
|
141
|
+
left?: string[];
|
|
142
|
+
right?: string[];
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export interface KTDataTableLockedLayoutConfigInterface {
|
|
146
|
+
stickyHeader?: boolean;
|
|
147
|
+
stickyRows?: KTDataTableLockedRowsConfigInterface;
|
|
148
|
+
stickyColumns?: KTDataTableLockedColumnsConfigInterface;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export interface KTDataTableLayoutPluginContextInterface {
|
|
152
|
+
rootElement: HTMLElement;
|
|
153
|
+
tableElement: HTMLTableElement;
|
|
154
|
+
theadElement: HTMLTableSectionElement;
|
|
155
|
+
tbodyElement: HTMLTableSectionElement;
|
|
156
|
+
config: KTDataTableConfigInterface;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface KTDataTableLayoutPluginInterface {
|
|
160
|
+
beforeDraw?: (ctx: KTDataTableLayoutPluginContextInterface) => void;
|
|
161
|
+
afterDraw?: (ctx: KTDataTableLayoutPluginContextInterface) => void;
|
|
162
|
+
dispose?: (ctx: KTDataTableLayoutPluginContextInterface) => void;
|
|
163
|
+
}
|
|
164
|
+
|
|
72
165
|
// Define the DataTable options type
|
|
73
|
-
export interface KTDataTableConfigInterface
|
|
166
|
+
export interface KTDataTableConfigInterface<
|
|
167
|
+
T extends KTDataTableDataInterface = KTDataTableDataInterface,
|
|
168
|
+
> {
|
|
74
169
|
requestMethod?: string;
|
|
75
170
|
requestHeaders?: { [key: string]: string };
|
|
76
171
|
requestCredentials?: RequestCredentials;
|
|
@@ -87,20 +182,18 @@ export interface KTDataTableConfigInterface {
|
|
|
87
182
|
stateNamespace?: string;
|
|
88
183
|
pageSizes?: number[];
|
|
89
184
|
columns?: {
|
|
90
|
-
[key:
|
|
185
|
+
[key: string]: {
|
|
91
186
|
title?: string;
|
|
92
187
|
render?: (
|
|
93
|
-
item:
|
|
94
|
-
data:
|
|
188
|
+
item: T[keyof T] | string,
|
|
189
|
+
data: T,
|
|
95
190
|
context: KTDataTableInterface,
|
|
96
191
|
) => string | HTMLElement | DocumentFragment;
|
|
97
192
|
checkbox?: boolean;
|
|
98
193
|
createdCell?: (
|
|
99
194
|
cell: HTMLTableCellElement,
|
|
100
|
-
cellData:
|
|
101
|
-
|
|
102
|
-
| string,
|
|
103
|
-
rowData: KTDataTableDataInterface,
|
|
195
|
+
cellData: T[keyof T] | string,
|
|
196
|
+
rowData: T,
|
|
104
197
|
row: HTMLTableRowElement,
|
|
105
198
|
) => void;
|
|
106
199
|
/**
|
|
@@ -114,11 +207,14 @@ export interface KTDataTableConfigInterface {
|
|
|
114
207
|
* Use for custom formats (e.g. dates, combined fields, custom parsing).
|
|
115
208
|
*/
|
|
116
209
|
sortValue?: (
|
|
117
|
-
cellValue:
|
|
118
|
-
|
|
119
|
-
| string,
|
|
120
|
-
rowData: KTDataTableDataInterface,
|
|
210
|
+
cellValue: T[keyof T] | string,
|
|
211
|
+
rowData: T,
|
|
121
212
|
) => number | string;
|
|
213
|
+
/**
|
|
214
|
+
* Fixed width for this column when tableLayout is 'fixed'.
|
|
215
|
+
* Accepts any CSS length value (e.g. '120px', '20%', '10rem').
|
|
216
|
+
*/
|
|
217
|
+
width?: string;
|
|
122
218
|
};
|
|
123
219
|
};
|
|
124
220
|
|
|
@@ -139,18 +235,15 @@ export interface KTDataTableConfigInterface {
|
|
|
139
235
|
};
|
|
140
236
|
// local data sort callback
|
|
141
237
|
callback?: (
|
|
142
|
-
data:
|
|
143
|
-
sortField: keyof
|
|
238
|
+
data: T[],
|
|
239
|
+
sortField: keyof T | number,
|
|
144
240
|
sortOrder: KTDataTableSortOrderInterface,
|
|
145
|
-
) =>
|
|
241
|
+
) => T[];
|
|
146
242
|
};
|
|
147
243
|
|
|
148
244
|
search?: {
|
|
149
245
|
delay?: number; // delay in milliseconds
|
|
150
|
-
callback?: (
|
|
151
|
-
data: KTDataTableDataInterface[],
|
|
152
|
-
search: string,
|
|
153
|
-
) => KTDataTableDataInterface[]; // search callback
|
|
246
|
+
callback?: (data: T[], search: string) => T[]; // search callback
|
|
154
247
|
};
|
|
155
248
|
|
|
156
249
|
pagination?: {
|
|
@@ -187,8 +280,20 @@ export interface KTDataTableConfigInterface {
|
|
|
187
280
|
preserveSelection?: boolean;
|
|
188
281
|
};
|
|
189
282
|
|
|
283
|
+
/**
|
|
284
|
+
* Table layout algorithm. When 'fixed', the table uses `table-layout: fixed`
|
|
285
|
+
* and generates a `<colgroup>` to keep column widths consistent across pagination.
|
|
286
|
+
* Column widths are read from `columns[key].width` (configured mode) or from
|
|
287
|
+
* `data-kt-datatable-column-width` attribute on `<th>` elements (implicit mode).
|
|
288
|
+
* @default 'auto'
|
|
289
|
+
*/
|
|
290
|
+
tableLayout?: 'auto' | 'fixed';
|
|
291
|
+
|
|
292
|
+
lockedLayout?: KTDataTableLockedLayoutConfigInterface;
|
|
293
|
+
layoutPlugin?: KTDataTableLayoutPluginInterface;
|
|
294
|
+
|
|
190
295
|
_state?: KTDataTableStateInterface;
|
|
191
|
-
_data?:
|
|
296
|
+
_data?: T[];
|
|
192
297
|
|
|
193
298
|
loadingClass?: string;
|
|
194
299
|
}
|
|
@@ -198,11 +303,28 @@ export type KTDataTableColumnFilterTypeInterface =
|
|
|
198
303
|
| 'numeric'
|
|
199
304
|
| 'dateRange';
|
|
200
305
|
|
|
201
|
-
export
|
|
306
|
+
export interface KTDataTableTextFilterInterface {
|
|
202
307
|
column: keyof KTDataTableDataInterface;
|
|
203
|
-
type:
|
|
308
|
+
type: 'text';
|
|
204
309
|
value: string;
|
|
205
|
-
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
export interface KTDataTableNumericFilterInterface {
|
|
313
|
+
column: keyof KTDataTableDataInterface;
|
|
314
|
+
type: 'numeric';
|
|
315
|
+
value: number;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export interface KTDataTableDateRangeFilterInterface {
|
|
319
|
+
column: keyof KTDataTableDataInterface;
|
|
320
|
+
type: 'dateRange';
|
|
321
|
+
value: { from: string; to: string };
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
export type KTDataTableColumnFilterInterface =
|
|
325
|
+
| KTDataTableTextFilterInterface
|
|
326
|
+
| KTDataTableNumericFilterInterface
|
|
327
|
+
| KTDataTableDateRangeFilterInterface;
|
|
206
328
|
|
|
207
329
|
export interface KTDataTableCheckConfigInterface {
|
|
208
330
|
target: string;
|
|
@@ -224,3 +346,15 @@ export interface KTDataTableCheckInterface {
|
|
|
224
346
|
export interface KTDataTableCheckChangePayloadInterface {
|
|
225
347
|
cancel?: boolean;
|
|
226
348
|
}
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Stores original CSS classes from the server-rendered table,
|
|
352
|
+
* used to preserve styling after datatable redraws.
|
|
353
|
+
*/
|
|
354
|
+
export interface OriginalTableClasses {
|
|
355
|
+
tbody: string;
|
|
356
|
+
thead: string;
|
|
357
|
+
tr: string[];
|
|
358
|
+
td: string[][];
|
|
359
|
+
th: string[];
|
|
360
|
+
}
|