tom-select-rails 2.4.3 → 2.5.1
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.
- checksums.yaml +4 -4
- data/README.md +4 -2
- data/Rakefile +0 -2
- data/config/importmap.rb +2 -0
- data/lib/tom-select-rails/engine.rb +5 -2
- data/lib/tom-select-rails/version.rb +1 -3
- data/lib/tom-select-rails.rb +0 -2
- data/vendor/assets/javascripts/tom-select-rails/cjs/defaults.d.ts +1 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/defaults.js +1 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/defaults.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/plugin.js +4 -1
- data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/clear_button/types.d.ts +2 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_input/plugin.js +11 -0
- data/vendor/assets/javascripts/tom-select-rails/cjs/plugins/dropdown_input/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.js +36 -12
- data/vendor/assets/javascripts/tom-select-rails/cjs/tom-select.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/cjs/types/settings.d.ts +2 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/defaults.d.ts +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/defaults.js +1 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/defaults.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/caret_position/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/change_listener/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/checkbox_options/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.js +5 -2
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/clear_button/types.d.ts +2 -0
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/drag_drop/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_header/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.js +11 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/dropdown_input/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/input_autogrow/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_active_items/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/no_backspace_delete/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/optgroup_columns/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/remove_button/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/restore_on_backspace/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/plugins/virtual_scroll/plugin.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.js +36 -12
- data/vendor/assets/javascripts/tom-select-rails/esm/tom-select.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/esm/types/settings.d.ts +2 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/caret_position.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/caret_position.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/change_listener.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/change_listener.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/checkbox_options.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/checkbox_options.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/clear_button.js +5 -2
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/clear_button.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/drag_drop.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/drag_drop.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_header.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_header.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_input.js +11 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/dropdown_input.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/input_autogrow.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/input_autogrow.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_active_items.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_active_items.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_backspace_delete.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/no_backspace_delete.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/optgroup_columns.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/optgroup_columns.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/remove_button.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/remove_button.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/restore_on_backspace.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/restore_on_backspace.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/virtual_scroll.js +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/plugins/virtual_scroll.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.js +38 -14
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.min.js +97 -98
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.base.min.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.js +52 -15
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.min.js +143 -141
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.complete.min.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.js +48 -14
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.min.js +119 -117
- data/vendor/assets/javascripts/tom-select-rails/js/tom-select.popular.min.js.map +1 -1
- data/vendor/assets/javascripts/tom-select-rails/tom-select.esm.js +3 -0
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.css +16 -5
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.min.css +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap4.min.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.css +25 -9
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.min.css +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.bootstrap5.min.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.css +8 -7
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.css +5 -4
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.min.css +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.default.min.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.min.css +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/css/tom-select.min.css.map +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/scss/_items.scss +1 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.bootstrap4.scss +5 -0
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.bootstrap5.scss +14 -2
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.default.scss +1 -1
- data/vendor/assets/stylesheets/tom-select-rails/scss/tom-select.scss +4 -4
- metadata +5 -35
- data/vendor/assets/javascripts/tom-select-rails/types/constants.d.ts +0 -12
- data/vendor/assets/javascripts/tom-select-rails/types/contrib/highlight.d.ts +0 -13
- data/vendor/assets/javascripts/tom-select-rails/types/contrib/microevent.d.ts +0 -20
- data/vendor/assets/javascripts/tom-select-rails/types/contrib/microplugin.d.ts +0 -71
- data/vendor/assets/javascripts/tom-select-rails/types/defaults.d.ts +0 -52
- data/vendor/assets/javascripts/tom-select-rails/types/getSettings.d.ts +0 -3
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/caret_position/plugin.d.ts +0 -16
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/change_listener/plugin.d.ts +0 -16
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/checkbox_options/plugin.d.ts +0 -17
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/checkbox_options/types.d.ts +0 -14
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/clear_button/plugin.d.ts +0 -17
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/clear_button/types.d.ts +0 -5
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/drag_drop/plugin.d.ts +0 -16
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_header/plugin.d.ts +0 -17
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_header/types.d.ts +0 -8
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/dropdown_input/plugin.d.ts +0 -16
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/input_autogrow/plugin.d.ts +0 -15
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/no_active_items/plugin.d.ts +0 -15
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/no_backspace_delete/plugin.d.ts +0 -15
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/optgroup_columns/plugin.d.ts +0 -16
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/remove_button/plugin.d.ts +0 -17
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/remove_button/types.d.ts +0 -6
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/restore_on_backspace/plugin.d.ts +0 -21
- data/vendor/assets/javascripts/tom-select-rails/types/plugins/virtual_scroll/plugin.d.ts +0 -16
- data/vendor/assets/javascripts/tom-select-rails/types/tom-select.complete.d.ts +0 -2
- data/vendor/assets/javascripts/tom-select-rails/types/tom-select.d.ts +0 -594
- data/vendor/assets/javascripts/tom-select-rails/types/tom-select.popular.d.ts +0 -2
- data/vendor/assets/javascripts/tom-select-rails/types/types/core.d.ts +0 -49
- data/vendor/assets/javascripts/tom-select-rails/types/types/index.d.ts +0 -2
- data/vendor/assets/javascripts/tom-select-rails/types/types/settings.d.ts +0 -79
- data/vendor/assets/javascripts/tom-select-rails/types/utils.d.ts +0 -95
- data/vendor/assets/javascripts/tom-select-rails/types/vanilla.d.ts +0 -76
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Tom Select v2.
|
|
2
|
+
* Tom Select v2.5.1
|
|
3
3
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -1502,6 +1502,7 @@
|
|
|
1502
1502
|
create: null,
|
|
1503
1503
|
createOnBlur: false,
|
|
1504
1504
|
createFilter: null,
|
|
1505
|
+
clearAfterSelect: false,
|
|
1505
1506
|
highlight: true,
|
|
1506
1507
|
openOnFocus: true,
|
|
1507
1508
|
shouldOpen: null,
|
|
@@ -1816,7 +1817,7 @@
|
|
|
1816
1817
|
control_input = getDom(settings.controlInput);
|
|
1817
1818
|
|
|
1818
1819
|
// set attributes
|
|
1819
|
-
var attrs = ['autocorrect', 'autocapitalize', 'autocomplete', 'spellcheck'];
|
|
1820
|
+
var attrs = ['autocorrect', 'autocapitalize', 'autocomplete', 'spellcheck', 'aria-label'];
|
|
1820
1821
|
iterate(attrs, attr => {
|
|
1821
1822
|
if (input.getAttribute(attr)) {
|
|
1822
1823
|
setAttr(control_input, {
|
|
@@ -1889,6 +1890,8 @@
|
|
|
1889
1890
|
});
|
|
1890
1891
|
}
|
|
1891
1892
|
wrapper.style.width = input.style.width;
|
|
1893
|
+
wrapper.style.minWidth = input.style.minWidth;
|
|
1894
|
+
wrapper.style.maxWidth = input.style.maxWidth;
|
|
1892
1895
|
if (self.plugins.names.length) {
|
|
1893
1896
|
const classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
|
|
1894
1897
|
addClasses([wrapper, dropdown], classes_plugins);
|
|
@@ -1985,10 +1988,19 @@
|
|
|
1985
1988
|
self.positionDropdown();
|
|
1986
1989
|
}
|
|
1987
1990
|
};
|
|
1991
|
+
const input_invalid = () => {
|
|
1992
|
+
if (self.isValid) {
|
|
1993
|
+
self.isValid = false;
|
|
1994
|
+
self.isInvalid = true;
|
|
1995
|
+
self.refreshState();
|
|
1996
|
+
}
|
|
1997
|
+
};
|
|
1998
|
+
addEvent(input, 'invalid', input_invalid);
|
|
1988
1999
|
addEvent(document, 'mousedown', doc_mousedown);
|
|
1989
2000
|
addEvent(window, 'scroll', win_scroll, passive_event);
|
|
1990
2001
|
addEvent(window, 'resize', win_scroll, passive_event);
|
|
1991
2002
|
this._destroy = () => {
|
|
2003
|
+
input.removeEventListener('invalid', input_invalid);
|
|
1992
2004
|
document.removeEventListener('mousedown', doc_mousedown);
|
|
1993
2005
|
window.removeEventListener('scroll', win_scroll);
|
|
1994
2006
|
window.removeEventListener('resize', win_scroll);
|
|
@@ -2007,14 +2019,6 @@
|
|
|
2007
2019
|
settings.items = [];
|
|
2008
2020
|
delete settings.optgroups;
|
|
2009
2021
|
delete settings.options;
|
|
2010
|
-
addEvent(input, 'invalid', () => {
|
|
2011
|
-
if (self.isValid) {
|
|
2012
|
-
self.isValid = false;
|
|
2013
|
-
self.isInvalid = true;
|
|
2014
|
-
self.refreshState();
|
|
2015
|
-
}
|
|
2016
|
-
});
|
|
2017
|
-
self.updateOriginalInput();
|
|
2018
2022
|
self.refreshItems();
|
|
2019
2023
|
self.close(false);
|
|
2020
2024
|
self.inputState();
|
|
@@ -2129,7 +2133,8 @@
|
|
|
2129
2133
|
sync(get_settings = true) {
|
|
2130
2134
|
const self = this;
|
|
2131
2135
|
const settings = get_settings ? getSettings(self.input, {
|
|
2132
|
-
delimiter: self.settings.delimiter
|
|
2136
|
+
delimiter: self.settings.delimiter,
|
|
2137
|
+
allowEmptyOption: self.settings.allowEmptyOption
|
|
2133
2138
|
}) : self.settings;
|
|
2134
2139
|
self.setupOptions(settings.options, settings.optgroups);
|
|
2135
2140
|
self.setValue(settings.items || [], true); // silent prevents recursion
|
|
@@ -2316,8 +2321,7 @@
|
|
|
2316
2321
|
// prevent default [tab] behaviour of jump to the next field
|
|
2317
2322
|
// if select isFull, then the dropdown won't be open and [tab] will work normally
|
|
2318
2323
|
preventDefault(e);
|
|
2319
|
-
}
|
|
2320
|
-
if (self.settings.create && self.createItem()) {
|
|
2324
|
+
} else if (self.settings.create && self.createItem()) {
|
|
2321
2325
|
preventDefault(e);
|
|
2322
2326
|
}
|
|
2323
2327
|
}
|
|
@@ -2441,6 +2445,8 @@
|
|
|
2441
2445
|
self.createItem(null, () => {
|
|
2442
2446
|
if (self.settings.closeAfterSelect) {
|
|
2443
2447
|
self.close();
|
|
2448
|
+
} else if (self.settings.clearAfterSelect) {
|
|
2449
|
+
self.setTextboxValue();
|
|
2444
2450
|
}
|
|
2445
2451
|
});
|
|
2446
2452
|
} else {
|
|
@@ -2450,6 +2456,8 @@
|
|
|
2450
2456
|
self.addItem(value);
|
|
2451
2457
|
if (self.settings.closeAfterSelect) {
|
|
2452
2458
|
self.close();
|
|
2459
|
+
} else if (self.settings.clearAfterSelect) {
|
|
2460
|
+
self.setTextboxValue();
|
|
2453
2461
|
}
|
|
2454
2462
|
if (!self.settings.hideSelected && evt.type && /click/.test(evt.type)) {
|
|
2455
2463
|
self.setActiveOption(option);
|
|
@@ -2881,6 +2889,11 @@
|
|
|
2881
2889
|
// perform search
|
|
2882
2890
|
if (query !== self.lastQuery) {
|
|
2883
2891
|
self.lastQuery = query;
|
|
2892
|
+
// temp fix for https://github.com/orchidjs/tom-select/issues/987
|
|
2893
|
+
// UI crashed when more than 30 same chars in a row, prevent search and return empt result
|
|
2894
|
+
if (/(.)\1{15,}/.test(query)) {
|
|
2895
|
+
query = '';
|
|
2896
|
+
}
|
|
2884
2897
|
result = self.sifter.search(query, Object.assign(options, {
|
|
2885
2898
|
score: calculateScore
|
|
2886
2899
|
}));
|
|
@@ -3443,6 +3456,11 @@
|
|
|
3443
3456
|
} else if (!self.isPending) {
|
|
3444
3457
|
self.positionDropdown();
|
|
3445
3458
|
}
|
|
3459
|
+
|
|
3460
|
+
//remove input value when enabled
|
|
3461
|
+
if (self.settings.clearAfterSelect) {
|
|
3462
|
+
self.setTextboxValue();
|
|
3463
|
+
}
|
|
3446
3464
|
self.trigger('item_add', hashed, item);
|
|
3447
3465
|
if (!self.isPending) {
|
|
3448
3466
|
self.updateOriginalInput({
|
|
@@ -3513,6 +3531,12 @@
|
|
|
3513
3531
|
var output;
|
|
3514
3532
|
input = input || self.inputValue();
|
|
3515
3533
|
if (!self.canCreate(input)) {
|
|
3534
|
+
const hash = hash_key(input);
|
|
3535
|
+
if (hash) {
|
|
3536
|
+
if (this.options[input]) {
|
|
3537
|
+
self.addItem(input);
|
|
3538
|
+
}
|
|
3539
|
+
}
|
|
3516
3540
|
callback();
|
|
3517
3541
|
return false;
|
|
3518
3542
|
}
|
|
@@ -3832,7 +3856,7 @@
|
|
|
3832
3856
|
const values = items.map(item => item.dataset.value);
|
|
3833
3857
|
|
|
3834
3858
|
// allow the callback to abort
|
|
3835
|
-
if (!values.length || typeof this.settings.onDelete === 'function' && this.settings.onDelete(values, evt) === false) {
|
|
3859
|
+
if (!values.length || typeof this.settings.onDelete === 'function' && this.settings.onDelete.call(this, values, evt) === false) {
|
|
3836
3860
|
return false;
|
|
3837
3861
|
}
|
|
3838
3862
|
return true;
|
|
@@ -4210,6 +4234,7 @@
|
|
|
4210
4234
|
self.settings.shouldOpen = true; // make sure the input is shown even if there are no options to display in the dropdown
|
|
4211
4235
|
|
|
4212
4236
|
self.hook('before', 'setup', () => {
|
|
4237
|
+
var _self$input;
|
|
4213
4238
|
self.focus_node = self.control;
|
|
4214
4239
|
addClasses(self.control_input, 'dropdown-input');
|
|
4215
4240
|
const div = getDom('<div class="dropdown-input-wrap">');
|
|
@@ -4220,6 +4245,15 @@
|
|
|
4220
4245
|
const placeholder = getDom('<input class="items-placeholder" tabindex="-1" />');
|
|
4221
4246
|
placeholder.placeholder = self.settings.placeholder || '';
|
|
4222
4247
|
self.control.append(placeholder);
|
|
4248
|
+
/**
|
|
4249
|
+
* TomSelect renders a custom control with a focusable <input class="items-placeholder">.
|
|
4250
|
+
* The source <select>'s aria-label is not automatically propagated to that input,
|
|
4251
|
+
* which triggers "Missing form label" accessibility warnings.
|
|
4252
|
+
* This helper copies the label from the <select> onto the generated input.
|
|
4253
|
+
*/
|
|
4254
|
+
const label = (_self$input = self.input) == null ? void 0 : _self$input.getAttribute('aria-label');
|
|
4255
|
+
if (!label) return;
|
|
4256
|
+
placeholder.setAttribute('aria-label', label);
|
|
4223
4257
|
});
|
|
4224
4258
|
self.on('initialize', () => {
|
|
4225
4259
|
// set tabIndex on control to -1, otherwise [shift+tab] will put focus right back on control_input
|