@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.
Files changed (170) hide show
  1. package/dist/cjs/{app-globals-4dcdf160.js → app-globals-5dfa53d1.js} +2 -2
  2. package/dist/cjs/{app-globals-4dcdf160.js.map → app-globals-5dfa53d1.js.map} +1 -1
  3. package/dist/cjs/index.cjs.js.map +1 -1
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/stzh-amount.cjs.entry.js +30 -79
  6. package/dist/cjs/stzh-amount.cjs.entry.js.map +1 -1
  7. package/dist/cjs/stzh-components.cjs.js +2 -2
  8. package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/stzh-dropdown.cjs.entry.js +60 -25
  10. package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
  11. package/dist/cjs/stzh-monthyearpicker.cjs.entry.js +191 -0
  12. package/dist/cjs/stzh-monthyearpicker.cjs.entry.js.map +1 -0
  13. package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +1 -1
  14. package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
  15. package/dist/cjs/stzh-timepicker.cjs.entry.js +82 -0
  16. package/dist/cjs/stzh-timepicker.cjs.entry.js.map +1 -0
  17. package/dist/cjs/translation-utils-73073e44.js.map +1 -1
  18. package/dist/collection/assets/i18n/de.json +10 -7
  19. package/dist/collection/assets/i18n/en.json +8 -5
  20. package/dist/collection/collection-manifest.json +2 -0
  21. package/dist/collection/components/stzh-amount/stzh-amount.js +32 -85
  22. package/dist/collection/components/stzh-amount/stzh-amount.js.map +1 -1
  23. package/dist/collection/components/stzh-amount/stzh-amount.localization.js.map +1 -1
  24. package/dist/collection/components/stzh-amount/stzh-amount.stories.js +1 -1
  25. package/dist/collection/components/stzh-datepicker/stzh-datepicker.js +1 -1
  26. package/dist/collection/components/stzh-datepicker/stzh-datepicker.js.map +1 -1
  27. package/dist/collection/components/stzh-datepicker/stzh-datepicker.stories.js +3 -0
  28. package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +32 -20
  29. package/dist/collection/components/stzh-dropdown/stzh-dropdown.js +40 -9
  30. package/dist/collection/components/stzh-dropdown/stzh-dropdown.js.map +1 -1
  31. package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.css +123 -0
  32. package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.js +724 -0
  33. package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.js.map +1 -0
  34. package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.localization.js +2 -0
  35. package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.localization.js.map +1 -0
  36. package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.stories.js +61 -0
  37. package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +1 -1
  38. package/dist/collection/components/stzh-timepicker/stzh-timepicker.css +109 -0
  39. package/dist/collection/components/stzh-timepicker/stzh-timepicker.js +438 -0
  40. package/dist/collection/components/stzh-timepicker/stzh-timepicker.js.map +1 -0
  41. package/dist/collection/components/stzh-timepicker/stzh-timepicker.localization.js +2 -0
  42. package/dist/collection/components/stzh-timepicker/stzh-timepicker.localization.js.map +1 -0
  43. package/dist/collection/components/stzh-timepicker/stzh-timepicker.stories.js +45 -0
  44. package/dist/collection/index.js.map +1 -1
  45. package/dist/collection/libraries/tom-select/cjs/tom-select.complete.js +47 -18
  46. package/dist/collection/libraries/tom-select/cjs/tom-select.js +47 -18
  47. package/dist/collection/libraries/tom-select/cjs/tom-select.popular.js +47 -18
  48. package/dist/collection/libraries/tom-select/esm/tom-select.complete.js +47 -18
  49. package/dist/collection/libraries/tom-select/esm/tom-select.js +47 -18
  50. package/dist/collection/libraries/tom-select/esm/tom-select.popular.js +47 -18
  51. package/dist/collection/libraries/tom-select/js/tom-select.base.js +47 -18
  52. package/dist/collection/libraries/tom-select/js/tom-select.base.min.js +16 -17
  53. package/dist/collection/libraries/tom-select/js/tom-select.complete.js +47 -18
  54. package/dist/collection/libraries/tom-select/js/tom-select.complete.min.js +12 -13
  55. package/dist/collection/libraries/tom-select/js/tom-select.popular.js +47 -18
  56. package/dist/collection/libraries/tom-select/js/tom-select.popular.min.js +21 -22
  57. package/dist/collection/utils/translation-utils.js.map +1 -1
  58. package/dist/components/index.js +1 -1
  59. package/dist/components/index2.js.map +1 -1
  60. package/dist/components/stzh-amount.js +40 -83
  61. package/dist/components/stzh-amount.js.map +1 -1
  62. package/dist/components/stzh-buttongroup.js +1 -31
  63. package/dist/components/stzh-buttongroup.js.map +1 -1
  64. package/dist/components/stzh-buttongroup2.js +35 -0
  65. package/dist/components/stzh-buttongroup2.js.map +1 -0
  66. package/dist/components/stzh-datepicker2.js.map +1 -1
  67. package/dist/components/stzh-dropdown2.js +61 -25
  68. package/dist/components/stzh-dropdown2.js.map +1 -1
  69. package/dist/components/stzh-monthyearpicker.d.ts +11 -0
  70. package/dist/components/stzh-monthyearpicker.js +251 -0
  71. package/dist/components/stzh-monthyearpicker.js.map +1 -0
  72. package/dist/components/stzh-skin-portal-mitwirken.js +1 -1
  73. package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
  74. package/dist/components/stzh-timepicker.d.ts +11 -0
  75. package/dist/components/stzh-timepicker.js +132 -0
  76. package/dist/components/stzh-timepicker.js.map +1 -0
  77. package/dist/components/translation-utils.js.map +1 -1
  78. package/dist/esm/{app-globals-91875913.js → app-globals-862dc6d0.js} +2 -2
  79. package/dist/esm/{app-globals-91875913.js.map → app-globals-862dc6d0.js.map} +1 -1
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/esm/loader.js +2 -2
  82. package/dist/esm/stzh-amount.entry.js +30 -79
  83. package/dist/esm/stzh-amount.entry.js.map +1 -1
  84. package/dist/esm/stzh-components.js +2 -2
  85. package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
  86. package/dist/esm/stzh-dropdown.entry.js +60 -25
  87. package/dist/esm/stzh-dropdown.entry.js.map +1 -1
  88. package/dist/esm/stzh-monthyearpicker.entry.js +187 -0
  89. package/dist/esm/stzh-monthyearpicker.entry.js.map +1 -0
  90. package/dist/esm/stzh-skin-portal-mitwirken.entry.js +1 -1
  91. package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
  92. package/dist/esm/stzh-timepicker.entry.js +78 -0
  93. package/dist/esm/stzh-timepicker.entry.js.map +1 -0
  94. package/dist/esm/translation-utils-2623783f.js.map +1 -1
  95. package/dist/esm-es5/{app-globals-91875913.js → app-globals-862dc6d0.js} +2 -2
  96. package/dist/esm-es5/{app-globals-91875913.js.map → app-globals-862dc6d0.js.map} +1 -1
  97. package/dist/esm-es5/index.js.map +1 -1
  98. package/dist/esm-es5/loader.js +1 -1
  99. package/dist/esm-es5/loader.js.map +1 -1
  100. package/dist/esm-es5/stzh-amount.entry.js +1 -1
  101. package/dist/esm-es5/stzh-amount.entry.js.map +1 -1
  102. package/dist/esm-es5/stzh-components.js +1 -1
  103. package/dist/esm-es5/stzh-components.js.map +1 -1
  104. package/dist/esm-es5/stzh-datepicker_3.entry.js.map +1 -1
  105. package/dist/esm-es5/stzh-dropdown.entry.js +2 -2
  106. package/dist/esm-es5/stzh-dropdown.entry.js.map +1 -1
  107. package/dist/esm-es5/stzh-monthyearpicker.entry.js +2 -0
  108. package/dist/esm-es5/stzh-monthyearpicker.entry.js.map +1 -0
  109. package/dist/esm-es5/stzh-skin-portal-mitwirken.entry.js +1 -1
  110. package/dist/esm-es5/stzh-skin-portal-mitwirken.entry.js.map +1 -1
  111. package/dist/esm-es5/stzh-timepicker.entry.js +2 -0
  112. package/dist/esm-es5/stzh-timepicker.entry.js.map +1 -0
  113. package/dist/esm-es5/translation-utils-2623783f.js.map +1 -1
  114. package/dist/stzh-components/assets/i18n/de.json +10 -7
  115. package/dist/stzh-components/assets/i18n/en.json +8 -5
  116. package/dist/stzh-components/index.esm.js.map +1 -1
  117. package/dist/stzh-components/p-14e782cb.entry.js +2 -0
  118. package/dist/stzh-components/{p-85504842.entry.js.map → p-14e782cb.entry.js.map} +1 -1
  119. package/dist/stzh-components/p-1678e09c.system.js +2 -0
  120. package/dist/stzh-components/{p-3e10addb.system.js.map → p-1678e09c.system.js.map} +1 -1
  121. package/dist/stzh-components/p-25a09313.js.map +1 -1
  122. package/dist/stzh-components/{p-61b66e55.system.js → p-3b4833a0.system.js} +2 -2
  123. package/dist/stzh-components/{p-61b66e55.system.js.map → p-3b4833a0.system.js.map} +1 -1
  124. package/dist/stzh-components/p-51f1714c.system.entry.js +2 -0
  125. package/dist/stzh-components/p-51f1714c.system.entry.js.map +1 -0
  126. package/dist/stzh-components/p-5aa96b49.system.entry.js +2 -0
  127. package/dist/stzh-components/p-5aa96b49.system.entry.js.map +1 -0
  128. package/dist/stzh-components/p-82e886d4.entry.js.map +1 -1
  129. package/dist/stzh-components/p-9f31cf7d.entry.js +2 -0
  130. package/dist/stzh-components/p-9f31cf7d.entry.js.map +1 -0
  131. package/dist/stzh-components/p-9fe69be8.system.entry.js +2 -0
  132. package/dist/stzh-components/{p-479a02fb.system.entry.js.map → p-9fe69be8.system.entry.js.map} +1 -1
  133. package/dist/stzh-components/p-a408bfba.system.js.map +1 -1
  134. package/dist/stzh-components/p-ad33db31.entry.js +2 -0
  135. package/dist/stzh-components/p-ad33db31.entry.js.map +1 -0
  136. package/dist/stzh-components/p-b5cda655.entry.js +2 -0
  137. package/dist/stzh-components/p-b5cda655.entry.js.map +1 -0
  138. package/dist/stzh-components/{p-362af013.js → p-bc82ed48.js} +2 -2
  139. package/dist/stzh-components/{p-362af013.js.map → p-bc82ed48.js.map} +1 -1
  140. package/dist/stzh-components/p-c0f971f2.entry.js +9 -0
  141. package/dist/stzh-components/p-c0f971f2.entry.js.map +1 -0
  142. package/dist/stzh-components/p-c901fe72.system.entry.js +9 -0
  143. package/dist/stzh-components/p-c901fe72.system.entry.js.map +1 -0
  144. package/dist/stzh-components/p-e8545386.system.entry.js +2 -0
  145. package/dist/stzh-components/p-e8545386.system.entry.js.map +1 -0
  146. package/dist/stzh-components/p-eaa65f52.system.js.map +1 -1
  147. package/dist/stzh-components/p-f2d74491.system.entry.js.map +1 -1
  148. package/dist/stzh-components/stzh-components.css +1 -1
  149. package/dist/stzh-components/stzh-components.esm.js +1 -1
  150. package/dist/stzh-components/stzh-components.esm.js.map +1 -1
  151. package/dist/stzh-components/stzh-components.js +1 -1
  152. package/dist/types/components/stzh-amount/stzh-amount.localization.d.ts +0 -2
  153. package/dist/types/components/stzh-monthyearpicker/stzh-monthyearpicker.localization.d.ts +5 -0
  154. package/dist/types/components/stzh-timepicker/stzh-timepicker.localization.d.ts +2 -0
  155. package/dist/types/components.d.ts +428 -6
  156. package/dist/types/index.d.ts +14 -0
  157. package/dist/types/utils/translation-utils.d.ts +1 -0
  158. package/dist/vscode-data.json +263 -1
  159. package/package.json +1 -1
  160. package/dist/stzh-components/p-1cc48f98.entry.js +0 -9
  161. package/dist/stzh-components/p-1cc48f98.entry.js.map +0 -1
  162. package/dist/stzh-components/p-3e10addb.system.js +0 -2
  163. package/dist/stzh-components/p-479a02fb.system.entry.js +0 -2
  164. package/dist/stzh-components/p-67b11b03.system.entry.js +0 -2
  165. package/dist/stzh-components/p-67b11b03.system.entry.js.map +0 -1
  166. package/dist/stzh-components/p-6bb83b30.system.entry.js +0 -9
  167. package/dist/stzh-components/p-6bb83b30.system.entry.js.map +0 -1
  168. package/dist/stzh-components/p-85504842.entry.js +0 -2
  169. package/dist/stzh-components/p-c94f7331.entry.js +0 -2
  170. package/dist/stzh-components/p-c94f7331.entry.js.map +0 -1
@@ -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
- const label_id = getId(label, self.inputId + '-ts-label');
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': label_id
2149
+ 'aria-labelledby': labelled_by
2143
2150
  });
2144
2151
  setAttr(dropdown_content, {
2145
- 'aria-labelledby': label_id
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 ((settings.maxItems === null || settings.maxItems > 1) && self.is_select_tag) {
2154
- setAttr(input, {
2155
- multiple: 'multiple'
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.is_select_tag && this.input.hasAttribute('multiple')) {
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
- setAttr(option, {
2946
- 'aria-selected': 'true'
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
- setAttr(this.activeOption, {
2991
- 'aria-selected': null
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', self.items.includes(opt_hash));
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
- setAttr(option_el, {
3229
- id: option.$id + '-clone-' + j,
3230
- 'aria-selected': null
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
 
@@ -169,18 +169,16 @@ if(H(r,n.wrapperClass,d,u),H(l,n.controlClass),ae(r,l),H(a,n.dropdownClass,u),n.
169
169
  E(["autocorrect","autocapitalize","autocomplete"],(e=>{s.getAttribute(e)&&G(p,{[e]:s.getAttribute(e)})})),p.tabIndex=-1,l.appendChild(p),this.focus_node=p}else n.controlInput?(p=V(n.controlInput),this.focus_node=p):(p=V("<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 e=this,t=e.settings,i=e.control_input,s=e.dropdown,n=e.dropdown_content,o=e.wrapper,l=e.control,a=e.input,c=e.focus_node,d={passive:!0},u=e.inputId+"-ts-dropdown"
171
171
  G(n,{id:u}),G(c,{role:"combobox","aria-haspopup":"listbox","aria-expanded":"false","aria-controls":u})
172
- const p=re(c,e.inputId+"-ts-control"),h="label[for='"+(e=>e.replace(/['"\\]/g,"\\$&"))(e.inputId)+"']",g=document.querySelector(h),f=e.focus.bind(e)
173
- if(g){ne(g,"click",f),G(g,{for:p})
174
- const t=re(g,e.inputId+"-ts-label")
175
- G(c,{"aria-labelledby":t}),G(n,{"aria-labelledby":t})}if(o.style.width=a.style.width,e.plugins.names.length){const t="plugin-"+e.plugins.names.join(" plugin-")
176
- H([o,s],t)}(null===t.maxItems||t.maxItems>1)&&e.is_select_tag&&G(a,{multiple:"multiple"}),t.placeholder&&G(i,{placeholder:t.placeholder}),!t.splitOn&&t.delimiter&&(t.splitOn=new RegExp("\\s*"+r(t.delimiter)+"+\\s*")),t.load&&t.loadThrottle&&(t.load=te(t.load,t.loadThrottle)),e.control_input.type=a.type,ne(s,"mousemove",(()=>{e.ignoreHover=!1})),ne(s,"mouseenter",(t=>{var i=B(t.target,"[data-selectable]",s)
172
+ const p=re(c,e.inputId+"-ts-control"),h="label[for='"+(e=>e.replace(/['"\\]/g,"\\$&"))(e.inputId)+"']",g=document.querySelector(h),f=e.focus.bind(e),v=a.getAttribute("aria-labelledby")
173
+ if(g&&(ne(g,"click",f),G(g,{for:p})),v&&(G(c,{"aria-labelledby":v}),G(n,{"aria-labelledby":v})),o.style.width=a.style.width,e.plugins.names.length){const t="plugin-"+e.plugins.names.join(" plugin-")
174
+ H([o,s],t)}"multi"===t.mode&&(G(n,{"aria-multiselectable":"true"}),e.is_select_tag&&G(a,{multiple:"multiple"})),t.placeholder&&G(i,{placeholder:t.placeholder}),!t.splitOn&&t.delimiter&&(t.splitOn=new RegExp("\\s*"+r(t.delimiter)+"+\\s*")),t.load&&t.loadThrottle&&(t.load=te(t.load,t.loadThrottle)),e.control_input.type=a.type,ne(s,"mousemove",(()=>{e.ignoreHover=!1})),ne(s,"mouseenter",(t=>{var i=B(t.target,"[data-selectable]",s)
177
175
  i&&e.onOptionHover(t,i)}),{capture:!0}),ne(s,"click",(t=>{const i=B(t.target,"[data-selectable]")
178
176
  i&&(e.onOptionSelect(t,i),se(t,!0))})),ne(l,"click",(t=>{var s=B(t.target,"[data-ts-item]",l)
179
177
  s&&e.onItemSelect(t,s)?se(t,!0):""==i.value&&(e.onClick(),se(t,!0))})),ne(c,"keydown",(t=>e.onKeyDown(t))),ne(i,"keypress",(t=>e.onKeyPress(t))),ne(i,"input",(t=>e.onInput(t))),ne(c,"blur",(t=>e.onBlur(t))),ne(c,"focus",(t=>e.onFocus(t))),ne(i,"paste",(t=>e.onPaste(t)))
180
- const v=t=>{const n=t.composedPath()[0]
178
+ const m=t=>{const n=t.composedPath()[0]
181
179
  if(!o.contains(n)&&!s.contains(n))return e.isFocused&&e.blur(),void e.inputState()
182
- n==i&&e.isOpen?t.stopPropagation():se(t,!0)},m=()=>{e.isOpen&&e.positionDropdown()}
183
- ne(document,"mousedown",v),ne(window,"scroll",m,d),ne(window,"resize",m,d),this._destroy=()=>{document.removeEventListener("mousedown",v),window.removeEventListener("scroll",m),window.removeEventListener("resize",m),g&&g.removeEventListener("click",f)},this.revertSettings={innerHTML:a.innerHTML,tabIndex:a.tabIndex},a.tabIndex=-1,a.insertAdjacentElement("afterend",e.wrapper),e.sync(!1),t.items=[],delete t.optgroups,delete t.options,ne(a,"invalid",(()=>{e.isValid&&(e.isValid=!1,e.isInvalid=!0,e.refreshState())})),e.updateOriginalInput(),e.refreshItems(),e.close(!1),e.inputState(),e.isSetup=!0,a.disabled?e.disable():e.enable(),e.on("change",this.onChange),H(a,"tomselected","ts-hidden-accessible"),e.trigger("initialize"),!0===t.preload&&e.preload()}setupOptions(e=[],t=[]){this.addOptions(e),E(t,(e=>{this.registerOptionGroup(e)}))}setupTemplates(){var e=this,t=e.settings.labelField,i=e.settings.optgroupLabelField,s={optgroup:e=>{let t=document.createElement("div")
180
+ n==i&&e.isOpen?t.stopPropagation():se(t,!0)},y=()=>{e.isOpen&&e.positionDropdown()}
181
+ ne(document,"mousedown",m),ne(window,"scroll",y,d),ne(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",e.wrapper),e.sync(!1),t.items=[],delete t.optgroups,delete t.options,ne(a,"invalid",(()=>{e.isValid&&(e.isValid=!1,e.isInvalid=!0,e.refreshState())})),e.updateOriginalInput(),e.refreshItems(),e.close(!1),e.inputState(),e.isSetup=!0,a.disabled?e.disable():e.enable(),e.on("change",this.onChange),H(a,"tomselected","ts-hidden-accessible"),e.trigger("initialize"),!0===t.preload&&e.preload()}setupOptions(e=[],t=[]){this.addOptions(e),E(t,(e=>{this.registerOptionGroup(e)}))}setupTemplates(){var e=this,t=e.settings.labelField,i=e.settings.optgroupLabelField,s={optgroup:e=>{let t=document.createElement("div")
184
182
  return t.className="optgroup",t.appendChild(e.options),t},optgroup_header:(e,t)=>'<div class="optgroup-header">'+t(e[i])+"</div>",option:(e,i)=>"<div>"+i(e[t])+"</div>",item:(e,i)=>"<div>"+i(e[t])+"</div>",option_create:(e,t)=>'<div class="create">Add <strong>'+t(e.input)+"</strong>&hellip;</div>",no_results:()=>'<div class="no-results">No results found</div>',loading:()=>'<div class="spinner"></div>',not_loading:()=>{},dropdown:()=>"<div></div>"}
185
183
  e.settings.render=Object.assign({},s,e.settings.render)}setupCallbacks(){var e,t,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(e in i)(t=this.settings[i[e]])&&this.on(e,t)}sync(e=!0){const t=this,i=e?ce(t.input,{delimiter:t.settings.delimiter}):t.settings
@@ -221,16 +219,16 @@ const i=t.loadCallback.bind(t)
221
219
  t.settings.load.call(t,e,i)}loadCallback(e,t){const i=this
222
220
  i.loading=Math.max(i.loading-1,0),i.lastQuery=null,i.clearActiveOption(),i.setupOptions(e,t),i.refreshOptions(i.isFocused&&!i.isInputHidden),i.loading||z(i.wrapper,i.settings.loadingClass),i.trigger("load",e,t)}preload(){var e=this.wrapper.classList
223
221
  e.contains("preloaded")||(e.add("preloaded"),this.load(""))}setTextboxValue(e=""){var t=this.control_input
224
- t.value!==e&&(t.value=e,D(t,"update"),this.lastValue=e)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(e,t){ie(this,t?[]:["change"],(()=>{this.clear(t),this.addItems(e,t)}))}setMaxItems(e){0===e&&(e=null),this.settings.maxItems=e,this.refreshState()}setActiveItem(e,t){var i,s,n,o,r,l,a=this
222
+ t.value!==e&&(t.value=e,D(t,"update"),this.lastValue=e)}getValue(){return"multi"===this.settings.mode&&this.is_select_tag?this.items:this.items.join(this.settings.delimiter)}setValue(e,t){ie(this,t?[]:["change"],(()=>{this.clear(t),this.addItems(e,t)}))}setMaxItems(e){0===e&&(e=null),this.settings.maxItems=e,this.refreshState()}setActiveItem(e,t){var i,s,n,o,r,l,a=this
225
223
  if("single"!==a.settings.mode){if(!e)return a.clearActiveItems(),void(a.isFocused&&a.showInput())
226
224
  if("click"===(i=t&&t.type.toLowerCase())&&oe("shiftKey",t)&&a.activeItems.length){for(l=a.getLastActive(),(n=Array.prototype.indexOf.call(a.control.children,l))>(o=Array.prototype.indexOf.call(a.control.children,e))&&(r=n,n=o,o=r),s=n;s<=o;s++)e=a.control.children[s],-1===a.activeItems.indexOf(e)&&a.setActiveItemClass(e)
227
225
  se(t)}else"click"===i&&oe(W,t)||"keydown"===i&&oe("shiftKey",t)?e.classList.contains("active")?a.removeActiveItem(e):a.setActiveItemClass(e):(a.clearActiveItems(),a.setActiveItemClass(e))
228
226
  a.hideInput(),a.isFocused||a.focus()}}setActiveItemClass(e){const t=this,i=t.control.querySelector(".last-active")
229
227
  i&&z(i,"last-active"),H(e,"active last-active"),t.trigger("item_select",e),-1==t.activeItems.indexOf(e)&&t.activeItems.push(e)}removeActiveItem(e){var t=this.activeItems.indexOf(e)
230
- this.activeItems.splice(t,1),z(e,"active")}clearActiveItems(){z(this.activeItems,"active"),this.activeItems=[]}setActiveOption(e,t=!0){e!==this.activeOption&&(this.clearActiveOption(),e&&(this.activeOption=e,G(this.focus_node,{"aria-activedescendant":e.getAttribute("id")}),G(e,{"aria-selected":"true"}),H(e,"active"),t&&this.scrollToOption(e)))}scrollToOption(e,t){if(!e)return
228
+ this.activeItems.splice(t,1),z(e,"active")}clearActiveItems(){z(this.activeItems,"active"),this.activeItems=[]}setActiveOption(e,t=!0){e!==this.activeOption&&(this.clearActiveOption(),e&&(this.activeOption=e,G(this.focus_node,{"aria-activedescendant":e.getAttribute("id")}),("single"===this.settings.mode||this.settings.hideSelected)&&G(e,{"aria-selected":"true"}),H(e,"active"),t&&this.scrollToOption(e)))}scrollToOption(e,t){if(!e)return
231
229
  const i=this.dropdown_content,s=i.clientHeight,n=i.scrollTop||0,o=e.offsetHeight,r=e.getBoundingClientRect().top-i.getBoundingClientRect().top+n
232
230
  r+o>s+n?this.scroll(r-s+o,t):r<n&&this.scroll(r,t)}scroll(e,t){const i=this.dropdown_content
233
- t&&(i.style.scrollBehavior=t),i.scrollTop=e,i.style.scrollBehavior=""}clearActiveOption(){this.activeOption&&(z(this.activeOption,"active"),G(this.activeOption,{"aria-selected":null})),this.activeOption=null,G(this.focus_node,{"aria-activedescendant":null})}selectAll(){const e=this
231
+ t&&(i.style.scrollBehavior=t),i.scrollTop=e,i.style.scrollBehavior=""}clearActiveOption(){this.activeOption&&(z(this.activeOption,"active"),("single"===this.settings.mode||this.settings.hideSelected)&&G(this.activeOption,{"aria-selected":null})),this.activeOption=null,G(this.focus_node,{"aria-activedescendant":null})}selectAll(){const e=this
234
232
  if("single"===e.settings.mode)return
235
233
  const t=e.controlChildren()
236
234
  t.length&&(e.hideInput(),e.close(),e.activeItems=t,E(t,(t=>{e.setActiveItemClass(t)})))}inputState(){var e=this
@@ -249,9 +247,10 @@ if(!e)continue
249
247
  let n=e.id,l=h.options[n]
250
248
  if(void 0===l)continue
251
249
  let a=Z(n),d=h.getOption(a,!0)
252
- for(h.settings.hideSelected||d.classList.toggle("selected",h.items.includes(a)),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="")
250
+ const g=h.items.includes(a)
251
+ for(h.settings.hideSelected||(d.classList.toggle("selected",g),"multi"===this.settings.mode&&G(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 e=u[o]
254
- void 0===e&&(e=document.createDocumentFragment(),p.push(o)),i>0&&(d=d.cloneNode(!0),G(d,{id:l.$id+"-clone-"+i,"aria-selected":null}),d.classList.add("ts-cloned"),z(d,"active"),h.activeOption&&h.activeOption.dataset.value==n&&c&&c.dataset.group===o.toString()&&(y=d)),e.appendChild(d),u[o]=e}}h.settings.lockOptgroupOrder&&p.sort(((e,t)=>{const i=h.optgroups[e],s=h.optgroups[t]
253
+ void 0===e&&(e=document.createDocumentFragment(),p.push(o)),i>0&&(d=d.cloneNode(!0),"multi"!==this.settings.mode||h.settings.hideSelected?G(d,{id:l.$id+"-clone-"+i,"aria-selected":null}):G(d,{id:l.$id+"-clone-"+i,"aria-selected":g?"true":"false"}),d.classList.add("ts-cloned"),z(d,"active"),h.activeOption&&h.activeOption.dataset.value==n&&c&&c.dataset.group===o.toString()&&(y=d)),e.appendChild(d),u[o]=e}}h.settings.lockOptgroupOrder&&p.sort(((e,t)=>{const i=h.optgroups[e],s=h.optgroups[t]
255
254
  return(i&&i.$order||0)-(s&&s.$order||0)})),l=document.createDocumentFragment(),E(p,(e=>{let t=u[e]
256
255
  if(!t||!t.children.length)return
257
256
  let i=h.optgroups[e]
@@ -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
- const label_id = getId(label, self.inputId + '-ts-label');
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': label_id
2149
+ 'aria-labelledby': labelled_by
2143
2150
  });
2144
2151
  setAttr(dropdown_content, {
2145
- 'aria-labelledby': label_id
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 ((settings.maxItems === null || settings.maxItems > 1) && self.is_select_tag) {
2154
- setAttr(input, {
2155
- multiple: 'multiple'
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.is_select_tag && this.input.hasAttribute('multiple')) {
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
- setAttr(option, {
2946
- 'aria-selected': 'true'
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
- setAttr(this.activeOption, {
2991
- 'aria-selected': null
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', self.items.includes(opt_hash));
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
- setAttr(option_el, {
3229
- id: option.$id + '-clone-' + j,
3230
- 'aria-selected': null
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
 
@@ -22,12 +22,12 @@ let p,h
22
22
  const g={},f={"/":"⁄∕",0:"߀",a:"ⱥɐɑ",aa:"ꜳ",ae:"æǽǣ",ao:"ꜵ",au:"ꜷ",av:"ꜹꜻ",ay:"ꜽ",b:"ƀɓƃ",c:"ꜿƈȼↄ",d:"đɗɖᴅƌꮷԁɦ",e:"ɛǝᴇɇ",f:"ꝼƒ",g:"ǥɠꞡᵹꝿɢ",h:"ħⱨⱶɥ",i:"ɨı",j:"ɉȷ",k:"ƙⱪꝁꝃꝅꞣ",l:"łƚɫⱡꝉꝇꞁɭ",m:"ɱɯϻ",n:"ꞥƞɲꞑᴎлԉ",o:"øǿɔɵꝋꝍᴑ",oe:"œ",oi:"ƣ",oo:"ꝏ",ou:"ȣ",p:"ƥᵽꝑꝓꝕρ",q:"ꝗꝙɋ",r:"ɍɽꝛꞧꞃ",s:"ßȿꞩꞅʂ",t:"ŧƭʈⱦꞇ",th:"þ",tz:"ꜩ",u:"ʉ",v:"ʋꝟʌ",vy:"ꝡ",w:"ⱳ",y:"ƴɏỿ",z:"ƶȥɀⱬꝣ",hv:"ƕ"}
23
23
  for(let t in f){let e=f[t]||""
24
24
  for(let i=0;i<e.length;i++){let s=e.substring(i,i+1)
25
- g[s]=t}}const v=new RegExp(Object.keys(g).join("|")+"|[̀-ͯ·ʾʼ]","gu"),m=(t,e="NFKD")=>t.normalize(e),y=t=>c(t).reduce(((t,e)=>t+O(e)),""),O=t=>(t=m(t).toLowerCase().replace(v,(t=>g[t]||"")),m(t,"NFC"))
26
- const b=t=>{const e={},i=(t,i)=>{const s=e[t]||new Set,o=new RegExp("^"+n(s)+"$","iu")
25
+ g[s]=t}}const v=new RegExp(Object.keys(g).join("|")+"|[̀-ͯ·ʾʼ]","gu"),m=(t,e="NFKD")=>t.normalize(e),y=t=>c(t).reduce(((t,e)=>t+b(e)),""),b=t=>(t=m(t).toLowerCase().replace(v,(t=>g[t]||"")),m(t,"NFC"))
26
+ const O=t=>{const e={},i=(t,i)=>{const s=e[t]||new Set,o=new RegExp("^"+n(s)+"$","iu")
27
27
  i.match(o)||(s.add(r(i)),e[t]=s)}
28
28
  for(let e of function*(t){for(const[e,i]of t)for(let t=e;t<=i;t++){let e=String.fromCharCode(t),i=y(e)
29
29
  i!=e.toLowerCase()&&(i.length>3||0!=i.length&&(yield{folded:i,composed:e,code_point:t}))}}(t))i(e.folded,e.folded),i(e.folded,e.composed)
30
- return e},w=t=>{const e=b(t),s={}
30
+ return e},w=t=>{const e=O(t),s={}
31
31
  let o=[]
32
32
  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))
@@ -169,18 +169,16 @@ if(N(r,n.wrapperClass,d,u),N(l,n.controlClass),lt(r,l),N(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=V(n.controlInput),this.focus_node=p):(p=V("<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){st(g,"click",f),Q(g,{for:p})
174
- const e=ot(g,t.inputId+"-ts-label")
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
- N([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
+ N([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 v=e=>{const n=e.composedPath()[0]
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)},m=()=>{t.isOpen&&t.positionDropdown()}
183
- st(document,"mousedown",v),st(window,"scroll",m,d),st(window,"resize",m,d),this._destroy=()=>{document.removeEventListener("mousedown",v),window.removeEventListener("scroll",m),window.removeEventListener("resize",m),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),N(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")
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),N(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>&hellip;</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||H(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 this.is_select_tag&&this.input.hasAttribute("multiple")?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
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&&H(i,"last-active"),N(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),H(t,"active")}clearActiveItems(){H(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"}),N(t,"active"),e&&this.scrollToOption(t)))}scrollToOption(t,e){if(!t)return
228
+ this.activeItems.splice(e,1),H(t,"active")}clearActiveItems(){H(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"}),N(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&&(H(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&&(H(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
@@ -243,26 +241,27 @@ return!(e&&-1!==s.items.indexOf(e))}))),e}refreshOptions(t=!0){var e,i,s,n,o,r,l
243
241
  const u={},p=[]
244
242
  var h=this,g=h.inputValue()
245
243
  const f=g===h.lastQuery||""==g&&null==h.lastQuery
246
- var v,m=h.search(g),y=null,O=h.settings.shouldOpen||!1,b=h.dropdown_content
247
- for(f&&(y=h.activeOption)&&(c=y.closest("[data-group]")),n=m.items.length,"number"==typeof h.settings.maxOptions&&(n=Math.min(n,h.settings.maxOptions)),n>0&&(O=!0),e=0;e<n;e++){let t=m.items[e]
244
+ var v,m=h.search(g),y=null,b=h.settings.shouldOpen||!1,O=h.dropdown_content
245
+ for(f&&(y=h.activeOption)&&(c=y.closest("[data-group]")),n=m.items.length,"number"==typeof h.settings.maxOptions&&(n=Math.min(n,h.settings.maxOptions)),n>0&&(b=!0),e=0;e<n;e++){let t=m.items[e]
248
246
  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
- for(h.settings.hideSelected||d.classList.toggle("selected",h.items.includes(a)),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="")
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"),H(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"),H(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]
258
257
  if(void 0!==i){let t=document.createDocumentFragment(),s=h.render("optgroup_header",i)
259
258
  lt(t,s),lt(t,e)
260
259
  let n=h.render("optgroup",{group:i,options:t})
261
- lt(l,n)}else lt(l,e)})),b.innerHTML="",lt(b,l),h.settings.highlight&&(v=b.querySelectorAll("span.highlight"),Array.prototype.forEach.call(v,(function(t){var e=t.parentNode
262
- e.replaceChild(t.firstChild,t),e.normalize()})),m.query.length&&m.tokens.length&&E(m.tokens,(t=>{J(b,t.regex)})))
260
+ lt(l,n)}else lt(l,e)})),O.innerHTML="",lt(O,l),h.settings.highlight&&(v=O.querySelectorAll("span.highlight"),Array.prototype.forEach.call(v,(function(t){var e=t.parentNode
261
+ e.replaceChild(t.firstChild,t),e.normalize()})),m.query.length&&m.tokens.length&&E(m.tokens,(t=>{J(O,t.regex)})))
263
262
  var w=t=>{let e=h.render(t,{input:g})
264
- return e&&(O=!0,b.insertBefore(e,b.firstChild)),e}
265
- if(h.loading?w("loading"):h.settings.shouldLoad.call(h,g)?0===m.items.length&&w("no_results"):w("not_loading"),(a=h.canCreate(g))&&(d=w("option_create")),h.hasOptions=m.items.length>0||a,O){if(m.items.length>0){if(y||"single"!==h.settings.mode||null==h.items[0]||(y=h.getOption(h.items[0])),!b.contains(y)){let t=0
263
+ return e&&(b=!0,O.insertBefore(e,O.firstChild)),e}
264
+ if(h.loading?w("loading"):h.settings.shouldLoad.call(h,g)?0===m.items.length&&w("no_results"):w("not_loading"),(a=h.canCreate(g))&&(d=w("option_create")),h.hasOptions=m.items.length>0||a,b){if(m.items.length>0){if(y||"single"!==h.settings.mode||null==h.items[0]||(y=h.getOption(h.items[0])),!O.contains(y)){let t=0
266
265
  d&&!h.settings.addPrecedence&&(t=1),y=h.selectable()[t]}}else d&&(y=d)
267
266
  t&&!h.isOpen&&(h.open(),h.scrollToOption(y,"auto")),h.setActiveOption(y)}else h.clearActiveOption(),t&&h.isOpen&&h.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(t,e=!1){const i=this
268
267
  if(Array.isArray(t))return i.addOptions(t,e),!1
@@ -1 +1 @@
1
- {"version":3,"file":"translation-utils.js","sourceRoot":"","sources":["../../src/utils/translation-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n StzhDateFormat,\n StzhDateParse\n} from \"./date-adapter\";\n\nconst LANG_DE = \"de\";\nconst LANG_EN = \"en\";\nconst LANG_DEFAULT = LANG_DE;\n\nexport const SUPPORTED_LANGUAGES = [\n LANG_DE,\n LANG_EN\n];\n\nexport type StzhLocaleFormats = {\n inputdate: {\n format: string | StzhDateFormat,\n parse: string | StzhDateParse\n },\n date: {\n format: string | StzhDateFormat\n },\n dateRange: string,\n timeRange: string,\n timePostfix: string,\n time: {\n format: string | StzhDateFormat\n }\n}\n\ntype MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string]\ntype DayNames = [string, string, string, string, string, string, string]\n\nexport type StzhLocaleGlobals = {\n externalLinkLabel: string\n downloadLinkLabel: string\n requiredFieldMarker: string\n requiredFieldText: string\n optionalFieldMarker: string\n optionalFieldText: string\n clearButtonLabel: string\n moreInfoButtonLabel: string\n dayNames: DayNames\n monthNames: MonthsNames\n monthNamesShort: MonthsNames\n}\n\nexport type StzhLocaleComponent = {\n $locale: typeof LANG_DE | typeof LANG_EN,\n $formats: StzhLocaleFormats,\n $globals: StzhLocaleGlobals\n}\n\nfunction getLocale(element: HTMLElement) {\n const closestElement = element.closest(\"[lang]\") as HTMLElement;\n const locale = closestElement && closestElement.lang.split(\"-\")[0];\n\n if (SUPPORTED_LANGUAGES.indexOf(locale) === -1 || !locale) {\n return LANG_DEFAULT;\n } else {\n return locale;\n }\n}\n\nexport function tc(translation: string, count: number): string {\n if (!translation) {\n return \"\";\n }\n\n const parts = translation.split('|');\n let part = parts[0].trim();\n\n if (parts.length === 3 && count === 1) {\n part = parts[1].trim();\n } else if (parts.length === 3 && count > 1) {\n part = parts[2].trim();\n }\n\n if (parts.length === 2 && count !== 1) {\n part = parts[1].trim();\n }\n\n return part.replace(/\\{n\\}/ig, count.toString());\n}\n\nexport async function fetchTranslations(host: HTMLElement, component: string) {\n const locale = getLocale(host);\n const existingTranslations = JSON.parse(sessionStorage.getItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`));\n\n if (\n window.stzhComponents.cacheTranslations\n && window.stzhComponents.version.match(/-dev-snapshot/i) === null\n && existingTranslations\n && Object.keys(existingTranslations).length > 0\n ) {\n return {\n ...existingTranslations[component] || {},\n $globals: existingTranslations.$globals,\n $locale: existingTranslations.$code,\n $formats: existingTranslations.$formats\n };\n }\n\n try {\n const result = await fetch(\n `${window.stzhComponents.pathTranslations}/${locale}.json`\n );\n\n if (result.ok) {\n const data = await result.json();\n sessionStorage.setItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`, JSON.stringify(data));\n return {\n ...data[component] || {},\n $globals: data.$globals,\n $locale: data.$code,\n $formats: data.$formats\n };\n }\n\n } catch (exception) {\n console.error(`Error loading locale: ${locale}`, exception);\n }\n}\n"]}
1
+ {"version":3,"file":"translation-utils.js","sourceRoot":"","sources":["../../src/utils/translation-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n StzhDateFormat,\n StzhDateParse\n} from \"./date-adapter\";\n\nconst LANG_DE = \"de\";\nconst LANG_EN = \"en\";\nconst LANG_DEFAULT = LANG_DE;\n\nexport const SUPPORTED_LANGUAGES = [\n LANG_DE,\n LANG_EN\n];\n\nexport type StzhLocaleFormats = {\n inputdate: {\n format: string | StzhDateFormat,\n parse: string | StzhDateParse\n },\n date: {\n format: string | StzhDateFormat\n },\n dateRange: string,\n timeRange: string,\n timePostfix: string,\n time: {\n format: string | StzhDateFormat\n }\n}\n\ntype MonthsNames = [string, string, string, string, string, string, string, string, string, string, string, string]\ntype DayNames = [string, string, string, string, string, string, string]\n\nexport type StzhLocaleGlobals = {\n externalLinkLabel: string\n downloadLinkLabel: string\n requiredFieldMarker: string\n requiredFieldText: string\n optionalFieldMarker: string\n optionalFieldText: string\n invalidFieldText: string\n clearButtonLabel: string\n moreInfoButtonLabel: string\n dayNames: DayNames\n monthNames: MonthsNames\n monthNamesShort: MonthsNames\n}\n\nexport type StzhLocaleComponent = {\n $locale: typeof LANG_DE | typeof LANG_EN,\n $formats: StzhLocaleFormats,\n $globals: StzhLocaleGlobals\n}\n\nfunction getLocale(element: HTMLElement) {\n const closestElement = element.closest(\"[lang]\") as HTMLElement;\n const locale = closestElement && closestElement.lang.split(\"-\")[0];\n\n if (SUPPORTED_LANGUAGES.indexOf(locale) === -1 || !locale) {\n return LANG_DEFAULT;\n } else {\n return locale;\n }\n}\n\nexport function tc(translation: string, count: number): string {\n if (!translation) {\n return \"\";\n }\n\n const parts = translation.split('|');\n let part = parts[0].trim();\n\n if (parts.length === 3 && count === 1) {\n part = parts[1].trim();\n } else if (parts.length === 3 && count > 1) {\n part = parts[2].trim();\n }\n\n if (parts.length === 2 && count !== 1) {\n part = parts[1].trim();\n }\n\n return part.replace(/\\{n\\}/ig, count.toString());\n}\n\nexport async function fetchTranslations(host: HTMLElement, component: string) {\n const locale = getLocale(host);\n const existingTranslations = JSON.parse(sessionStorage.getItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`));\n\n if (\n window.stzhComponents.cacheTranslations\n && window.stzhComponents.version.match(/-dev-snapshot/i) === null\n && existingTranslations\n && Object.keys(existingTranslations).length > 0\n ) {\n return {\n ...existingTranslations[component] || {},\n $globals: existingTranslations.$globals,\n $locale: existingTranslations.$code,\n $formats: existingTranslations.$formats\n };\n }\n\n try {\n const result = await fetch(\n `${window.stzhComponents.pathTranslations}/${locale}.json`\n );\n\n if (result.ok) {\n const data = await result.json();\n sessionStorage.setItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`, JSON.stringify(data));\n return {\n ...data[component] || {},\n $globals: data.$globals,\n $locale: data.$code,\n $formats: data.$formats\n };\n }\n\n } catch (exception) {\n console.error(`Error loading locale: ${locale}`, exception);\n }\n}\n"]}
@@ -835,7 +835,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
835
835
  })();
836
836
 
837
837
  const name = "@oiz/stzh-components";
838
- const version = "2.6.0";
838
+ const version = "2.7.0-alpha";
839
839
 
840
840
  const packageName = name.substring(name.indexOf('/')+1);
841
841