@keenthemes/ktui 1.0.11 → 1.0.13
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 +1687 -1517
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +5822 -0
- package/examples/select/avatar.html +47 -0
- package/examples/select/basic-usage.html +39 -0
- package/examples/select/combobox-icons_.html +59 -0
- package/examples/select/combobox_.html +46 -0
- package/examples/select/country.html +43 -0
- package/examples/select/description.html +53 -0
- package/examples/select/disable-option.html +37 -0
- package/examples/select/disable-select.html +35 -0
- package/examples/select/icon-multiple.html +50 -0
- package/examples/select/icon.html +48 -0
- package/examples/select/max-selection.html +38 -0
- package/examples/select/modal.html +72 -0
- package/examples/select/multiple.html +40 -0
- package/examples/select/placeholder.html +40 -0
- package/examples/select/remote-data_.html +32 -0
- package/examples/select/search.html +57 -0
- package/examples/select/sizes.html +94 -0
- package/examples/select/tags-icons_.html +58 -0
- package/examples/select/tags-selected_.html +59 -0
- package/examples/select/tags_.html +58 -0
- package/examples/select/template-customization.html +62 -0
- package/examples/toast/example.html +427 -0
- package/lib/cjs/components/datatable/datatable.js +23 -7
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/select/combobox.js +94 -141
- package/lib/cjs/components/select/combobox.js.map +1 -1
- package/lib/cjs/components/select/config.js +4 -18
- package/lib/cjs/components/select/config.js.map +1 -1
- package/lib/cjs/components/select/dropdown.js +35 -138
- package/lib/cjs/components/select/dropdown.js.map +1 -1
- package/lib/cjs/components/select/index.js +2 -1
- package/lib/cjs/components/select/index.js.map +1 -1
- package/lib/cjs/components/select/option.js +56 -6
- package/lib/cjs/components/select/option.js.map +1 -1
- package/lib/cjs/components/select/remote.js +1 -37
- package/lib/cjs/components/select/remote.js.map +1 -1
- package/lib/cjs/components/select/search.js +147 -128
- package/lib/cjs/components/select/search.js.map +1 -1
- package/lib/cjs/components/select/select.js +332 -391
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/select/tags.js +38 -56
- package/lib/cjs/components/select/tags.js.map +1 -1
- package/lib/cjs/components/select/templates.js +168 -200
- package/lib/cjs/components/select/templates.js.map +1 -1
- package/lib/cjs/components/select/types.js +0 -12
- package/lib/cjs/components/select/types.js.map +1 -1
- package/lib/cjs/components/select/utils.js +187 -339
- package/lib/cjs/components/select/utils.js.map +1 -1
- package/lib/cjs/components/toast/index.js +10 -0
- package/lib/cjs/components/toast/index.js.map +1 -0
- package/lib/cjs/components/toast/toast.js +543 -0
- package/lib/cjs/components/toast/toast.js.map +1 -0
- package/lib/cjs/components/toast/types.js +7 -0
- package/lib/cjs/components/toast/types.js.map +1 -0
- package/lib/cjs/index.js +5 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/components/datatable/datatable.js +23 -7
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/select/combobox.js +95 -142
- package/lib/esm/components/select/combobox.js.map +1 -1
- package/lib/esm/components/select/config.js +3 -17
- package/lib/esm/components/select/config.js.map +1 -1
- package/lib/esm/components/select/dropdown.js +35 -138
- 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 +56 -6
- package/lib/esm/components/select/option.js.map +1 -1
- package/lib/esm/components/select/remote.js +1 -37
- package/lib/esm/components/select/remote.js.map +1 -1
- package/lib/esm/components/select/search.js +148 -129
- package/lib/esm/components/select/search.js.map +1 -1
- package/lib/esm/components/select/select.js +333 -392
- package/lib/esm/components/select/select.js.map +1 -1
- package/lib/esm/components/select/tags.js +38 -56
- package/lib/esm/components/select/tags.js.map +1 -1
- package/lib/esm/components/select/templates.js +167 -199
- package/lib/esm/components/select/templates.js.map +1 -1
- package/lib/esm/components/select/types.js +1 -11
- package/lib/esm/components/select/types.js.map +1 -1
- package/lib/esm/components/select/utils.js +184 -336
- package/lib/esm/components/select/utils.js.map +1 -1
- package/lib/esm/components/toast/index.js +6 -0
- package/lib/esm/components/toast/index.js.map +1 -0
- package/lib/esm/components/toast/toast.js +540 -0
- package/lib/esm/components/toast/toast.js.map +1 -0
- package/lib/esm/components/toast/types.js +6 -0
- package/lib/esm/components/toast/types.js.map +1 -0
- package/lib/esm/index.js +3 -0
- package/lib/esm/index.js.map +1 -1
- package/package.json +14 -9
- package/src/components/alert/alert.css +15 -2
- package/src/components/datatable/datatable.ts +25 -17
- package/src/components/input/input.css +3 -1
- package/src/components/link/link.css +2 -2
- package/src/components/scrollable/scrollable.css +9 -5
- package/src/components/select/combobox.ts +96 -192
- package/src/components/select/config.ts +35 -36
- package/src/components/select/dropdown.ts +43 -155
- package/src/components/select/index.ts +1 -1
- package/src/components/select/option.ts +50 -10
- package/src/components/select/remote.ts +2 -42
- package/src/components/select/search.ts +159 -158
- package/src/components/select/select.css +137 -18
- package/src/components/select/select.ts +354 -506
- package/src/components/select/tags.ts +37 -60
- package/src/components/select/templates.ts +254 -328
- package/src/components/select/types.ts +0 -10
- package/src/components/select/utils.ts +190 -416
- package/src/components/textarea/textarea.css +2 -1
- package/src/components/toast/index.ts +7 -0
- package/src/components/toast/toast.css +60 -0
- package/src/components/toast/toast.ts +605 -0
- package/src/components/toast/types.ts +169 -0
- package/src/index.ts +4 -0
- package/styles/main.css +3 -0
- package/styles/vars.css +138 -0
- package/styles.css +1 -0
- package/webpack.config.js +6 -1
|
@@ -6,31 +6,35 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.KTSelectCombobox = void 0;
|
|
8
8
|
var utils_1 = require("./utils");
|
|
9
|
+
var templates_1 = require("./templates");
|
|
9
10
|
/**
|
|
10
11
|
* KTSelectCombobox - Handles combobox-specific functionality for KTSelect
|
|
11
12
|
*/
|
|
12
13
|
var KTSelectCombobox = /** @class */ (function () {
|
|
13
14
|
function KTSelectCombobox(select) {
|
|
15
|
+
var _this = this;
|
|
14
16
|
this._select = select;
|
|
15
17
|
this._config = select.getConfig();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
displayElement.tagName === 'INPUT'
|
|
21
|
-
? displayElement
|
|
22
|
-
: displayElement.querySelector('input[data-kt-select-search]');
|
|
23
|
-
// Find the clear button
|
|
24
|
-
this._clearButtonElement =
|
|
25
|
-
displayElement.tagName === 'DIV'
|
|
26
|
-
? displayElement.querySelector('[data-kt-select-clear-button]')
|
|
27
|
-
: null;
|
|
28
|
-
// Create bound handler references to allow proper cleanup
|
|
29
|
-
this._boundKeyNavHandler = this._handleComboboxKeyNav.bind(this);
|
|
18
|
+
var displayElement = select.getDisplayElement(); // KTSelect's main display element for combobox
|
|
19
|
+
this._searchInputElement = displayElement.querySelector('input[data-kt-select-search]');
|
|
20
|
+
this._clearButtonElement = displayElement.querySelector('[data-kt-select-clear-button]');
|
|
21
|
+
this._valuesContainerElement = displayElement.querySelector('[data-kt-select-combobox-values]');
|
|
30
22
|
this._boundInputHandler = this._handleComboboxInput.bind(this);
|
|
31
23
|
this._boundClearHandler = this._handleClearButtonClick.bind(this);
|
|
32
|
-
// Attach event listeners
|
|
33
24
|
this._attachEventListeners();
|
|
25
|
+
this._select.getElement().addEventListener('dropdown.close', function () {
|
|
26
|
+
// When dropdown closes, if not multi-select and not using displayTemplate,
|
|
27
|
+
// ensure input shows the selected value or placeholder.
|
|
28
|
+
if (!_this._config.multiple && !_this._config.displayTemplate) {
|
|
29
|
+
_this.updateDisplay(_this._select.getSelectedOptions());
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// For tags or displayTemplate, the input should be clear for typing.
|
|
33
|
+
_this._searchInputElement.value = '';
|
|
34
|
+
}
|
|
35
|
+
_this._toggleClearButtonVisibility(_this._searchInputElement.value);
|
|
36
|
+
// this._select.showAllOptions(); // showAllOptions might be too broad, filtering is managed by typing.
|
|
37
|
+
});
|
|
34
38
|
if (this._config.debug)
|
|
35
39
|
console.log('KTSelectCombobox initialized');
|
|
36
40
|
}
|
|
@@ -38,18 +42,13 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
38
42
|
* Attach event listeners specific to combobox
|
|
39
43
|
*/
|
|
40
44
|
KTSelectCombobox.prototype._attachEventListeners = function () {
|
|
41
|
-
// First remove any existing listeners to prevent duplicates
|
|
42
45
|
this._removeEventListeners();
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
this._searchInputElement.addEventListener('keydown', this._boundKeyNavHandler);
|
|
47
|
-
// Add clear button click event listener
|
|
46
|
+
if (this._searchInputElement) { // Ensure element exists
|
|
47
|
+
this._searchInputElement.addEventListener('input', this._boundInputHandler);
|
|
48
|
+
}
|
|
48
49
|
if (this._clearButtonElement) {
|
|
49
50
|
this._clearButtonElement.addEventListener('click', this._boundClearHandler);
|
|
50
51
|
}
|
|
51
|
-
if (this._config.debug)
|
|
52
|
-
console.log('Combobox event listeners attached to:', this._searchInputElement);
|
|
53
52
|
};
|
|
54
53
|
/**
|
|
55
54
|
* Remove event listeners to prevent memory leaks or duplicates
|
|
@@ -57,7 +56,6 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
57
56
|
KTSelectCombobox.prototype._removeEventListeners = function () {
|
|
58
57
|
if (this._searchInputElement) {
|
|
59
58
|
this._searchInputElement.removeEventListener('input', this._boundInputHandler);
|
|
60
|
-
this._searchInputElement.removeEventListener('keydown', this._boundKeyNavHandler);
|
|
61
59
|
}
|
|
62
60
|
if (this._clearButtonElement) {
|
|
63
61
|
this._clearButtonElement.removeEventListener('click', this._boundClearHandler);
|
|
@@ -68,16 +66,21 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
68
66
|
*/
|
|
69
67
|
KTSelectCombobox.prototype._handleComboboxInput = function (event) {
|
|
70
68
|
var inputElement = event.target;
|
|
71
|
-
var query = inputElement.value
|
|
72
|
-
if (this._config.debug)
|
|
73
|
-
console.log('Combobox input event, query:', query);
|
|
74
|
-
// Toggle clear button visibility based on input value
|
|
69
|
+
var query = inputElement.value;
|
|
75
70
|
this._toggleClearButtonVisibility(query);
|
|
76
|
-
|
|
77
|
-
if (!this._select._dropdownIsOpen) {
|
|
71
|
+
if (!this._select.isDropdownOpen()) { // Use public getter
|
|
78
72
|
this._select.openDropdown();
|
|
79
73
|
}
|
|
80
|
-
//
|
|
74
|
+
// For single select without displayTemplate, if user types, they are essentially clearing the previous selection text
|
|
75
|
+
// The actual selection state isn't cleared until they pick a new option or clear explicitly.
|
|
76
|
+
// For multi-select or with displayTemplate, the input is purely for search.
|
|
77
|
+
if (this._config.multiple || this._config.displayTemplate) {
|
|
78
|
+
// Values are in _valuesContainerElement, input is for search
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Single select, no displayTemplate: If user types, it implies they might be changing selection.
|
|
82
|
+
// We don't clear the actual _select state here, just the visual in input.
|
|
83
|
+
}
|
|
81
84
|
this._filterOptionsForCombobox(query);
|
|
82
85
|
};
|
|
83
86
|
/**
|
|
@@ -86,25 +89,25 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
86
89
|
KTSelectCombobox.prototype._handleClearButtonClick = function (event) {
|
|
87
90
|
event.preventDefault();
|
|
88
91
|
event.stopPropagation();
|
|
89
|
-
// Clear the input
|
|
90
92
|
this._searchInputElement.value = '';
|
|
91
|
-
// Hide the clear button
|
|
92
93
|
this._toggleClearButtonVisibility('');
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
if (this._valuesContainerElement) {
|
|
95
|
+
this._valuesContainerElement.innerHTML = '';
|
|
96
|
+
}
|
|
97
|
+
this._select.clearSelection(); // This will also trigger updateSelectedOptionDisplay
|
|
98
|
+
this._select.showAllOptions(); // Show all options after clearing
|
|
95
99
|
this._select.openDropdown();
|
|
96
|
-
// Clear the current selection
|
|
97
|
-
this._select.clearSelection();
|
|
98
|
-
// Focus on the input
|
|
99
100
|
this._searchInputElement.focus();
|
|
100
101
|
};
|
|
101
102
|
/**
|
|
102
|
-
* Toggle clear button visibility based on input value
|
|
103
|
+
* Toggle clear button visibility based on input value and selection state.
|
|
104
|
+
* Clear button should be visible if there's text in input OR if there are selected items (for multi/displayTemplate modes).
|
|
103
105
|
*/
|
|
104
|
-
KTSelectCombobox.prototype._toggleClearButtonVisibility = function (
|
|
106
|
+
KTSelectCombobox.prototype._toggleClearButtonVisibility = function (inputValue) {
|
|
105
107
|
if (!this._clearButtonElement)
|
|
106
108
|
return;
|
|
107
|
-
|
|
109
|
+
var hasSelectedItems = this._select.getSelectedOptions().length > 0;
|
|
110
|
+
if (inputValue.length > 0 || (hasSelectedItems && (this._config.multiple || this._config.displayTemplate))) {
|
|
108
111
|
this._clearButtonElement.classList.remove('hidden');
|
|
109
112
|
}
|
|
110
113
|
else {
|
|
@@ -115,115 +118,65 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
115
118
|
* Filter options for combobox based on input query
|
|
116
119
|
*/
|
|
117
120
|
KTSelectCombobox.prototype._filterOptionsForCombobox = function (query) {
|
|
118
|
-
|
|
119
|
-
this._select.
|
|
121
|
+
var options = Array.from(this._select.getOptionsElement());
|
|
122
|
+
var config = this._select.getConfig();
|
|
123
|
+
var dropdownElement = this._select.getDropdownElement();
|
|
124
|
+
(0, utils_1.filterOptions)(options, query, config, dropdownElement);
|
|
125
|
+
// After filtering, focusManager in KTSelectSearch (if search is also enabled there)
|
|
126
|
+
// or the main FocusManager should adjust focus if needed.
|
|
127
|
+
// For combobox, this filtering is the primary search mechanism.
|
|
128
|
+
// We might need to tell select's focus manager to focus first option.
|
|
129
|
+
this._select._focusManager.focusFirst(); // Consider if this is always right
|
|
120
130
|
};
|
|
121
131
|
/**
|
|
122
|
-
*
|
|
132
|
+
* Updates the combobox display (input field or values container) based on selection.
|
|
123
133
|
*/
|
|
124
|
-
KTSelectCombobox.prototype.
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
// Prevent event propagation to stop bubbling to other handlers
|
|
128
|
-
event.stopPropagation();
|
|
129
|
-
// Handle clear with Escape when dropdown is closed
|
|
130
|
-
if (event.key === 'Escape' &&
|
|
131
|
-
!this._select._dropdownIsOpen &&
|
|
132
|
-
this._searchInputElement.value !== '') {
|
|
133
|
-
event.preventDefault();
|
|
134
|
-
this._searchInputElement.value = '';
|
|
135
|
-
this._toggleClearButtonVisibility('');
|
|
136
|
-
this._select.clearSelection();
|
|
134
|
+
KTSelectCombobox.prototype.updateDisplay = function (selectedOptions) {
|
|
135
|
+
var _this = this;
|
|
136
|
+
if (!this._searchInputElement)
|
|
137
137
|
return;
|
|
138
|
+
// Always clear the values container first if it exists
|
|
139
|
+
if (this._valuesContainerElement) {
|
|
140
|
+
this._valuesContainerElement.innerHTML = '';
|
|
138
141
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
this._select.openDropdown();
|
|
147
|
-
event.preventDefault();
|
|
148
|
-
// If it's arrow keys, also move focus
|
|
149
|
-
if (event.key === 'ArrowDown') {
|
|
150
|
-
this._select._focusNextOption();
|
|
151
|
-
}
|
|
152
|
-
else if (event.key === 'ArrowUp') {
|
|
153
|
-
this._select._focusPreviousOption();
|
|
154
|
-
}
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
// Use the shared keyboard navigation handler
|
|
158
|
-
(0, utils_1.handleDropdownKeyNavigation)(event, this._select, {
|
|
159
|
-
multiple: this._config.multiple,
|
|
160
|
-
closeOnSelect: this._config.closeOnSelect,
|
|
161
|
-
});
|
|
162
|
-
};
|
|
163
|
-
/**
|
|
164
|
-
* Update the combobox input value when an option is selected
|
|
165
|
-
*/
|
|
166
|
-
KTSelectCombobox.prototype.updateSelectedValue = function (selectedText) {
|
|
167
|
-
if (this._searchInputElement) {
|
|
168
|
-
// Extract just the text content if it contains HTML
|
|
169
|
-
var cleanText = selectedText;
|
|
170
|
-
// If the text might contain HTML (when description is present)
|
|
171
|
-
if (selectedText.includes('<') || selectedText.includes('>')) {
|
|
172
|
-
// Create a temporary element to extract just the text
|
|
173
|
-
var tempDiv = document.createElement('div');
|
|
174
|
-
tempDiv.innerHTML = selectedText;
|
|
175
|
-
// Find and use only the option-title text if available
|
|
176
|
-
var titleElement = tempDiv.querySelector('[data-kt-option-title]');
|
|
177
|
-
if (titleElement) {
|
|
178
|
-
cleanText = titleElement.textContent || selectedText;
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
// Fallback to all text content if option-title not found
|
|
182
|
-
cleanText = tempDiv.textContent || selectedText;
|
|
142
|
+
if (this._config.tags && this._valuesContainerElement) { // Combobox + Tags
|
|
143
|
+
selectedOptions.forEach(function (value) {
|
|
144
|
+
// Ensure value is properly escaped for querySelector
|
|
145
|
+
var optionElement = _this._select.getElement().querySelector("option[value=\"".concat(CSS.escape(value), "\"]"));
|
|
146
|
+
if (optionElement) {
|
|
147
|
+
var tagElement = templates_1.defaultTemplates.tag(optionElement, _this._config);
|
|
148
|
+
_this._valuesContainerElement.appendChild(tagElement);
|
|
183
149
|
}
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
this._searchInputElement.
|
|
187
|
-
// Show the clear button if there's a value
|
|
188
|
-
this._toggleClearButtonVisibility(cleanText);
|
|
189
|
-
// Trigger an input event to ensure any input-based listeners are notified
|
|
190
|
-
var inputEvent = new Event('input', { bubbles: true });
|
|
191
|
-
this._searchInputElement.dispatchEvent(inputEvent);
|
|
192
|
-
if (this._config.debug)
|
|
193
|
-
console.log('Combobox value updated to:', cleanText);
|
|
150
|
+
});
|
|
151
|
+
this._searchInputElement.value = ''; // Input field is for typing new searches
|
|
152
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
194
153
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
*/
|
|
200
|
-
KTSelectCombobox.prototype.resetInputValueToSelection = function () {
|
|
201
|
-
var _a, _b;
|
|
202
|
-
var selectedOptions = this._select.getSelectedOptions();
|
|
203
|
-
if (selectedOptions.length > 0) {
|
|
204
|
-
var selectedOption = Array.from(this._select.getOptionsElement()).find(function (opt) { return opt.dataset.value === selectedOptions[0]; });
|
|
205
|
-
if (selectedOption) {
|
|
206
|
-
// Find the option-title element to get just the title text
|
|
207
|
-
var titleElement = selectedOption.querySelector('[data-kt-option-title]');
|
|
208
|
-
var selectedText = '';
|
|
209
|
-
if (titleElement) {
|
|
210
|
-
// If it has a structured content with a title element
|
|
211
|
-
selectedText = ((_a = titleElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
// Fallback to the whole text content
|
|
215
|
-
selectedText = ((_b = selectedOption.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || '';
|
|
216
|
-
}
|
|
217
|
-
this.updateSelectedValue(selectedText);
|
|
218
|
-
}
|
|
154
|
+
else if (this._config.displayTemplate && this._valuesContainerElement) { // Combobox + DisplayTemplate (no tags)
|
|
155
|
+
this._valuesContainerElement.innerHTML = this._select.renderDisplayTemplateForSelected(selectedOptions);
|
|
156
|
+
this._searchInputElement.value = ''; // Input field is for typing new searches
|
|
157
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
219
158
|
}
|
|
220
|
-
else {
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
159
|
+
else if (this._config.multiple && this._valuesContainerElement) { // Combobox + Multiple (no tags, no display template)
|
|
160
|
+
// For simplicity, join text. A proper tag implementation would be more complex here.
|
|
161
|
+
this._valuesContainerElement.innerHTML = selectedOptions.map(function (value) {
|
|
162
|
+
var optionEl = _this._select.getElement().querySelector("option[value=\"".concat(CSS.escape(value), "\"]"));
|
|
163
|
+
return optionEl ? optionEl.textContent : '';
|
|
164
|
+
}).join(', '); // Basic comma separation
|
|
165
|
+
this._searchInputElement.value = '';
|
|
166
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
167
|
+
}
|
|
168
|
+
else if (!this._config.multiple && selectedOptions.length > 0) { // Single select combobox: display selected option's text in the input
|
|
169
|
+
var selectedValue = selectedOptions[0];
|
|
170
|
+
var optionElement = this._select.getElement().querySelector("option[value=\"".concat(CSS.escape(selectedValue), "\"]"));
|
|
171
|
+
this._searchInputElement.value = optionElement ? optionElement.textContent || '' : '';
|
|
172
|
+
// placeholder is implicitly handled by input value for single select
|
|
173
|
+
}
|
|
174
|
+
else { // No selection or not fitting above categories (e.g. single select, no items)
|
|
175
|
+
this._searchInputElement.value = '';
|
|
176
|
+
this._searchInputElement.placeholder = this._config.placeholder || 'Select...';
|
|
177
|
+
// _valuesContainerElement is already cleared if it exists
|
|
226
178
|
}
|
|
179
|
+
this._toggleClearButtonVisibility(this._searchInputElement.value);
|
|
227
180
|
};
|
|
228
181
|
/**
|
|
229
182
|
* Destroy the combobox component and clean up event listeners
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/select/combobox.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/select/combobox.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
24
24
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.
|
|
27
|
+
exports.KTSelectState = exports.DefaultConfig = void 0;
|
|
28
28
|
exports.DefaultConfig = {
|
|
29
29
|
// ...other config options
|
|
30
30
|
loadMoreText: 'Load more...',
|
|
@@ -44,10 +44,6 @@ exports.DefaultConfig = {
|
|
|
44
44
|
// Field Mapping
|
|
45
45
|
dataValueField: null, // Property in the option object that contains the value (default: 'id')
|
|
46
46
|
dataFieldText: null, // Property in the option object that contains the text (default: 'title')
|
|
47
|
-
dataFieldDescription: null, // Property in the option object that contains the description
|
|
48
|
-
dataFieldIcon: null, // Property in the option object that contains the icon
|
|
49
|
-
dataFieldIconWidth: null, // Property in the option object that contains the icon width
|
|
50
|
-
dataFieldIconHeight: null, // Property in the option object that contains the icon height
|
|
51
47
|
// Search Configuration
|
|
52
48
|
searchParam: '', // Query parameter for API search requests
|
|
53
49
|
searchDebounce: 300, // Debounce delay for search (in ms)
|
|
@@ -60,10 +56,8 @@ exports.DefaultConfig = {
|
|
|
60
56
|
// Selection Behavior
|
|
61
57
|
multiple: false, // Enable/disable multi-select
|
|
62
58
|
maxSelections: null, // Maximum number of selections allowed in multi-select mode (null for unlimited)
|
|
63
|
-
closeOnSelect: true, // Close the dropdown after selecting an option (single-select only)
|
|
64
59
|
disabled: false, // Disable the select component
|
|
65
60
|
isRequired: false, // Make selection required
|
|
66
|
-
mode: null, // Select mode: tags or combobox
|
|
67
61
|
// Search Functionality
|
|
68
62
|
enableSearch: false, // Enable/disable search functionality within the dropdown
|
|
69
63
|
searchPlaceholder: 'Search...', // Placeholder text for the search input
|
|
@@ -71,7 +65,6 @@ exports.DefaultConfig = {
|
|
|
71
65
|
searchMinLength: 0, // Minimum characters required to trigger search
|
|
72
66
|
searchMaxItems: 50, // Maximum number of search results to display
|
|
73
67
|
searchNotFoundText: 'No results found', // Text to display when no search results are found
|
|
74
|
-
searchHighlight: true, // Highlight matching search terms within the options
|
|
75
68
|
clearSearchOnClose: true, // Clear search input when dropdown closes
|
|
76
69
|
// Multi-Select Display
|
|
77
70
|
selectAllText: 'Select all', // Text for the "Select All" option (if implemented)
|
|
@@ -87,11 +80,8 @@ exports.DefaultConfig = {
|
|
|
87
80
|
dropdownPreventOverflow: false,
|
|
88
81
|
dropdownStrategy: null,
|
|
89
82
|
dropdownWidth: null, // Custom width for dropdown (e.g., '300px'), null to match toggle element width
|
|
90
|
-
//
|
|
91
|
-
|
|
92
|
-
hoverClass: 'hovered',
|
|
93
|
-
bgClass: 'bg-blue-50',
|
|
94
|
-
fontClass: 'font-medium',
|
|
83
|
+
// New Config
|
|
84
|
+
dropdownTemplate: '',
|
|
95
85
|
};
|
|
96
86
|
var KTSelectState = /** @class */ (function () {
|
|
97
87
|
function KTSelectState(config) {
|
|
@@ -99,7 +89,7 @@ var KTSelectState = /** @class */ (function () {
|
|
|
99
89
|
this._config = this._initDefaultConfig(config);
|
|
100
90
|
}
|
|
101
91
|
KTSelectState.prototype._initDefaultConfig = function (config) {
|
|
102
|
-
return __assign(__assign({}, exports.DefaultConfig), config);
|
|
92
|
+
return __assign(__assign(__assign({}, exports.DefaultConfig), config), config.config);
|
|
103
93
|
};
|
|
104
94
|
KTSelectState.prototype.setItems = function (items, query) {
|
|
105
95
|
var _this = this;
|
|
@@ -219,8 +209,4 @@ var KTSelectState = /** @class */ (function () {
|
|
|
219
209
|
return KTSelectState;
|
|
220
210
|
}());
|
|
221
211
|
exports.KTSelectState = KTSelectState;
|
|
222
|
-
exports.SelectOptionDefaultConfig = {
|
|
223
|
-
description: '',
|
|
224
|
-
icon: null,
|
|
225
|
-
};
|
|
226
212
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/components/select/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;AAIU,QAAA,aAAa,GAA4B;IACrD,0BAA0B;IAC1B,YAAY,EAAE,cAAc;IAC5B,kBAAkB;IAClB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,kBAAkB,EAAE,sDAAsD;IACvF,cAAc,EAAE,IAAI,EAAE,yCAAyC;IAE/D,gBAAgB;IAChB,KAAK,EAAE,EAAE,EAAE,yBAAyB;IACpC,SAAS,EAAE,KAAK,EAAE,uDAAuD;IACzE,OAAO,EAAE,IAAI,EAAE,oDAAoD;IAEnE,4BAA4B;IAC5B,MAAM,EAAE,KAAK,EAAE,sCAAsC;IACrD,OAAO,EAAE,IAAI,EAAE,4BAA4B;IAC3C,eAAe,EAAE,IAAI,EAAE,4DAA4D;IACnF,kBAAkB,EAAE,qBAAqB,EAAE,sDAAsD;IAEjG,gBAAgB;IAChB,cAAc,EAAE,IAAI,EAAE,wEAAwE;IAC9F,aAAa,EAAE,IAAI,EAAE,0EAA0E;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/components/select/config.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;AAIU,QAAA,aAAa,GAA4B;IACrD,0BAA0B;IAC1B,YAAY,EAAE,cAAc;IAC5B,kBAAkB;IAClB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,kBAAkB,EAAE,sDAAsD;IACvF,cAAc,EAAE,IAAI,EAAE,yCAAyC;IAE/D,gBAAgB;IAChB,KAAK,EAAE,EAAE,EAAE,yBAAyB;IACpC,SAAS,EAAE,KAAK,EAAE,uDAAuD;IACzE,OAAO,EAAE,IAAI,EAAE,oDAAoD;IAEnE,4BAA4B;IAC5B,MAAM,EAAE,KAAK,EAAE,sCAAsC;IACrD,OAAO,EAAE,IAAI,EAAE,4BAA4B;IAC3C,eAAe,EAAE,IAAI,EAAE,4DAA4D;IACnF,kBAAkB,EAAE,qBAAqB,EAAE,sDAAsD;IAEjG,gBAAgB;IAChB,cAAc,EAAE,IAAI,EAAE,wEAAwE;IAC9F,aAAa,EAAE,IAAI,EAAE,0EAA0E;IAE/F,uBAAuB;IACvB,WAAW,EAAE,EAAE,EAAE,0CAA0C;IAC3D,cAAc,EAAE,GAAG,EAAE,oCAAoC;IAEzD,2BAA2B;IAC3B,UAAU,EAAE,KAAK,EAAE,4CAA4C;IAC/D,eAAe,EAAE,EAAE,EAAE,iBAAiB;IACtC,mBAAmB,EAAE,MAAM,EAAE,iCAAiC;IAC9D,oBAAoB,EAAE,OAAO,EAAE,oCAAoC;IACnE,oBAAoB,EAAE,OAAO,EAAE,iCAAiC;IAEhE,qBAAqB;IACrB,QAAQ,EAAE,KAAK,EAAE,8BAA8B;IAC/C,aAAa,EAAE,IAAI,EAAE,iFAAiF;IACtG,QAAQ,EAAE,KAAK,EAAE,+BAA+B;IAChD,UAAU,EAAE,KAAK,EAAE,0BAA0B;IAE7C,uBAAuB;IACvB,YAAY,EAAE,KAAK,EAAE,0DAA0D;IAC/E,iBAAiB,EAAE,WAAW,EAAE,wCAAwC;IACxE,eAAe,EAAE,IAAI,EAAE,gDAAgD;IACvE,eAAe,EAAE,CAAC,EAAE,gDAAgD;IACpE,cAAc,EAAE,EAAE,EAAE,8CAA8C;IAClE,kBAAkB,EAAE,kBAAkB,EAAE,mDAAmD;IAC3F,kBAAkB,EAAE,IAAI,EAAE,0CAA0C;IAEpE,uBAAuB;IACvB,aAAa,EAAE,YAAY,EAAE,oDAAoD;IACjF,YAAY,EAAE,WAAW,EAAE,mDAAmD;IAC9E,iBAAiB,EAAE,IAAI,EAAE,2DAA2D;IACpF,cAAc,EAAE,IAAI,EAAE,sEAAsE;IAE5F,4BAA4B;IAC5B,KAAK,EAAE,kBAAkB,EAAE,sDAAsD;IACjF,MAAM,EAAE,GAAG,EAAE,uFAAuF;IAEpG,yBAAyB;IACzB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,uBAAuB,EAAE,KAAK;IAC9B,gBAAgB,EAAE,IAAI;IACtB,aAAa,EAAE,IAAI,EAAE,gFAAgF;IAErG,aAAa;IACb,gBAAgB,EAAE,EAAE;CACpB,CAAC;AA0GF;IAIC,uBAAY,MAAgC;QAFpC,qBAAgB,GAAa,EAAE,CAAC;QAGvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAEO,0CAAkB,GAA1B,UACC,MAA+B;QAE/B,sCACI,qBAAa,GACb,MAAM,GACN,MAAM,CAAC,MAAM,EACf;IACH,CAAC;IAEM,gCAAQ,GAAf,UAAgB,KAAa,EAAE,KAAc;QAA7C,iBA4BC;QA3BA,OAAO,IAAI,OAAO,CAAO,UAAC,OAAO,EAAE,MAAM;YACxC,IAAI,KAAK,EAAE,CAAC;gBACX,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,OAAO,EAAE,CAAC;YACX,CAAC;iBAAM,IAAI,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;qBAC1B,IAAI,CAAC,OAAO,CAAC,CAAC,2CAA2C;qBACzD,KAAK,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,KAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACjC,KAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;gBAC9B,KAAI,CAAC,OAAO;qBACV,OAAO,CAAC,KAAK,CAAC;qBACd,IAAI,CAAC,UAAC,KAAK;oBACX,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;oBAC3B,OAAO,EAAE,CAAC,CAAC,kCAAkC;gBAC9C,CAAC,CAAC;qBACD,KAAK,CAAC,UAAC,KAAK;oBACZ,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;oBAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB;gBAClC,CAAC,CAAC;qBACD,OAAO,CAAC;oBACR,KAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,wCAAgB,GAAxB,UAAyB,KAAc;QAAvC,iBAgCC;QA/BA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,yBAAyB;QAExD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAQ,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACX,GAAG,IAAI,WAAI,IAAI,CAAC,OAAO,CAAC,WAAW,cAAI,kBAAkB,CAAC,KAAK,CAAC,CAAE,CAAC;QACpE,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC;aACf,IAAI,CAAC,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,IAAI,EAAE,EAAf,CAAe,CAAC;aACnC,IAAI,CAAC,UAAC,IAAI;YACV,IAAI,KAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBAClC,8CAA8C;gBAC9C,IAAI,KAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;oBAC1C,IAAI,GAAG,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CACZ,sBAAsB,EACtB,oBAAa,KAAI,CAAC,OAAO,CAAC,eAAe,4BAAyB,CAClE,CAAC;oBACF,OAAO;gBACR,CAAC;YACF,CAAC;YACD,KAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QAC3B,CAAC,CAAC;aACD,KAAK,CAAC,UAAC,KAAK;YACZ,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,gDAAgD;QACjD,CAAC,CAAC;aACD,OAAO,CAAC;YACR,KAAI,CAAC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,yBAAyB;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,gCAAQ,GAAf;QACC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,CAAC;IAEM,2CAAmB,GAA1B,UAA2B,OAA4B;QACtD,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC;YAC7C,EAAE,EAAE,MAAM,CAAC,KAAK;YAChB,KAAK,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YAC/B,qDAAqD;SACrD,CAAC,EAJ2C,CAI3C,CAAC,CAAC;IACL,CAAC;IAEM,iCAAS,GAAhB;QACC,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAEM,0CAAkB,GAAzB,UAA0B,KAAwB;QACjD,IACC,IAAI,CAAC,OAAO,CAAC,QAAQ;YACrB,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,EACrC,CAAC;YACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,qEAAqE;YACrE,IAAI,CAAC,gBAAgB,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,+DAA+D;YAC/D,IAAI,CAAC,gBAAgB,qBAAO,KAAK,OAAC,CAAC;QACpC,CAAC;IACF,CAAC;IAEM,6CAAqB,GAA5B,UAA6B,KAAa;QACzC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,6CAA6C;YAC7C,IAAI,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO;QACR,CAAC;QAED,2CAA2C;QAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACF,CAAC;IAEM,0CAAkB,GAAzB;QACC,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IAEM,kCAAU,GAAjB,UAAkB,KAAa;QAC9B,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAEM,oCAAY,GAAnB,UAAoB,MAAwC;QAC3D,IAAI,CAAC,OAAO,yBAAQ,IAAI,CAAC,OAAO,GAAK,MAAM,CAAE,CAAC;IAC/C,CAAC;IACF,oBAAC;AAAD,CAAC,AA7ID,IA6IC;AA7IY,sCAAa"}
|