@oiz/stzh-components 2.6.0 → 2.7.0-alpha
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/cjs/{app-globals-4dcdf160.js → app-globals-5dfa53d1.js} +2 -2
- package/dist/cjs/{app-globals-4dcdf160.js.map → app-globals-5dfa53d1.js.map} +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-amount.cjs.entry.js +30 -79
- package/dist/cjs/stzh-amount.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-dropdown.cjs.entry.js +60 -25
- package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-monthyearpicker.cjs.entry.js +191 -0
- package/dist/cjs/stzh-monthyearpicker.cjs.entry.js.map +1 -0
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-timepicker.cjs.entry.js +82 -0
- package/dist/cjs/stzh-timepicker.cjs.entry.js.map +1 -0
- package/dist/cjs/translation-utils-73073e44.js.map +1 -1
- package/dist/collection/assets/i18n/de.json +10 -7
- package/dist/collection/assets/i18n/en.json +8 -5
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/stzh-amount/stzh-amount.js +32 -85
- package/dist/collection/components/stzh-amount/stzh-amount.js.map +1 -1
- package/dist/collection/components/stzh-amount/stzh-amount.localization.js.map +1 -1
- package/dist/collection/components/stzh-amount/stzh-amount.stories.js +1 -1
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.js +1 -1
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.js.map +1 -1
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.stories.js +3 -0
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +32 -20
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.js +40 -9
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.js.map +1 -1
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.css +123 -0
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.js +724 -0
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.js.map +1 -0
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.localization.js +2 -0
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.localization.js.map +1 -0
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.stories.js +61 -0
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +1 -1
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.css +109 -0
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.js +438 -0
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.js.map +1 -0
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.localization.js +2 -0
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.localization.js.map +1 -0
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.stories.js +45 -0
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/libraries/tom-select/cjs/tom-select.complete.js +47 -18
- package/dist/collection/libraries/tom-select/cjs/tom-select.js +47 -18
- package/dist/collection/libraries/tom-select/cjs/tom-select.popular.js +47 -18
- package/dist/collection/libraries/tom-select/esm/tom-select.complete.js +47 -18
- package/dist/collection/libraries/tom-select/esm/tom-select.js +47 -18
- package/dist/collection/libraries/tom-select/esm/tom-select.popular.js +47 -18
- package/dist/collection/libraries/tom-select/js/tom-select.base.js +47 -18
- package/dist/collection/libraries/tom-select/js/tom-select.base.min.js +16 -17
- package/dist/collection/libraries/tom-select/js/tom-select.complete.js +47 -18
- package/dist/collection/libraries/tom-select/js/tom-select.complete.min.js +12 -13
- package/dist/collection/libraries/tom-select/js/tom-select.popular.js +47 -18
- package/dist/collection/libraries/tom-select/js/tom-select.popular.min.js +21 -22
- package/dist/collection/utils/translation-utils.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/stzh-amount.js +40 -83
- package/dist/components/stzh-amount.js.map +1 -1
- package/dist/components/stzh-buttongroup.js +1 -31
- package/dist/components/stzh-buttongroup.js.map +1 -1
- package/dist/components/stzh-buttongroup2.js +35 -0
- package/dist/components/stzh-buttongroup2.js.map +1 -0
- package/dist/components/stzh-datepicker2.js.map +1 -1
- package/dist/components/stzh-dropdown2.js +61 -25
- package/dist/components/stzh-dropdown2.js.map +1 -1
- package/dist/components/stzh-monthyearpicker.d.ts +11 -0
- package/dist/components/stzh-monthyearpicker.js +251 -0
- package/dist/components/stzh-monthyearpicker.js.map +1 -0
- package/dist/components/stzh-skin-portal-mitwirken.js +1 -1
- package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
- package/dist/components/stzh-timepicker.d.ts +11 -0
- package/dist/components/stzh-timepicker.js +132 -0
- package/dist/components/stzh-timepicker.js.map +1 -0
- package/dist/components/translation-utils.js.map +1 -1
- package/dist/esm/{app-globals-91875913.js → app-globals-862dc6d0.js} +2 -2
- package/dist/esm/{app-globals-91875913.js.map → app-globals-862dc6d0.js.map} +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-amount.entry.js +30 -79
- package/dist/esm/stzh-amount.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
- package/dist/esm/stzh-dropdown.entry.js +60 -25
- package/dist/esm/stzh-dropdown.entry.js.map +1 -1
- package/dist/esm/stzh-monthyearpicker.entry.js +187 -0
- package/dist/esm/stzh-monthyearpicker.entry.js.map +1 -0
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
- package/dist/esm/stzh-timepicker.entry.js +78 -0
- package/dist/esm/stzh-timepicker.entry.js.map +1 -0
- package/dist/esm/translation-utils-2623783f.js.map +1 -1
- package/dist/esm-es5/{app-globals-91875913.js → app-globals-862dc6d0.js} +2 -2
- package/dist/esm-es5/{app-globals-91875913.js.map → app-globals-862dc6d0.js.map} +1 -1
- package/dist/esm-es5/index.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/stzh-amount.entry.js +1 -1
- package/dist/esm-es5/stzh-amount.entry.js.map +1 -1
- package/dist/esm-es5/stzh-components.js +1 -1
- package/dist/esm-es5/stzh-components.js.map +1 -1
- package/dist/esm-es5/stzh-datepicker_3.entry.js.map +1 -1
- package/dist/esm-es5/stzh-dropdown.entry.js +2 -2
- package/dist/esm-es5/stzh-dropdown.entry.js.map +1 -1
- package/dist/esm-es5/stzh-monthyearpicker.entry.js +2 -0
- package/dist/esm-es5/stzh-monthyearpicker.entry.js.map +1 -0
- package/dist/esm-es5/stzh-skin-portal-mitwirken.entry.js +1 -1
- package/dist/esm-es5/stzh-skin-portal-mitwirken.entry.js.map +1 -1
- package/dist/esm-es5/stzh-timepicker.entry.js +2 -0
- package/dist/esm-es5/stzh-timepicker.entry.js.map +1 -0
- package/dist/esm-es5/translation-utils-2623783f.js.map +1 -1
- package/dist/stzh-components/assets/i18n/de.json +10 -7
- package/dist/stzh-components/assets/i18n/en.json +8 -5
- package/dist/stzh-components/index.esm.js.map +1 -1
- package/dist/stzh-components/p-14e782cb.entry.js +2 -0
- package/dist/stzh-components/{p-85504842.entry.js.map → p-14e782cb.entry.js.map} +1 -1
- package/dist/stzh-components/p-1678e09c.system.js +2 -0
- package/dist/stzh-components/{p-3e10addb.system.js.map → p-1678e09c.system.js.map} +1 -1
- package/dist/stzh-components/p-25a09313.js.map +1 -1
- package/dist/stzh-components/{p-61b66e55.system.js → p-3b4833a0.system.js} +2 -2
- package/dist/stzh-components/{p-61b66e55.system.js.map → p-3b4833a0.system.js.map} +1 -1
- package/dist/stzh-components/p-51f1714c.system.entry.js +2 -0
- package/dist/stzh-components/p-51f1714c.system.entry.js.map +1 -0
- package/dist/stzh-components/p-5aa96b49.system.entry.js +2 -0
- package/dist/stzh-components/p-5aa96b49.system.entry.js.map +1 -0
- package/dist/stzh-components/p-82e886d4.entry.js.map +1 -1
- package/dist/stzh-components/p-9f31cf7d.entry.js +2 -0
- package/dist/stzh-components/p-9f31cf7d.entry.js.map +1 -0
- package/dist/stzh-components/p-9fe69be8.system.entry.js +2 -0
- package/dist/stzh-components/{p-479a02fb.system.entry.js.map → p-9fe69be8.system.entry.js.map} +1 -1
- package/dist/stzh-components/p-a408bfba.system.js.map +1 -1
- package/dist/stzh-components/p-ad33db31.entry.js +2 -0
- package/dist/stzh-components/p-ad33db31.entry.js.map +1 -0
- package/dist/stzh-components/p-b5cda655.entry.js +2 -0
- package/dist/stzh-components/p-b5cda655.entry.js.map +1 -0
- package/dist/stzh-components/{p-362af013.js → p-bc82ed48.js} +2 -2
- package/dist/stzh-components/{p-362af013.js.map → p-bc82ed48.js.map} +1 -1
- package/dist/stzh-components/p-c0f971f2.entry.js +9 -0
- package/dist/stzh-components/p-c0f971f2.entry.js.map +1 -0
- package/dist/stzh-components/p-c901fe72.system.entry.js +9 -0
- package/dist/stzh-components/p-c901fe72.system.entry.js.map +1 -0
- package/dist/stzh-components/p-e8545386.system.entry.js +2 -0
- package/dist/stzh-components/p-e8545386.system.entry.js.map +1 -0
- package/dist/stzh-components/p-eaa65f52.system.js.map +1 -1
- package/dist/stzh-components/p-f2d74491.system.entry.js.map +1 -1
- package/dist/stzh-components/stzh-components.css +1 -1
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/stzh-components/stzh-components.js +1 -1
- package/dist/types/components/stzh-amount/stzh-amount.localization.d.ts +0 -2
- package/dist/types/components/stzh-monthyearpicker/stzh-monthyearpicker.localization.d.ts +5 -0
- package/dist/types/components/stzh-timepicker/stzh-timepicker.localization.d.ts +2 -0
- package/dist/types/components.d.ts +428 -6
- package/dist/types/index.d.ts +14 -0
- package/dist/types/utils/translation-utils.d.ts +1 -0
- package/dist/vscode-data.json +263 -1
- package/package.json +1 -1
- package/dist/stzh-components/p-1cc48f98.entry.js +0 -9
- package/dist/stzh-components/p-1cc48f98.entry.js.map +0 -1
- package/dist/stzh-components/p-3e10addb.system.js +0 -2
- package/dist/stzh-components/p-479a02fb.system.entry.js +0 -2
- package/dist/stzh-components/p-67b11b03.system.entry.js +0 -2
- package/dist/stzh-components/p-67b11b03.system.entry.js.map +0 -1
- package/dist/stzh-components/p-6bb83b30.system.entry.js +0 -9
- package/dist/stzh-components/p-6bb83b30.system.entry.js.map +0 -1
- package/dist/stzh-components/p-85504842.entry.js +0 -2
- package/dist/stzh-components/p-c94f7331.entry.js +0 -2
- package/dist/stzh-components/p-c94f7331.entry.js.map +0 -1
|
@@ -2126,17 +2126,24 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2126
2126
|
const query = "label[for='" + escapeQuery(self.inputId) + "']";
|
|
2127
2127
|
const label = document.querySelector(query);
|
|
2128
2128
|
const label_click = self.focus.bind(self);
|
|
2129
|
+
const labelled_by = input.getAttribute('aria-labelledby');
|
|
2129
2130
|
if (label) {
|
|
2130
2131
|
addEvent(label, 'click', label_click);
|
|
2131
2132
|
setAttr(label, {
|
|
2132
2133
|
for: control_id
|
|
2133
2134
|
});
|
|
2134
|
-
|
|
2135
|
+
|
|
2136
|
+
// const label_id = getId(label,self.inputId+'-ts-label');
|
|
2137
|
+
// setAttr(focus_node,{'aria-labelledby':label_id});
|
|
2138
|
+
// setAttr(dropdown_content,{'aria-labelledby':label_id});
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
if (labelled_by) {
|
|
2135
2142
|
setAttr(focus_node, {
|
|
2136
|
-
'aria-labelledby':
|
|
2143
|
+
'aria-labelledby': labelled_by
|
|
2137
2144
|
});
|
|
2138
2145
|
setAttr(dropdown_content, {
|
|
2139
|
-
'aria-labelledby':
|
|
2146
|
+
'aria-labelledby': labelled_by
|
|
2140
2147
|
});
|
|
2141
2148
|
}
|
|
2142
2149
|
wrapper.style.width = input.style.width;
|
|
@@ -2144,10 +2151,15 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2144
2151
|
const classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
|
|
2145
2152
|
addClasses([wrapper, dropdown], classes_plugins);
|
|
2146
2153
|
}
|
|
2147
|
-
if (
|
|
2148
|
-
setAttr(
|
|
2149
|
-
|
|
2154
|
+
if (settings.mode === 'multi') {
|
|
2155
|
+
setAttr(dropdown_content, {
|
|
2156
|
+
'aria-multiselectable': 'true'
|
|
2150
2157
|
});
|
|
2158
|
+
if (self.is_select_tag) {
|
|
2159
|
+
setAttr(input, {
|
|
2160
|
+
multiple: 'multiple'
|
|
2161
|
+
});
|
|
2162
|
+
}
|
|
2151
2163
|
}
|
|
2152
2164
|
if (settings.placeholder) {
|
|
2153
2165
|
setAttr(control_input, {
|
|
@@ -2803,7 +2815,7 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2803
2815
|
*
|
|
2804
2816
|
*/
|
|
2805
2817
|
getValue() {
|
|
2806
|
-
if (this.
|
|
2818
|
+
if (this.settings.mode === 'multi' && this.is_select_tag) {
|
|
2807
2819
|
return this.items;
|
|
2808
2820
|
}
|
|
2809
2821
|
return this.items.join(this.settings.delimiter);
|
|
@@ -2936,9 +2948,11 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2936
2948
|
setAttr(this.focus_node, {
|
|
2937
2949
|
'aria-activedescendant': option.getAttribute('id')
|
|
2938
2950
|
});
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2951
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2952
|
+
setAttr(option, {
|
|
2953
|
+
'aria-selected': 'true'
|
|
2954
|
+
});
|
|
2955
|
+
}
|
|
2942
2956
|
addClasses(option, 'active');
|
|
2943
2957
|
if (scroll) this.scrollToOption(option);
|
|
2944
2958
|
}
|
|
@@ -2981,9 +2995,11 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2981
2995
|
clearActiveOption() {
|
|
2982
2996
|
if (this.activeOption) {
|
|
2983
2997
|
removeClasses(this.activeOption, 'active');
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2998
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2999
|
+
setAttr(this.activeOption, {
|
|
3000
|
+
'aria-selected': null
|
|
3001
|
+
});
|
|
3002
|
+
}
|
|
2987
3003
|
}
|
|
2988
3004
|
this.activeOption = null;
|
|
2989
3005
|
setAttr(this.focus_node, {
|
|
@@ -3198,10 +3214,16 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
3198
3214
|
if (option === undefined) continue;
|
|
3199
3215
|
let opt_hash = get_hash(opt_value);
|
|
3200
3216
|
let option_el = self.getOption(opt_hash, true);
|
|
3217
|
+
const option_selected = self.items.includes(opt_hash);
|
|
3201
3218
|
|
|
3202
3219
|
// toggle 'selected' class
|
|
3203
3220
|
if (!self.settings.hideSelected) {
|
|
3204
|
-
option_el.classList.toggle('selected',
|
|
3221
|
+
option_el.classList.toggle('selected', option_selected);
|
|
3222
|
+
if (this.settings.mode === 'multi') {
|
|
3223
|
+
setAttr(option_el, {
|
|
3224
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3225
|
+
});
|
|
3226
|
+
}
|
|
3205
3227
|
}
|
|
3206
3228
|
optgroup = option[self.settings.optgroupField] || '';
|
|
3207
3229
|
optgroups = Array.isArray(optgroup) ? optgroup : [optgroup];
|
|
@@ -3219,10 +3241,17 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
3219
3241
|
// nodes can only have one parent, so if the option is in mutple groups, we need a clone
|
|
3220
3242
|
if (j > 0) {
|
|
3221
3243
|
option_el = option_el.cloneNode(true);
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3244
|
+
if (this.settings.mode === 'multi' && !self.settings.hideSelected) {
|
|
3245
|
+
setAttr(option_el, {
|
|
3246
|
+
id: option.$id + '-clone-' + j,
|
|
3247
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3248
|
+
});
|
|
3249
|
+
} else {
|
|
3250
|
+
setAttr(option_el, {
|
|
3251
|
+
id: option.$id + '-clone-' + j,
|
|
3252
|
+
'aria-selected': null
|
|
3253
|
+
});
|
|
3254
|
+
}
|
|
3226
3255
|
option_el.classList.add('ts-cloned');
|
|
3227
3256
|
removeClasses(option_el, 'active');
|
|
3228
3257
|
|
|
@@ -2126,17 +2126,24 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2126
2126
|
const query = "label[for='" + escapeQuery(self.inputId) + "']";
|
|
2127
2127
|
const label = document.querySelector(query);
|
|
2128
2128
|
const label_click = self.focus.bind(self);
|
|
2129
|
+
const labelled_by = input.getAttribute('aria-labelledby');
|
|
2129
2130
|
if (label) {
|
|
2130
2131
|
addEvent(label, 'click', label_click);
|
|
2131
2132
|
setAttr(label, {
|
|
2132
2133
|
for: control_id
|
|
2133
2134
|
});
|
|
2134
|
-
|
|
2135
|
+
|
|
2136
|
+
// const label_id = getId(label,self.inputId+'-ts-label');
|
|
2137
|
+
// setAttr(focus_node,{'aria-labelledby':label_id});
|
|
2138
|
+
// setAttr(dropdown_content,{'aria-labelledby':label_id});
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
if (labelled_by) {
|
|
2135
2142
|
setAttr(focus_node, {
|
|
2136
|
-
'aria-labelledby':
|
|
2143
|
+
'aria-labelledby': labelled_by
|
|
2137
2144
|
});
|
|
2138
2145
|
setAttr(dropdown_content, {
|
|
2139
|
-
'aria-labelledby':
|
|
2146
|
+
'aria-labelledby': labelled_by
|
|
2140
2147
|
});
|
|
2141
2148
|
}
|
|
2142
2149
|
wrapper.style.width = input.style.width;
|
|
@@ -2144,10 +2151,15 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2144
2151
|
const classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
|
|
2145
2152
|
addClasses([wrapper, dropdown], classes_plugins);
|
|
2146
2153
|
}
|
|
2147
|
-
if (
|
|
2148
|
-
setAttr(
|
|
2149
|
-
|
|
2154
|
+
if (settings.mode === 'multi') {
|
|
2155
|
+
setAttr(dropdown_content, {
|
|
2156
|
+
'aria-multiselectable': 'true'
|
|
2150
2157
|
});
|
|
2158
|
+
if (self.is_select_tag) {
|
|
2159
|
+
setAttr(input, {
|
|
2160
|
+
multiple: 'multiple'
|
|
2161
|
+
});
|
|
2162
|
+
}
|
|
2151
2163
|
}
|
|
2152
2164
|
if (settings.placeholder) {
|
|
2153
2165
|
setAttr(control_input, {
|
|
@@ -2803,7 +2815,7 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2803
2815
|
*
|
|
2804
2816
|
*/
|
|
2805
2817
|
getValue() {
|
|
2806
|
-
if (this.
|
|
2818
|
+
if (this.settings.mode === 'multi' && this.is_select_tag) {
|
|
2807
2819
|
return this.items;
|
|
2808
2820
|
}
|
|
2809
2821
|
return this.items.join(this.settings.delimiter);
|
|
@@ -2936,9 +2948,11 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2936
2948
|
setAttr(this.focus_node, {
|
|
2937
2949
|
'aria-activedescendant': option.getAttribute('id')
|
|
2938
2950
|
});
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2951
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2952
|
+
setAttr(option, {
|
|
2953
|
+
'aria-selected': 'true'
|
|
2954
|
+
});
|
|
2955
|
+
}
|
|
2942
2956
|
addClasses(option, 'active');
|
|
2943
2957
|
if (scroll) this.scrollToOption(option);
|
|
2944
2958
|
}
|
|
@@ -2981,9 +2995,11 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2981
2995
|
clearActiveOption() {
|
|
2982
2996
|
if (this.activeOption) {
|
|
2983
2997
|
removeClasses(this.activeOption, 'active');
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2998
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2999
|
+
setAttr(this.activeOption, {
|
|
3000
|
+
'aria-selected': null
|
|
3001
|
+
});
|
|
3002
|
+
}
|
|
2987
3003
|
}
|
|
2988
3004
|
this.activeOption = null;
|
|
2989
3005
|
setAttr(this.focus_node, {
|
|
@@ -3198,10 +3214,16 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
3198
3214
|
if (option === undefined) continue;
|
|
3199
3215
|
let opt_hash = get_hash(opt_value);
|
|
3200
3216
|
let option_el = self.getOption(opt_hash, true);
|
|
3217
|
+
const option_selected = self.items.includes(opt_hash);
|
|
3201
3218
|
|
|
3202
3219
|
// toggle 'selected' class
|
|
3203
3220
|
if (!self.settings.hideSelected) {
|
|
3204
|
-
option_el.classList.toggle('selected',
|
|
3221
|
+
option_el.classList.toggle('selected', option_selected);
|
|
3222
|
+
if (this.settings.mode === 'multi') {
|
|
3223
|
+
setAttr(option_el, {
|
|
3224
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3225
|
+
});
|
|
3226
|
+
}
|
|
3205
3227
|
}
|
|
3206
3228
|
optgroup = option[self.settings.optgroupField] || '';
|
|
3207
3229
|
optgroups = Array.isArray(optgroup) ? optgroup : [optgroup];
|
|
@@ -3219,10 +3241,17 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
3219
3241
|
// nodes can only have one parent, so if the option is in mutple groups, we need a clone
|
|
3220
3242
|
if (j > 0) {
|
|
3221
3243
|
option_el = option_el.cloneNode(true);
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3244
|
+
if (this.settings.mode === 'multi' && !self.settings.hideSelected) {
|
|
3245
|
+
setAttr(option_el, {
|
|
3246
|
+
id: option.$id + '-clone-' + j,
|
|
3247
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3248
|
+
});
|
|
3249
|
+
} else {
|
|
3250
|
+
setAttr(option_el, {
|
|
3251
|
+
id: option.$id + '-clone-' + j,
|
|
3252
|
+
'aria-selected': null
|
|
3253
|
+
});
|
|
3254
|
+
}
|
|
3226
3255
|
option_el.classList.add('ts-cloned');
|
|
3227
3256
|
removeClasses(option_el, 'active');
|
|
3228
3257
|
|
|
@@ -2126,17 +2126,24 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2126
2126
|
const query = "label[for='" + escapeQuery(self.inputId) + "']";
|
|
2127
2127
|
const label = document.querySelector(query);
|
|
2128
2128
|
const label_click = self.focus.bind(self);
|
|
2129
|
+
const labelled_by = input.getAttribute('aria-labelledby');
|
|
2129
2130
|
if (label) {
|
|
2130
2131
|
addEvent(label, 'click', label_click);
|
|
2131
2132
|
setAttr(label, {
|
|
2132
2133
|
for: control_id
|
|
2133
2134
|
});
|
|
2134
|
-
|
|
2135
|
+
|
|
2136
|
+
// const label_id = getId(label,self.inputId+'-ts-label');
|
|
2137
|
+
// setAttr(focus_node,{'aria-labelledby':label_id});
|
|
2138
|
+
// setAttr(dropdown_content,{'aria-labelledby':label_id});
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
if (labelled_by) {
|
|
2135
2142
|
setAttr(focus_node, {
|
|
2136
|
-
'aria-labelledby':
|
|
2143
|
+
'aria-labelledby': labelled_by
|
|
2137
2144
|
});
|
|
2138
2145
|
setAttr(dropdown_content, {
|
|
2139
|
-
'aria-labelledby':
|
|
2146
|
+
'aria-labelledby': labelled_by
|
|
2140
2147
|
});
|
|
2141
2148
|
}
|
|
2142
2149
|
wrapper.style.width = input.style.width;
|
|
@@ -2144,10 +2151,15 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2144
2151
|
const classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
|
|
2145
2152
|
addClasses([wrapper, dropdown], classes_plugins);
|
|
2146
2153
|
}
|
|
2147
|
-
if (
|
|
2148
|
-
setAttr(
|
|
2149
|
-
|
|
2154
|
+
if (settings.mode === 'multi') {
|
|
2155
|
+
setAttr(dropdown_content, {
|
|
2156
|
+
'aria-multiselectable': 'true'
|
|
2150
2157
|
});
|
|
2158
|
+
if (self.is_select_tag) {
|
|
2159
|
+
setAttr(input, {
|
|
2160
|
+
multiple: 'multiple'
|
|
2161
|
+
});
|
|
2162
|
+
}
|
|
2151
2163
|
}
|
|
2152
2164
|
if (settings.placeholder) {
|
|
2153
2165
|
setAttr(control_input, {
|
|
@@ -2803,7 +2815,7 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2803
2815
|
*
|
|
2804
2816
|
*/
|
|
2805
2817
|
getValue() {
|
|
2806
|
-
if (this.
|
|
2818
|
+
if (this.settings.mode === 'multi' && this.is_select_tag) {
|
|
2807
2819
|
return this.items;
|
|
2808
2820
|
}
|
|
2809
2821
|
return this.items.join(this.settings.delimiter);
|
|
@@ -2936,9 +2948,11 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2936
2948
|
setAttr(this.focus_node, {
|
|
2937
2949
|
'aria-activedescendant': option.getAttribute('id')
|
|
2938
2950
|
});
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2951
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2952
|
+
setAttr(option, {
|
|
2953
|
+
'aria-selected': 'true'
|
|
2954
|
+
});
|
|
2955
|
+
}
|
|
2942
2956
|
addClasses(option, 'active');
|
|
2943
2957
|
if (scroll) this.scrollToOption(option);
|
|
2944
2958
|
}
|
|
@@ -2981,9 +2995,11 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
2981
2995
|
clearActiveOption() {
|
|
2982
2996
|
if (this.activeOption) {
|
|
2983
2997
|
removeClasses(this.activeOption, 'active');
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2998
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2999
|
+
setAttr(this.activeOption, {
|
|
3000
|
+
'aria-selected': null
|
|
3001
|
+
});
|
|
3002
|
+
}
|
|
2987
3003
|
}
|
|
2988
3004
|
this.activeOption = null;
|
|
2989
3005
|
setAttr(this.focus_node, {
|
|
@@ -3198,10 +3214,16 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
3198
3214
|
if (option === undefined) continue;
|
|
3199
3215
|
let opt_hash = get_hash(opt_value);
|
|
3200
3216
|
let option_el = self.getOption(opt_hash, true);
|
|
3217
|
+
const option_selected = self.items.includes(opt_hash);
|
|
3201
3218
|
|
|
3202
3219
|
// toggle 'selected' class
|
|
3203
3220
|
if (!self.settings.hideSelected) {
|
|
3204
|
-
option_el.classList.toggle('selected',
|
|
3221
|
+
option_el.classList.toggle('selected', option_selected);
|
|
3222
|
+
if (this.settings.mode === 'multi') {
|
|
3223
|
+
setAttr(option_el, {
|
|
3224
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3225
|
+
});
|
|
3226
|
+
}
|
|
3205
3227
|
}
|
|
3206
3228
|
optgroup = option[self.settings.optgroupField] || '';
|
|
3207
3229
|
optgroups = Array.isArray(optgroup) ? optgroup : [optgroup];
|
|
@@ -3219,10 +3241,17 @@ class TomSelect extends MicroPlugin(MicroEvent) {
|
|
|
3219
3241
|
// nodes can only have one parent, so if the option is in mutple groups, we need a clone
|
|
3220
3242
|
if (j > 0) {
|
|
3221
3243
|
option_el = option_el.cloneNode(true);
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
|
|
3244
|
+
if (this.settings.mode === 'multi' && !self.settings.hideSelected) {
|
|
3245
|
+
setAttr(option_el, {
|
|
3246
|
+
id: option.$id + '-clone-' + j,
|
|
3247
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3248
|
+
});
|
|
3249
|
+
} else {
|
|
3250
|
+
setAttr(option_el, {
|
|
3251
|
+
id: option.$id + '-clone-' + j,
|
|
3252
|
+
'aria-selected': null
|
|
3253
|
+
});
|
|
3254
|
+
}
|
|
3226
3255
|
option_el.classList.add('ts-cloned');
|
|
3227
3256
|
removeClasses(option_el, 'active');
|
|
3228
3257
|
|
|
@@ -2132,17 +2132,24 @@
|
|
|
2132
2132
|
const query = "label[for='" + escapeQuery(self.inputId) + "']";
|
|
2133
2133
|
const label = document.querySelector(query);
|
|
2134
2134
|
const label_click = self.focus.bind(self);
|
|
2135
|
+
const labelled_by = input.getAttribute('aria-labelledby');
|
|
2135
2136
|
if (label) {
|
|
2136
2137
|
addEvent(label, 'click', label_click);
|
|
2137
2138
|
setAttr(label, {
|
|
2138
2139
|
for: control_id
|
|
2139
2140
|
});
|
|
2140
|
-
|
|
2141
|
+
|
|
2142
|
+
// const label_id = getId(label,self.inputId+'-ts-label');
|
|
2143
|
+
// setAttr(focus_node,{'aria-labelledby':label_id});
|
|
2144
|
+
// setAttr(dropdown_content,{'aria-labelledby':label_id});
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
if (labelled_by) {
|
|
2141
2148
|
setAttr(focus_node, {
|
|
2142
|
-
'aria-labelledby':
|
|
2149
|
+
'aria-labelledby': labelled_by
|
|
2143
2150
|
});
|
|
2144
2151
|
setAttr(dropdown_content, {
|
|
2145
|
-
'aria-labelledby':
|
|
2152
|
+
'aria-labelledby': labelled_by
|
|
2146
2153
|
});
|
|
2147
2154
|
}
|
|
2148
2155
|
wrapper.style.width = input.style.width;
|
|
@@ -2150,10 +2157,15 @@
|
|
|
2150
2157
|
const classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
|
|
2151
2158
|
addClasses([wrapper, dropdown], classes_plugins);
|
|
2152
2159
|
}
|
|
2153
|
-
if (
|
|
2154
|
-
setAttr(
|
|
2155
|
-
|
|
2160
|
+
if (settings.mode === 'multi') {
|
|
2161
|
+
setAttr(dropdown_content, {
|
|
2162
|
+
'aria-multiselectable': 'true'
|
|
2156
2163
|
});
|
|
2164
|
+
if (self.is_select_tag) {
|
|
2165
|
+
setAttr(input, {
|
|
2166
|
+
multiple: 'multiple'
|
|
2167
|
+
});
|
|
2168
|
+
}
|
|
2157
2169
|
}
|
|
2158
2170
|
if (settings.placeholder) {
|
|
2159
2171
|
setAttr(control_input, {
|
|
@@ -2809,7 +2821,7 @@
|
|
|
2809
2821
|
*
|
|
2810
2822
|
*/
|
|
2811
2823
|
getValue() {
|
|
2812
|
-
if (this.
|
|
2824
|
+
if (this.settings.mode === 'multi' && this.is_select_tag) {
|
|
2813
2825
|
return this.items;
|
|
2814
2826
|
}
|
|
2815
2827
|
return this.items.join(this.settings.delimiter);
|
|
@@ -2942,9 +2954,11 @@
|
|
|
2942
2954
|
setAttr(this.focus_node, {
|
|
2943
2955
|
'aria-activedescendant': option.getAttribute('id')
|
|
2944
2956
|
});
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2957
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
2958
|
+
setAttr(option, {
|
|
2959
|
+
'aria-selected': 'true'
|
|
2960
|
+
});
|
|
2961
|
+
}
|
|
2948
2962
|
addClasses(option, 'active');
|
|
2949
2963
|
if (scroll) this.scrollToOption(option);
|
|
2950
2964
|
}
|
|
@@ -2987,9 +3001,11 @@
|
|
|
2987
3001
|
clearActiveOption() {
|
|
2988
3002
|
if (this.activeOption) {
|
|
2989
3003
|
removeClasses(this.activeOption, 'active');
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
3004
|
+
if (this.settings.mode === 'single' || this.settings.hideSelected) {
|
|
3005
|
+
setAttr(this.activeOption, {
|
|
3006
|
+
'aria-selected': null
|
|
3007
|
+
});
|
|
3008
|
+
}
|
|
2993
3009
|
}
|
|
2994
3010
|
this.activeOption = null;
|
|
2995
3011
|
setAttr(this.focus_node, {
|
|
@@ -3204,10 +3220,16 @@
|
|
|
3204
3220
|
if (option === undefined) continue;
|
|
3205
3221
|
let opt_hash = get_hash(opt_value);
|
|
3206
3222
|
let option_el = self.getOption(opt_hash, true);
|
|
3223
|
+
const option_selected = self.items.includes(opt_hash);
|
|
3207
3224
|
|
|
3208
3225
|
// toggle 'selected' class
|
|
3209
3226
|
if (!self.settings.hideSelected) {
|
|
3210
|
-
option_el.classList.toggle('selected',
|
|
3227
|
+
option_el.classList.toggle('selected', option_selected);
|
|
3228
|
+
if (this.settings.mode === 'multi') {
|
|
3229
|
+
setAttr(option_el, {
|
|
3230
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3231
|
+
});
|
|
3232
|
+
}
|
|
3211
3233
|
}
|
|
3212
3234
|
optgroup = option[self.settings.optgroupField] || '';
|
|
3213
3235
|
optgroups = Array.isArray(optgroup) ? optgroup : [optgroup];
|
|
@@ -3225,10 +3247,17 @@
|
|
|
3225
3247
|
// nodes can only have one parent, so if the option is in mutple groups, we need a clone
|
|
3226
3248
|
if (j > 0) {
|
|
3227
3249
|
option_el = option_el.cloneNode(true);
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3250
|
+
if (this.settings.mode === 'multi' && !self.settings.hideSelected) {
|
|
3251
|
+
setAttr(option_el, {
|
|
3252
|
+
id: option.$id + '-clone-' + j,
|
|
3253
|
+
'aria-selected': option_selected ? 'true' : 'false'
|
|
3254
|
+
});
|
|
3255
|
+
} else {
|
|
3256
|
+
setAttr(option_el, {
|
|
3257
|
+
id: option.$id + '-clone-' + j,
|
|
3258
|
+
'aria-selected': null
|
|
3259
|
+
});
|
|
3260
|
+
}
|
|
3232
3261
|
option_el.classList.add('ts-cloned');
|
|
3233
3262
|
removeClasses(option_el, 'active');
|
|
3234
3263
|
|
|
@@ -33,11 +33,11 @@ for(let t in e){let i=e[t]
|
|
|
33
33
|
i&&(s[t]=n(i)),t.length>1&&o.push(r(t))}o.sort(((t,e)=>e.length-t.length))
|
|
34
34
|
const l=i(o)
|
|
35
35
|
return h=new RegExp("^"+l,"u"),s},I=(t,e=1)=>(e=Math.max(e,t.length-1),i(d(t).map((t=>((t,e=1)=>{let i=0
|
|
36
|
-
return t=t.map((t=>(p[t]&&(i+=t.length),p[t]||t))),i>=e?s(t):""})(t,e))))),
|
|
36
|
+
return t=t.map((t=>(p[t]&&(i+=t.length),p[t]||t))),i>=e?s(t):""})(t,e))))),S=(t,e=!0)=>{let n=t.length>1?1:0
|
|
37
37
|
return i(t.map((t=>{let i=[]
|
|
38
38
|
const o=e?t.length():t.length()-1
|
|
39
39
|
for(let e=0;e<o;e++)i.push(I(t.substrs[e]||"",n))
|
|
40
|
-
return s(i)})))},
|
|
40
|
+
return s(i)})))},_=(t,e)=>{for(const i of e){if(i.start!=t.start||i.end!=t.end)continue
|
|
41
41
|
if(i.substrs.join("")!==t.substrs.join(""))continue
|
|
42
42
|
let e=t.parts
|
|
43
43
|
const s=t=>{for(const i of e){if(i.start===t.start&&i.substr===t.substr)return!1
|
|
@@ -59,10 +59,10 @@ t.add({start:e,end:e+i,length:i,substr:r}),a.add("1")}else t.add({start:e,end:e+
|
|
|
59
59
|
else if(r){let s=t.clone(e,i)
|
|
60
60
|
const n=r.length
|
|
61
61
|
s.add({start:e,end:e+n,length:n,substr:r}),l.push(s)}else a.add("3")}if(l.length>0){l=l.sort(((t,e)=>t.length()-e.length()))
|
|
62
|
-
for(let t of l)
|
|
62
|
+
for(let t of l)_(t,s)||s.push(t)}else if(e>0&&1==a.size&&!a.has("3")){i+=S(s,!1)
|
|
63
63
|
let t=new A
|
|
64
64
|
const e=s[0]
|
|
65
|
-
e&&t.add(e.last()),s=[t]}}return i+=
|
|
65
|
+
e&&t.add(e.last()),s=[t]}}return i+=S(s,!0),i},F=(t,e)=>{if(t)return t[e]},x=(t,e)=>{if(t){for(var i,s=e.split(".");(i=s.shift())&&(t=t[i]););return t}},L=(t,e,i)=>{var s,n
|
|
66
66
|
return t?(t+="",null==e.regex||-1===(n=t.search(e.regex))?0:(s=e.string.length/t.length,0===n&&(s+=.5),s*i)):0},k=(t,e)=>{var i=t[e]
|
|
67
67
|
if("function"==typeof i)return i
|
|
68
68
|
i&&!Array.isArray(i)&&(t[e]=[i])},E=(t,e)=>{if(Array.isArray(t))t.forEach(e)
|
|
@@ -169,18 +169,16 @@ if(H(r,n.wrapperClass,d,u),H(l,n.controlClass),lt(r,l),H(a,n.dropdownClass,u),n.
|
|
|
169
169
|
E(["autocorrect","autocapitalize","autocomplete"],(t=>{s.getAttribute(t)&&Q(p,{[t]:s.getAttribute(t)})})),p.tabIndex=-1,l.appendChild(p),this.focus_node=p}else n.controlInput?(p=$(n.controlInput),this.focus_node=p):(p=$("<input/>"),this.focus_node=l)
|
|
170
170
|
this.wrapper=r,this.dropdown=a,this.dropdown_content=c,this.control=l,this.control_input=p,this.setup()}setup(){const t=this,e=t.settings,i=t.control_input,s=t.dropdown,n=t.dropdown_content,o=t.wrapper,l=t.control,a=t.input,c=t.focus_node,d={passive:!0},u=t.inputId+"-ts-dropdown"
|
|
171
171
|
Q(n,{id:u}),Q(c,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":u})
|
|
172
|
-
const p=ot(c,t.inputId+"-ts-control"),h="label[for='"+(t=>t.replace(/['"\\]/g,"\\$&"))(t.inputId)+"']",g=document.querySelector(h),f=t.focus.bind(t)
|
|
173
|
-
if(g
|
|
174
|
-
|
|
175
|
-
Q(c,{"aria-labelledby":e}),Q(n,{"aria-labelledby":e})}if(o.style.width=a.style.width,t.plugins.names.length){const e="plugin-"+t.plugins.names.join(" plugin-")
|
|
176
|
-
H([o,s],e)}(null===e.maxItems||e.maxItems>1)&&t.is_select_tag&&Q(a,{multiple:"multiple"}),e.placeholder&&Q(i,{placeholder:e.placeholder}),!e.splitOn&&e.delimiter&&(e.splitOn=new RegExp("\\s*"+r(e.delimiter)+"+\\s*")),e.load&&e.loadThrottle&&(e.load=tt(e.load,e.loadThrottle)),t.control_input.type=a.type,st(s,"mousemove",(()=>{t.ignoreHover=!1})),st(s,"mouseenter",(e=>{var i=z(e.target,"[data-selectable]",s)
|
|
172
|
+
const p=ot(c,t.inputId+"-ts-control"),h="label[for='"+(t=>t.replace(/['"\\]/g,"\\$&"))(t.inputId)+"']",g=document.querySelector(h),f=t.focus.bind(t),v=a.getAttribute("aria-labelledby")
|
|
173
|
+
if(g&&(st(g,"click",f),Q(g,{for:p})),v&&(Q(c,{"aria-labelledby":v}),Q(n,{"aria-labelledby":v})),o.style.width=a.style.width,t.plugins.names.length){const e="plugin-"+t.plugins.names.join(" plugin-")
|
|
174
|
+
H([o,s],e)}"multi"===e.mode&&(Q(n,{"aria-multiselectable":"true"}),t.is_select_tag&&Q(a,{multiple:"multiple"})),e.placeholder&&Q(i,{placeholder:e.placeholder}),!e.splitOn&&e.delimiter&&(e.splitOn=new RegExp("\\s*"+r(e.delimiter)+"+\\s*")),e.load&&e.loadThrottle&&(e.load=tt(e.load,e.loadThrottle)),t.control_input.type=a.type,st(s,"mousemove",(()=>{t.ignoreHover=!1})),st(s,"mouseenter",(e=>{var i=z(e.target,"[data-selectable]",s)
|
|
177
175
|
i&&t.onOptionHover(e,i)}),{capture:!0}),st(s,"click",(e=>{const i=z(e.target,"[data-selectable]")
|
|
178
176
|
i&&(t.onOptionSelect(e,i),it(e,!0))})),st(l,"click",(e=>{var s=z(e.target,"[data-ts-item]",l)
|
|
179
177
|
s&&t.onItemSelect(e,s)?it(e,!0):""==i.value&&(t.onClick(),it(e,!0))})),st(c,"keydown",(e=>t.onKeyDown(e))),st(i,"keypress",(e=>t.onKeyPress(e))),st(i,"input",(e=>t.onInput(e))),st(c,"blur",(e=>t.onBlur(e))),st(c,"focus",(e=>t.onFocus(e))),st(i,"paste",(e=>t.onPaste(e)))
|
|
180
|
-
const
|
|
178
|
+
const m=e=>{const n=e.composedPath()[0]
|
|
181
179
|
if(!o.contains(n)&&!s.contains(n))return t.isFocused&&t.blur(),void t.inputState()
|
|
182
|
-
n==i&&t.isOpen?e.stopPropagation():it(e,!0)},
|
|
183
|
-
st(document,"mousedown",
|
|
180
|
+
n==i&&t.isOpen?e.stopPropagation():it(e,!0)},y=()=>{t.isOpen&&t.positionDropdown()}
|
|
181
|
+
st(document,"mousedown",m),st(window,"scroll",y,d),st(window,"resize",y,d),this._destroy=()=>{document.removeEventListener("mousedown",m),window.removeEventListener("scroll",y),window.removeEventListener("resize",y),g&&g.removeEventListener("click",f)},this.revertSettings={innerHTML:a.innerHTML,tabIndex:a.tabIndex},a.tabIndex=-1,a.insertAdjacentElement("afterend",t.wrapper),t.sync(!1),e.items=[],delete e.optgroups,delete e.options,st(a,"invalid",(()=>{t.isValid&&(t.isValid=!1,t.isInvalid=!0,t.refreshState())})),t.updateOriginalInput(),t.refreshItems(),t.close(!1),t.inputState(),t.isSetup=!0,a.disabled?t.disable():t.enable(),t.on("change",this.onChange),H(a,"tomselected","ts-hidden-accessible"),t.trigger("initialize"),!0===e.preload&&t.preload()}setupOptions(t=[],e=[]){this.addOptions(t),E(e,(t=>{this.registerOptionGroup(t)}))}setupTemplates(){var t=this,e=t.settings.labelField,i=t.settings.optgroupLabelField,s={optgroup:t=>{let e=document.createElement("div")
|
|
184
182
|
return e.className="optgroup",e.appendChild(t.options),e},optgroup_header:(t,e)=>'<div class="optgroup-header">'+e(t[i])+"</div>",option:(t,i)=>"<div>"+i(t[e])+"</div>",item:(t,i)=>"<div>"+i(t[e])+"</div>",option_create:(t,e)=>'<div class="create">Add <strong>'+e(t.input)+"</strong>…</div>",no_results:()=>'<div class="no-results">No results found</div>',loading:()=>'<div class="spinner"></div>',not_loading:()=>{},dropdown:()=>"<div></div>"}
|
|
185
183
|
t.settings.render=Object.assign({},s,t.settings.render)}setupCallbacks(){var t,e,i={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",item_select:"onItemSelect",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"}
|
|
186
184
|
for(t in i)(e=this.settings[i[t]])&&this.on(t,e)}sync(t=!0){const e=this,i=t?at(e.input,{delimiter:e.settings.delimiter}):e.settings
|
|
@@ -221,16 +219,16 @@ const i=e.loadCallback.bind(e)
|
|
|
221
219
|
e.settings.load.call(e,t,i)}loadCallback(t,e){const i=this
|
|
222
220
|
i.loading=Math.max(i.loading-1,0),i.lastQuery=null,i.clearActiveOption(),i.setupOptions(t,e),i.refreshOptions(i.isFocused&&!i.isInputHidden),i.loading||N(i.wrapper,i.settings.loadingClass),i.trigger("load",t,e)}preload(){var t=this.wrapper.classList
|
|
223
221
|
t.contains("preloaded")||(t.add("preloaded"),this.load(""))}setTextboxValue(t=""){var e=this.control_input
|
|
224
|
-
e.value!==t&&(e.value=t,q(e,"update"),this.lastValue=t)}getValue(){return
|
|
222
|
+
e.value!==t&&(e.value=t,q(e,"update"),this.lastValue=t)}getValue(){return"multi"===this.settings.mode&&this.is_select_tag?this.items:this.items.join(this.settings.delimiter)}setValue(t,e){et(this,e?[]:["change"],(()=>{this.clear(e),this.addItems(t,e)}))}setMaxItems(t){0===t&&(t=null),this.settings.maxItems=t,this.refreshState()}setActiveItem(t,e){var i,s,n,o,r,l,a=this
|
|
225
223
|
if("single"!==a.settings.mode){if(!t)return a.clearActiveItems(),void(a.isFocused&&a.showInput())
|
|
226
224
|
if("click"===(i=e&&e.type.toLowerCase())&&nt("shiftKey",e)&&a.activeItems.length){for(l=a.getLastActive(),(n=Array.prototype.indexOf.call(a.control.children,l))>(o=Array.prototype.indexOf.call(a.control.children,t))&&(r=n,n=o,o=r),s=n;s<=o;s++)t=a.control.children[s],-1===a.activeItems.indexOf(t)&&a.setActiveItemClass(t)
|
|
227
225
|
it(e)}else"click"===i&&nt(U,e)||"keydown"===i&&nt("shiftKey",e)?t.classList.contains("active")?a.removeActiveItem(t):a.setActiveItemClass(t):(a.clearActiveItems(),a.setActiveItemClass(t))
|
|
228
226
|
a.hideInput(),a.isFocused||a.focus()}}setActiveItemClass(t){const e=this,i=e.control.querySelector(".last-active")
|
|
229
227
|
i&&N(i,"last-active"),H(t,"active last-active"),e.trigger("item_select",t),-1==e.activeItems.indexOf(t)&&e.activeItems.push(t)}removeActiveItem(t){var e=this.activeItems.indexOf(t)
|
|
230
|
-
this.activeItems.splice(e,1),N(t,"active")}clearActiveItems(){N(this.activeItems,"active"),this.activeItems=[]}setActiveOption(t,e=!0){t!==this.activeOption&&(this.clearActiveOption(),t&&(this.activeOption=t,Q(this.focus_node,{"aria-activedescendant":t.getAttribute("id")}),Q(t,{"aria-selected":"true"}),H(t,"active"),e&&this.scrollToOption(t)))}scrollToOption(t,e){if(!t)return
|
|
228
|
+
this.activeItems.splice(e,1),N(t,"active")}clearActiveItems(){N(this.activeItems,"active"),this.activeItems=[]}setActiveOption(t,e=!0){t!==this.activeOption&&(this.clearActiveOption(),t&&(this.activeOption=t,Q(this.focus_node,{"aria-activedescendant":t.getAttribute("id")}),("single"===this.settings.mode||this.settings.hideSelected)&&Q(t,{"aria-selected":"true"}),H(t,"active"),e&&this.scrollToOption(t)))}scrollToOption(t,e){if(!t)return
|
|
231
229
|
const i=this.dropdown_content,s=i.clientHeight,n=i.scrollTop||0,o=t.offsetHeight,r=t.getBoundingClientRect().top-i.getBoundingClientRect().top+n
|
|
232
230
|
r+o>s+n?this.scroll(r-s+o,e):r<n&&this.scroll(r,e)}scroll(t,e){const i=this.dropdown_content
|
|
233
|
-
e&&(i.style.scrollBehavior=e),i.scrollTop=t,i.style.scrollBehavior=""}clearActiveOption(){this.activeOption&&(N(this.activeOption,"active"),Q(this.activeOption,{"aria-selected":null})),this.activeOption=null,Q(this.focus_node,{"aria-activedescendant":null})}selectAll(){const t=this
|
|
231
|
+
e&&(i.style.scrollBehavior=e),i.scrollTop=t,i.style.scrollBehavior=""}clearActiveOption(){this.activeOption&&(N(this.activeOption,"active"),("single"===this.settings.mode||this.settings.hideSelected)&&Q(this.activeOption,{"aria-selected":null})),this.activeOption=null,Q(this.focus_node,{"aria-activedescendant":null})}selectAll(){const t=this
|
|
234
232
|
if("single"===t.settings.mode)return
|
|
235
233
|
const e=t.controlChildren()
|
|
236
234
|
e.length&&(t.hideInput(),t.close(),t.activeItems=e,E(e,(e=>{t.setActiveItemClass(e)})))}inputState(){var t=this
|
|
@@ -249,9 +247,10 @@ if(!t)continue
|
|
|
249
247
|
let n=t.id,l=h.options[n]
|
|
250
248
|
if(void 0===l)continue
|
|
251
249
|
let a=Y(n),d=h.getOption(a,!0)
|
|
252
|
-
|
|
250
|
+
const g=h.items.includes(a)
|
|
251
|
+
for(h.settings.hideSelected||(d.classList.toggle("selected",g),"multi"===this.settings.mode&&Q(d,{"aria-selected":g?"true":"false"})),o=l[h.settings.optgroupField]||"",i=0,s=(r=Array.isArray(o)?o:[o])&&r.length;i<s;i++){o=r[i],h.optgroups.hasOwnProperty(o)||(o="")
|
|
253
252
|
let t=u[o]
|
|
254
|
-
void 0===t&&(t=document.createDocumentFragment(),p.push(o)),i>0&&(d=d.cloneNode(!0),Q(d,{id:l.$id+"-clone-"+i,"aria-selected":null}),d.classList.add("ts-cloned"),N(d,"active"),h.activeOption&&h.activeOption.dataset.value==n&&c&&c.dataset.group===o.toString()&&(y=d)),t.appendChild(d),u[o]=t}}h.settings.lockOptgroupOrder&&p.sort(((t,e)=>{const i=h.optgroups[t],s=h.optgroups[e]
|
|
253
|
+
void 0===t&&(t=document.createDocumentFragment(),p.push(o)),i>0&&(d=d.cloneNode(!0),"multi"!==this.settings.mode||h.settings.hideSelected?Q(d,{id:l.$id+"-clone-"+i,"aria-selected":null}):Q(d,{id:l.$id+"-clone-"+i,"aria-selected":g?"true":"false"}),d.classList.add("ts-cloned"),N(d,"active"),h.activeOption&&h.activeOption.dataset.value==n&&c&&c.dataset.group===o.toString()&&(y=d)),t.appendChild(d),u[o]=t}}h.settings.lockOptgroupOrder&&p.sort(((t,e)=>{const i=h.optgroups[t],s=h.optgroups[e]
|
|
255
254
|
return(i&&i.$order||0)-(s&&s.$order||0)})),l=document.createDocumentFragment(),E(p,(t=>{let e=u[t]
|
|
256
255
|
if(!e||!e.children.length)return
|
|
257
256
|
let i=h.optgroups[t]
|