@keenthemes/ktui 1.0.12 → 1.0.14
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 +738 -700
- package/dist/ktui.min.js +1 -1
- package/dist/ktui.min.js.map +1 -1
- package/dist/styles.css +5824 -0
- package/examples/select/avatar.html +47 -0
- package/examples/select/basic-usage.html +10 -14
- package/examples/select/{test.html → combobox-icons_.html} +13 -48
- package/examples/select/country.html +43 -0
- package/examples/select/description.html +25 -41
- package/examples/select/disable-option.html +10 -16
- package/examples/select/disable-select.html +7 -6
- package/examples/select/icon-multiple.html +23 -31
- package/examples/select/icon.html +20 -30
- package/examples/select/max-selection.html +8 -9
- package/examples/select/modal.html +16 -17
- package/examples/select/multiple.html +11 -13
- package/examples/select/placeholder.html +9 -12
- package/examples/select/search.html +30 -22
- package/examples/select/sizes.html +94 -0
- package/examples/select/template-customization.html +0 -3
- package/lib/cjs/components/component.js +1 -1
- package/lib/cjs/components/component.js.map +1 -1
- package/lib/cjs/components/datatable/datatable.js +14 -11
- package/lib/cjs/components/datatable/datatable.js.map +1 -1
- package/lib/cjs/components/select/combobox.js +96 -61
- package/lib/cjs/components/select/combobox.js.map +1 -1
- package/lib/cjs/components/select/config.js +13 -8
- package/lib/cjs/components/select/config.js.map +1 -1
- package/lib/cjs/components/select/dropdown.js +32 -96
- package/lib/cjs/components/select/dropdown.js.map +1 -1
- package/lib/cjs/components/select/option.js +53 -20
- package/lib/cjs/components/select/option.js.map +1 -1
- package/lib/cjs/components/select/search.js +146 -97
- package/lib/cjs/components/select/search.js.map +1 -1
- package/lib/cjs/components/select/select.js +219 -118
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/select/tags.js +0 -26
- package/lib/cjs/components/select/tags.js.map +1 -1
- package/lib/cjs/components/select/templates.js +130 -105
- package/lib/cjs/components/select/templates.js.map +1 -1
- package/lib/cjs/components/select/utils.js +33 -132
- package/lib/cjs/components/select/utils.js.map +1 -1
- package/lib/cjs/helpers/dom.js +0 -24
- package/lib/cjs/helpers/dom.js.map +1 -1
- package/lib/esm/components/component.js +1 -1
- package/lib/esm/components/component.js.map +1 -1
- package/lib/esm/components/datatable/datatable.js +14 -11
- package/lib/esm/components/datatable/datatable.js.map +1 -1
- package/lib/esm/components/select/combobox.js +96 -61
- package/lib/esm/components/select/combobox.js.map +1 -1
- package/lib/esm/components/select/config.js +13 -8
- package/lib/esm/components/select/config.js.map +1 -1
- package/lib/esm/components/select/dropdown.js +32 -96
- package/lib/esm/components/select/dropdown.js.map +1 -1
- package/lib/esm/components/select/option.js +53 -20
- package/lib/esm/components/select/option.js.map +1 -1
- package/lib/esm/components/select/search.js +146 -97
- package/lib/esm/components/select/search.js.map +1 -1
- package/lib/esm/components/select/select.js +219 -118
- package/lib/esm/components/select/select.js.map +1 -1
- package/lib/esm/components/select/tags.js +0 -26
- package/lib/esm/components/select/tags.js.map +1 -1
- package/lib/esm/components/select/templates.js +130 -105
- package/lib/esm/components/select/templates.js.map +1 -1
- package/lib/esm/components/select/utils.js +32 -130
- package/lib/esm/components/select/utils.js.map +1 -1
- package/lib/esm/helpers/dom.js +0 -24
- package/lib/esm/helpers/dom.js.map +1 -1
- package/package.json +9 -6
- package/src/components/component.ts +0 -4
- package/src/components/datatable/datatable.ts +14 -11
- package/src/components/input/input.css +1 -1
- package/src/components/scrollable/scrollable.css +9 -5
- package/src/components/select/combobox.ts +98 -87
- package/src/components/select/config.ts +16 -13
- package/src/components/select/dropdown.ts +43 -108
- package/src/components/select/option.ts +44 -25
- package/src/components/select/search.ts +158 -117
- package/src/components/select/select.css +99 -27
- package/src/components/select/select.ts +236 -128
- package/src/components/select/tags.ts +1 -27
- package/src/components/select/templates.ts +191 -132
- package/src/components/select/utils.ts +30 -166
- package/src/components/toast/toast.css +1 -1
- package/src/helpers/dom.ts +0 -30
- package/webpack.config.js +6 -1
- package/examples/select/combobox-icons.html +0 -58
- package/examples/select/icon-description.html +0 -56
- /package/examples/select/{combobox.html → combobox_.html} +0 -0
- /package/examples/select/{remote-data.html → remote-data_.html} +0 -0
- /package/examples/select/{tags-icons.html → tags-icons_.html} +0 -0
- /package/examples/select/{tags-selected.html → tags-selected_.html} +0 -0
- /package/examples/select/{tags.html → tags_.html} +0 -0
|
@@ -6,52 +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) {
|
|
14
15
|
var _this = this;
|
|
15
|
-
var _a;
|
|
16
16
|
this._select = select;
|
|
17
17
|
this._config = select.getConfig();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
-
displayElement.tagName === 'INPUT'
|
|
23
|
-
? displayElement
|
|
24
|
-
: displayElement.querySelector('input[data-kt-select-search]');
|
|
25
|
-
// Find the clear button robustly
|
|
26
|
-
var clearButtonContainer = null;
|
|
27
|
-
if (displayElement.tagName === 'DIV') {
|
|
28
|
-
clearButtonContainer = displayElement;
|
|
29
|
-
}
|
|
30
|
-
else if (displayElement.tagName === 'INPUT') {
|
|
31
|
-
clearButtonContainer = displayElement.parentElement;
|
|
32
|
-
}
|
|
33
|
-
this._clearButtonElement = clearButtonContainer
|
|
34
|
-
? clearButtonContainer.querySelector('[data-kt-select-clear-button]')
|
|
35
|
-
: null;
|
|
36
|
-
this._valuesContainerElement = (_a = displayElement === null || displayElement === void 0 ? void 0 : displayElement.closest('[data-kt-select-combobox]')) === null || _a === void 0 ? void 0 : _a.querySelector('[data-kt-select-combobox-values]');
|
|
37
|
-
// Create bound handler references to allow proper cleanup
|
|
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]');
|
|
38
22
|
this._boundInputHandler = this._handleComboboxInput.bind(this);
|
|
39
23
|
this._boundClearHandler = this._handleClearButtonClick.bind(this);
|
|
40
|
-
// Attach event listeners
|
|
41
24
|
this._attachEventListeners();
|
|
42
|
-
// Reset combobox search state when dropdown closes
|
|
43
25
|
this._select.getElement().addEventListener('dropdown.close', function () {
|
|
44
|
-
|
|
45
|
-
//
|
|
46
|
-
_this.
|
|
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.
|
|
47
37
|
});
|
|
48
|
-
// When selection changes, update the input value to the selected option's text
|
|
49
|
-
// this._select.getElement().addEventListener('change', () => {
|
|
50
|
-
// // Only update the input value, do not reset the filter or show all options
|
|
51
|
-
// const selectedValues = this._select.getSelectedOptions();
|
|
52
|
-
// const content = this._select.renderDisplayTemplateForSelected(selectedValues);
|
|
53
|
-
// this._valuesContainerElement?.append(stringToElement(content));
|
|
54
|
-
// });
|
|
55
38
|
if (this._config.debug)
|
|
56
39
|
console.log('KTSelectCombobox initialized');
|
|
57
40
|
}
|
|
@@ -59,16 +42,13 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
59
42
|
* Attach event listeners specific to combobox
|
|
60
43
|
*/
|
|
61
44
|
KTSelectCombobox.prototype._attachEventListeners = function () {
|
|
62
|
-
// First remove any existing listeners to prevent duplicates
|
|
63
45
|
this._removeEventListeners();
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
46
|
+
if (this._searchInputElement) { // Ensure element exists
|
|
47
|
+
this._searchInputElement.addEventListener('input', this._boundInputHandler);
|
|
48
|
+
}
|
|
67
49
|
if (this._clearButtonElement) {
|
|
68
50
|
this._clearButtonElement.addEventListener('click', this._boundClearHandler);
|
|
69
51
|
}
|
|
70
|
-
if (this._config.debug)
|
|
71
|
-
console.log('Combobox event listeners attached to:', this._searchInputElement);
|
|
72
52
|
};
|
|
73
53
|
/**
|
|
74
54
|
* Remove event listeners to prevent memory leaks or duplicates
|
|
@@ -86,16 +66,21 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
86
66
|
*/
|
|
87
67
|
KTSelectCombobox.prototype._handleComboboxInput = function (event) {
|
|
88
68
|
var inputElement = event.target;
|
|
89
|
-
var query = inputElement.value
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// Toggle clear button visibility based on input value
|
|
93
|
-
// this._toggleClearButtonVisibility(query);
|
|
94
|
-
// If dropdown isn't open, open it when user starts typing
|
|
95
|
-
if (!this._select._dropdownIsOpen) {
|
|
69
|
+
var query = inputElement.value;
|
|
70
|
+
this._toggleClearButtonVisibility(query);
|
|
71
|
+
if (!this._select.isDropdownOpen()) { // Use public getter
|
|
96
72
|
this._select.openDropdown();
|
|
97
73
|
}
|
|
98
|
-
//
|
|
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
|
+
}
|
|
99
84
|
this._filterOptionsForCombobox(query);
|
|
100
85
|
};
|
|
101
86
|
/**
|
|
@@ -104,29 +89,25 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
104
89
|
KTSelectCombobox.prototype._handleClearButtonClick = function (event) {
|
|
105
90
|
event.preventDefault();
|
|
106
91
|
event.stopPropagation();
|
|
107
|
-
// Clear the input
|
|
108
92
|
this._searchInputElement.value = '';
|
|
109
|
-
|
|
110
|
-
// this._toggleClearButtonVisibility('');
|
|
111
|
-
// Show all options and open dropdown
|
|
112
|
-
this._select.showAllOptions();
|
|
113
|
-
this._select.openDropdown();
|
|
114
|
-
// Clear the current selection
|
|
115
|
-
this._select.clearSelection();
|
|
116
|
-
// Clear the combobox values container if present (for displayTemplate)
|
|
93
|
+
this._toggleClearButtonVisibility('');
|
|
117
94
|
if (this._valuesContainerElement) {
|
|
118
95
|
this._valuesContainerElement.innerHTML = '';
|
|
119
96
|
}
|
|
120
|
-
//
|
|
97
|
+
this._select.clearSelection(); // This will also trigger updateSelectedOptionDisplay
|
|
98
|
+
this._select.showAllOptions(); // Show all options after clearing
|
|
99
|
+
this._select.openDropdown();
|
|
121
100
|
this._searchInputElement.focus();
|
|
122
101
|
};
|
|
123
102
|
/**
|
|
124
|
-
* 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).
|
|
125
105
|
*/
|
|
126
|
-
KTSelectCombobox.prototype._toggleClearButtonVisibility = function (
|
|
106
|
+
KTSelectCombobox.prototype._toggleClearButtonVisibility = function (inputValue) {
|
|
127
107
|
if (!this._clearButtonElement)
|
|
128
108
|
return;
|
|
129
|
-
|
|
109
|
+
var hasSelectedItems = this._select.getSelectedOptions().length > 0;
|
|
110
|
+
if (inputValue.length > 0 || (hasSelectedItems && (this._config.multiple || this._config.displayTemplate))) {
|
|
130
111
|
this._clearButtonElement.classList.remove('hidden');
|
|
131
112
|
}
|
|
132
113
|
else {
|
|
@@ -137,11 +118,65 @@ var KTSelectCombobox = /** @class */ (function () {
|
|
|
137
118
|
* Filter options for combobox based on input query
|
|
138
119
|
*/
|
|
139
120
|
KTSelectCombobox.prototype._filterOptionsForCombobox = function (query) {
|
|
140
|
-
// Use the same filter logic as KTSelectSearch
|
|
141
121
|
var options = Array.from(this._select.getOptionsElement());
|
|
142
122
|
var config = this._select.getConfig();
|
|
143
123
|
var dropdownElement = this._select.getDropdownElement();
|
|
144
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
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Updates the combobox display (input field or values container) based on selection.
|
|
133
|
+
*/
|
|
134
|
+
KTSelectCombobox.prototype.updateDisplay = function (selectedOptions) {
|
|
135
|
+
var _this = this;
|
|
136
|
+
if (!this._searchInputElement)
|
|
137
|
+
return;
|
|
138
|
+
// Always clear the values container first if it exists
|
|
139
|
+
if (this._valuesContainerElement) {
|
|
140
|
+
this._valuesContainerElement.innerHTML = '';
|
|
141
|
+
}
|
|
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);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
this._searchInputElement.value = ''; // Input field is for typing new searches
|
|
152
|
+
this._searchInputElement.placeholder = selectedOptions.length > 0 ? '' : (this._config.placeholder || 'Select...');
|
|
153
|
+
}
|
|
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...');
|
|
158
|
+
}
|
|
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
|
|
178
|
+
}
|
|
179
|
+
this._toggleClearButtonVisibility(this._searchInputElement.value);
|
|
145
180
|
};
|
|
146
181
|
/**
|
|
147
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,iCAA+E;AAE/
|
|
1
|
+
{"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../../../src/components/select/combobox.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,9 +54,9 @@ exports.DefaultConfig = {
|
|
|
54
54
|
paginationLimitParam: 'limit', // Parameter name for items per page
|
|
55
55
|
paginationTotalParam: 'total', // Parameter name for total items
|
|
56
56
|
// Selection Behavior
|
|
57
|
+
allowClear: false, // Allow clearing the selection (if true, an empty value can be set)
|
|
57
58
|
multiple: false, // Enable/disable multi-select
|
|
58
59
|
maxSelections: null, // Maximum number of selections allowed in multi-select mode (null for unlimited)
|
|
59
|
-
closeOnSelect: false, // Close the dropdown after selecting an option (single-select only)
|
|
60
60
|
disabled: false, // Disable the select component
|
|
61
61
|
isRequired: false, // Make selection required
|
|
62
62
|
// Search Functionality
|
|
@@ -66,7 +66,6 @@ exports.DefaultConfig = {
|
|
|
66
66
|
searchMinLength: 0, // Minimum characters required to trigger search
|
|
67
67
|
searchMaxItems: 50, // Maximum number of search results to display
|
|
68
68
|
searchNotFoundText: 'No results found', // Text to display when no search results are found
|
|
69
|
-
searchHighlight: true, // Highlight matching search terms within the options
|
|
70
69
|
clearSearchOnClose: true, // Clear search input when dropdown closes
|
|
71
70
|
// Multi-Select Display
|
|
72
71
|
selectAllText: 'Select all', // Text for the "Select All" option (if implemented)
|
|
@@ -91,7 +90,7 @@ var KTSelectState = /** @class */ (function () {
|
|
|
91
90
|
this._config = this._initDefaultConfig(config);
|
|
92
91
|
}
|
|
93
92
|
KTSelectState.prototype._initDefaultConfig = function (config) {
|
|
94
|
-
return __assign(__assign({}, exports.DefaultConfig), config);
|
|
93
|
+
return __assign(__assign(__assign({}, exports.DefaultConfig), config), config.config);
|
|
95
94
|
};
|
|
96
95
|
KTSelectState.prototype.setItems = function (items, query) {
|
|
97
96
|
var _this = this;
|
|
@@ -160,11 +159,17 @@ var KTSelectState = /** @class */ (function () {
|
|
|
160
159
|
return this._config.items || [];
|
|
161
160
|
};
|
|
162
161
|
KTSelectState.prototype.setItemsFromOptions = function (options) {
|
|
163
|
-
this._config.items = options.map(function (option) {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
162
|
+
this._config.items = options.map(function (option) {
|
|
163
|
+
var item = {
|
|
164
|
+
id: option.value,
|
|
165
|
+
title: option.textContent || option.value, // Use value as fallback for title
|
|
166
|
+
// 'selected' property will be definitively set by _preSelectOptions
|
|
167
|
+
disabled: option.disabled,
|
|
168
|
+
};
|
|
169
|
+
return item;
|
|
170
|
+
});
|
|
171
|
+
// The 'selected' status of these items and the overall component selection state
|
|
172
|
+
// are now fully managed by _preSelectOptions in KTSelect during initialization.
|
|
168
173
|
};
|
|
169
174
|
KTSelectState.prototype.getConfig = function () {
|
|
170
175
|
return this._config;
|
|
@@ -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;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,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/components/select/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ var utils_1 = require("./utils");
|
|
|
30
30
|
*
|
|
31
31
|
* A specialized dropdown implementation for the KTSelect component.
|
|
32
32
|
* This module handles the dropdown functionality for the select component,
|
|
33
|
-
* including positioning
|
|
33
|
+
* including positioning and showing/hiding.
|
|
34
34
|
*/
|
|
35
35
|
var KTSelectDropdown = /** @class */ (function (_super) {
|
|
36
36
|
__extends(KTSelectDropdown, _super);
|
|
@@ -41,7 +41,7 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
41
41
|
* @param dropdownElement The dropdown content element
|
|
42
42
|
* @param config The configuration options
|
|
43
43
|
*/
|
|
44
|
-
function KTSelectDropdown(element, toggleElement, dropdownElement, config) {
|
|
44
|
+
function KTSelectDropdown(element, toggleElement, dropdownElement, config, ktSelectInstance) {
|
|
45
45
|
var _this = _super.call(this) || this;
|
|
46
46
|
_this._name = 'select-dropdown';
|
|
47
47
|
// State
|
|
@@ -52,6 +52,7 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
52
52
|
_this._toggleElement = toggleElement;
|
|
53
53
|
_this._dropdownElement = dropdownElement;
|
|
54
54
|
_this._config = config;
|
|
55
|
+
_this._ktSelectInstance = ktSelectInstance; // Assign instance
|
|
55
56
|
_this._eventManager = new utils_1.EventManager();
|
|
56
57
|
_this._focusManager = new utils_1.FocusManager(dropdownElement, '[data-kt-select-option]', config);
|
|
57
58
|
_this._setupEventListeners();
|
|
@@ -72,7 +73,18 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
72
73
|
KTSelectDropdown.prototype._handleToggleClick = function (event) {
|
|
73
74
|
event.preventDefault();
|
|
74
75
|
event.stopPropagation();
|
|
75
|
-
this.
|
|
76
|
+
if (this._config.disabled) {
|
|
77
|
+
if (this._config.debug)
|
|
78
|
+
console.log('KTSelectDropdown._handleToggleClick: select is disabled');
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
// Call KTSelect's methods
|
|
82
|
+
if (this._ktSelectInstance.isDropdownOpen()) {
|
|
83
|
+
this._ktSelectInstance.closeDropdown();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
this._ktSelectInstance.openDropdown();
|
|
87
|
+
}
|
|
76
88
|
};
|
|
77
89
|
/**
|
|
78
90
|
* Handle clicks outside the dropdown
|
|
@@ -83,7 +95,8 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
83
95
|
var target = event.target;
|
|
84
96
|
if (!this._element.contains(target) &&
|
|
85
97
|
!this._dropdownElement.contains(target)) {
|
|
86
|
-
|
|
98
|
+
// Call KTSelect's closeDropdown method
|
|
99
|
+
this._ktSelectInstance.closeDropdown();
|
|
87
100
|
}
|
|
88
101
|
};
|
|
89
102
|
/**
|
|
@@ -185,29 +198,6 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
185
198
|
this._popperInstance.update();
|
|
186
199
|
}
|
|
187
200
|
};
|
|
188
|
-
/**
|
|
189
|
-
* Toggle the dropdown
|
|
190
|
-
*/
|
|
191
|
-
KTSelectDropdown.prototype.toggle = function () {
|
|
192
|
-
if (this._config.disabled) {
|
|
193
|
-
if (this._config.debug)
|
|
194
|
-
console.log('KTSelectDropdown.toggle: select is disabled, not toggling');
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
if (this._config.debug)
|
|
198
|
-
console.log('KTSelectDropdown.toggle called - isOpen:', this._isOpen);
|
|
199
|
-
if (this._isTransitioning) {
|
|
200
|
-
if (this._config.debug)
|
|
201
|
-
console.log('KTSelectDropdown.toggle - ignoring during transition');
|
|
202
|
-
return;
|
|
203
|
-
}
|
|
204
|
-
if (this._isOpen) {
|
|
205
|
-
this.close();
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
this.open();
|
|
209
|
-
}
|
|
210
|
-
};
|
|
211
201
|
/**
|
|
212
202
|
* Open the dropdown
|
|
213
203
|
*/
|
|
@@ -220,71 +210,41 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
220
210
|
}
|
|
221
211
|
if (this._isOpen || this._isTransitioning)
|
|
222
212
|
return;
|
|
223
|
-
// Fire before show event
|
|
224
|
-
var beforeShowEvent = new CustomEvent('kt.select.dropdown.show', {
|
|
225
|
-
bubbles: true,
|
|
226
|
-
cancelable: true,
|
|
227
|
-
});
|
|
228
|
-
this._element.dispatchEvent(beforeShowEvent);
|
|
229
|
-
if (beforeShowEvent.defaultPrevented)
|
|
230
|
-
return;
|
|
231
213
|
// Begin opening transition
|
|
232
214
|
this._isTransitioning = true;
|
|
233
|
-
// Set initial styles
|
|
215
|
+
// Set initial styles
|
|
234
216
|
this._dropdownElement.classList.remove('hidden');
|
|
235
217
|
this._dropdownElement.style.opacity = '0';
|
|
236
218
|
// Set dropdown width
|
|
237
219
|
this._setDropdownWidth();
|
|
238
|
-
//
|
|
220
|
+
// Reflow
|
|
239
221
|
dom_1.default.reflow(this._dropdownElement);
|
|
240
|
-
// Apply z-index
|
|
222
|
+
// Apply z-index
|
|
241
223
|
if (this._config.dropdownZindex) {
|
|
242
224
|
this._dropdownElement.style.zIndex =
|
|
243
225
|
this._config.dropdownZindex.toString();
|
|
244
226
|
}
|
|
245
227
|
else {
|
|
246
|
-
// Auto-calculate z-index
|
|
247
228
|
var parentZindex = dom_1.default.getHighestZindex(this._element);
|
|
248
229
|
if (parentZindex) {
|
|
249
230
|
this._dropdownElement.style.zIndex = (parentZindex + 1).toString();
|
|
250
231
|
}
|
|
251
232
|
}
|
|
252
|
-
// Initialize popper
|
|
233
|
+
// Initialize popper
|
|
253
234
|
this._initPopper();
|
|
254
|
-
// Add active classes
|
|
235
|
+
// Add active classes for visual state
|
|
255
236
|
this._dropdownElement.classList.add('open');
|
|
256
237
|
this._toggleElement.classList.add('active');
|
|
257
|
-
|
|
238
|
+
// ARIA attributes will be handled by KTSelect
|
|
258
239
|
// Start transition
|
|
259
240
|
this._dropdownElement.style.opacity = '1';
|
|
260
241
|
// Handle transition end
|
|
261
242
|
dom_1.default.transitionEnd(this._dropdownElement, function () {
|
|
262
243
|
_this._isTransitioning = false;
|
|
263
244
|
_this._isOpen = true;
|
|
264
|
-
// Focus
|
|
265
|
-
if (_this._config.enableSearch) {
|
|
266
|
-
var searchInput = _this._dropdownElement.querySelector('input[type="search"]');
|
|
267
|
-
if (searchInput) {
|
|
268
|
-
searchInput.focus();
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
// Fire after show event
|
|
272
|
-
var afterShowEvent = new CustomEvent('kt.select.dropdown.shown', {
|
|
273
|
-
bubbles: true,
|
|
274
|
-
});
|
|
275
|
-
_this._element.dispatchEvent(afterShowEvent);
|
|
245
|
+
// Focus and events will be handled by KTSelect
|
|
276
246
|
});
|
|
277
247
|
};
|
|
278
|
-
/**
|
|
279
|
-
* Focus the first option in the dropdown
|
|
280
|
-
*/
|
|
281
|
-
KTSelectDropdown.prototype._focusFirstOption = function () {
|
|
282
|
-
var firstOption = this._focusManager.getVisibleOptions()[0];
|
|
283
|
-
if (firstOption) {
|
|
284
|
-
this._focusManager.applyFocus(firstOption);
|
|
285
|
-
this._focusManager.scrollIntoView(firstOption);
|
|
286
|
-
}
|
|
287
|
-
};
|
|
288
248
|
/**
|
|
289
249
|
* Close the dropdown
|
|
290
250
|
*/
|
|
@@ -297,34 +257,19 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
297
257
|
console.log('KTSelectDropdown.close - early return: dropdown not open or is transitioning');
|
|
298
258
|
return;
|
|
299
259
|
}
|
|
300
|
-
//
|
|
301
|
-
var beforeHideEvent = new CustomEvent('kt.select.dropdown.hide', {
|
|
302
|
-
bubbles: true,
|
|
303
|
-
cancelable: true,
|
|
304
|
-
});
|
|
305
|
-
this._element.dispatchEvent(beforeHideEvent);
|
|
306
|
-
if (beforeHideEvent.defaultPrevented) {
|
|
307
|
-
if (this._config.debug)
|
|
308
|
-
console.log('KTSelectDropdown.close - canceling due to defaultPrevented on beforeHideEvent');
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
260
|
+
// Events and ARIA will be handled by KTSelect
|
|
311
261
|
if (this._config.debug)
|
|
312
262
|
console.log('KTSelectDropdown.close - starting transition');
|
|
313
|
-
// Begin closing transition
|
|
314
263
|
this._isTransitioning = true;
|
|
315
|
-
// Start transition
|
|
316
264
|
this._dropdownElement.style.opacity = '0';
|
|
317
|
-
// Use a combination of transition end and a fallback timer
|
|
318
265
|
var transitionComplete = false;
|
|
319
|
-
// Set a fixed-duration fallback in case the transition event doesn't fire
|
|
320
266
|
var fallbackTimer = setTimeout(function () {
|
|
321
267
|
if (!transitionComplete) {
|
|
322
268
|
if (_this._config.debug)
|
|
323
269
|
console.log('KTSelectDropdown.close - fallback timer triggered');
|
|
324
270
|
completeTransition();
|
|
325
271
|
}
|
|
326
|
-
}, 300);
|
|
327
|
-
// Setup the transition end function
|
|
272
|
+
}, 300);
|
|
328
273
|
var completeTransition = function () {
|
|
329
274
|
if (transitionComplete)
|
|
330
275
|
return;
|
|
@@ -332,30 +277,21 @@ var KTSelectDropdown = /** @class */ (function (_super) {
|
|
|
332
277
|
clearTimeout(fallbackTimer);
|
|
333
278
|
if (_this._config.debug)
|
|
334
279
|
console.log('KTSelectDropdown.close - transition ended');
|
|
335
|
-
// Remove active classes
|
|
336
280
|
_this._dropdownElement.classList.add('hidden');
|
|
337
281
|
_this._dropdownElement.classList.remove('open');
|
|
338
282
|
_this._toggleElement.classList.remove('active');
|
|
339
|
-
|
|
340
|
-
// Reset styles - replace display: none with adding hidden class
|
|
341
|
-
_this._dropdownElement.classList.add('hidden');
|
|
342
|
-
_this._dropdownElement.style.opacity = '';
|
|
343
|
-
_this._dropdownElement.style.zIndex = '';
|
|
344
|
-
// Destroy popper
|
|
283
|
+
// ARIA attributes will be handled by KTSelect
|
|
345
284
|
_this._destroyPopper();
|
|
346
|
-
// Update state
|
|
347
285
|
_this._isTransitioning = false;
|
|
348
286
|
_this._isOpen = false;
|
|
349
|
-
//
|
|
350
|
-
var afterHideEvent = new CustomEvent('kt.select.dropdown.hidden', {
|
|
351
|
-
bubbles: true,
|
|
352
|
-
});
|
|
353
|
-
_this._element.dispatchEvent(afterHideEvent);
|
|
287
|
+
// Events will be handled by KTSelect
|
|
354
288
|
if (_this._config.debug)
|
|
355
|
-
console.log('KTSelectDropdown.close -
|
|
289
|
+
console.log('KTSelectDropdown.close - visual part complete');
|
|
356
290
|
};
|
|
357
|
-
// Handle transition end via the utility but also have the fallback
|
|
358
291
|
dom_1.default.transitionEnd(this._dropdownElement, completeTransition);
|
|
292
|
+
if (dom_1.default.getCssProp(this._dropdownElement, 'transition-duration') === '0s') {
|
|
293
|
+
completeTransition();
|
|
294
|
+
}
|
|
359
295
|
};
|
|
360
296
|
/**
|
|
361
297
|
* Check if dropdown is open
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../../src/components/select/dropdown.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;AAEH,uCAIwB;AACxB,yCAAsC;AACtC,2CAAwC;AACxC,0CAAuC;AAEvC,iCAAqD;
|
|
1
|
+
{"version":3,"file":"dropdown.js","sourceRoot":"","sources":["../../../../src/components/select/dropdown.ts"],"names":[],"mappings":"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"}
|