@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
|
@@ -2,11 +2,20 @@
|
|
|
2
2
|
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
3
|
* Copyright 2025 by Keenthemes Inc
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
import { stripHtml } from './datatable-utils';
|
|
6
|
+
var KTDataTableSortHandler = /** @class */ (function () {
|
|
7
|
+
function KTDataTableSortHandler(deps) {
|
|
8
|
+
this._sortAbortController = null;
|
|
9
|
+
this._config = deps.config;
|
|
10
|
+
this._theadElement = deps.theadElement;
|
|
11
|
+
this._getState = deps.getState;
|
|
12
|
+
this._setState = deps.setState;
|
|
13
|
+
this._emit = deps.emit;
|
|
14
|
+
this._updateData = deps.updateData;
|
|
15
|
+
}
|
|
16
|
+
KTDataTableSortHandler._compareValues = function (a, b, sortOrder) {
|
|
17
|
+
var aText = stripHtml(a);
|
|
18
|
+
var bText = stripHtml(b);
|
|
10
19
|
return aText > bText
|
|
11
20
|
? sortOrder === 'asc'
|
|
12
21
|
? 1
|
|
@@ -16,18 +25,16 @@ export function createSortHandler(config, theadElement, getState, setState, fire
|
|
|
16
25
|
? -1
|
|
17
26
|
: 1
|
|
18
27
|
: 0;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function parseNumeric(value) {
|
|
28
|
+
};
|
|
29
|
+
KTDataTableSortHandler._parseNumeric = function (value) {
|
|
22
30
|
if (value === null || value === undefined || value === '') {
|
|
23
31
|
return Number.NaN;
|
|
24
32
|
}
|
|
25
33
|
var s = String(value).replace(/[^0-9.-]/g, '');
|
|
26
34
|
var n = parseFloat(s);
|
|
27
35
|
return Number.isNaN(n) ? Number.NaN : n;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function compareNumeric(aNum, bNum, sortOrder) {
|
|
36
|
+
};
|
|
37
|
+
KTDataTableSortHandler._compareNumeric = function (aNum, bNum, sortOrder) {
|
|
31
38
|
var aNaN = Number.isNaN(aNum);
|
|
32
39
|
var bNaN = Number.isNaN(bNum);
|
|
33
40
|
if (aNaN && bNaN)
|
|
@@ -41,42 +48,56 @@ export function createSortHandler(config, theadElement, getState, setState, fire
|
|
|
41
48
|
if (aNum > bNum)
|
|
42
49
|
return sortOrder === 'asc' ? 1 : -1;
|
|
43
50
|
return 0;
|
|
44
|
-
}
|
|
45
|
-
function
|
|
46
|
-
var columns =
|
|
51
|
+
};
|
|
52
|
+
KTDataTableSortHandler.prototype._getColumnDef = function (sortField) {
|
|
53
|
+
var columns = this._config.columns;
|
|
47
54
|
if (!columns)
|
|
48
55
|
return undefined;
|
|
49
56
|
var key = typeof sortField === 'number'
|
|
50
57
|
? Object.keys(columns)[sortField]
|
|
51
58
|
: sortField;
|
|
52
59
|
return key !== undefined ? columns[key] : undefined;
|
|
53
|
-
}
|
|
54
|
-
function
|
|
55
|
-
var columnDef =
|
|
60
|
+
};
|
|
61
|
+
KTDataTableSortHandler.prototype.sortData = function (data, sortField, sortOrder) {
|
|
62
|
+
var columnDef = this._getColumnDef(sortField);
|
|
56
63
|
var sortValueFn = columnDef === null || columnDef === void 0 ? void 0 : columnDef.sortValue;
|
|
57
64
|
var useNumeric = !sortValueFn && (columnDef === null || columnDef === void 0 ? void 0 : columnDef.sortType) === 'numeric';
|
|
65
|
+
// Pre-strip HTML from cell values once (instead of on every comparison).
|
|
66
|
+
// For N rows this runs N regex replacements instead of N*log(N).
|
|
67
|
+
var strippedCache = new Map();
|
|
68
|
+
if (!sortValueFn) {
|
|
69
|
+
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
|
|
70
|
+
var item = data_1[_i];
|
|
71
|
+
strippedCache.set(item, stripHtml(item[sortField]));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
58
74
|
return data.sort(function (a, b) {
|
|
75
|
+
var _a, _b, _c, _d;
|
|
59
76
|
var aRaw = a[sortField];
|
|
60
77
|
var bRaw = b[sortField];
|
|
61
78
|
if (typeof sortValueFn === 'function') {
|
|
62
79
|
var aVal = sortValueFn(aRaw, a);
|
|
63
80
|
var bVal = sortValueFn(bRaw, b);
|
|
64
|
-
var aNum = typeof aVal === 'number'
|
|
65
|
-
|
|
81
|
+
var aNum = typeof aVal === 'number'
|
|
82
|
+
? aVal
|
|
83
|
+
: KTDataTableSortHandler._parseNumeric(aVal);
|
|
84
|
+
var bNum = typeof bVal === 'number'
|
|
85
|
+
? bVal
|
|
86
|
+
: KTDataTableSortHandler._parseNumeric(bVal);
|
|
66
87
|
if (typeof aVal === 'number' && typeof bVal === 'number') {
|
|
67
|
-
return
|
|
88
|
+
return KTDataTableSortHandler._compareNumeric(aNum, bNum, sortOrder);
|
|
68
89
|
}
|
|
69
|
-
return
|
|
90
|
+
return KTDataTableSortHandler._compareValues(aVal, bVal, sortOrder);
|
|
70
91
|
}
|
|
71
92
|
if (useNumeric) {
|
|
72
|
-
var aNum =
|
|
73
|
-
var bNum =
|
|
74
|
-
return
|
|
93
|
+
var aNum = KTDataTableSortHandler._parseNumeric((_a = strippedCache.get(a)) !== null && _a !== void 0 ? _a : aRaw);
|
|
94
|
+
var bNum = KTDataTableSortHandler._parseNumeric((_b = strippedCache.get(b)) !== null && _b !== void 0 ? _b : bRaw);
|
|
95
|
+
return KTDataTableSortHandler._compareNumeric(aNum, bNum, sortOrder);
|
|
75
96
|
}
|
|
76
|
-
return
|
|
97
|
+
return KTDataTableSortHandler._compareValues((_c = strippedCache.get(a)) !== null && _c !== void 0 ? _c : aRaw, (_d = strippedCache.get(b)) !== null && _d !== void 0 ? _d : bRaw, sortOrder);
|
|
77
98
|
});
|
|
78
|
-
}
|
|
79
|
-
function
|
|
99
|
+
};
|
|
100
|
+
KTDataTableSortHandler.prototype.toggleSortOrder = function (currentField, currentOrder, newField) {
|
|
80
101
|
if (currentField === newField) {
|
|
81
102
|
switch (currentOrder) {
|
|
82
103
|
case 'asc':
|
|
@@ -88,17 +109,16 @@ export function createSortHandler(config, theadElement, getState, setState, fire
|
|
|
88
109
|
}
|
|
89
110
|
}
|
|
90
111
|
return 'asc';
|
|
91
|
-
}
|
|
92
|
-
function
|
|
112
|
+
};
|
|
113
|
+
KTDataTableSortHandler.prototype.setSortIcon = function (sortField, sortOrder) {
|
|
93
114
|
var _a, _b, _c, _d, _e, _f;
|
|
94
|
-
var baseClass = ((_b = (_a =
|
|
115
|
+
var baseClass = ((_b = (_a = this._config.sort) === null || _a === void 0 ? void 0 : _a.classes) === null || _b === void 0 ? void 0 : _b.base) || '';
|
|
95
116
|
var sortClass = sortOrder
|
|
96
117
|
? sortOrder === 'asc'
|
|
97
|
-
? ((_d = (_c =
|
|
98
|
-
: ((_f = (_e =
|
|
118
|
+
? ((_d = (_c = this._config.sort) === null || _c === void 0 ? void 0 : _c.classes) === null || _d === void 0 ? void 0 : _d.asc) || ''
|
|
119
|
+
: ((_f = (_e = this._config.sort) === null || _e === void 0 ? void 0 : _e.classes) === null || _f === void 0 ? void 0 : _f.desc) || ''
|
|
99
120
|
: '';
|
|
100
|
-
|
|
101
|
-
var allTh = theadElement.querySelectorAll('th');
|
|
121
|
+
var allTh = this._theadElement.querySelectorAll('th');
|
|
102
122
|
allTh.forEach(function (header) {
|
|
103
123
|
var el = header;
|
|
104
124
|
el.setAttribute('aria-sort', 'none');
|
|
@@ -107,10 +127,9 @@ export function createSortHandler(config, theadElement, getState, setState, fire
|
|
|
107
127
|
sortElement.className = baseClass;
|
|
108
128
|
}
|
|
109
129
|
});
|
|
110
|
-
// Apply sort state to the active column so table.css [aria-sort='asc'] / [aria-sort='desc'] can highlight the arrow
|
|
111
130
|
var th = typeof sortField === 'number'
|
|
112
131
|
? allTh[sortField]
|
|
113
|
-
:
|
|
132
|
+
: this._theadElement.querySelector("th[data-kt-datatable-column=\"".concat(String(sortField), "\"], th[data-kt-datatable-column-sort=\"").concat(String(sortField), "\"]"));
|
|
114
133
|
if (th) {
|
|
115
134
|
var sortElement = th.querySelector(".".concat(baseClass));
|
|
116
135
|
if (sortElement) {
|
|
@@ -123,20 +142,23 @@ export function createSortHandler(config, theadElement, getState, setState, fire
|
|
|
123
142
|
th.setAttribute('aria-sort', 'none');
|
|
124
143
|
}
|
|
125
144
|
}
|
|
126
|
-
}
|
|
127
|
-
function
|
|
128
|
-
|
|
145
|
+
};
|
|
146
|
+
KTDataTableSortHandler.prototype.initSort = function () {
|
|
147
|
+
var _this = this;
|
|
148
|
+
if (!this._theadElement)
|
|
129
149
|
return;
|
|
130
|
-
//
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
150
|
+
// Abort previous sort listeners before attaching new ones
|
|
151
|
+
if (this._sortAbortController) {
|
|
152
|
+
this._sortAbortController.abort();
|
|
153
|
+
}
|
|
154
|
+
this._sortAbortController = new AbortController();
|
|
155
|
+
var signal = this._sortAbortController.signal;
|
|
156
|
+
this.setSortIcon(this._getState().sortField, this._getState().sortOrder);
|
|
157
|
+
var headers = Array.from(this._theadElement.querySelectorAll('th'));
|
|
134
158
|
headers.forEach(function (header) {
|
|
135
159
|
var _a, _b;
|
|
136
|
-
|
|
137
|
-
if (!header.querySelector(".".concat((_b = (_a = config.sort) === null || _a === void 0 ? void 0 : _a.classes) === null || _b === void 0 ? void 0 : _b.base)))
|
|
160
|
+
if (!header.querySelector(".".concat((_b = (_a = _this._config.sort) === null || _a === void 0 ? void 0 : _a.classes) === null || _b === void 0 ? void 0 : _b.base)))
|
|
138
161
|
return;
|
|
139
|
-
// Check if sorting is disabled for this column
|
|
140
162
|
var sortDisabled = header.getAttribute('data-kt-datatable-column-sort') === 'false';
|
|
141
163
|
if (sortDisabled)
|
|
142
164
|
return;
|
|
@@ -146,16 +168,22 @@ export function createSortHandler(config, theadElement, getState, setState, fire
|
|
|
146
168
|
? sortAttribute
|
|
147
169
|
: header.cellIndex;
|
|
148
170
|
header.addEventListener('click', function () {
|
|
149
|
-
var state =
|
|
150
|
-
var sortOrder = toggleSortOrder(state.sortField, state.sortOrder, sortField);
|
|
151
|
-
setSortIcon(sortField, sortOrder);
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
});
|
|
171
|
+
var state = _this._getState();
|
|
172
|
+
var sortOrder = _this.toggleSortOrder(state.sortField, state.sortOrder, sortField);
|
|
173
|
+
_this.setSortIcon(sortField, sortOrder);
|
|
174
|
+
_this._setState(sortField, sortOrder);
|
|
175
|
+
_this._emit('sort', { field: sortField, order: sortOrder });
|
|
176
|
+
_this._updateData();
|
|
177
|
+
}, { signal: signal });
|
|
157
178
|
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
|
|
179
|
+
};
|
|
180
|
+
KTDataTableSortHandler.prototype.dispose = function () {
|
|
181
|
+
if (this._sortAbortController) {
|
|
182
|
+
this._sortAbortController.abort();
|
|
183
|
+
this._sortAbortController = null;
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
return KTDataTableSortHandler;
|
|
187
|
+
}());
|
|
188
|
+
export { KTDataTableSortHandler };
|
|
161
189
|
//# sourceMappingURL=datatable-sort.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable-sort.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-sort.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"datatable-sort.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-sort.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
export interface KTDataTableSpinner {
|
|
6
|
+
show(root: HTMLElement | null, config: {
|
|
7
|
+
attributes?: {
|
|
8
|
+
spinner?: string;
|
|
9
|
+
};
|
|
10
|
+
loadingClass?: string;
|
|
11
|
+
loading?: {
|
|
12
|
+
template: string;
|
|
13
|
+
content: string;
|
|
14
|
+
};
|
|
15
|
+
}, tableElement: HTMLTableElement): void;
|
|
16
|
+
hide(root: HTMLElement | null, config: {
|
|
17
|
+
attributes?: {
|
|
18
|
+
spinner?: string;
|
|
19
|
+
};
|
|
20
|
+
loadingClass?: string;
|
|
21
|
+
}): void;
|
|
22
|
+
remove(root: HTMLElement | null, config: {
|
|
23
|
+
attributes?: {
|
|
24
|
+
spinner?: string;
|
|
25
|
+
};
|
|
26
|
+
loadingClass?: string;
|
|
27
|
+
}): void;
|
|
28
|
+
}
|
|
29
|
+
export declare function createSpinner(): KTDataTableSpinner;
|
|
30
|
+
//# sourceMappingURL=datatable-spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable-spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-spinner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAClC,IAAI,CACH,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,EAAE;QACP,UAAU,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;KAChD,EACD,YAAY,EAAE,gBAAgB,GAC5B,IAAI,CAAC;IACR,IAAI,CACH,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,EAAE;QACP,UAAU,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;KACtB,GACC,IAAI,CAAC;IACR,MAAM,CACL,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,EAAE;QACP,UAAU,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClC,YAAY,CAAC,EAAE,MAAM,CAAC;KACtB,GACC,IAAI,CAAC;CACR;AAED,wBAAgB,aAAa,IAAI,kBAAkB,CAuElD"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
export function createSpinner() {
|
|
6
|
+
function findSpinner(root, spinnerSel) {
|
|
7
|
+
return root && spinnerSel
|
|
8
|
+
? root.querySelector(spinnerSel)
|
|
9
|
+
: null;
|
|
10
|
+
}
|
|
11
|
+
function createSpinnerElement(tableElement, loading) {
|
|
12
|
+
var template = document.createElement('template');
|
|
13
|
+
template.innerHTML = loading.template
|
|
14
|
+
.trim()
|
|
15
|
+
.replace('{content}', loading.content);
|
|
16
|
+
var first = template.content.firstChild;
|
|
17
|
+
if (!first || !(first instanceof HTMLElement))
|
|
18
|
+
return null;
|
|
19
|
+
var spinner = first;
|
|
20
|
+
spinner.setAttribute('data-kt-datatable-spinner', 'true');
|
|
21
|
+
tableElement.appendChild(spinner);
|
|
22
|
+
return spinner;
|
|
23
|
+
}
|
|
24
|
+
function show(root, config, tableElement) {
|
|
25
|
+
var _a, _b;
|
|
26
|
+
var spinnerSel = (_a = config.attributes) === null || _a === void 0 ? void 0 : _a.spinner;
|
|
27
|
+
var fromDom = findSpinner(root, spinnerSel);
|
|
28
|
+
var spinner = fromDom !== null && fromDom !== void 0 ? fromDom : (config.loading
|
|
29
|
+
? createSpinnerElement(tableElement, config.loading)
|
|
30
|
+
: null);
|
|
31
|
+
if (spinner)
|
|
32
|
+
spinner.style.display = 'block';
|
|
33
|
+
root === null || root === void 0 ? void 0 : root.classList.add((_b = config.loadingClass) !== null && _b !== void 0 ? _b : 'loading');
|
|
34
|
+
}
|
|
35
|
+
function hide(root, config) {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
var spinner = findSpinner(root, (_a = config.attributes) === null || _a === void 0 ? void 0 : _a.spinner);
|
|
38
|
+
if (spinner)
|
|
39
|
+
spinner.style.display = 'none';
|
|
40
|
+
root === null || root === void 0 ? void 0 : root.classList.remove((_b = config.loadingClass) !== null && _b !== void 0 ? _b : 'loading');
|
|
41
|
+
}
|
|
42
|
+
function remove(root, config) {
|
|
43
|
+
var _a, _b;
|
|
44
|
+
var spinner = findSpinner(root, (_a = config.attributes) === null || _a === void 0 ? void 0 : _a.spinner);
|
|
45
|
+
if (spinner === null || spinner === void 0 ? void 0 : spinner.parentNode)
|
|
46
|
+
spinner.parentNode.removeChild(spinner);
|
|
47
|
+
root === null || root === void 0 ? void 0 : root.classList.remove((_b = config.loadingClass) !== null && _b !== void 0 ? _b : 'loading');
|
|
48
|
+
}
|
|
49
|
+
return { show: show, hide: hide, remove: remove };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=datatable-spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable-spinner.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-spinner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH,MAAM,UAAU,aAAa;IAC5B,SAAS,WAAW,CACnB,IAAwB,EACxB,UAA8B;QAE9B,OAAO,IAAI,IAAI,UAAU;YACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAc,UAAU,CAAC;YAC7C,CAAC,CAAC,IAAI,CAAC;IACT,CAAC;IAED,SAAS,oBAAoB,CAC5B,YAA8B,EAC9B,OAA8C;QAE9C,IAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ;aACnC,IAAI,EAAE;aACN,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAM,OAAO,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,YAAY,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAC1D,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,SAAS,IAAI,CACZ,IAAwB,EACxB,MAIC,EACD,YAA8B;;QAE9B,IAAM,UAAU,GAAG,MAAA,MAAM,CAAC,UAAU,0CAAE,OAAO,CAAC;QAC9C,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9C,IAAM,OAAO,GACZ,OAAO,aAAP,OAAO,cAAP,OAAO,GACP,CAAC,MAAM,CAAC,OAAO;YACd,CAAC,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,IAAI,CACZ,IAAwB,EACxB,MAGC;;QAED,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,MAAA,MAAM,CAAC,UAAU,0CAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO;YAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC5C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,MAAM,CACd,IAAwB,EACxB,MAGC;;QAED,IAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,MAAA,MAAM,CAAC,UAAU,0CAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU;YAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC,MAAM,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
import { KTDataTableStateInterface } from './types';
|
|
6
|
+
export interface KTDataTableStatePersistence {
|
|
7
|
+
save(namespace: string, state: KTDataTableStateInterface): void;
|
|
8
|
+
load(namespace: string): KTDataTableStateInterface | null;
|
|
9
|
+
remove(namespace: string): void;
|
|
10
|
+
}
|
|
11
|
+
export declare function createStatePersistence(): KTDataTableStatePersistence;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the namespace for a datatable state key.
|
|
14
|
+
* Priority: config.stateNamespace > table element ID > root element ID > fallback name.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resolveTableNamespace(config: {
|
|
17
|
+
stateNamespace?: string;
|
|
18
|
+
}, tableElement: HTMLTableElement | null, rootElement: HTMLElement | null, fallbackName: string): string;
|
|
19
|
+
//# sourceMappingURL=datatable-state-persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable-state-persistence.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-state-persistence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,WAAW,2BAA2B;IAC3C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,sBAAsB,IAAI,2BAA2B,CAiCpE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACnC,YAAY,EAAE,gBAAgB,GAAG,IAAI,EACrC,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,YAAY,EAAE,MAAM,GAClB,MAAM,CASR"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
export function createStatePersistence() {
|
|
6
|
+
function save(namespace, state) {
|
|
7
|
+
if (namespace) {
|
|
8
|
+
try {
|
|
9
|
+
localStorage.setItem(namespace, JSON.stringify(state));
|
|
10
|
+
}
|
|
11
|
+
catch (_a) {
|
|
12
|
+
// localStorage unavailable (e.g. Node.js without --localstorage-file)
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function load(namespace) {
|
|
17
|
+
try {
|
|
18
|
+
var stateString = localStorage.getItem(namespace);
|
|
19
|
+
if (!stateString)
|
|
20
|
+
return null;
|
|
21
|
+
return JSON.parse(stateString);
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function remove(namespace) {
|
|
28
|
+
if (namespace) {
|
|
29
|
+
try {
|
|
30
|
+
localStorage.removeItem(namespace);
|
|
31
|
+
}
|
|
32
|
+
catch (_a) {
|
|
33
|
+
// localStorage unavailable
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return { save: save, load: load, remove: remove };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Resolve the namespace for a datatable state key.
|
|
41
|
+
* Priority: config.stateNamespace > table element ID > root element ID > fallback name.
|
|
42
|
+
*/
|
|
43
|
+
export function resolveTableNamespace(config, tableElement, rootElement, fallbackName) {
|
|
44
|
+
if (config.stateNamespace) {
|
|
45
|
+
return config.stateNamespace;
|
|
46
|
+
}
|
|
47
|
+
var tableIdAttr = tableElement === null || tableElement === void 0 ? void 0 : tableElement.getAttribute('id');
|
|
48
|
+
if (tableIdAttr)
|
|
49
|
+
return tableIdAttr;
|
|
50
|
+
var rootIdAttr = rootElement === null || rootElement === void 0 ? void 0 : rootElement.getAttribute('id');
|
|
51
|
+
if (rootIdAttr)
|
|
52
|
+
return rootIdAttr;
|
|
53
|
+
return fallbackName;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=datatable-state-persistence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable-state-persistence.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-state-persistence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,UAAU,sBAAsB;IACrC,SAAS,IAAI,CAAC,SAAiB,EAAE,KAAgC;QAChE,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACJ,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,CAAC;YAAC,WAAM,CAAC;gBACR,sEAAsE;YACvE,CAAC;QACF,CAAC;IACF,CAAC;IAED,SAAS,IAAI,CAAC,SAAiB;QAC9B,IAAI,CAAC;YACJ,IAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAE9B,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAA8B,CAAC;QAC7D,CAAC;QAAC,WAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,SAAS,MAAM,CAAC,SAAiB;QAChC,IAAI,SAAS,EAAE,CAAC;YACf,IAAI,CAAC;gBACJ,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YAAC,WAAM,CAAC;gBACR,2BAA2B;YAC5B,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,MAAM,QAAA,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACpC,MAAmC,EACnC,YAAqC,EACrC,WAA+B,EAC/B,YAAoB;IAEpB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,cAAc,CAAC;IAC9B,CAAC;IACD,IAAM,WAAW,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,IAAM,UAAU,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAClC,OAAO,YAAY,CAAC;AACrB,CAAC"}
|
|
@@ -7,6 +7,8 @@ import { KTDataTableTableRenderer, KTDataTableTableRendererInput } from './datat
|
|
|
7
7
|
export declare class KTDataTableDomTableRenderer<T extends KTDataTableDataInterface> implements KTDataTableTableRenderer<T> {
|
|
8
8
|
render(input: KTDataTableTableRendererInput<T>): HTMLTableSectionElement;
|
|
9
9
|
notice(tableElement: HTMLTableElement, getLogicalColumnCount: () => number, message?: string): void;
|
|
10
|
+
private applyTableLayout;
|
|
11
|
+
private updateColgroup;
|
|
10
12
|
private renderContent;
|
|
11
13
|
private renderImplicitColumns;
|
|
12
14
|
private renderConfiguredColumns;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable-table-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-table-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,wBAAwB,EAExB,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,wBAAwB,EACxB,6BAA6B,EAC7B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"datatable-table-renderer.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-table-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,wBAAwB,EAExB,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,wBAAwB,EACxB,6BAA6B,EAC7B,MAAM,uBAAuB,CAAC;AAG/B,qBAAa,2BAA2B,CACvC,CAAC,SAAS,wBAAwB,CACjC,YAAW,wBAAwB,CAAC,CAAC,CAAC;IAChC,MAAM,CACZ,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAC,GACrC,uBAAuB;IAmBnB,MAAM,CACZ,YAAY,EAAE,gBAAgB,EAC9B,qBAAqB,EAAE,MAAM,MAAM,EACnC,OAAO,GAAE,MAAW,GAClB,IAAI;IASP,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAwCtB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,qBAAqB;IAmC7B,OAAO,CAAC,uBAAuB;IAuD/B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,sBAAsB;CAW9B"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
3
|
* Copyright 2025 by Keenthemes Inc
|
|
4
4
|
*/
|
|
5
|
+
import { resolveColumns } from './datatable-column-utils';
|
|
5
6
|
var KTDataTableDomTableRenderer = /** @class */ (function () {
|
|
6
7
|
function KTDataTableDomTableRenderer() {
|
|
7
8
|
}
|
|
@@ -10,9 +11,10 @@ var KTDataTableDomTableRenderer = /** @class */ (function () {
|
|
|
10
11
|
input.tableElement.removeChild(input.tableElement.tBodies[0]);
|
|
11
12
|
}
|
|
12
13
|
var tbodyElement = input.tableElement.createTBody();
|
|
13
|
-
if (input.
|
|
14
|
-
tbodyElement.className = input.
|
|
14
|
+
if (input.originalClasses.tbody) {
|
|
15
|
+
tbodyElement.className = input.originalClasses.tbody;
|
|
15
16
|
}
|
|
17
|
+
this.applyTableLayout(input);
|
|
16
18
|
this.renderContent(input, tbodyElement);
|
|
17
19
|
return tbodyElement;
|
|
18
20
|
};
|
|
@@ -22,8 +24,64 @@ var KTDataTableDomTableRenderer = /** @class */ (function () {
|
|
|
22
24
|
var cell = row.insertCell();
|
|
23
25
|
var logicalCount = getLogicalColumnCount();
|
|
24
26
|
cell.colSpan = logicalCount > 0 ? logicalCount : 1;
|
|
27
|
+
cell.style.textAlign = 'center';
|
|
25
28
|
cell.innerHTML = message;
|
|
26
29
|
};
|
|
30
|
+
KTDataTableDomTableRenderer.prototype.applyTableLayout = function (input) {
|
|
31
|
+
var tableLayout = input.config.tableLayout || 'auto';
|
|
32
|
+
var tableElement = input.tableElement;
|
|
33
|
+
tableElement.style.tableLayout = tableLayout;
|
|
34
|
+
if (tableLayout === 'fixed') {
|
|
35
|
+
if (!tableElement.style.width) {
|
|
36
|
+
tableElement.style.width = '100%';
|
|
37
|
+
}
|
|
38
|
+
this.updateColgroup(input);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
var existingColgroup = tableElement.querySelector('colgroup');
|
|
42
|
+
if (existingColgroup) {
|
|
43
|
+
tableElement.removeChild(existingColgroup);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
KTDataTableDomTableRenderer.prototype.updateColgroup = function (input) {
|
|
48
|
+
var tableElement = input.tableElement;
|
|
49
|
+
var existingColgroup = tableElement.querySelector('colgroup');
|
|
50
|
+
if (existingColgroup) {
|
|
51
|
+
tableElement.removeChild(existingColgroup);
|
|
52
|
+
}
|
|
53
|
+
var colgroup = document.createElement('colgroup');
|
|
54
|
+
if (input.config.columns) {
|
|
55
|
+
var columns = input.config.columns;
|
|
56
|
+
for (var _i = 0, _a = Object.keys(columns); _i < _a.length; _i++) {
|
|
57
|
+
var key = _a[_i];
|
|
58
|
+
var col = document.createElement('col');
|
|
59
|
+
if (columns[key].width) {
|
|
60
|
+
col.style.width = columns[key].width;
|
|
61
|
+
}
|
|
62
|
+
colgroup.appendChild(col);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
var columnsByIndex = resolveColumns(input.theadElement).columnsByIndex;
|
|
67
|
+
for (var _b = 0, columnsByIndex_1 = columnsByIndex; _b < columnsByIndex_1.length; _b++) {
|
|
68
|
+
var th = columnsByIndex_1[_b];
|
|
69
|
+
var col = document.createElement('col');
|
|
70
|
+
var width = th.getAttribute('data-kt-datatable-column-width');
|
|
71
|
+
if (width) {
|
|
72
|
+
col.style.width = width;
|
|
73
|
+
}
|
|
74
|
+
colgroup.appendChild(col);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
var thead = tableElement.querySelector('thead');
|
|
78
|
+
if (thead) {
|
|
79
|
+
tableElement.insertBefore(colgroup, thead);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
tableElement.appendChild(colgroup);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
27
85
|
KTDataTableDomTableRenderer.prototype.renderContent = function (input, tbodyElement) {
|
|
28
86
|
var _this = this;
|
|
29
87
|
var fragment = document.createDocumentFragment();
|
|
@@ -32,20 +90,14 @@ var KTDataTableDomTableRenderer = /** @class */ (function () {
|
|
|
32
90
|
this.notice(input.tableElement, input.getLogicalColumnCount, input.config.infoEmpty || '');
|
|
33
91
|
return tbodyElement;
|
|
34
92
|
}
|
|
35
|
-
var
|
|
36
|
-
? input.theadElement.querySelectorAll('th')
|
|
37
|
-
: [];
|
|
38
|
-
var ths = Array.from(allThs).filter(function (th) {
|
|
39
|
-
return th.hasAttribute('data-kt-datatable-column');
|
|
40
|
-
});
|
|
41
|
-
var columnsToRender = ths.length > 0 && ths.length !== allThs.length ? Array.from(allThs) : ths;
|
|
93
|
+
var columnsToRender = resolveColumns(input.theadElement).columnsByIndex;
|
|
42
94
|
var logicalColumnCount = columnsToRender.length > 0
|
|
43
95
|
? columnsToRender.length
|
|
44
96
|
: input.getLogicalColumnCount();
|
|
45
97
|
input.data.forEach(function (item, rowIndex) {
|
|
46
98
|
var row = document.createElement('tr');
|
|
47
|
-
if (input.
|
|
48
|
-
row.className = input.
|
|
99
|
+
if (input.originalClasses.tr && input.originalClasses.tr[rowIndex]) {
|
|
100
|
+
row.className = input.originalClasses.tr[rowIndex];
|
|
49
101
|
}
|
|
50
102
|
if (!input.config.columns) {
|
|
51
103
|
_this.renderImplicitColumns(input, row, item, rowIndex, {
|
|
@@ -110,7 +162,14 @@ var KTDataTableDomTableRenderer = /** @class */ (function () {
|
|
|
110
162
|
}
|
|
111
163
|
}
|
|
112
164
|
else {
|
|
113
|
-
|
|
165
|
+
var cellValue = item[colKey];
|
|
166
|
+
if (cellValue === null || cellValue === undefined) {
|
|
167
|
+
td.textContent = '';
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// Match implicit column rendering: preserve HTML from DOM extraction.
|
|
171
|
+
td.innerHTML = String(cellValue);
|
|
172
|
+
}
|
|
114
173
|
}
|
|
115
174
|
if (typeof columnDef.createdCell === 'function') {
|
|
116
175
|
columnDef.createdCell.call(input.context, td, item[colKey], item, row);
|
|
@@ -119,10 +178,10 @@ var KTDataTableDomTableRenderer = /** @class */ (function () {
|
|
|
119
178
|
});
|
|
120
179
|
};
|
|
121
180
|
KTDataTableDomTableRenderer.prototype.applyOriginalTdClass = function (input, td, rowIndex, colIndex) {
|
|
122
|
-
if (input.
|
|
123
|
-
input.
|
|
124
|
-
input.
|
|
125
|
-
td.className = input.
|
|
181
|
+
if (input.originalClasses.td &&
|
|
182
|
+
input.originalClasses.td[rowIndex] &&
|
|
183
|
+
input.originalClasses.td[rowIndex][colIndex]) {
|
|
184
|
+
td.className = input.originalClasses.td[rowIndex][colIndex];
|
|
126
185
|
}
|
|
127
186
|
};
|
|
128
187
|
KTDataTableDomTableRenderer.prototype.applyDataRowAttributes = function (td, dataRowAttributes, colIndex) {
|