@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
|
@@ -2,32 +2,36 @@
|
|
|
2
2
|
* KTUI - Free & Open-Source Tailwind UI Components by Keenthemes
|
|
3
3
|
* Copyright 2025 by Keenthemes Inc
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import { filterOptions } from './utils';
|
|
6
|
+
import { defaultTemplates } from './templates';
|
|
6
7
|
/**
|
|
7
8
|
* KTSelectCombobox - Handles combobox-specific functionality for KTSelect
|
|
8
9
|
*/
|
|
9
10
|
var KTSelectCombobox = /** @class */ (function () {
|
|
10
11
|
function KTSelectCombobox(select) {
|
|
12
|
+
var _this = this;
|
|
11
13
|
this._select = select;
|
|
12
14
|
this._config = select.getConfig();
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.
|
|
17
|
-
displayElement.tagName === 'INPUT'
|
|
18
|
-
? displayElement
|
|
19
|
-
: displayElement.querySelector('input[data-kt-select-search]');
|
|
20
|
-
// Find the clear button
|
|
21
|
-
this._clearButtonElement =
|
|
22
|
-
displayElement.tagName === 'DIV'
|
|
23
|
-
? displayElement.querySelector('[data-kt-select-clear-button]')
|
|
24
|
-
: null;
|
|
25
|
-
// Create bound handler references to allow proper cleanup
|
|
26
|
-
this._boundKeyNavHandler = this._handleComboboxKeyNav.bind(this);
|
|
15
|
+
var displayElement = select.getDisplayElement(); // KTSelect's main display element for combobox
|
|
16
|
+
this._searchInputElement = displayElement.querySelector('input[data-kt-select-search]');
|
|
17
|
+
this._clearButtonElement = displayElement.querySelector('[data-kt-select-clear-button]');
|
|
18
|
+
this._valuesContainerElement = displayElement.querySelector('[data-kt-select-combobox-values]');
|
|
27
19
|
this._boundInputHandler = this._handleComboboxInput.bind(this);
|
|
28
20
|
this._boundClearHandler = this._handleClearButtonClick.bind(this);
|
|
29
|
-
// Attach event listeners
|
|
30
21
|
this._attachEventListeners();
|
|
22
|
+
this._select.getElement().addEventListener('dropdown.close', function () {
|
|
23
|
+
// When dropdown closes, if not multi-select and not using displayTemplate,
|
|
24
|
+
// ensure input shows the selected value or placeholder.
|
|
25
|
+
if (!_this._config.multiple && !_this._config.displayTemplate) {
|
|
26
|
+
_this.updateDisplay(_this._select.getSelectedOptions());
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// For tags or displayTemplate, the input should be clear for typing.
|
|
30
|
+
_this._searchInputElement.value = '';
|
|
31
|
+
}
|
|
32
|
+
_this._toggleClearButtonVisibility(_this._searchInputElement.value);
|
|
33
|
+
// this._select.showAllOptions(); // showAllOptions might be too broad, filtering is managed by typing.
|
|
34
|
+
});
|
|
31
35
|
if (this._config.debug)
|
|
32
36
|
console.log('KTSelectCombobox initialized');
|
|
33
37
|
}
|
|
@@ -35,18 +39,13 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
35
39
|
* Attach event listeners specific to combobox
|
|
36
40
|
*/
|
|
37
41
|
KTSelectCombobox.prototype._attachEventListeners = function () {
|
|
38
|
-
// First remove any existing listeners to prevent duplicates
|
|
39
42
|
this._removeEventListeners();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
this._searchInputElement.addEventListener('keydown', this._boundKeyNavHandler);
|
|
44
|
-
// Add clear button click event listener
|
|
43
|
+
if (this._searchInputElement) { // Ensure element exists
|
|
44
|
+
this._searchInputElement.addEventListener('input', this._boundInputHandler);
|
|
45
|
+
}
|
|
45
46
|
if (this._clearButtonElement) {
|
|
46
47
|
this._clearButtonElement.addEventListener('click', this._boundClearHandler);
|
|
47
48
|
}
|
|
48
|
-
if (this._config.debug)
|
|
49
|
-
console.log('Combobox event listeners attached to:', this._searchInputElement);
|
|
50
49
|
};
|
|
51
50
|
/**
|
|
52
51
|
* Remove event listeners to prevent memory leaks or duplicates
|
|
@@ -54,7 +53,6 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
54
53
|
KTSelectCombobox.prototype._removeEventListeners = function () {
|
|
55
54
|
if (this._searchInputElement) {
|
|
56
55
|
this._searchInputElement.removeEventListener('input', this._boundInputHandler);
|
|
57
|
-
this._searchInputElement.removeEventListener('keydown', this._boundKeyNavHandler);
|
|
58
56
|
}
|
|
59
57
|
if (this._clearButtonElement) {
|
|
60
58
|
this._clearButtonElement.removeEventListener('click', this._boundClearHandler);
|
|
@@ -65,16 +63,21 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
65
63
|
*/
|
|
66
64
|
KTSelectCombobox.prototype._handleComboboxInput = function (event) {
|
|
67
65
|
var inputElement = event.target;
|
|
68
|
-
var query = inputElement.value
|
|
69
|
-
if (this._config.debug)
|
|
70
|
-
console.log('Combobox input event, query:', query);
|
|
71
|
-
// Toggle clear button visibility based on input value
|
|
66
|
+
var query = inputElement.value;
|
|
72
67
|
this._toggleClearButtonVisibility(query);
|
|
73
|
-
|
|
74
|
-
if (!this._select._dropdownIsOpen) {
|
|
68
|
+
if (!this._select.isDropdownOpen()) { // Use public getter
|
|
75
69
|
this._select.openDropdown();
|
|
76
70
|
}
|
|
77
|
-
//
|
|
71
|
+
// For single select without displayTemplate, if user types, they are essentially clearing the previous selection text
|
|
72
|
+
// The actual selection state isn't cleared until they pick a new option or clear explicitly.
|
|
73
|
+
// For multi-select or with displayTemplate, the input is purely for search.
|
|
74
|
+
if (this._config.multiple || this._config.displayTemplate) {
|
|
75
|
+
// Values are in _valuesContainerElement, input is for search
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Single select, no displayTemplate: If user types, it implies they might be changing selection.
|
|
79
|
+
// We don't clear the actual _select state here, just the visual in input.
|
|
80
|
+
}
|
|
78
81
|
this._filterOptionsForCombobox(query);
|
|
79
82
|
};
|
|
80
83
|
/**
|
|
@@ -83,25 +86,25 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
83
86
|
KTSelectCombobox.prototype._handleClearButtonClick = function (event) {
|
|
84
87
|
event.preventDefault();
|
|
85
88
|
event.stopPropagation();
|
|
86
|
-
// Clear the input
|
|
87
89
|
this._searchInputElement.value = '';
|
|
88
|
-
// Hide the clear button
|
|
89
90
|
this._toggleClearButtonVisibility('');
|
|
90
|
-
|
|
91
|
-
|
|
91
|
+
if (this._valuesContainerElement) {
|
|
92
|
+
this._valuesContainerElement.innerHTML = '';
|
|
93
|
+
}
|
|
94
|
+
this._select.clearSelection(); // This will also trigger updateSelectedOptionDisplay
|
|
95
|
+
this._select.showAllOptions(); // Show all options after clearing
|
|
92
96
|
this._select.openDropdown();
|
|
93
|
-
// Clear the current selection
|
|
94
|
-
this._select.clearSelection();
|
|
95
|
-
// Focus on the input
|
|
96
97
|
this._searchInputElement.focus();
|
|
97
98
|
};
|
|
98
99
|
/**
|
|
99
|
-
* Toggle clear button visibility based on input value
|
|
100
|
+
* Toggle clear button visibility based on input value and selection state.
|
|
101
|
+
* Clear button should be visible if there's text in input OR if there are selected items (for multi/displayTemplate modes).
|
|
100
102
|
*/
|
|
101
|
-
KTSelectCombobox.prototype._toggleClearButtonVisibility = function (
|
|
103
|
+
KTSelectCombobox.prototype._toggleClearButtonVisibility = function (inputValue) {
|
|
102
104
|
if (!this._clearButtonElement)
|
|
103
105
|
return;
|
|
104
|
-
|
|
106
|
+
var hasSelectedItems = this._select.getSelectedOptions().length > 0;
|
|
107
|
+
if (inputValue.length > 0 || (hasSelectedItems && (this._config.multiple || this._config.displayTemplate))) {
|
|
105
108
|
this._clearButtonElement.classList.remove('hidden');
|
|
106
109
|
}
|
|
107
110
|
else {
|
|
@@ -112,115 +115,65 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
112
115
|
* Filter options for combobox based on input query
|
|
113
116
|
*/
|
|
114
117
|
KTSelectCombobox.prototype._filterOptionsForCombobox = function (query) {
|
|
115
|
-
|
|
116
|
-
this._select.
|
|
118
|
+
var options = Array.from(this._select.getOptionsElement());
|
|
119
|
+
var config = this._select.getConfig();
|
|
120
|
+
var dropdownElement = this._select.getDropdownElement();
|
|
121
|
+
filterOptions(options, query, config, dropdownElement);
|
|
122
|
+
// After filtering, focusManager in KTSelectSearch (if search is also enabled there)
|
|
123
|
+
// or the main FocusManager should adjust focus if needed.
|
|
124
|
+
// For combobox, this filtering is the primary search mechanism.
|
|
125
|
+
// We might need to tell select's focus manager to focus first option.
|
|
126
|
+
this._select._focusManager.focusFirst(); // Consider if this is always right
|
|
117
127
|
};
|
|
118
128
|
/**
|
|
119
|
-
*
|
|
129
|
+
* Updates the combobox display (input field or values container) based on selection.
|
|
120
130
|
*/
|
|
121
|
-
KTSelectCombobox.prototype.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
// Prevent event propagation to stop bubbling to other handlers
|
|
125
|
-
event.stopPropagation();
|
|
126
|
-
// Handle clear with Escape when dropdown is closed
|
|
127
|
-
if (event.key === 'Escape' &&
|
|
128
|
-
!this._select._dropdownIsOpen &&
|
|
129
|
-
this._searchInputElement.value !== '') {
|
|
130
|
-
event.preventDefault();
|
|
131
|
-
this._searchInputElement.value = '';
|
|
132
|
-
this._toggleClearButtonVisibility('');
|
|
133
|
-
this._select.clearSelection();
|
|
131
|
+
KTSelectCombobox.prototype.updateDisplay = function (selectedOptions) {
|
|
132
|
+
var _this = this;
|
|
133
|
+
if (!this._searchInputElement)
|
|
134
134
|
return;
|
|
135
|
+
// Always clear the values container first if it exists
|
|
136
|
+
if (this._valuesContainerElement) {
|
|
137
|
+
this._valuesContainerElement.innerHTML = '';
|
|
135
138
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this._select.openDropdown();
|
|
144
|
-
event.preventDefault();
|
|
145
|
-
// If it's arrow keys, also move focus
|
|
146
|
-
if (event.key === 'ArrowDown') {
|
|
147
|
-
this._select._focusNextOption();
|
|
148
|
-
}
|
|
149
|
-
else if (event.key === 'ArrowUp') {
|
|
150
|
-
this._select._focusPreviousOption();
|
|
151
|
-
}
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
// Use the shared keyboard navigation handler
|
|
155
|
-
handleDropdownKeyNavigation(event, this._select, {
|
|
156
|
-
multiple: this._config.multiple,
|
|
157
|
-
closeOnSelect: this._config.closeOnSelect,
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
/**
|
|
161
|
-
* Update the combobox input value when an option is selected
|
|
162
|
-
*/
|
|
163
|
-
KTSelectCombobox.prototype.updateSelectedValue = function (selectedText) {
|
|
164
|
-
if (this._searchInputElement) {
|
|
165
|
-
// Extract just the text content if it contains HTML
|
|
166
|
-
var cleanText = selectedText;
|
|
167
|
-
// If the text might contain HTML (when description is present)
|
|
168
|
-
if (selectedText.includes('<') || selectedText.includes('>')) {
|
|
169
|
-
// Create a temporary element to extract just the text
|
|
170
|
-
var tempDiv = document.createElement('div');
|
|
171
|
-
tempDiv.innerHTML = selectedText;
|
|
172
|
-
// Find and use only the option-title text if available
|
|
173
|
-
var titleElement = tempDiv.querySelector('[data-kt-option-title]');
|
|
174
|
-
if (titleElement) {
|
|
175
|
-
cleanText = titleElement.textContent || selectedText;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
// Fallback to all text content if option-title not found
|
|
179
|
-
cleanText = tempDiv.textContent || selectedText;
|
|
139
|
+
if (this._config.tags && this._valuesContainerElement) { // Combobox + Tags
|
|
140
|
+
selectedOptions.forEach(function (value) {
|
|
141
|
+
// Ensure value is properly escaped for querySelector
|
|
142
|
+
var optionElement = _this._select.getElement().querySelector("option[value=\"".concat(CSS.escape(value), "\"]"));
|
|
143
|
+
if (optionElement) {
|
|
144
|
+
var tagElement = defaultTemplates.tag(optionElement, _this._config);
|
|
145
|
+
_this._valuesContainerElement.appendChild(tagElement);
|
|
180
146
|
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
this._searchInputElement.
|
|
184
|
-
// Show the clear button if there's a value
|
|
185
|
-
this._toggleClearButtonVisibility(cleanText);
|
|
186
|
-
// Trigger an input event to ensure any input-based listeners are notified
|
|
187
|
-
var inputEvent = new Event('input', { bubbles: true });
|
|
188
|
-
this._searchInputElement.dispatchEvent(inputEvent);
|
|
189
|
-
if (this._config.debug)
|
|
190
|
-
console.log('Combobox value updated to:', cleanText);
|
|
147
|
+
});
|
|
148
|
+
this._searchInputElement.value = ''; // Input field is for typing new searches
|
|
149
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
191
150
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
*/
|
|
197
|
-
KTSelectCombobox.prototype.resetInputValueToSelection = function () {
|
|
198
|
-
var _a, _b;
|
|
199
|
-
var selectedOptions = this._select.getSelectedOptions();
|
|
200
|
-
if (selectedOptions.length > 0) {
|
|
201
|
-
var selectedOption = Array.from(this._select.getOptionsElement()).find(function (opt) { return opt.dataset.value === selectedOptions[0]; });
|
|
202
|
-
if (selectedOption) {
|
|
203
|
-
// Find the option-title element to get just the title text
|
|
204
|
-
var titleElement = selectedOption.querySelector('[data-kt-option-title]');
|
|
205
|
-
var selectedText = '';
|
|
206
|
-
if (titleElement) {
|
|
207
|
-
// If it has a structured content with a title element
|
|
208
|
-
selectedText = ((_a = titleElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
// Fallback to the whole text content
|
|
212
|
-
selectedText = ((_b = selectedOption.textContent) === null || _b === void 0 ? void 0 : _b.trim()) || '';
|
|
213
|
-
}
|
|
214
|
-
this.updateSelectedValue(selectedText);
|
|
215
|
-
}
|
|
151
|
+
else if (this._config.displayTemplate && this._valuesContainerElement) { // Combobox + DisplayTemplate (no tags)
|
|
152
|
+
this._valuesContainerElement.innerHTML = this._select.renderDisplayTemplateForSelected(selectedOptions);
|
|
153
|
+
this._searchInputElement.value = ''; // Input field is for typing new searches
|
|
154
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
216
155
|
}
|
|
217
|
-
else {
|
|
218
|
-
//
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}
|
|
156
|
+
else if (this._config.multiple && this._valuesContainerElement) { // Combobox + Multiple (no tags, no display template)
|
|
157
|
+
// For simplicity, join text. A proper tag implementation would be more complex here.
|
|
158
|
+
this._valuesContainerElement.innerHTML = selectedOptions.map(function (value) {
|
|
159
|
+
var optionEl = _this._select.getElement().querySelector("option[value=\"".concat(CSS.escape(value), "\"]"));
|
|
160
|
+
return optionEl ? optionEl.textContent : '';
|
|
161
|
+
}).join(', '); // Basic comma separation
|
|
162
|
+
this._searchInputElement.value = '';
|
|
163
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
164
|
+
}
|
|
165
|
+
else if (!this._config.multiple && selectedOptions.length > 0) { // Single select combobox: display selected option's text in the input
|
|
166
|
+
var selectedValue = selectedOptions[0];
|
|
167
|
+
var optionElement = this._select.getElement().querySelector("option[value=\"".concat(CSS.escape(selectedValue), "\"]"));
|
|
168
|
+
this._searchInputElement.value = optionElement ? optionElement.textContent || '' : '';
|
|
169
|
+
// placeholder is implicitly handled by input value for single select
|
|
170
|
+
}
|
|
171
|
+
else { // No selection or not fitting above categories (e.g. single select, no items)
|
|
172
|
+
this._searchInputElement.value = '';
|
|
173
|
+
this._searchInputElement.placeholder = this._config.placeholder || 'Select...';
|
|
174
|
+
// _valuesContainerElement is already cleared if it exists
|
|
223
175
|
}
|
|
176
|
+
this._toggleClearButtonVisibility(this._searchInputElement.value);
|
|
224
177
|
};
|
|
225
178
|
/**
|
|
226
179
|
* 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,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/select/combobox.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,10 +41,6 @@ export var DefaultConfig = {
|
|
|
41
41
|
// Field Mapping
|
|
42
42
|
dataValueField: null, // Property in the option object that contains the value (default: 'id')
|
|
43
43
|
dataFieldText: null, // Property in the option object that contains the text (default: 'title')
|
|
44
|
-
dataFieldDescription: null, // Property in the option object that contains the description
|
|
45
|
-
dataFieldIcon: null, // Property in the option object that contains the icon
|
|
46
|
-
dataFieldIconWidth: null, // Property in the option object that contains the icon width
|
|
47
|
-
dataFieldIconHeight: null, // Property in the option object that contains the icon height
|
|
48
44
|
// Search Configuration
|
|
49
45
|
searchParam: '', // Query parameter for API search requests
|
|
50
46
|
searchDebounce: 300, // Debounce delay for search (in ms)
|
|
@@ -57,10 +53,8 @@ export var DefaultConfig = {
|
|
|
57
53
|
// Selection Behavior
|
|
58
54
|
multiple: false, // Enable/disable multi-select
|
|
59
55
|
maxSelections: null, // Maximum number of selections allowed in multi-select mode (null for unlimited)
|
|
60
|
-
closeOnSelect: true, // Close the dropdown after selecting an option (single-select only)
|
|
61
56
|
disabled: false, // Disable the select component
|
|
62
57
|
isRequired: false, // Make selection required
|
|
63
|
-
mode: null, // Select mode: tags or combobox
|
|
64
58
|
// Search Functionality
|
|
65
59
|
enableSearch: false, // Enable/disable search functionality within the dropdown
|
|
66
60
|
searchPlaceholder: 'Search...', // Placeholder text for the search input
|
|
@@ -68,7 +62,6 @@ export var DefaultConfig = {
|
|
|
68
62
|
searchMinLength: 0, // Minimum characters required to trigger search
|
|
69
63
|
searchMaxItems: 50, // Maximum number of search results to display
|
|
70
64
|
searchNotFoundText: 'No results found', // Text to display when no search results are found
|
|
71
|
-
searchHighlight: true, // Highlight matching search terms within the options
|
|
72
65
|
clearSearchOnClose: true, // Clear search input when dropdown closes
|
|
73
66
|
// Multi-Select Display
|
|
74
67
|
selectAllText: 'Select all', // Text for the "Select All" option (if implemented)
|
|
@@ -84,11 +77,8 @@ export var DefaultConfig = {
|
|
|
84
77
|
dropdownPreventOverflow: false,
|
|
85
78
|
dropdownStrategy: null,
|
|
86
79
|
dropdownWidth: null, // Custom width for dropdown (e.g., '300px'), null to match toggle element width
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
hoverClass: 'hovered',
|
|
90
|
-
bgClass: 'bg-blue-50',
|
|
91
|
-
fontClass: 'font-medium',
|
|
80
|
+
// New Config
|
|
81
|
+
dropdownTemplate: '',
|
|
92
82
|
};
|
|
93
83
|
var KTSelectState = /** @class */ (function () {
|
|
94
84
|
function KTSelectState(config) {
|
|
@@ -96,7 +86,7 @@ var KTSelectState = /** @class */ (function () {
|
|
|
96
86
|
this._config = this._initDefaultConfig(config);
|
|
97
87
|
}
|
|
98
88
|
KTSelectState.prototype._initDefaultConfig = function (config) {
|
|
99
|
-
return __assign(__assign({}, DefaultConfig), config);
|
|
89
|
+
return __assign(__assign(__assign({}, DefaultConfig), config), config.config);
|
|
100
90
|
};
|
|
101
91
|
KTSelectState.prototype.setItems = function (items, query) {
|
|
102
92
|
var _this = this;
|
|
@@ -216,8 +206,4 @@ var KTSelectState = /** @class */ (function () {
|
|
|
216
206
|
return KTSelectState;
|
|
217
207
|
}());
|
|
218
208
|
export { KTSelectState };
|
|
219
|
-
export var SelectOptionDefaultConfig = {
|
|
220
|
-
description: '',
|
|
221
|
-
icon: null,
|
|
222
|
-
};
|
|
223
209
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/components/select/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;AAIH,MAAM,CAAC,IAAM,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":"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"}
|