@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.
Files changed (190) hide show
  1. package/README.md +14 -5
  2. package/dist/ktui.js +3775 -2298
  3. package/dist/ktui.min.js +1 -1
  4. package/dist/ktui.min.js.map +1 -1
  5. package/dist/styles.css +25 -5
  6. package/lib/cjs/components/datatable/datatable-checkbox.d.ts +37 -1
  7. package/lib/cjs/components/datatable/datatable-checkbox.d.ts.map +1 -1
  8. package/lib/cjs/components/datatable/datatable-checkbox.js +143 -156
  9. package/lib/cjs/components/datatable/datatable-checkbox.js.map +1 -1
  10. package/lib/cjs/components/datatable/datatable-column-utils.d.ts +30 -0
  11. package/lib/cjs/components/datatable/datatable-column-utils.d.ts.map +1 -0
  12. package/lib/cjs/components/datatable/datatable-column-utils.js +42 -0
  13. package/lib/cjs/components/datatable/datatable-column-utils.js.map +1 -0
  14. package/lib/cjs/components/datatable/datatable-contracts.d.ts +2 -4
  15. package/lib/cjs/components/datatable/datatable-contracts.d.ts.map +1 -1
  16. package/lib/cjs/components/datatable/datatable-defaults.d.ts +20 -0
  17. package/lib/cjs/components/datatable/datatable-defaults.d.ts.map +1 -0
  18. package/lib/cjs/components/datatable/datatable-defaults.js +193 -0
  19. package/lib/cjs/components/datatable/datatable-defaults.js.map +1 -0
  20. package/lib/cjs/components/datatable/datatable-layout-plugin.d.ts.map +1 -1
  21. package/lib/cjs/components/datatable/datatable-layout-plugin.js +11 -1
  22. package/lib/cjs/components/datatable/datatable-layout-plugin.js.map +1 -1
  23. package/lib/cjs/components/datatable/datatable-local-provider.d.ts.map +1 -1
  24. package/lib/cjs/components/datatable/datatable-local-provider.js +80 -24
  25. package/lib/cjs/components/datatable/datatable-local-provider.js.map +1 -1
  26. package/lib/cjs/components/datatable/datatable-pagination-renderer.d.ts.map +1 -1
  27. package/lib/cjs/components/datatable/datatable-pagination-renderer.js +3 -2
  28. package/lib/cjs/components/datatable/datatable-pagination-renderer.js.map +1 -1
  29. package/lib/cjs/components/datatable/datatable-registry.d.ts +18 -0
  30. package/lib/cjs/components/datatable/datatable-registry.d.ts.map +1 -0
  31. package/lib/cjs/components/datatable/datatable-registry.js +66 -0
  32. package/lib/cjs/components/datatable/datatable-registry.js.map +1 -0
  33. package/lib/cjs/components/datatable/datatable-remote-provider.d.ts.map +1 -1
  34. package/lib/cjs/components/datatable/datatable-remote-provider.js +1 -2
  35. package/lib/cjs/components/datatable/datatable-remote-provider.js.map +1 -1
  36. package/lib/cjs/components/datatable/datatable-search-handler.d.ts +10 -0
  37. package/lib/cjs/components/datatable/datatable-search-handler.d.ts.map +1 -0
  38. package/lib/cjs/components/datatable/datatable-search-handler.js +65 -0
  39. package/lib/cjs/components/datatable/datatable-search-handler.js.map +1 -0
  40. package/lib/cjs/components/datatable/datatable-sort.d.ts +31 -4
  41. package/lib/cjs/components/datatable/datatable-sort.d.ts.map +1 -1
  42. package/lib/cjs/components/datatable/datatable-sort.js +86 -58
  43. package/lib/cjs/components/datatable/datatable-sort.js.map +1 -1
  44. package/lib/cjs/components/datatable/datatable-spinner.d.ts +30 -0
  45. package/lib/cjs/components/datatable/datatable-spinner.d.ts.map +1 -0
  46. package/lib/cjs/components/datatable/datatable-spinner.js +54 -0
  47. package/lib/cjs/components/datatable/datatable-spinner.js.map +1 -0
  48. package/lib/cjs/components/datatable/datatable-state-persistence.d.ts +19 -0
  49. package/lib/cjs/components/datatable/datatable-state-persistence.d.ts.map +1 -0
  50. package/lib/cjs/components/datatable/datatable-state-persistence.js +59 -0
  51. package/lib/cjs/components/datatable/datatable-state-persistence.js.map +1 -0
  52. package/lib/cjs/components/datatable/datatable-table-renderer.d.ts +2 -0
  53. package/lib/cjs/components/datatable/datatable-table-renderer.d.ts.map +1 -1
  54. package/lib/cjs/components/datatable/datatable-table-renderer.js +75 -16
  55. package/lib/cjs/components/datatable/datatable-table-renderer.js.map +1 -1
  56. package/lib/cjs/components/datatable/datatable-utils.d.ts +10 -0
  57. package/lib/cjs/components/datatable/datatable-utils.d.ts.map +1 -0
  58. package/lib/cjs/components/datatable/datatable-utils.js +15 -0
  59. package/lib/cjs/components/datatable/datatable-utils.js.map +1 -0
  60. package/lib/cjs/components/datatable/datatable.d.ts +26 -34
  61. package/lib/cjs/components/datatable/datatable.d.ts.map +1 -1
  62. package/lib/cjs/components/datatable/datatable.js +155 -492
  63. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  64. package/lib/cjs/components/datatable/index.d.ts +1 -1
  65. package/lib/cjs/components/datatable/index.d.ts.map +1 -1
  66. package/lib/cjs/components/datatable/types.d.ts +100 -11
  67. package/lib/cjs/components/datatable/types.d.ts.map +1 -1
  68. package/lib/cjs/index.d.ts +1 -1
  69. package/lib/cjs/index.d.ts.map +1 -1
  70. package/lib/cjs/index.js +6 -0
  71. package/lib/cjs/index.js.map +1 -1
  72. package/lib/esm/components/datatable/datatable-checkbox.d.ts +37 -1
  73. package/lib/esm/components/datatable/datatable-checkbox.d.ts.map +1 -1
  74. package/lib/esm/components/datatable/datatable-checkbox.js +142 -155
  75. package/lib/esm/components/datatable/datatable-checkbox.js.map +1 -1
  76. package/lib/esm/components/datatable/datatable-column-utils.d.ts +30 -0
  77. package/lib/esm/components/datatable/datatable-column-utils.d.ts.map +1 -0
  78. package/lib/esm/components/datatable/datatable-column-utils.js +38 -0
  79. package/lib/esm/components/datatable/datatable-column-utils.js.map +1 -0
  80. package/lib/esm/components/datatable/datatable-contracts.d.ts +2 -4
  81. package/lib/esm/components/datatable/datatable-contracts.d.ts.map +1 -1
  82. package/lib/esm/components/datatable/datatable-defaults.d.ts +20 -0
  83. package/lib/esm/components/datatable/datatable-defaults.d.ts.map +1 -0
  84. package/lib/esm/components/datatable/datatable-defaults.js +190 -0
  85. package/lib/esm/components/datatable/datatable-defaults.js.map +1 -0
  86. package/lib/esm/components/datatable/datatable-layout-plugin.d.ts.map +1 -1
  87. package/lib/esm/components/datatable/datatable-layout-plugin.js +11 -1
  88. package/lib/esm/components/datatable/datatable-layout-plugin.js.map +1 -1
  89. package/lib/esm/components/datatable/datatable-local-provider.d.ts.map +1 -1
  90. package/lib/esm/components/datatable/datatable-local-provider.js +80 -24
  91. package/lib/esm/components/datatable/datatable-local-provider.js.map +1 -1
  92. package/lib/esm/components/datatable/datatable-pagination-renderer.d.ts.map +1 -1
  93. package/lib/esm/components/datatable/datatable-pagination-renderer.js +3 -2
  94. package/lib/esm/components/datatable/datatable-pagination-renderer.js.map +1 -1
  95. package/lib/esm/components/datatable/datatable-registry.d.ts +18 -0
  96. package/lib/esm/components/datatable/datatable-registry.d.ts.map +1 -0
  97. package/lib/esm/components/datatable/datatable-registry.js +63 -0
  98. package/lib/esm/components/datatable/datatable-registry.js.map +1 -0
  99. package/lib/esm/components/datatable/datatable-remote-provider.d.ts.map +1 -1
  100. package/lib/esm/components/datatable/datatable-remote-provider.js +1 -2
  101. package/lib/esm/components/datatable/datatable-remote-provider.js.map +1 -1
  102. package/lib/esm/components/datatable/datatable-search-handler.d.ts +10 -0
  103. package/lib/esm/components/datatable/datatable-search-handler.d.ts.map +1 -0
  104. package/lib/esm/components/datatable/datatable-search-handler.js +62 -0
  105. package/lib/esm/components/datatable/datatable-search-handler.js.map +1 -0
  106. package/lib/esm/components/datatable/datatable-sort.d.ts +31 -4
  107. package/lib/esm/components/datatable/datatable-sort.d.ts.map +1 -1
  108. package/lib/esm/components/datatable/datatable-sort.js +85 -57
  109. package/lib/esm/components/datatable/datatable-sort.js.map +1 -1
  110. package/lib/esm/components/datatable/datatable-spinner.d.ts +30 -0
  111. package/lib/esm/components/datatable/datatable-spinner.d.ts.map +1 -0
  112. package/lib/esm/components/datatable/datatable-spinner.js +51 -0
  113. package/lib/esm/components/datatable/datatable-spinner.js.map +1 -0
  114. package/lib/esm/components/datatable/datatable-state-persistence.d.ts +19 -0
  115. package/lib/esm/components/datatable/datatable-state-persistence.d.ts.map +1 -0
  116. package/lib/esm/components/datatable/datatable-state-persistence.js +55 -0
  117. package/lib/esm/components/datatable/datatable-state-persistence.js.map +1 -0
  118. package/lib/esm/components/datatable/datatable-table-renderer.d.ts +2 -0
  119. package/lib/esm/components/datatable/datatable-table-renderer.d.ts.map +1 -1
  120. package/lib/esm/components/datatable/datatable-table-renderer.js +75 -16
  121. package/lib/esm/components/datatable/datatable-table-renderer.js.map +1 -1
  122. package/lib/esm/components/datatable/datatable-utils.d.ts +10 -0
  123. package/lib/esm/components/datatable/datatable-utils.d.ts.map +1 -0
  124. package/lib/esm/components/datatable/datatable-utils.js +12 -0
  125. package/lib/esm/components/datatable/datatable-utils.js.map +1 -0
  126. package/lib/esm/components/datatable/datatable.d.ts +26 -34
  127. package/lib/esm/components/datatable/datatable.d.ts.map +1 -1
  128. package/lib/esm/components/datatable/datatable.js +157 -494
  129. package/lib/esm/components/datatable/datatable.js.map +1 -1
  130. package/lib/esm/components/datatable/index.d.ts +1 -1
  131. package/lib/esm/components/datatable/index.d.ts.map +1 -1
  132. package/lib/esm/components/datatable/types.d.ts +100 -11
  133. package/lib/esm/components/datatable/types.d.ts.map +1 -1
  134. package/lib/esm/index.d.ts +1 -1
  135. package/lib/esm/index.d.ts.map +1 -1
  136. package/lib/esm/index.js +6 -0
  137. package/lib/esm/index.js.map +1 -1
  138. package/package.json +5 -1
  139. package/skills/ktui/SKILL.md +711 -0
  140. package/skills/ktui-datatable/SKILL.md +302 -0
  141. package/skills/ktui-install/SKILL.md +150 -0
  142. package/skills/ktui-select/SKILL.md +271 -0
  143. package/src/components/__tests__/component.test.ts +347 -0
  144. package/src/components/collapse/collapse.css +2 -2
  145. package/src/components/datatable/__tests__/architecture-boundaries.test.ts +56 -8
  146. package/src/components/datatable/__tests__/currency-sort.test.ts +25 -28
  147. package/src/components/datatable/__tests__/datatable-checkbox.test.ts +527 -0
  148. package/src/components/datatable/__tests__/datatable-column-utils.test.ts +117 -0
  149. package/src/components/datatable/__tests__/datatable-defaults.test.ts +57 -0
  150. package/src/components/datatable/__tests__/datatable-finalize-extended.test.ts +361 -0
  151. package/src/components/datatable/__tests__/datatable-fixed-layout.test.ts +427 -0
  152. package/src/components/datatable/__tests__/datatable-improvements.test.ts +484 -0
  153. package/src/components/datatable/__tests__/datatable-pagination-extended.test.ts +508 -0
  154. package/src/components/datatable/__tests__/datatable-public-api.test.ts +269 -0
  155. package/src/components/datatable/__tests__/datatable-registry.test.ts +172 -0
  156. package/src/components/datatable/__tests__/datatable-remote-provider.test.ts +468 -0
  157. package/src/components/datatable/__tests__/datatable-search-handler.test.ts +124 -0
  158. package/src/components/datatable/__tests__/datatable-sort-extended.test.ts +417 -0
  159. package/src/components/datatable/__tests__/datatable-spinner.test.ts +95 -0
  160. package/src/components/datatable/__tests__/datatable-table-renderer-extended.test.ts +425 -0
  161. package/src/components/datatable/__tests__/datatable-types.test.ts +117 -0
  162. package/src/components/datatable/__tests__/datatable-utils.test.ts +52 -0
  163. package/src/components/datatable/__tests__/multi-row-headers.test.ts +7 -7
  164. package/src/components/datatable/__tests__/pagination-reset.test.ts +129 -6
  165. package/src/components/datatable/__tests__/race-conditions.test.ts +11 -11
  166. package/src/components/datatable/__tests__/setup.ts +12 -4
  167. package/src/components/datatable/datatable-checkbox.ts +144 -145
  168. package/src/components/datatable/datatable-column-utils.ts +63 -0
  169. package/src/components/datatable/datatable-contracts.ts +2 -3
  170. package/src/components/datatable/datatable-defaults.ts +204 -0
  171. package/src/components/datatable/datatable-layout-plugin.ts +11 -1
  172. package/src/components/datatable/datatable-local-provider.ts +91 -28
  173. package/src/components/datatable/datatable-pagination-renderer.ts +3 -2
  174. package/src/components/datatable/datatable-registry.ts +89 -0
  175. package/src/components/datatable/datatable-remote-provider.ts +1 -3
  176. package/src/components/datatable/datatable-search-handler.ts +97 -0
  177. package/src/components/datatable/datatable-sort.ts +111 -66
  178. package/src/components/datatable/datatable-spinner.ts +103 -0
  179. package/src/components/datatable/datatable-state-persistence.ts +67 -0
  180. package/src/components/datatable/datatable-table-renderer.ts +81 -18
  181. package/src/components/datatable/datatable-utils.ts +12 -0
  182. package/src/components/datatable/datatable.ts +191 -580
  183. package/src/components/datatable/index.ts +3 -0
  184. package/src/components/datatable/types.ts +124 -23
  185. package/src/helpers/__tests__/dom.test.ts +776 -0
  186. package/src/helpers/__tests__/utils.test.ts +332 -0
  187. package/src/index.ts +10 -0
  188. package/skills/ktui-components/SKILL.md +0 -41
  189. package/skills/ktui-theming/SKILL.md +0 -50
  190. package/src/components/datatable/datatable-event-adapter.ts +0 -21
package/dist/styles.css CHANGED
@@ -321,6 +321,12 @@
321
321
  .z-50 {
322
322
  z-index: 50;
323
323
  }
324
+ .row-0 {
325
+ grid-row: 0;
326
+ }
327
+ .row-1 {
328
+ grid-row: 1;
329
+ }
324
330
  .container {
325
331
  width: 100%;
326
332
  @media (width >= 40rem) {
@@ -698,6 +704,9 @@
698
704
  .bg-blue-600 {
699
705
  background-color: var(--color-blue-600);
700
706
  }
707
+ .bg-card {
708
+ background-color: var(--card);
709
+ }
701
710
  .bg-gray-50 {
702
711
  background-color: var(--color-gray-50);
703
712
  }
@@ -911,6 +920,18 @@
911
920
  .text-yellow-400 {
912
921
  color: var(--color-yellow-400);
913
922
  }
923
+ .capitalize {
924
+ text-transform: capitalize;
925
+ }
926
+ .lowercase {
927
+ text-transform: lowercase;
928
+ }
929
+ .uppercase {
930
+ text-transform: uppercase;
931
+ }
932
+ .italic {
933
+ font-style: italic;
934
+ }
914
935
  .antialiased {
915
936
  -webkit-font-smoothing: antialiased;
916
937
  -moz-osx-font-smoothing: grayscale;
@@ -966,6 +987,10 @@
966
987
  --tw-duration: 200ms;
967
988
  transition-duration: 200ms;
968
989
  }
990
+ .select-all {
991
+ -webkit-user-select: all;
992
+ user-select: all;
993
+ }
969
994
  .checked\:bg-none {
970
995
  &:checked {
971
996
  background-image: none;
@@ -1082,11 +1107,6 @@
1082
1107
  border-color: var(--color-gray-700);
1083
1108
  }
1084
1109
  }
1085
- .dark\:bg-background {
1086
- &:is(.dark *) {
1087
- background-color: var(--background);
1088
- }
1089
- }
1090
1110
  .dark\:bg-blue-500 {
1091
1111
  &:is(.dark *) {
1092
1112
  background-color: var(--color-blue-500);
@@ -3,6 +3,12 @@
3
3
  * Copyright 2025 by Keenthemes Inc
4
4
  */
5
5
  import { KTDataTableConfigInterface } from './types';
6
+ export interface KTDataTableCheckboxDeps {
7
+ getState: () => {
8
+ selectedRows?: string[];
9
+ };
10
+ setSelectedRows: (rows: string[]) => void;
11
+ }
6
12
  export interface KTDataTableCheckboxAPI {
7
13
  init(): void;
8
14
  check(): void;
@@ -11,6 +17,36 @@ export interface KTDataTableCheckboxAPI {
11
17
  isChecked(): boolean;
12
18
  getChecked(): string[];
13
19
  updateState(): void;
20
+ dispose(): void;
21
+ }
22
+ export declare class KTDataTableCheckboxHandler implements KTDataTableCheckboxAPI {
23
+ private _element;
24
+ private _config;
25
+ private _fireEvent;
26
+ private _deps;
27
+ private _headerChecked;
28
+ private _headerCheckElement;
29
+ private _targetElements;
30
+ private _delegatedEventId;
31
+ private readonly _preserveSelection;
32
+ constructor(element: HTMLElement, config: KTDataTableConfigInterface, fireEvent: (eventName: string, eventData?: object) => void, deps: KTDataTableCheckboxDeps);
33
+ private _checkboxListener;
34
+ private _getSelectedRows;
35
+ private _setSelectedRows;
36
+ private _getVisibleRowIds;
37
+ init(): void;
38
+ private _checkboxHandler;
39
+ private _handleRowCheckboxChange;
40
+ private _checkboxToggle;
41
+ private _change;
42
+ private _reapplyCheckedStates;
43
+ private _updateHeaderCheckboxState;
44
+ isChecked(): boolean;
45
+ getChecked(): string[];
46
+ check(): void;
47
+ uncheck(): void;
48
+ toggle(): void;
49
+ updateState(): void;
50
+ dispose(): void;
14
51
  }
15
- export declare function createCheckboxHandler(element: HTMLElement, config: KTDataTableConfigInterface, fireEvent: (eventName: string, eventData?: object) => void): KTDataTableCheckboxAPI;
16
52
  //# sourceMappingURL=datatable-checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"datatable-checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-checkbox.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,0BAA0B,EAG1B,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,sBAAsB;IACtC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC;IACf,SAAS,IAAI,OAAO,CAAC;IACrB,UAAU,IAAI,MAAM,EAAE,CAAC;IACvB,WAAW,IAAI,IAAI,CAAC;CACpB;AAGD,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,0BAA0B,EAClC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,GACxD,sBAAsB,CAsOxB"}
1
+ {"version":3,"file":"datatable-checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-checkbox.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,0BAA0B,EAE1B,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,uBAAuB;IACvC,QAAQ,EAAE,MAAM;QAAE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,sBAAsB;IACtC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,IAAI,IAAI,CAAC;IACf,SAAS,IAAI,OAAO,CAAC;IACrB,UAAU,IAAI,MAAM,EAAE,CAAC;IACvB,WAAW,IAAI,IAAI,CAAC;IACpB,OAAO,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,0BAA2B,YAAW,sBAAsB;IACxE,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAkD;IACpE,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,eAAe,CAA6C;IACpE,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;gBAG5C,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,0BAA0B,EAClC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,EAC1D,IAAI,EAAE,uBAAuB;IAS9B,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAOlB,IAAI;IAgBX,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,OAAO;IA6Bf,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,0BAA0B;IAsB3B,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,MAAM,EAAE;IAItB,KAAK;IAML,OAAO;IAMP,MAAM;IAMN,WAAW;IAWX,OAAO;CAed"}
@@ -13,85 +13,77 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
13
13
  return to.concat(ar || Array.prototype.slice.call(from));
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.createCheckboxHandler = createCheckboxHandler;
16
+ exports.KTDataTableCheckboxHandler = void 0;
17
17
  var event_handler_1 = require("../../helpers/event-handler");
18
- // Main function to create checkbox logic for a datatable instance
19
- function createCheckboxHandler(element, config, fireEvent) {
20
- var _a;
21
- var headerChecked = false;
22
- var headerCheckElement = null;
23
- var targetElements = null;
24
- // Default: preserve selection across all pages
25
- var preserveSelection = ((_a = config.checkbox) === null || _a === void 0 ? void 0 : _a.preserveSelection) !== false;
26
- function ensureState() {
27
- var state = config._state;
28
- if (!state) {
29
- state = {};
30
- config._state = state;
31
- }
32
- return state;
33
- }
34
- // Helper: get selectedRows from state, always as string[]
35
- function getSelectedRows() {
36
- var state = ensureState();
37
- if (!Array.isArray(state.selectedRows))
38
- state.selectedRows = [];
39
- return state.selectedRows.map(String);
40
- }
41
- // Helper: set selectedRows in state
42
- function setSelectedRows(rows) {
43
- var state = ensureState();
44
- state.selectedRows = Array.from(new Set(rows.map(String)));
45
- }
46
- // Helper: get all visible row IDs (values)
47
- function getVisibleRowIds() {
48
- if (!targetElements)
18
+ var KTDataTableCheckboxHandler = /** @class */ (function () {
19
+ function KTDataTableCheckboxHandler(element, config, fireEvent, deps) {
20
+ var _this = this;
21
+ var _a;
22
+ this._headerChecked = false;
23
+ this._headerCheckElement = null;
24
+ this._targetElements = null;
25
+ this._delegatedEventId = null;
26
+ this._checkboxListener = function (event) {
27
+ _this._checkboxToggle(event);
28
+ };
29
+ this._element = element;
30
+ this._config = config;
31
+ this._fireEvent = fireEvent;
32
+ this._deps = deps;
33
+ this._preserveSelection = ((_a = config.checkbox) === null || _a === void 0 ? void 0 : _a.preserveSelection) !== false;
34
+ }
35
+ KTDataTableCheckboxHandler.prototype._getSelectedRows = function () {
36
+ var rows = this._deps.getState().selectedRows;
37
+ return Array.isArray(rows) ? rows.map(String) : [];
38
+ };
39
+ KTDataTableCheckboxHandler.prototype._setSelectedRows = function (rows) {
40
+ this._deps.setSelectedRows(Array.from(new Set(rows.map(String))));
41
+ };
42
+ KTDataTableCheckboxHandler.prototype._getVisibleRowIds = function () {
43
+ if (!this._targetElements)
49
44
  return [];
50
- return Array.from(targetElements)
45
+ return Array.from(this._targetElements)
51
46
  .map(function (el) { return el.value; })
52
47
  .filter(function (v) { return v != null && v !== ''; });
53
- }
54
- // Listener for header checkbox
55
- var checkboxListener = function (event) {
56
- checkboxToggle(event);
57
48
  };
58
- function init() {
59
- var attrs = config.attributes;
49
+ KTDataTableCheckboxHandler.prototype.init = function () {
50
+ var attrs = this._config.attributes;
60
51
  if (!(attrs === null || attrs === void 0 ? void 0 : attrs.check) || !attrs.checkbox) {
61
52
  return;
62
53
  }
63
- headerCheckElement = element.querySelector(attrs.check);
64
- if (!headerCheckElement)
54
+ this._headerCheckElement =
55
+ this._element.querySelector(attrs.check);
56
+ if (!this._headerCheckElement)
65
57
  return;
66
- headerChecked = headerCheckElement.checked;
67
- targetElements = element.querySelectorAll(attrs.checkbox);
68
- checkboxHandler();
69
- reapplyCheckedStates();
70
- updateHeaderCheckboxState();
71
- }
72
- function checkboxHandler() {
58
+ this._headerChecked = this._headerCheckElement.checked;
59
+ this._targetElements =
60
+ this._element.querySelectorAll(attrs.checkbox);
61
+ this._checkboxHandler();
62
+ this._reapplyCheckedStates();
63
+ this._updateHeaderCheckboxState();
64
+ };
65
+ KTDataTableCheckboxHandler.prototype._checkboxHandler = function () {
66
+ var _this = this;
73
67
  var _a;
74
- if (!headerCheckElement)
68
+ if (!this._headerCheckElement)
75
69
  return;
76
- var rowCheckboxSelector = (_a = config.attributes) === null || _a === void 0 ? void 0 : _a.checkbox;
70
+ var rowCheckboxSelector = (_a = this._config.attributes) === null || _a === void 0 ? void 0 : _a.checkbox;
77
71
  if (!rowCheckboxSelector)
78
72
  return;
79
- headerCheckElement.addEventListener('click', checkboxListener);
80
- event_handler_1.default.on(document.body, rowCheckboxSelector, 'input', (function (event) {
73
+ this._headerCheckElement.addEventListener('click', this._checkboxListener);
74
+ this._delegatedEventId = event_handler_1.default.on(this._element, rowCheckboxSelector, 'input', (function (event) {
81
75
  if (event)
82
- handleRowCheckboxChange(event);
76
+ _this._handleRowCheckboxChange(event);
83
77
  }));
84
- }
85
- // When a row checkbox is changed
86
- function handleRowCheckboxChange(event) {
78
+ };
79
+ KTDataTableCheckboxHandler.prototype._handleRowCheckboxChange = function (event) {
87
80
  var input = event.target;
88
81
  if (!input)
89
82
  return;
90
83
  var value = input.value;
91
- var selectedRows = getSelectedRows();
84
+ var selectedRows = this._getSelectedRows();
92
85
  var wasChecked = selectedRows.includes(value);
93
86
  var isNowChecked = input.checked;
94
- // Update state first
95
87
  if (isNowChecked) {
96
88
  if (!wasChecked)
97
89
  selectedRows.push(value);
@@ -99,151 +91,146 @@ function createCheckboxHandler(element, config, fireEvent) {
99
91
  else {
100
92
  selectedRows = selectedRows.filter(function (v) { return v !== value; });
101
93
  }
102
- setSelectedRows(selectedRows);
103
- updateHeaderCheckboxState();
104
- // Fire specific checked/unchecked events after state is updated
94
+ this._setSelectedRows(selectedRows);
95
+ this._updateHeaderCheckboxState();
105
96
  if (isNowChecked && !wasChecked) {
106
- fireEvent('checked');
97
+ this._fireEvent('checked', { value: value });
107
98
  }
108
99
  else if (!isNowChecked && wasChecked) {
109
- fireEvent('unchecked');
100
+ this._fireEvent('unchecked', { value: value });
110
101
  }
111
- // Always fire changed event for backward compatibility
112
- fireEvent('changed');
113
- }
114
- // When the header checkbox is toggled
115
- function checkboxToggle(_event) {
116
- var checked = !isChecked();
117
- // Update state first, then fire events
118
- change(checked);
119
- // Fire checked/unchecked events after state is updated
102
+ this._fireEvent('changed');
103
+ };
104
+ KTDataTableCheckboxHandler.prototype._checkboxToggle = function (_event) {
105
+ var checked = !this.isChecked();
106
+ this._change(checked);
120
107
  var eventType = checked ? 'checked' : 'unchecked';
121
- fireEvent(eventType);
122
- }
123
- // Change all visible checkboxes and update selectedRows
124
- function change(checked) {
108
+ this._fireEvent(eventType);
109
+ };
110
+ KTDataTableCheckboxHandler.prototype._change = function (checked) {
125
111
  var payload = { cancel: false };
126
- fireEvent('change', payload);
112
+ this._fireEvent('change', payload);
127
113
  if (payload.cancel === true)
128
114
  return;
129
- headerChecked = checked;
130
- if (headerCheckElement)
131
- headerCheckElement.checked = checked;
132
- if (targetElements) {
133
- var visibleIds_1 = getVisibleRowIds();
134
- var selectedRows = getSelectedRows();
115
+ this._headerChecked = checked;
116
+ if (this._headerCheckElement)
117
+ this._headerCheckElement.checked = checked;
118
+ if (this._targetElements) {
119
+ var visibleIds_1 = this._getVisibleRowIds();
120
+ var selectedRows = this._getSelectedRows();
135
121
  if (checked) {
136
- // Add all visible IDs to selectedRows
137
- selectedRows = preserveSelection
122
+ selectedRows = this._preserveSelection
138
123
  ? Array.from(new Set(__spreadArray(__spreadArray([], selectedRows, true), visibleIds_1, true)))
139
124
  : visibleIds_1;
140
125
  }
141
126
  else {
142
- // Remove all visible IDs from selectedRows
143
- selectedRows = preserveSelection
127
+ selectedRows = this._preserveSelection
144
128
  ? selectedRows.filter(function (v) { return !visibleIds_1.includes(v); })
145
129
  : [];
146
130
  }
147
- setSelectedRows(selectedRows);
148
- // Update visible checkboxes
149
- targetElements.forEach(function (element) {
131
+ this._setSelectedRows(selectedRows);
132
+ this._targetElements.forEach(function (element) {
150
133
  if (element) {
151
134
  element.checked = checked;
152
135
  }
153
136
  });
154
137
  }
155
- updateHeaderCheckboxState();
156
- fireEvent('changed');
157
- }
158
- // Reapply checked state to visible checkboxes based on selectedRows
159
- function reapplyCheckedStates() {
160
- var selectedRows = getSelectedRows();
161
- if (!targetElements)
138
+ this._updateHeaderCheckboxState();
139
+ this._fireEvent('changed');
140
+ };
141
+ KTDataTableCheckboxHandler.prototype._reapplyCheckedStates = function () {
142
+ var _this = this;
143
+ var selectedRows = this._getSelectedRows();
144
+ if (!this._targetElements)
162
145
  return;
163
- targetElements.forEach(function (element) {
146
+ this._targetElements.forEach(function (element) {
164
147
  var _a;
165
148
  if (!element)
166
149
  return;
167
150
  var value = element.value;
168
151
  element.checked = selectedRows.includes(value);
169
- // Update row class
170
152
  var row = element.closest('tr');
171
- if (row && ((_a = config.checkbox) === null || _a === void 0 ? void 0 : _a.checkedClass)) {
153
+ if (row && ((_a = _this._config.checkbox) === null || _a === void 0 ? void 0 : _a.checkedClass)) {
172
154
  if (element.checked) {
173
- row.classList.add(config.checkbox.checkedClass);
155
+ row.classList.add(_this._config.checkbox.checkedClass);
174
156
  }
175
157
  else {
176
- row.classList.remove(config.checkbox.checkedClass);
158
+ row.classList.remove(_this._config.checkbox.checkedClass);
177
159
  }
178
160
  }
179
161
  });
180
- }
181
- // Update header checkbox state (checked/indeterminate/unchecked)
182
- function updateHeaderCheckboxState() {
183
- if (!headerCheckElement || !targetElements)
162
+ };
163
+ KTDataTableCheckboxHandler.prototype._updateHeaderCheckboxState = function () {
164
+ if (!this._headerCheckElement || !this._targetElements)
184
165
  return;
185
- var total = targetElements.length;
166
+ var total = this._targetElements.length;
186
167
  var checked = 0;
187
168
  for (var i = 0; i < total; i++) {
188
- if (targetElements[i].checked)
169
+ if (this._targetElements[i].checked)
189
170
  checked++;
190
171
  }
191
172
  if (checked === 0) {
192
- headerCheckElement.indeterminate = false;
193
- headerCheckElement.checked = false;
194
- headerChecked = false;
173
+ this._headerCheckElement.indeterminate = false;
174
+ this._headerCheckElement.checked = false;
175
+ this._headerChecked = false;
195
176
  }
196
177
  else if (checked > 0 && checked < total) {
197
- headerCheckElement.indeterminate = true;
198
- headerCheckElement.checked = false;
199
- headerChecked = false;
178
+ this._headerCheckElement.indeterminate = true;
179
+ this._headerCheckElement.checked = false;
180
+ this._headerChecked = false;
200
181
  }
201
182
  else if (checked === total) {
202
- headerCheckElement.indeterminate = false;
203
- headerCheckElement.checked = true;
204
- headerChecked = true;
183
+ this._headerCheckElement.indeterminate = false;
184
+ this._headerCheckElement.checked = true;
185
+ this._headerChecked = true;
205
186
  }
206
- }
207
- // Fix: isChecked() implementation
208
- function isChecked() {
209
- return headerChecked;
210
- }
211
- function getChecked() {
212
- return getSelectedRows();
213
- }
214
- function check() {
215
- change(true);
216
- reapplyCheckedStates();
217
- updateHeaderCheckboxState();
218
- }
219
- function uncheck() {
220
- change(false);
221
- reapplyCheckedStates();
222
- updateHeaderCheckboxState();
223
- }
224
- function toggle() {
225
- checkboxToggle();
226
- reapplyCheckedStates();
227
- updateHeaderCheckboxState();
228
- }
229
- function updateState() {
187
+ };
188
+ KTDataTableCheckboxHandler.prototype.isChecked = function () {
189
+ return this._headerChecked;
190
+ };
191
+ KTDataTableCheckboxHandler.prototype.getChecked = function () {
192
+ return this._getSelectedRows();
193
+ };
194
+ KTDataTableCheckboxHandler.prototype.check = function () {
195
+ this._change(true);
196
+ this._reapplyCheckedStates();
197
+ this._updateHeaderCheckboxState();
198
+ };
199
+ KTDataTableCheckboxHandler.prototype.uncheck = function () {
200
+ this._change(false);
201
+ this._reapplyCheckedStates();
202
+ this._updateHeaderCheckboxState();
203
+ };
204
+ KTDataTableCheckboxHandler.prototype.toggle = function () {
205
+ this._checkboxToggle();
206
+ this._reapplyCheckedStates();
207
+ this._updateHeaderCheckboxState();
208
+ };
209
+ KTDataTableCheckboxHandler.prototype.updateState = function () {
230
210
  var _a;
231
- var rowCheckSel = (_a = config.attributes) === null || _a === void 0 ? void 0 : _a.checkbox;
211
+ var rowCheckSel = (_a = this._config.attributes) === null || _a === void 0 ? void 0 : _a.checkbox;
232
212
  if (!rowCheckSel) {
233
213
  return;
234
214
  }
235
- targetElements = element.querySelectorAll(rowCheckSel);
236
- reapplyCheckedStates();
237
- updateHeaderCheckboxState();
238
- }
239
- return {
240
- init: init,
241
- check: check,
242
- uncheck: uncheck,
243
- toggle: toggle,
244
- isChecked: isChecked,
245
- getChecked: getChecked,
246
- updateState: updateState,
247
- };
248
- }
215
+ this._targetElements =
216
+ this._element.querySelectorAll(rowCheckSel);
217
+ this._reapplyCheckedStates();
218
+ this._updateHeaderCheckboxState();
219
+ };
220
+ KTDataTableCheckboxHandler.prototype.dispose = function () {
221
+ var _a;
222
+ if (this._headerCheckElement) {
223
+ this._headerCheckElement.removeEventListener('click', this._checkboxListener);
224
+ }
225
+ var rowCheckboxSelector = (_a = this._config.attributes) === null || _a === void 0 ? void 0 : _a.checkbox;
226
+ if (this._delegatedEventId && rowCheckboxSelector) {
227
+ event_handler_1.default.off(this._element, 'input', this._delegatedEventId);
228
+ this._delegatedEventId = null;
229
+ }
230
+ this._headerCheckElement = null;
231
+ this._targetElements = null;
232
+ };
233
+ return KTDataTableCheckboxHandler;
234
+ }());
235
+ exports.KTDataTableCheckboxHandler = KTDataTableCheckboxHandler;
249
236
  //# sourceMappingURL=datatable-checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datatable-checkbox.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-checkbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datatable-checkbox.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-checkbox.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
+ /**
6
+ * Shared column resolution utilities for KTDataTable.
7
+ * Eliminates duplicated column discovery logic across local-provider,
8
+ * table-renderer, and the main datatable class.
9
+ */
10
+ export interface ResolvedColumns {
11
+ /** All <th> elements from the thead */
12
+ allThs: HTMLTableCellElement[];
13
+ /** Only <th> elements that have data-kt-datatable-column attribute */
14
+ typedThs: HTMLTableCellElement[];
15
+ /** The column list to use for rendering: typedThs if all ths have the attr, else allThs */
16
+ columnsByIndex: HTMLTableCellElement[];
17
+ }
18
+ /**
19
+ * Resolve column headers from a thead element.
20
+ * Returns both the raw th list and the typed (data-kt-datatable-column) subset.
21
+ * When some ths lack the attribute, columnsByIndex falls back to all ths by index.
22
+ */
23
+ export declare function resolveColumns(theadElement: HTMLTableSectionElement | null): ResolvedColumns;
24
+ /**
25
+ * Get the logical column count: number of data columns.
26
+ * Prefers originalData keys, falls back to first tbody row td count,
27
+ * then to resolved columns from thead.
28
+ */
29
+ export declare function getLogicalColumnCount(theadElement: HTMLTableSectionElement | null, tbodyElement: HTMLTableSectionElement | null, originalData?: Array<Record<string, unknown>>): number;
30
+ //# sourceMappingURL=datatable-column-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datatable-column-utils.d.ts","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-column-utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC/B,uCAAuC;IACvC,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,2FAA2F;IAC3F,cAAc,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,YAAY,EAAE,uBAAuB,GAAG,IAAI,GAC1C,eAAe,CAYjB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,uBAAuB,GAAG,IAAI,EAC5C,YAAY,EAAE,uBAAuB,GAAG,IAAI,EAC5C,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC3C,MAAM,CAYR"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
4
+ * Copyright 2025 by Keenthemes Inc
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.resolveColumns = resolveColumns;
8
+ exports.getLogicalColumnCount = getLogicalColumnCount;
9
+ /**
10
+ * Resolve column headers from a thead element.
11
+ * Returns both the raw th list and the typed (data-kt-datatable-column) subset.
12
+ * When some ths lack the attribute, columnsByIndex falls back to all ths by index.
13
+ */
14
+ function resolveColumns(theadElement) {
15
+ var allThs = theadElement
16
+ ? Array.from(theadElement.querySelectorAll('th'))
17
+ : [];
18
+ var typedThs = allThs.filter(function (th) {
19
+ return th.hasAttribute('data-kt-datatable-column');
20
+ });
21
+ var columnsByIndex = typedThs.length > 0 ? typedThs : allThs;
22
+ return { allThs: allThs, typedThs: typedThs, columnsByIndex: columnsByIndex };
23
+ }
24
+ /**
25
+ * Get the logical column count: number of data columns.
26
+ * Prefers originalData keys, falls back to first tbody row td count,
27
+ * then to resolved columns from thead.
28
+ */
29
+ function getLogicalColumnCount(theadElement, tbodyElement, originalData) {
30
+ if (originalData && originalData.length > 0) {
31
+ return Object.keys(originalData[0]).length;
32
+ }
33
+ if (tbodyElement) {
34
+ var firstRow = tbodyElement.querySelector('tr');
35
+ if (firstRow) {
36
+ return firstRow.querySelectorAll('td').length;
37
+ }
38
+ }
39
+ var columnsByIndex = resolveColumns(theadElement).columnsByIndex;
40
+ return columnsByIndex.length;
41
+ }
42
+ //# sourceMappingURL=datatable-column-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datatable-column-utils.js","sourceRoot":"","sources":["../../../../src/components/datatable/datatable-column-utils.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAsBH,wCAcC;AAOD,sDAgBC;AA1CD;;;;GAIG;AACH,SAAgB,cAAc,CAC7B,YAA4C;IAE5C,IAAM,MAAM,GAA2B,YAAY;QAClD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,EAAE,CAAC;IAEN,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,UAAC,EAAE;QACjC,OAAA,EAAE,CAAC,YAAY,CAAC,0BAA0B,CAAC;IAA3C,CAA2C,CAC3C,CAAC;IAEF,IAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAE/D,OAAO,EAAE,MAAM,QAAA,EAAE,QAAQ,UAAA,EAAE,cAAc,gBAAA,EAAE,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACpC,YAA4C,EAC5C,YAA4C,EAC5C,YAA6C;IAE7C,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QAClB,IAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAsB,IAAI,CAAC,CAAC;QACvE,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC/C,CAAC;IACF,CAAC;IACO,IAAA,cAAc,GAAK,cAAc,CAAC,YAAY,CAAC,eAAjC,CAAkC;IACxD,OAAO,cAAc,CAAC,MAAM,CAAC;AAC9B,CAAC"}