@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.
- package/dist/ktui.js +690 -166
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +165 -31
- package/examples/image-input/file-upload-example.html +189 -0
- package/examples/select/remote-data_.html +5 -0
- package/examples/select/test-optimizations.html +227 -0
- package/examples/select/test-remote-search.html +151 -0
- package/examples/sticky/README.md +158 -0
- package/examples/sticky/debug-sticky.html +144 -0
- package/examples/sticky/test-runner.html +175 -0
- package/examples/sticky/test-sticky-logic.js +369 -0
- package/examples/sticky/test-sticky-positioning.html +386 -0
- package/examples/toast/example.html +52 -0
- package/lib/cjs/components/component.js +59 -5
- package/lib/cjs/components/component.js.map +1 -1
- package/lib/cjs/components/datatable/datatable-sort.js +4 -0
- package/lib/cjs/components/datatable/datatable-sort.js.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +79 -12
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/image-input/image-input.js +10 -2
- package/lib/cjs/components/image-input/image-input.js.map +1 -1
- package/lib/cjs/components/select/combobox.js +50 -20
- package/lib/cjs/components/select/combobox.js.map +1 -1
- package/lib/cjs/components/select/config.js +1 -0
- package/lib/cjs/components/select/config.js.map +1 -1
- package/lib/cjs/components/select/dropdown.js +4 -2
- package/lib/cjs/components/select/dropdown.js.map +1 -1
- package/lib/cjs/components/select/index.js.map +1 -1
- package/lib/cjs/components/select/option.js +2 -1
- package/lib/cjs/components/select/option.js.map +1 -1
- package/lib/cjs/components/select/remote.js +50 -50
- package/lib/cjs/components/select/remote.js.map +1 -1
- package/lib/cjs/components/select/search.js +15 -5
- package/lib/cjs/components/select/search.js.map +1 -1
- package/lib/cjs/components/select/select.js +273 -32
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/select/tags.js +3 -1
- package/lib/cjs/components/select/tags.js.map +1 -1
- package/lib/cjs/components/select/templates.js +6 -0
- package/lib/cjs/components/select/templates.js.map +1 -1
- package/lib/cjs/components/select/utils.js +23 -10
- package/lib/cjs/components/select/utils.js.map +1 -1
- package/lib/cjs/components/stepper/stepper.js +59 -12
- package/lib/cjs/components/stepper/stepper.js.map +1 -1
- package/lib/cjs/components/sticky/sticky.js +52 -14
- package/lib/cjs/components/sticky/sticky.js.map +1 -1
- package/lib/esm/components/component.js +59 -5
- package/lib/esm/components/component.js.map +1 -1
- package/lib/esm/components/datatable/datatable-sort.js +4 -0
- package/lib/esm/components/datatable/datatable-sort.js.map +1 -1
- package/lib/esm/components/datatable/datatable.js +78 -12
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/image-input/image-input.js +10 -2
- package/lib/esm/components/image-input/image-input.js.map +1 -1
- package/lib/esm/components/select/combobox.js +50 -20
- package/lib/esm/components/select/combobox.js.map +1 -1
- package/lib/esm/components/select/config.js +1 -0
- package/lib/esm/components/select/config.js.map +1 -1
- package/lib/esm/components/select/dropdown.js +4 -2
- package/lib/esm/components/select/dropdown.js.map +1 -1
- package/lib/esm/components/select/index.js +1 -1
- package/lib/esm/components/select/index.js.map +1 -1
- package/lib/esm/components/select/option.js +2 -1
- package/lib/esm/components/select/option.js.map +1 -1
- package/lib/esm/components/select/remote.js +50 -50
- package/lib/esm/components/select/remote.js.map +1 -1
- package/lib/esm/components/select/search.js +16 -6
- package/lib/esm/components/select/search.js.map +1 -1
- package/lib/esm/components/select/select.js +273 -32
- package/lib/esm/components/select/select.js.map +1 -1
- package/lib/esm/components/select/tags.js +3 -1
- package/lib/esm/components/select/tags.js.map +1 -1
- package/lib/esm/components/select/templates.js +6 -0
- package/lib/esm/components/select/templates.js.map +1 -1
- package/lib/esm/components/select/utils.js +23 -10
- package/lib/esm/components/select/utils.js.map +1 -1
- package/lib/esm/components/stepper/stepper.js +59 -12
- package/lib/esm/components/stepper/stepper.js.map +1 -1
- package/lib/esm/components/sticky/sticky.js +52 -14
- package/lib/esm/components/sticky/sticky.js.map +1 -1
- package/package.json +2 -2
- package/src/components/component.ts +19 -4
- package/src/components/datatable/datatable-sort.ts +6 -0
- package/src/components/datatable/datatable.ts +98 -15
- package/src/components/datatable/types.ts +5 -1
- package/src/components/image-input/image-input.ts +11 -2
- package/src/components/image-input/types.ts +1 -0
- package/src/components/input/input-group.css +1 -1
- package/src/components/input/input.css +1 -1
- package/src/components/scrollable/scrollable.css +3 -3
- package/src/components/select/combobox.ts +84 -34
- package/src/components/select/config.ts +2 -0
- package/src/components/select/dropdown.ts +20 -11
- package/src/components/select/index.ts +6 -1
- package/src/components/select/option.ts +7 -6
- package/src/components/select/remote.ts +51 -52
- package/src/components/select/search.ts +59 -44
- package/src/components/select/select.css +26 -17
- package/src/components/select/select.ts +472 -101
- package/src/components/select/tags.ts +9 -3
- package/src/components/select/templates.ts +10 -0
- package/src/components/select/utils.ts +55 -20
- package/src/components/select/variants.css +0 -1
- package/src/components/stepper/stepper.ts +2 -2
- package/src/components/sticky/sticky.ts +47 -16
- package/src/components/sticky/types.ts +3 -0
- package/src/components/table/table.css +1 -1
- package/src/components/textarea/textarea.css +1 -1
- package/src/components/toast/toast.css +84 -47
- 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
|
|
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
|
|
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
|
|
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
|
-
|
|
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":"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"}
|
|
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
|
-
|
|
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 = [
|
|
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) {
|
|
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.
|
|
420
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
1239
|
-
optionsContainer.innerHTML = '';
|
|
1420
|
+
// Handle empty results
|
|
1240
1421
|
if (items.length === 0) {
|
|
1241
|
-
|
|
1422
|
+
optionsContainer.innerHTML = '';
|
|
1242
1423
|
var noResultsElement = defaultTemplates.searchEmpty(this._config);
|
|
1243
1424
|
optionsContainer.appendChild(noResultsElement);
|
|
1244
1425
|
return;
|
|
1245
1426
|
}
|
|
1246
|
-
//
|
|
1247
|
-
|
|
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
|
|
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
|
-
})
|
|
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 &&
|
|
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' &&
|
|
1305
|
-
event.key !== '
|
|
1306
|
-
event.key !== '
|
|
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 &&
|
|
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 &&
|
|
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
|
|
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 ([
|
|
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
|
-
})
|
|
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' &&
|
|
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
|
* ========================================================================
|