@keenthemes/ktui 1.2.6 → 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 +3775 -2298
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +25 -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.map +1 -1
- package/lib/cjs/components/datatable/datatable-layout-plugin.js +11 -1
- package/lib/cjs/components/datatable/datatable-layout-plugin.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable-local-provider.js +80 -24
- 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 +3 -2
- 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 +26 -34
- package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +155 -492
- 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 +100 -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.map +1 -1
- package/lib/esm/components/datatable/datatable-layout-plugin.js +11 -1
- package/lib/esm/components/datatable/datatable-layout-plugin.js.map +1 -1
- package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable-local-provider.js +80 -24
- 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 +3 -2
- 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 +26 -34
- package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
- package/lib/esm/components/datatable/datatable.js +157 -494
- 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 +100 -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__/multi-row-headers.test.ts +7 -7
- package/src/components/datatable/__tests__/pagination-reset.test.ts +129 -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 +144 -145
- 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 +11 -1
- package/src/components/datatable/datatable-local-provider.ts +91 -28
- package/src/components/datatable/datatable-pagination-renderer.ts +3 -2
- 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.ts +191 -580
- package/src/components/datatable/index.ts +3 -0
- package/src/components/datatable/types.ts +124 -23
- package/src/helpers/__tests__/dom.test.ts +776 -0
- package/src/helpers/__tests__/utils.test.ts +332 -0
- package/src/index.ts +10 -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
|
@@ -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) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable-table-renderer.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-table-renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"datatable-table-renderer.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-table-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Strip HTML tags and entities from a value, returning plain text.
|
|
7
|
+
* Used by sort, search, and filter pipelines.
|
|
8
|
+
*/
|
|
9
|
+
export declare function stripHtml(value: unknown): string;
|
|
10
|
+
//# sourceMappingURL=datatable-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
|
+
* Copyright 2025 by Keenthemes Inc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Strip HTML tags and entities from a value, returning plain text.
|
|
7
|
+
* Used by sort, search, and filter pipelines.
|
|
8
|
+
*/
|
|
9
|
+
export function stripHtml(value) {
|
|
10
|
+
return String(value).replace(/<[^>]*>| /g, '');
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=datatable-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datatable-utils.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACvC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -3,30 +3,15 @@
|
|
|
3
3
|
* Copyright 2025 by Keenthemes Inc
|
|
4
4
|
*/
|
|
5
5
|
import KTComponent from '../component';
|
|
6
|
-
import { KTDataTableDataInterface, KTDataTableInterface, KTDataTableConfigInterface as KTDataTableConfigInterface, KTDataTableStateInterface, KTDataTableColumnFilterInterface } from './types';
|
|
7
|
-
/**
|
|
8
|
-
* Custom DataTable plugin class with server-side API, pagination, and sorting
|
|
9
|
-
* @classdesc A custom KTComponent class that integrates server-side API, pagination, and sorting functionality into a table.
|
|
10
|
-
* It supports fetching data from a server-side API, pagination, and sorting of the fetched data.
|
|
11
|
-
* @class
|
|
12
|
-
* @extends {KTComponent}
|
|
13
|
-
* @param {HTMLElement} element The table element
|
|
14
|
-
* @param {KTDataTableConfigInterface} [config] Additional configuration options
|
|
15
|
-
*/
|
|
6
|
+
import { KTDataTableDataInterface, KTDataTableInterface, KTDataTableConfigInterface as KTDataTableConfigInterface, KTDataTableSortOrderInterface, KTDataTableStateInterface, KTDataTableColumnFilterInterface } from './types';
|
|
16
7
|
export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTComponent implements KTDataTableInterface {
|
|
17
|
-
private static asElementWithInstance;
|
|
18
|
-
private static asSearchElementWithDebounce;
|
|
19
8
|
protected _name: string;
|
|
20
9
|
protected _config: KTDataTableConfigInterface;
|
|
21
10
|
protected _defaultConfig: KTDataTableConfigInterface;
|
|
22
11
|
private _tableElement;
|
|
23
12
|
private _tbodyElement;
|
|
24
13
|
private _theadElement;
|
|
25
|
-
private
|
|
26
|
-
private _originalTrClasses;
|
|
27
|
-
private _originalTheadClass;
|
|
28
|
-
private _originalTdClasses;
|
|
29
|
-
private _originalThClasses;
|
|
14
|
+
private _originalClasses;
|
|
30
15
|
private _infoElement;
|
|
31
16
|
private _sizeElement;
|
|
32
17
|
private _paginationElement;
|
|
@@ -40,6 +25,9 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
40
25
|
private _tableRenderer;
|
|
41
26
|
private _paginationRenderer;
|
|
42
27
|
private _cleanupCallbacks;
|
|
28
|
+
private _searchHandler;
|
|
29
|
+
private _statePersistence;
|
|
30
|
+
private _spinner;
|
|
43
31
|
private _data;
|
|
44
32
|
private _isFetching;
|
|
45
33
|
constructor(element: HTMLElement, config?: KTDataTableConfigInterface);
|
|
@@ -58,6 +46,7 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
58
46
|
* @param config User-provided configuration options
|
|
59
47
|
* @returns Default configuration merged with user-provided options
|
|
60
48
|
*/
|
|
49
|
+
private _createDefaultSearchCallback;
|
|
61
50
|
private _initDefaultConfig;
|
|
62
51
|
/**
|
|
63
52
|
* Initialize table, tbody, thead, info, size, and pagination elements
|
|
@@ -79,11 +68,6 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
79
68
|
* @returns {void}
|
|
80
69
|
*/
|
|
81
70
|
private _finalize;
|
|
82
|
-
/**
|
|
83
|
-
* Attach search event to the search input element
|
|
84
|
-
* @returns {void}
|
|
85
|
-
*/
|
|
86
|
-
private _attachSearchEvent;
|
|
87
71
|
/**
|
|
88
72
|
* Returns the logical data column count (number of data columns), used for multi-row headers
|
|
89
73
|
* where querySelectorAll('th') would overcount. Prefers state.originalData, then first tbody row td count.
|
|
@@ -133,9 +117,6 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
133
117
|
* @param page - The page number to navigate to
|
|
134
118
|
*/
|
|
135
119
|
private _paginateData;
|
|
136
|
-
private _showSpinner;
|
|
137
|
-
private _hideSpinner;
|
|
138
|
-
private _createSpinner;
|
|
139
120
|
/**
|
|
140
121
|
* Saves the current state of the table to local storage.
|
|
141
122
|
* @returns {void}
|
|
@@ -161,8 +142,17 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
161
142
|
* Clean up all event listeners, handlers, and DOM nodes created by this instance.
|
|
162
143
|
* This method is called before re-rendering or when disposing the component.
|
|
163
144
|
*/
|
|
145
|
+
/**
|
|
146
|
+
* Clean up event listeners and DOM artifacts for a redraw cycle.
|
|
147
|
+
* Does NOT remove the instance from the registry — the datatable
|
|
148
|
+
* remains accessible via getInstance() during the redraw window.
|
|
149
|
+
*/
|
|
150
|
+
private _cleanupForRedraw;
|
|
151
|
+
/**
|
|
152
|
+
* Full disposal — cleans up listeners AND removes the instance from
|
|
153
|
+
* the registry. Only called when the component is being destroyed.
|
|
154
|
+
*/
|
|
164
155
|
private _dispose;
|
|
165
|
-
private _debounce;
|
|
166
156
|
/**
|
|
167
157
|
* Gets the current state of the table.
|
|
168
158
|
* @returns {KTDataTableStateInterface} The current state of the table.
|
|
@@ -170,9 +160,11 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
170
160
|
getState(): KTDataTableStateInterface;
|
|
171
161
|
/**
|
|
172
162
|
* Sorts the data in the table by the specified field.
|
|
163
|
+
* When `order` is provided, applies that sort direction instead of toggling.
|
|
173
164
|
* @param field The field to sort by.
|
|
165
|
+
* @param order Optional sort direction (`asc`, `desc`, or `''` to clear).
|
|
174
166
|
*/
|
|
175
|
-
sort(field: keyof T | number): void;
|
|
167
|
+
sort(field: keyof T | number, order?: KTDataTableSortOrderInterface): void;
|
|
176
168
|
/**
|
|
177
169
|
* Navigates to the specified page in the data table.
|
|
178
170
|
* @param page The page number to navigate to.
|
|
@@ -184,8 +176,8 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
184
176
|
*/
|
|
185
177
|
setPageSize(pageSize: number): void;
|
|
186
178
|
/**
|
|
187
|
-
* Reloads the data from the
|
|
188
|
-
*
|
|
179
|
+
* Reloads the data from the source (API or DOM) and redraws the table.
|
|
180
|
+
* @returns {Promise<void>}
|
|
189
181
|
*/
|
|
190
182
|
reload(): void;
|
|
191
183
|
redraw(page?: number): void;
|
|
@@ -207,10 +199,6 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
207
199
|
setFilter(filter: KTDataTableColumnFilterInterface): KTDataTable<T>;
|
|
208
200
|
dispose(): void;
|
|
209
201
|
search(query: string | object): void;
|
|
210
|
-
/**
|
|
211
|
-
* Static variables
|
|
212
|
-
*/
|
|
213
|
-
private static _instances;
|
|
214
202
|
/**
|
|
215
203
|
* Create KTDataTable instances for all elements with a data-kt-datatable="true" attribute.
|
|
216
204
|
* This function is now browser-guarded and must be called explicitly.
|
|
@@ -259,9 +247,13 @@ export declare class KTDataTable<T extends KTDataTableDataInterface> extends KTC
|
|
|
259
247
|
*/
|
|
260
248
|
getChecked(): string[];
|
|
261
249
|
/**
|
|
262
|
-
*
|
|
250
|
+
* Re-apply checkbox checked states to visible rows after a redraw or pagination change.
|
|
263
251
|
* @returns {void}
|
|
264
252
|
*/
|
|
253
|
+
refreshCheckboxes(): void;
|
|
254
|
+
/**
|
|
255
|
+
* @deprecated Use {@link refreshCheckboxes} instead.
|
|
256
|
+
*/
|
|
265
257
|
update(): void;
|
|
266
258
|
}
|
|
267
259
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,IAAI,0BAA0B,
|
|
1
|
+
{"version":3,"file":"datatable.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EACN,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,IAAI,0BAA0B,EACxD,6BAA6B,EAC7B,yBAAyB,EACzB,gCAAgC,EAIhC,MAAM,SAAS,CAAC;AA8CjB,qBAAa,WAAW,CAAC,CAAC,SAAS,wBAAwB,CAC1D,SAAQ,WACR,YAAW,oBAAoB;IAE/B,UAAmB,KAAK,EAAE,MAAM,CAAe;IAC/C,UAAmB,OAAO,EAAE,0BAA0B,CAAC;IACvD,UAAmB,cAAc,EAAE,0BAA0B,CAAC;IAE9D,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,gBAAgB,CAMtB;IAEF,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,kBAAkB,CAA4B;IAEtD,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,iBAAiB,CAA4B;IAErD,OAAO,CAAC,cAAc,CAAyB;IAC/C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAkB;gBAEzB,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,0BAA0B;IAiFrE,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,wBAAwB;IAmBhC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,uBAAuB;IAU/B;;;;OAIG;IACH,OAAO,CAAC,4BAA4B;IA4BpC,OAAO,CAAC,kBAAkB;IA2B1B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkCrB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;OAGG;YACW,WAAW;IA0BzB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAqCjB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;;;;;;;;;;;;OAaG;IAEH,OAAO,CAAC,UAAU;IAqDlB;;;OAGG;YACW,KAAK;IAqCnB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAcpB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAiBzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAWrB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAOlB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAMpB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,QAAQ;IAYhB;;;OAGG;IACH;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAUhB;;;OAGG;IACI,QAAQ,IAAI,yBAAyB;IAI5C;;;;;OAKG;IACI,IAAI,CACV,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,EACvB,KAAK,CAAC,EAAE,6BAA6B,GACnC,IAAI;IAeP;;;OAGG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASjC;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAY1C;;;OAGG;IACI,MAAM,IAAI,IAAI;IAKd,MAAM,CAAC,IAAI,GAAE,MAAU,GAAG,IAAI;IAIrC;;OAEG;IACI,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACI,WAAW,IAAI,IAAI;IAI1B;;;;;;OAMG;IACI,SAAS,CAAC,MAAM,EAAE,gCAAgC,GAAG,WAAW,CAAC,CAAC,CAAC;IAK1D,OAAO,IAAI,IAAI;IAKxB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK3C;;;OAGG;WACW,eAAe,IAAI,IAAI;IAIrC;;;;;OAKG;WACW,WAAW,CACxB,OAAO,EAAE,WAAW,GAClB,WAAW,CAAC,wBAAwB,CAAC,GAAG,SAAS;IAIpD;;;OAGG;WACW,IAAI,IAAI,IAAI;IAI1B;;;OAGG;WACW,MAAM,IAAI,IAAI;IAI5B;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;;OAGG;IACI,MAAM,IAAI,IAAI;IAIrB;;;OAGG;IACI,KAAK,IAAI,IAAI;IAKpB;;;OAGG;IACI,OAAO,IAAI,IAAI;IAKtB;;;OAGG;IACI,UAAU,IAAI,MAAM,EAAE;IAI7B;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;IACI,MAAM,IAAI,IAAI;CAKrB;AAED;;;GAGG;AAEH,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC"}
|