@keenthemes/ktui 1.0.19 → 1.0.21

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 (111) hide show
  1. package/dist/ktui.js +690 -166
  2. package/dist/ktui.min.js +1 -1
  3. package/dist/ktui.min.js.map +1 -1
  4. package/dist/styles.css +165 -31
  5. package/examples/image-input/file-upload-example.html +189 -0
  6. package/examples/select/remote-data_.html +5 -0
  7. package/examples/select/test-optimizations.html +227 -0
  8. package/examples/select/test-remote-search.html +151 -0
  9. package/examples/sticky/README.md +158 -0
  10. package/examples/sticky/debug-sticky.html +144 -0
  11. package/examples/sticky/test-runner.html +175 -0
  12. package/examples/sticky/test-sticky-logic.js +369 -0
  13. package/examples/sticky/test-sticky-positioning.html +386 -0
  14. package/examples/toast/example.html +52 -0
  15. package/lib/cjs/components/component.js +59 -5
  16. package/lib/cjs/components/component.js.map +1 -1
  17. package/lib/cjs/components/datatable/datatable-sort.js +4 -0
  18. package/lib/cjs/components/datatable/datatable-sort.js.map +1 -1
  19. package/lib/cjs/components/datatable/datatable.js +79 -12
  20. package/lib/cjs/components/datatable/datatable.js.map +1 -1
  21. package/lib/cjs/components/image-input/image-input.js +10 -2
  22. package/lib/cjs/components/image-input/image-input.js.map +1 -1
  23. package/lib/cjs/components/select/combobox.js +50 -20
  24. package/lib/cjs/components/select/combobox.js.map +1 -1
  25. package/lib/cjs/components/select/config.js +1 -0
  26. package/lib/cjs/components/select/config.js.map +1 -1
  27. package/lib/cjs/components/select/dropdown.js +4 -2
  28. package/lib/cjs/components/select/dropdown.js.map +1 -1
  29. package/lib/cjs/components/select/index.js.map +1 -1
  30. package/lib/cjs/components/select/option.js +2 -1
  31. package/lib/cjs/components/select/option.js.map +1 -1
  32. package/lib/cjs/components/select/remote.js +50 -50
  33. package/lib/cjs/components/select/remote.js.map +1 -1
  34. package/lib/cjs/components/select/search.js +15 -5
  35. package/lib/cjs/components/select/search.js.map +1 -1
  36. package/lib/cjs/components/select/select.js +273 -32
  37. package/lib/cjs/components/select/select.js.map +1 -1
  38. package/lib/cjs/components/select/tags.js +3 -1
  39. package/lib/cjs/components/select/tags.js.map +1 -1
  40. package/lib/cjs/components/select/templates.js +6 -0
  41. package/lib/cjs/components/select/templates.js.map +1 -1
  42. package/lib/cjs/components/select/utils.js +23 -10
  43. package/lib/cjs/components/select/utils.js.map +1 -1
  44. package/lib/cjs/components/stepper/stepper.js +59 -12
  45. package/lib/cjs/components/stepper/stepper.js.map +1 -1
  46. package/lib/cjs/components/sticky/sticky.js +52 -14
  47. package/lib/cjs/components/sticky/sticky.js.map +1 -1
  48. package/lib/esm/components/component.js +59 -5
  49. package/lib/esm/components/component.js.map +1 -1
  50. package/lib/esm/components/datatable/datatable-sort.js +4 -0
  51. package/lib/esm/components/datatable/datatable-sort.js.map +1 -1
  52. package/lib/esm/components/datatable/datatable.js +78 -12
  53. package/lib/esm/components/datatable/datatable.js.map +1 -1
  54. package/lib/esm/components/image-input/image-input.js +10 -2
  55. package/lib/esm/components/image-input/image-input.js.map +1 -1
  56. package/lib/esm/components/select/combobox.js +50 -20
  57. package/lib/esm/components/select/combobox.js.map +1 -1
  58. package/lib/esm/components/select/config.js +1 -0
  59. package/lib/esm/components/select/config.js.map +1 -1
  60. package/lib/esm/components/select/dropdown.js +4 -2
  61. package/lib/esm/components/select/dropdown.js.map +1 -1
  62. package/lib/esm/components/select/index.js +1 -1
  63. package/lib/esm/components/select/index.js.map +1 -1
  64. package/lib/esm/components/select/option.js +2 -1
  65. package/lib/esm/components/select/option.js.map +1 -1
  66. package/lib/esm/components/select/remote.js +50 -50
  67. package/lib/esm/components/select/remote.js.map +1 -1
  68. package/lib/esm/components/select/search.js +16 -6
  69. package/lib/esm/components/select/search.js.map +1 -1
  70. package/lib/esm/components/select/select.js +273 -32
  71. package/lib/esm/components/select/select.js.map +1 -1
  72. package/lib/esm/components/select/tags.js +3 -1
  73. package/lib/esm/components/select/tags.js.map +1 -1
  74. package/lib/esm/components/select/templates.js +6 -0
  75. package/lib/esm/components/select/templates.js.map +1 -1
  76. package/lib/esm/components/select/utils.js +23 -10
  77. package/lib/esm/components/select/utils.js.map +1 -1
  78. package/lib/esm/components/stepper/stepper.js +59 -12
  79. package/lib/esm/components/stepper/stepper.js.map +1 -1
  80. package/lib/esm/components/sticky/sticky.js +52 -14
  81. package/lib/esm/components/sticky/sticky.js.map +1 -1
  82. package/package.json +2 -2
  83. package/src/components/component.ts +19 -4
  84. package/src/components/datatable/datatable-sort.ts +6 -0
  85. package/src/components/datatable/datatable.ts +98 -15
  86. package/src/components/datatable/types.ts +5 -1
  87. package/src/components/image-input/image-input.ts +11 -2
  88. package/src/components/image-input/types.ts +1 -0
  89. package/src/components/input/input-group.css +1 -1
  90. package/src/components/input/input.css +1 -1
  91. package/src/components/scrollable/scrollable.css +3 -3
  92. package/src/components/select/combobox.ts +84 -34
  93. package/src/components/select/config.ts +2 -0
  94. package/src/components/select/dropdown.ts +20 -11
  95. package/src/components/select/index.ts +6 -1
  96. package/src/components/select/option.ts +7 -6
  97. package/src/components/select/remote.ts +51 -52
  98. package/src/components/select/search.ts +59 -44
  99. package/src/components/select/select.css +26 -17
  100. package/src/components/select/select.ts +472 -101
  101. package/src/components/select/tags.ts +9 -3
  102. package/src/components/select/templates.ts +10 -0
  103. package/src/components/select/utils.ts +55 -20
  104. package/src/components/select/variants.css +0 -1
  105. package/src/components/stepper/stepper.ts +2 -2
  106. package/src/components/sticky/sticky.ts +47 -16
  107. package/src/components/sticky/types.ts +3 -0
  108. package/src/components/table/table.css +1 -1
  109. package/src/components/textarea/textarea.css +1 -1
  110. package/src/components/toast/toast.css +84 -47
  111. package/src/components/toast/types.ts +3 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 by Keenthemes Inc
4
4
  */
5
5
  import { defaultTemplates } from './templates';
6
- import { filterOptions, FocusManager, EventManager, } from './utils';
6
+ import { filterOptions, FocusManager, EventManager } from './utils';
7
7
  var KTSelectSearch = /** @class */ (function () {
8
8
  function KTSelectSearch(select) {
9
9
  this._noResultsElement = null;
@@ -54,7 +54,9 @@ var KTSelectSearch = /** @class */ (function () {
54
54
  });
55
55
  }
56
56
  // Listen for dropdown close to reset options - ATTACH TO WRAPPER
57
- this._select.getWrapperElement().addEventListener('dropdown.close', function () {
57
+ this._select
58
+ .getWrapperElement()
59
+ .addEventListener('dropdown.close', function () {
58
60
  _this._focusManager.resetFocus();
59
61
  // If clearSearchOnClose is false and there's a value, the search term and filtered state should persist.
60
62
  // KTSelect's closeDropdown method already calls this._searchModule.clearSearch() (which clears highlights)
@@ -76,7 +78,9 @@ var KTSelectSearch = /** @class */ (function () {
76
78
  }
77
79
  });
78
80
  // Consolidated 'dropdown.show' event listener - ATTACH TO WRAPPER
79
- this._select.getWrapperElement().addEventListener('dropdown.show', function () {
81
+ this._select
82
+ .getWrapperElement()
83
+ .addEventListener('dropdown.show', function () {
80
84
  var _a;
81
85
  _this._focusManager.resetFocus(); // Always clear previous focus state
82
86
  if ((_a = _this._searchInput) === null || _a === void 0 ? void 0 : _a.value) {
@@ -99,6 +103,7 @@ var KTSelectSearch = /** @class */ (function () {
99
103
  (_a = _this._searchInput) === null || _a === void 0 ? void 0 : _a.focus(); // Focus search input
100
104
  }, 50); // Delay to ensure dropdown is visible
101
105
  }
106
+ _this._select.updateSelectAllButtonState();
102
107
  });
103
108
  }
104
109
  }
@@ -117,6 +122,11 @@ var KTSelectSearch = /** @class */ (function () {
117
122
  KTSelectSearch.prototype._handleSearchKeyDown = function (event) {
118
123
  var key = event.key;
119
124
  switch (key) {
125
+ case ' ': // Spacebar
126
+ // Do nothing, allow space to be typed into the input
127
+ // Stop propagation to prevent parent handlers from processing this event
128
+ event.stopPropagation();
129
+ break;
120
130
  case 'ArrowDown':
121
131
  event.preventDefault();
122
132
  this._focusManager.focusNext();
@@ -231,9 +241,8 @@ var KTSelectSearch = /** @class */ (function () {
231
241
  }
232
242
  // Restore original content before filtering, so highlighting is applied fresh.
233
243
  this._restoreOptionContentsBeforeFilter();
234
- var visibleCount = filterOptions(options, query, config, dropdownElement, function (count) {
235
- return _this._handleNoResults(count);
236
- });
244
+ var visibleCount = filterOptions(options, query, config, dropdownElement, function (count) { return _this._handleNoResults(count); });
245
+ this._select.updateSelectAllButtonState();
237
246
  };
238
247
  /**
239
248
  * Reset all options to their original state
@@ -261,6 +270,7 @@ var KTSelectSearch = /** @class */ (function () {
261
270
  }
262
271
  });
263
272
  this._clearNoResultsMessage(); // Ensure no results message is cleared when resetting
273
+ this._select.updateSelectAllButtonState();
264
274
  };
265
275
  KTSelectSearch.prototype._handleNoResults = function (visibleOptionsCount) {
266
276
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/components/select/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACN,aAAa,EACb,YAAY,EACZ,YAAY,GACZ,MAAM,SAAS,CAAC;AAEjB;IAYC,wBAAY,MAAgB;QATpB,sBAAiB,GAAuB,IAAI,CAAC;QAC7C,4BAAuB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAS3D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EACjC,yBAAyB,EACzB,MAAM,CAAC,SAAS,EAAE,CAClB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACrC,CAAC;IAED,6BAAI,GAAJ;QAAA,iBA4GC;QA3GA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAElD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK;oBACrB,OAAO,CAAC,GAAG,CACV,wCAAwC,EACxC,IAAI,CAAC,YAAY,CACjB,CAAC;gBAEH,4DAA4D;gBAC5D,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAE7B,6CAA6C;gBAC7C,IAAI,CAAC,aAAa,CAAC,WAAW,CAC7B,IAAI,CAAC,YAAY,EACjB,OAAO,EACP,IAAI,CAAC,iBAAiB,CACtB,CAAC;gBAEF,mEAAmE;gBACnE,IAAI,CAAC,aAAa,CAAC,WAAW,CAC7B,IAAI,CAAC,YAAY,EACjB,SAAS,EACT,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;gBAEF,8EAA8E;gBAC9E,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE;oBACzD,wDAAwD;oBACxD,UAAU,CAAC;wBACV,IAAI,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;4BAC9B,KAAI,CAAC,gBAAgB,EAAE,CAAC;4BACxB,KAAI,CAAC,WAAW,EAAE,CAAC;wBACpB,CAAC;oBACF,CAAC,EAAE,GAAG,CAAC,CAAC;gBACT,CAAC,CAAC,CAAC;gBAEH,iFAAiF;gBACjF,IACC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM;oBAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,WAAW,EACnC,CAAC;oBACF,IAAI,CAAC,OAAO;yBACV,UAAU,EAAE;yBACZ,gBAAgB,CAAC,mBAAmB,EAAE;wBACtC,iDAAiD;wBACjD,KAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;oBACjC,CAAC,CAAC,CAAC;oBAEJ,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;wBAC7D,0DAA0D;wBAC1D,KAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC3B,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAED,iEAAiE;gBACjE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE;oBACnE,KAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;oBAChC,yGAAyG;oBACzG,2GAA2G;oBAC3G,0FAA0F;oBAC1F,wEAAwE;oBACxE,0CAA0C;oBAC1C,KAAI,CAAC,WAAW,EAAE,CAAC,CAAC,yCAAyC;oBAC7D,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,gCAAgC;oBAC9D,KAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,gEAAgE;oBACzF,KAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,kCAAkC;gBAClE,CAAC,CAAC,CAAC;gBAEH,oGAAoG;gBACpG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE;oBACpD,KAAI,CAAC,WAAW,EAAE,CAAC;oBAEnB,6CAA6C;oBAC7C,6EAA6E;oBAC7E,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC;wBACxC,KAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC9B,CAAC;gBACF,CAAC,CAAC,CAAC;gBAEH,kEAAkE;gBAClE,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,gBAAgB,CAAC,eAAe,EAAE;;oBAClE,KAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,oCAAoC;oBAErE,IAAI,MAAA,KAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC;wBAC9B,sCAAsC;wBACtC,6EAA6E;wBAC7E,kEAAkE;wBAClE,KAAI,CAAC,cAAc,CAAC,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAC9C,CAAC;yBAAM,CAAC;wBACP,4BAA4B;wBAC5B,kEAAkE;wBAClE,KAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,oEAAoE;wBAC7F,qCAAqC;wBACrC,KAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC/B,CAAC;oBAED,0FAA0F;oBAC1F,IAAI,KAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,CAAC;wBAC9C,UAAU,CAAC;;4BACV,MAAA,KAAI,CAAC,YAAY,0CAAE,KAAK,EAAE,CAAC,CAAC,qBAAqB;wBAClD,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sCAAsC;oBAC/C,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED;;OAEG;IACK,8CAAqB,GAA7B;QACC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1D,CAAC;IACF,CAAC;IAED;;OAEG;IACK,6CAAoB,GAA5B,UAA6B,KAAoB;QAChD,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QAEtB,QAAQ,GAAG,EAAE,CAAC;YACb,KAAK,WAAW;gBACf,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC/B,MAAM;YACP,KAAK,SAAS;gBACb,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;gBACnC,MAAM;YACP,KAAK,OAAO;gBACX,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,mEAAmE;gBACnE,mFAAmF;gBACnF,IAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;gBAE7D,IAAI,oBAAoB,EAAE,CAAC;oBAC1B,IAAM,WAAW,GAAG,oBAAoB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;oBACpE,IAAI,WAAW,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;wBAC1C,0GAA0G;oBAC3G,CAAC;gBACF,CAAC;gBACD,MAAM;YACP,KAAK,QAAQ;gBACZ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;gBAChC,MAAM;YACP;gBACC,MAAM;QACR,CAAC;IACF,CAAC;IAED;;;OAGG;IACK,qDAA4B,GAApC;QAAA,iBAaC;QAZA,qCAAqC;QACrC,UAAU,CAAC;YACV,KAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,0BAA0B;YAChE,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;YAC7D,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM;gBACtB,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACX,mDAAmD;oBACnD,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC3D,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACK,2DAAkC,GAA1C;QAAA,iBAYC;QAXA,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAkB,CAAC;QAC9E,OAAO,CAAC,OAAO,CAAC,UAAA,MAAM;YACrB,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,KAAK,IAAI,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAM,eAAe,GAAG,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBACjE,sFAAsF;gBACtF,IAAI,MAAM,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;oBAC1C,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC;gBACpC,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,2CAAkB,GAA1B,UAA2B,KAAY;QACtC,IAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;QACvD,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAExC,2CAA2C;QAC3C,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAEhC,+EAA+E;QAC/E,IAAI,CAAC,kCAAkC,EAAE,CAAC;QAE1C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,4CAA4C;YAC7E,OAAO;QACR,CAAC;QAED,oDAAoD;QACpD,oFAAoF;QACpF,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC3C,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,iCAAiC;YACnE,CAAC;YACD,OAAO;QACR,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,mDAAmD;QACrF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,gDAAgD;QAClF,CAAC;IACF,CAAC;IAEO,uCAAc,GAAtB,UAAuB,KAAa;QAApC,iBAkBC;QAjBA,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CACf,CAAC;QACnB,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAE1D,mDAAmD;QACnD,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACrC,CAAC;QAED,+EAA+E;QAC/E,IAAI,CAAC,kCAAkC,EAAE,CAAC;QAE1C,IAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,UAAC,KAAK;YACjF,OAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAA5B,CAA4B,CAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,yCAAgB,GAAxB;QAAA,iBA2BC;QA1BA,mBAAmB;QACnB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACzB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CACf,CAAC;QAEnB,2DAA2D;QAC3D,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM;YACtB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;gBAAE,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,iBAAiB;YAEjF,oDAAoD;YACpD,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,KAAK,IAAI,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAM,eAAe,GAAG,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBACjE,oDAAoD;gBACpD,IAAI,MAAM,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;oBAC1C,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC;gBACpC,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,sDAAsD;IACtF,CAAC;IAEO,yCAAgB,GAAxB,UAAyB,mBAA2B;;QACnD,IAAI,mBAAmB,KAAK,CAAC,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,0CAAE,IAAI,EAAE,MAAK,EAAE,EAAE,CAAC;YAC1E,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/B,CAAC;IACF,CAAC;IAEO,8CAAqB,GAA7B;QACC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE9D,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC1D,IAAM,gBAAgB,GAAG,eAAe,CAAC,aAAa,CACrD,0BAA0B,CAC1B,CAAC;QACF,IAAI,gBAAgB,EAAE,CAAC;YACtB,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACP,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACrD,CAAC;IACF,CAAC;IAEO,+CAAsB,GAA9B;QACC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YACjE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACtE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACF,CAAC;IAED;;;OAGG;IACI,oCAAW,GAAlB;QAAA,iBAqBC;QApBA,yDAAyD;QACzD,IAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CACf,CAAC;QAEnB,4BAA4B;QAC5B,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,KAAK,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,4BAA4B,EAAE,CAAC;QACrC,CAAC;QAED,cAAc,CAAC,OAAO,CAAC,UAAC,MAAM;YAC7B,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,KAAK,IAAI,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAM,eAAe,GAAG,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;gBACjE,4BAA4B;gBAC5B,IAAI,MAAM,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;oBAC1C,MAAM,CAAC,SAAS,GAAG,eAAe,CAAC;gBACpC,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,2CAAkB,GAAzB;QAAA,iBAaC;QAZA,+BAA+B;QAC/B,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAChC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CACf,CAAC;QAEnB,cAAc,CAAC,OAAO,CAAC,UAAC,MAAM;YAC7B,IAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,KAAK,EAAE,CAAC;gBACX,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3D,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,2CAAkB,GAAzB;QACC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAChC,4FAA4F;QAC5F,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,gCAAO,GAAd;QACC,6BAA6B;QAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAE7B,uBAAuB;QACvB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAErC,2BAA2B;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;IACpB,CAAC;IACF,qBAAC;AAAD,CAAC,AAnaD,IAmaC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/components/select/search.ts"],"names":[],"mappings":"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"}
@@ -58,12 +58,16 @@ var KTSelect = /** @class */ (function (_super) {
58
58
  // Core properties
59
59
  _this._name = 'select';
60
60
  _this._dataOptionPrefix = 'kt-'; // Use 'kt-' prefix to support data-kt-select-option attributes
61
+ // Cached DOM references for performance
62
+ _this._optionsContainer = null;
61
63
  // State
62
64
  _this._dropdownIsOpen = false;
63
65
  _this._comboboxModule = null;
64
66
  _this._tagsModule = null;
65
67
  _this._dropdownModule = null;
66
68
  _this._loadMoreIndicator = null;
69
+ _this._selectAllButton = null;
70
+ _this._selectAllButtonToggle = null;
67
71
  _this._typeToSearchBuffer = new TypeToSearchBuffer();
68
72
  _this._mutationObserver = null;
69
73
  // Search debounce timeout
@@ -109,6 +113,10 @@ var KTSelect = /** @class */ (function (_super) {
109
113
  return;
110
114
  if (this._config.debug)
111
115
  console.log('Initializing remote data with URL:', this._config.dataUrl);
116
+ // For remote data, we need to create the HTML structure first
117
+ // so that the component can be properly initialized
118
+ this._createHtmlStructure();
119
+ this._setupElementReferences();
112
120
  // Show loading state
113
121
  this._renderLoadingState();
114
122
  // Fetch remote data
@@ -127,7 +135,10 @@ var KTSelect = /** @class */ (function (_super) {
127
135
  _this._generateOptionsHtml(_this._element);
128
136
  if (_this._config.debug)
129
137
  console.log('Generating options HTML from remote data');
130
- _this._setupComponent();
138
+ // Update the dropdown to show the new options
139
+ _this._updateDropdownWithNewOptions();
140
+ // Complete the component setup with the fetched data
141
+ _this._completeRemoteSetup();
131
142
  // Add pagination "Load More" button if needed
132
143
  if (_this._config.pagination && _this._remoteModule.hasMorePages()) {
133
144
  _this._addLoadMoreButton();
@@ -151,6 +162,108 @@ var KTSelect = /** @class */ (function (_super) {
151
162
  var options = Array.from(this._element.querySelectorAll('option:not([value=""])'));
152
163
  options.forEach(function (option) { return option.remove(); });
153
164
  };
165
+ /**
166
+ * Unified method to render options in dropdown - eliminates code duplication
167
+ */
168
+ KTSelect.prototype._renderOptionsInDropdown = function (optionsData, clearContainer) {
169
+ var _this = this;
170
+ if (clearContainer === void 0) { clearContainer = true; }
171
+ if (!this._dropdownContentElement)
172
+ return;
173
+ // Use cached options container for better performance
174
+ var optionsContainer = this._optionsContainer ||
175
+ this._dropdownContentElement.querySelector('[data-kt-select-options]');
176
+ if (!optionsContainer)
177
+ return;
178
+ // Clear container if requested
179
+ if (clearContainer) {
180
+ optionsContainer.innerHTML = '';
181
+ }
182
+ // Use DocumentFragment for efficient DOM manipulation
183
+ var fragment = document.createDocumentFragment();
184
+ // Process options data
185
+ optionsData.forEach(function (optionData) {
186
+ var optionElement;
187
+ // Handle different input types
188
+ if (optionData instanceof HTMLOptionElement) {
189
+ // Skip empty placeholder options
190
+ if (optionData.value === '' && optionData.textContent.trim() === '') {
191
+ return;
192
+ }
193
+ optionElement = optionData;
194
+ }
195
+ else {
196
+ // Handle KTSelectOptionData objects - cast to ensure type safety
197
+ var dataItem = optionData;
198
+ optionElement = document.createElement('option');
199
+ optionElement.value = dataItem.id || '';
200
+ optionElement.textContent = dataItem.title || '';
201
+ if (dataItem.selected) {
202
+ optionElement.setAttribute('selected', 'selected');
203
+ }
204
+ if (dataItem.disabled) {
205
+ optionElement.setAttribute('disabled', 'disabled');
206
+ }
207
+ }
208
+ // Create KTSelectOption instance for proper rendering
209
+ var selectOption = new KTSelectOption(optionElement, _this._config);
210
+ var renderedOption = selectOption.render();
211
+ // Add to fragment for batch DOM operation
212
+ fragment.appendChild(renderedOption);
213
+ });
214
+ // Batch append all options at once
215
+ optionsContainer.appendChild(fragment);
216
+ // Update options NodeList
217
+ this._options = this._wrapperElement.querySelectorAll('[data-kt-select-option]');
218
+ if (this._config.debug) {
219
+ console.log("Rendered ".concat(optionsData.length, " options in dropdown"));
220
+ }
221
+ };
222
+ /**
223
+ * Update dropdown with new options from the original select element
224
+ */
225
+ KTSelect.prototype._updateDropdownWithNewOptions = function () {
226
+ // Get all options from the original select element
227
+ var options = Array.from(this._element.querySelectorAll('option'));
228
+ // Use unified renderer
229
+ this._renderOptionsInDropdown(options, true);
230
+ };
231
+ /**
232
+ * Complete the setup for remote data after HTML structure is created
233
+ */
234
+ KTSelect.prototype._completeRemoteSetup = function () {
235
+ // Initialize options
236
+ this._preSelectOptions(this._element);
237
+ // Apply disabled state if needed
238
+ this._applyInitialDisabledState();
239
+ // Initialize search if enabled
240
+ if (this._config.enableSearch) {
241
+ this._initializeSearchModule();
242
+ }
243
+ // Initialize combobox if enabled
244
+ if (this._config.combobox) {
245
+ this._comboboxModule = new KTSelectCombobox(this);
246
+ }
247
+ // Initialize tags if enabled
248
+ if (this._config.tags) {
249
+ this._tagsModule = new KTSelectTags(this);
250
+ }
251
+ // Initialize focus manager after dropdown element is created
252
+ this._focusManager = new FocusManager(this._dropdownContentElement, '[data-kt-select-option]', this._config);
253
+ // Initialize dropdown module after all elements are created
254
+ this._dropdownModule = new KTSelectDropdown(this._wrapperElement, this._displayElement, this._dropdownContentElement, this._config, this);
255
+ // Update display and set ARIA attributes
256
+ this._updateDisplayAndAriaAttributes();
257
+ this.updateSelectedOptionDisplay();
258
+ this._setAriaAttributes();
259
+ // Update select all button state
260
+ this.updateSelectAllButtonState();
261
+ // Focus the first selected option or first option if nothing selected
262
+ this._focusSelectedOption();
263
+ // Attach event listeners after all modules are initialized
264
+ this._attachEventListeners();
265
+ this._observeNativeSelect();
266
+ };
154
267
  /**
155
268
  * Helper to show a dropdown message (error, loading, noResults)
156
269
  */
@@ -344,6 +457,10 @@ var KTSelect = /** @class */ (function (_super) {
344
457
  this._updateDisplayAndAriaAttributes();
345
458
  this.updateSelectedOptionDisplay();
346
459
  this._setAriaAttributes();
460
+ // Update select all button state
461
+ this.updateSelectAllButtonState();
462
+ // Focus the first selected option or first option if nothing selected
463
+ this._focusSelectedOption();
347
464
  // Attach event listeners after all modules are initialized
348
465
  this._attachEventListeners();
349
466
  this._observeNativeSelect();
@@ -363,13 +480,19 @@ var KTSelect = /** @class */ (function (_super) {
363
480
  // Move classes from original select to wrapper and display elements
364
481
  if (this._element.classList.length > 0) {
365
482
  var originalClasses = Array.from(this._element.classList);
366
- var displaySpecificClasses_1 = ['kt-select', 'kt-select-sm', 'kt-select-lg'];
483
+ var displaySpecificClasses_1 = [
484
+ 'kt-select',
485
+ 'kt-select-sm',
486
+ 'kt-select-lg',
487
+ ];
367
488
  var classesForWrapper = originalClasses.filter(function (className) { return !displaySpecificClasses_1.includes(className); });
368
489
  if (classesForWrapper.length > 0) {
369
490
  (_a = wrapperElement.classList).add.apply(_a, classesForWrapper);
370
491
  }
371
492
  // Move display-specific classes to display element
372
- var classesForDisplay = originalClasses.filter(function (className) { return displaySpecificClasses_1.includes(className); });
493
+ var classesForDisplay = originalClasses.filter(function (className) {
494
+ return displaySpecificClasses_1.includes(className);
495
+ });
373
496
  if (classesForDisplay.length > 0) {
374
497
  (_b = displayElement.classList).add.apply(_b, classesForDisplay);
375
498
  }
@@ -382,9 +505,14 @@ var KTSelect = /** @class */ (function (_super) {
382
505
  var searchElement = defaultTemplates.search(this._config);
383
506
  dropdownElement.appendChild(searchElement);
384
507
  }
508
+ // Add select all button if needed
509
+ if (this._config.multiple && this._config.enableSelectAll) {
510
+ var selectAllElement = defaultTemplates.selectAll(this._config);
511
+ dropdownElement.appendChild(selectAllElement);
512
+ }
385
513
  // Create options container using template
386
514
  var optionsContainer = defaultTemplates.options(this._config);
387
- // Add each option directly to the container
515
+ // Add each option directly to the container (only if options exist)
388
516
  options.forEach(function (optionElement) {
389
517
  // Skip empty placeholder options (only if BOTH value AND text are empty)
390
518
  // This allows options with empty value but visible text to display in dropdown
@@ -411,13 +539,18 @@ var KTSelect = /** @class */ (function (_super) {
411
539
  */
412
540
  KTSelect.prototype._setupElementReferences = function () {
413
541
  this._wrapperElement = this._element.nextElementSibling;
542
+ // Safety check - ensure wrapper element exists
543
+ if (!this._wrapperElement) {
544
+ console.error('KTSelect: Wrapper element not found. HTML structure may not be created properly.');
545
+ return;
546
+ }
414
547
  // Get display element
415
548
  this._displayElement = this._wrapperElement.querySelector("[data-kt-select-display]");
416
549
  // Get dropdown content element - this is critical for dropdown functionality
417
550
  this._dropdownContentElement = this._wrapperElement.querySelector("[data-kt-select-dropdown]");
418
551
  if (!this._dropdownContentElement) {
419
- console.log(this._element);
420
- console.error('Dropdown content element not found', this._wrapperElement);
552
+ console.error('KTSelect: Dropdown content element not found', this._wrapperElement);
553
+ return;
421
554
  }
422
555
  // Get search input element - this is used for the search functionality
423
556
  this._searchInputElement = this._dropdownContentElement.querySelector("[data-kt-select-search]");
@@ -425,6 +558,9 @@ var KTSelect = /** @class */ (function (_super) {
425
558
  if (!this._searchInputElement) {
426
559
  this._searchInputElement = this._displayElement;
427
560
  }
561
+ this._selectAllButton = this._wrapperElement.querySelector('[data-kt-select-select-all]');
562
+ // Cache the options container for performance
563
+ this._optionsContainer = this._dropdownContentElement.querySelector('[data-kt-select-options]');
428
564
  this._options = this._wrapperElement.querySelectorAll("[data-kt-select-option]");
429
565
  };
430
566
  /**
@@ -435,6 +571,13 @@ var KTSelect = /** @class */ (function (_super) {
435
571
  document.addEventListener('click', this._handleDocumentClick.bind(this));
436
572
  // Dropdown option click events
437
573
  this._eventManager.addListener(this._dropdownContentElement, 'click', this._handleDropdownOptionClick.bind(this));
574
+ if (this._selectAllButton) {
575
+ this._selectAllButtonToggle =
576
+ this._selectAllButton.querySelector('button');
577
+ if (this._selectAllButtonToggle) {
578
+ this._eventManager.addListener(this._selectAllButtonToggle, 'click', this._handleSelectAllClick.bind(this));
579
+ }
580
+ }
438
581
  // Attach centralized keyboard handler to the wrapper element.
439
582
  // Events from focusable children like _displayElement or _searchInputElement (if present) will bubble up.
440
583
  if (this._wrapperElement) {
@@ -600,6 +743,8 @@ var KTSelect = /** @class */ (function (_super) {
600
743
  this._fireEvent('show');
601
744
  // Update ARIA states
602
745
  this._setAriaAttributes();
746
+ // Update select all button state
747
+ this.updateSelectAllButtonState();
603
748
  // Focus the first selected option or first option if nothing selected
604
749
  this._focusSelectedOption();
605
750
  };
@@ -827,6 +972,8 @@ var KTSelect = /** @class */ (function (_super) {
827
972
  this._state.setSelectedOptions([]);
828
973
  this.updateSelectedOptionDisplay();
829
974
  this._updateSelectedOptionClass();
975
+ // Update select all button state
976
+ this.updateSelectAllButtonState();
830
977
  // Dispatch change event
831
978
  this._dispatchEvent('change');
832
979
  this._fireEvent('change');
@@ -1091,6 +1238,7 @@ var KTSelect = /** @class */ (function (_super) {
1091
1238
  if (this._config.debug)
1092
1239
  console.log('Multiple select mode - keeping dropdown open for additional selections');
1093
1240
  // Don't close dropdown in multiple select mode to allow multiple selections
1241
+ this.updateSelectAllButtonState();
1094
1242
  }
1095
1243
  // Dispatch custom change event with additional data
1096
1244
  this._dispatchEvent('change', {
@@ -1170,6 +1318,8 @@ var KTSelect = /** @class */ (function (_super) {
1170
1318
  var query = event.target.value;
1171
1319
  // Check if the query is long enough
1172
1320
  if (query.length < (this._config.searchMinLength || 0)) {
1321
+ // Restore original options if query is too short
1322
+ this._restoreOriginalOptions();
1173
1323
  return;
1174
1324
  }
1175
1325
  // Debounce the search
@@ -1193,6 +1343,7 @@ var KTSelect = /** @class */ (function (_super) {
1193
1343
  if (_this._searchModule) {
1194
1344
  _this._searchModule.refreshAfterSearch();
1195
1345
  }
1346
+ _this.updateSelectAllButtonState();
1196
1347
  })
1197
1348
  .catch(function (error) {
1198
1349
  console.error('Error updating search results:', error);
@@ -1223,7 +1374,36 @@ var KTSelect = /** @class */ (function (_super) {
1223
1374
  * @param message Error message
1224
1375
  */
1225
1376
  KTSelect.prototype._renderSearchErrorState = function (message) {
1377
+ var _this = this;
1226
1378
  this._showDropdownMessage('error', message);
1379
+ // Restore original options after error with a delay
1380
+ setTimeout(function () {
1381
+ _this._restoreOriginalOptions();
1382
+ }, 2000);
1383
+ };
1384
+ /**
1385
+ * Restore original options when search is cleared
1386
+ */
1387
+ KTSelect.prototype._restoreOriginalOptions = function () {
1388
+ if (!this._dropdownContentElement || !this._originalOptionsHtml)
1389
+ return;
1390
+ // Use cached options container for better performance
1391
+ var optionsContainer = this._optionsContainer ||
1392
+ this._dropdownContentElement.querySelector('[data-kt-select-options]');
1393
+ if (!optionsContainer)
1394
+ return;
1395
+ // Restore original options
1396
+ optionsContainer.innerHTML = this._originalOptionsHtml;
1397
+ // Update options NodeList
1398
+ this._options = this._wrapperElement.querySelectorAll('[data-kt-select-option]');
1399
+ // Refresh search module
1400
+ if (this._searchModule) {
1401
+ this._searchModule.refreshAfterSearch();
1402
+ }
1403
+ this.updateSelectAllButtonState();
1404
+ if (this._config.debug) {
1405
+ console.log('Restored original options after search clear');
1406
+ }
1227
1407
  };
1228
1408
  /**
1229
1409
  * Update search results in the dropdown
@@ -1232,31 +1412,24 @@ var KTSelect = /** @class */ (function (_super) {
1232
1412
  KTSelect.prototype._updateSearchResults = function (items) {
1233
1413
  if (!this._dropdownContentElement)
1234
1414
  return;
1235
- var optionsContainer = this._dropdownContentElement.querySelector('[data-kt-select-options]');
1415
+ // Use cached options container for better performance
1416
+ var optionsContainer = this._optionsContainer ||
1417
+ this._dropdownContentElement.querySelector('[data-kt-select-options]');
1236
1418
  if (!optionsContainer)
1237
1419
  return;
1238
- // Clear current options
1239
- optionsContainer.innerHTML = '';
1420
+ // Handle empty results
1240
1421
  if (items.length === 0) {
1241
- // Show no results message using template for consistency and customization
1422
+ optionsContainer.innerHTML = '';
1242
1423
  var noResultsElement = defaultTemplates.searchEmpty(this._config);
1243
1424
  optionsContainer.appendChild(noResultsElement);
1244
1425
  return;
1245
1426
  }
1246
- // Process each item individually to create options
1247
- items.forEach(function (item) {
1248
- // Create option for the original select
1249
- var selectOption = document.createElement('option');
1250
- selectOption.value = item.id;
1251
- // Add to dropdown container
1252
- optionsContainer.appendChild(selectOption);
1253
- });
1427
+ // Use unified renderer for search results
1428
+ this._renderOptionsInDropdown(items, true);
1254
1429
  // Add pagination "Load More" button if needed
1255
1430
  if (this._config.pagination && this._remoteModule.hasMorePages()) {
1256
1431
  this._addLoadMoreButton();
1257
1432
  }
1258
- // Update options NodeList
1259
- this._options = this._wrapperElement.querySelectorAll("[data-kt-select-option]");
1260
1433
  };
1261
1434
  /**
1262
1435
  * Check if dropdown is open
@@ -1268,10 +1441,12 @@ var KTSelect = /** @class */ (function (_super) {
1268
1441
  var _this = this;
1269
1442
  var selectedValues = this.getSelectedOptions();
1270
1443
  var displaySeparator = this._config.displaySeparator || ', ';
1271
- var texts = selectedValues.map(function (value) {
1444
+ var texts = selectedValues
1445
+ .map(function (value) {
1272
1446
  var option = Array.from(_this._options).find(function (opt) { return opt.getAttribute('data-value') === value; });
1273
1447
  return (option === null || option === void 0 ? void 0 : option.getAttribute('data-text')) || '';
1274
- }).filter(Boolean);
1448
+ })
1449
+ .filter(Boolean);
1275
1450
  return texts.join(displaySeparator);
1276
1451
  };
1277
1452
  /**
@@ -1279,7 +1454,9 @@ var KTSelect = /** @class */ (function (_super) {
1279
1454
  */
1280
1455
  KTSelect.prototype._isOptionDisabled = function (value) {
1281
1456
  var dropdownOption = Array.from(this._options).find(function (opt) { return opt.getAttribute('data-value') === value; });
1282
- var isDropdownDisabled = dropdownOption && (dropdownOption.classList.contains('disabled') || dropdownOption.getAttribute('aria-disabled') === 'true');
1457
+ var isDropdownDisabled = dropdownOption &&
1458
+ (dropdownOption.classList.contains('disabled') ||
1459
+ dropdownOption.getAttribute('aria-disabled') === 'true');
1283
1460
  var selectOption = Array.from(this._element.querySelectorAll('option')).find(function (opt) { return opt.value === value; });
1284
1461
  var isNativeDisabled = selectOption && selectOption.disabled;
1285
1462
  return Boolean(isDropdownDisabled || isNativeDisabled);
@@ -1301,9 +1478,14 @@ var KTSelect = /** @class */ (function (_super) {
1301
1478
  if (event.target === this._searchInputElement) {
1302
1479
  // Allow navigation keys like ArrowDown, ArrowUp, Escape, Enter (for search/selection) to be handled by the logic below.
1303
1480
  // For other keys (characters, space, backspace, delete), let the input field process them.
1304
- if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp' &&
1305
- event.key !== 'Escape' && event.key !== 'Enter' && event.key !== 'Tab' &&
1306
- event.key !== 'Home' && event.key !== 'End') {
1481
+ if (event.key !== 'ArrowDown' &&
1482
+ event.key !== 'ArrowUp' &&
1483
+ event.key !== 'Escape' &&
1484
+ event.key !== 'Enter' &&
1485
+ event.key !== 'Tab' &&
1486
+ event.key !== 'Home' &&
1487
+ event.key !== 'End' &&
1488
+ event.key !== ' ') {
1307
1489
  // If it's a character key and we are NOT type-to-searching (because search has focus)
1308
1490
  // then let the input field handle it for its own value.
1309
1491
  // The search module's 'input' event will handle filtering based on the input's value.
@@ -1317,7 +1499,10 @@ var KTSelect = /** @class */ (function (_super) {
1317
1499
  if (event.altKey || event.ctrlKey || event.metaKey)
1318
1500
  return;
1319
1501
  // Type-to-search: only for single char keys, when search input does not have focus
1320
- if (event.key.length === 1 && !event.repeat && !event.key.match(/\s/) && document.activeElement !== this._searchInputElement) {
1502
+ if (event.key.length === 1 &&
1503
+ !event.repeat &&
1504
+ !event.key.match(/\s/) &&
1505
+ document.activeElement !== this._searchInputElement) {
1321
1506
  buffer.push(event.key);
1322
1507
  var str = buffer.getBuffer();
1323
1508
  if (isOpen) {
@@ -1366,7 +1551,9 @@ var KTSelect = /** @class */ (function (_super) {
1366
1551
  if (focusedOptionEl) {
1367
1552
  var val = focusedOptionEl.dataset.value;
1368
1553
  // If single select, and the item is already selected, just close.
1369
- if (val !== undefined && !this._config.multiple && this._state.isSelected(val)) {
1554
+ if (val !== undefined &&
1555
+ !this._config.multiple &&
1556
+ this._state.isSelected(val)) {
1370
1557
  if (this._config.debug)
1371
1558
  console.log('Enter on already selected item in single-select mode. Closing.');
1372
1559
  this.closeDropdown();
@@ -1407,7 +1594,8 @@ var KTSelect = /** @class */ (function (_super) {
1407
1594
  var _this = this;
1408
1595
  var optionsConfig = this._config.optionsConfig || {};
1409
1596
  var displaySeparator = this._config.displaySeparator || ', ';
1410
- var contentArray = Array.from(new Set(selectedValues.map(function (value) {
1597
+ var contentArray = Array.from(new Set(selectedValues
1598
+ .map(function (value) {
1411
1599
  var option = Array.from(_this._options).find(function (opt) { return opt.getAttribute('data-value') === value; });
1412
1600
  if (!option)
1413
1601
  return '';
@@ -1416,7 +1604,7 @@ var KTSelect = /** @class */ (function (_super) {
1416
1604
  // Replace all {{varname}} in option.innerHTML with values from _config
1417
1605
  Object.entries(optionsConfig[value] || {}).forEach(function (_a) {
1418
1606
  var key = _a[0], val = _a[1];
1419
- if (["string", "number", "boolean"].includes(typeof val)) {
1607
+ if (['string', 'number', 'boolean'].includes(typeof val)) {
1420
1608
  displayTemplate = displayTemplate.replace(new RegExp("{{".concat(key, "}}"), 'g'), String(val));
1421
1609
  }
1422
1610
  });
@@ -1425,7 +1613,8 @@ var KTSelect = /** @class */ (function (_super) {
1425
1613
  selectedTexts: _this.getSelectedOptionsText() || '',
1426
1614
  text: text,
1427
1615
  });
1428
- }).filter(Boolean)));
1616
+ })
1617
+ .filter(Boolean)));
1429
1618
  return contentArray.join(displaySeparator);
1430
1619
  };
1431
1620
  KTSelect.prototype.getDisplayElement = function () {
@@ -1444,7 +1633,8 @@ var KTSelect = /** @class */ (function (_super) {
1444
1633
  // Option(s) added or removed
1445
1634
  needsRebuild = true;
1446
1635
  }
1447
- else if (mutation.type === 'attributes' && mutation.target instanceof HTMLOptionElement) {
1636
+ else if (mutation.type === 'attributes' &&
1637
+ mutation.target instanceof HTMLOptionElement) {
1448
1638
  if (mutation.attributeName === 'selected') {
1449
1639
  needsSelectionSync = true;
1450
1640
  }
@@ -1497,6 +1687,57 @@ var KTSelect = /** @class */ (function (_super) {
1497
1687
  this._state.setSelectedOptions(this._config.multiple ? selected : selected[0] || '');
1498
1688
  this.updateSelectedOptionDisplay();
1499
1689
  this._updateSelectedOptionClass();
1690
+ this.updateSelectAllButtonState();
1691
+ };
1692
+ KTSelect.prototype._handleSelectAllClick = function (event) {
1693
+ event.preventDefault();
1694
+ event.stopPropagation();
1695
+ var visibleOptions = this._focusManager
1696
+ .getVisibleOptions()
1697
+ .filter(function (opt) { return opt.getAttribute('aria-disabled') !== 'true'; });
1698
+ if (visibleOptions.length === 0)
1699
+ return;
1700
+ var visibleValues = visibleOptions.map(function (opt) { return opt.dataset.value; });
1701
+ var selectedValues = new Set(this.getSelectedOptions());
1702
+ var isAllSelected = visibleOptions.every(function (opt) {
1703
+ return selectedValues.has(opt.dataset.value);
1704
+ });
1705
+ if (isAllSelected) {
1706
+ // Deselect all visible
1707
+ visibleValues.forEach(function (value) { return selectedValues.delete(value); });
1708
+ }
1709
+ else {
1710
+ // Select all visible
1711
+ visibleValues.forEach(function (value) { return selectedValues.add(value); });
1712
+ }
1713
+ this._state.setSelectedOptions(Array.from(selectedValues));
1714
+ this.updateSelectedOptionDisplay();
1715
+ this._updateSelectedOptionClass();
1716
+ this.updateSelectAllButtonState();
1717
+ this._dispatchEvent('change');
1718
+ this._fireEvent('change');
1719
+ };
1720
+ KTSelect.prototype.updateSelectAllButtonState = function () {
1721
+ if (!this._config.multiple ||
1722
+ !this._config.enableSelectAll ||
1723
+ !this._selectAllButtonToggle) {
1724
+ return;
1725
+ }
1726
+ var visibleOptions = this._focusManager
1727
+ .getVisibleOptions()
1728
+ .filter(function (opt) { return opt.getAttribute('aria-disabled') !== 'true'; });
1729
+ if (visibleOptions.length === 0) {
1730
+ this._selectAllButton.style.display = 'none';
1731
+ return;
1732
+ }
1733
+ this._selectAllButton.style.display = '';
1734
+ var selectedValues = new Set(this.getSelectedOptions());
1735
+ var isAllSelected = visibleOptions.every(function (opt) {
1736
+ return selectedValues.has(opt.dataset.value);
1737
+ });
1738
+ this._selectAllButtonToggle.textContent = isAllSelected
1739
+ ? this._config.clearAllText
1740
+ : this._config.selectAllText;
1500
1741
  };
1501
1742
  /**
1502
1743
  * ========================================================================