@baloise/ds-core 20.0.0-next.4 → 20.0.0-next.6

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 (988) hide show
  1. package/LICENSE +9 -0
  2. package/components/all.d.ts +56 -0
  3. package/components/all.js +84 -0
  4. package/components/ds-accordion.js +1 -1
  5. package/components/ds-alert-container.js +1 -1
  6. package/components/ds-app.js +1 -1
  7. package/components/ds-badge.js +1 -1
  8. package/components/ds-button-group.js +1 -1
  9. package/components/ds-button.js +1 -1
  10. package/components/ds-card-actions.js +1 -1
  11. package/components/ds-card-content.js +1 -1
  12. package/components/ds-card-header.js +1 -1
  13. package/components/ds-card-subtitle.js +1 -1
  14. package/components/ds-card-title.js +1 -1
  15. package/components/ds-card.js +1 -1
  16. package/components/ds-carousel-item.d.ts +11 -0
  17. package/components/ds-carousel-item.js +4 -0
  18. package/components/ds-carousel.d.ts +11 -0
  19. package/components/ds-carousel.js +4 -0
  20. package/components/ds-checkbox-group.js +1 -1
  21. package/components/ds-checkbox.js +1 -1
  22. package/components/ds-close.js +1 -1
  23. package/components/ds-content.js +1 -1
  24. package/components/ds-data-item.d.ts +11 -0
  25. package/components/ds-data-item.js +4 -0
  26. package/components/ds-data-label.d.ts +11 -0
  27. package/components/ds-data-label.js +4 -0
  28. package/components/ds-data-value.d.ts +11 -0
  29. package/components/ds-data-value.js +4 -0
  30. package/components/ds-data.d.ts +11 -0
  31. package/components/ds-data.js +4 -0
  32. package/components/ds-date.d.ts +11 -0
  33. package/components/ds-date.js +4 -0
  34. package/components/ds-divider.js +1 -1
  35. package/components/ds-drawer.d.ts +11 -0
  36. package/components/ds-drawer.js +4 -0
  37. package/components/ds-file-upload.d.ts +11 -0
  38. package/components/ds-file-upload.js +4 -0
  39. package/components/ds-footer.d.ts +11 -0
  40. package/components/ds-footer.js +4 -0
  41. package/components/ds-heading.js +1 -1
  42. package/components/ds-hint-text.d.ts +11 -0
  43. package/components/ds-hint-text.js +4 -0
  44. package/components/ds-hint-title.d.ts +11 -0
  45. package/components/ds-hint-title.js +4 -0
  46. package/components/ds-hint.d.ts +11 -0
  47. package/components/ds-hint.js +4 -0
  48. package/components/ds-icon.js +1 -1
  49. package/components/ds-input.js +1 -1
  50. package/components/ds-item.js +1 -1
  51. package/components/ds-label.js +1 -1
  52. package/components/ds-list.js +1 -1
  53. package/components/ds-logo.js +1 -1
  54. package/components/ds-modal-body.d.ts +11 -0
  55. package/components/ds-modal-body.js +4 -0
  56. package/components/ds-modal-header.d.ts +11 -0
  57. package/components/ds-modal-header.js +4 -0
  58. package/components/ds-modal.d.ts +11 -0
  59. package/components/ds-modal.js +4 -0
  60. package/components/ds-navbar.d.ts +11 -0
  61. package/components/ds-navbar.js +4 -0
  62. package/components/ds-notification.js +1 -1
  63. package/components/ds-number-input.js +1 -1
  64. package/components/ds-pagination.js +1 -1
  65. package/components/ds-popup.d.ts +11 -0
  66. package/components/ds-popup.js +4 -0
  67. package/components/ds-progress-bar.js +1 -1
  68. package/components/ds-radio-group.js +1 -1
  69. package/components/ds-radio.js +1 -1
  70. package/components/ds-segment-item.js +1 -1
  71. package/components/ds-segment.js +1 -1
  72. package/components/ds-select-optgroup.d.ts +11 -0
  73. package/components/ds-select-optgroup.js +4 -0
  74. package/components/ds-select-option.d.ts +11 -0
  75. package/components/ds-select-option.js +4 -0
  76. package/components/ds-select.d.ts +11 -0
  77. package/components/ds-select.js +4 -0
  78. package/components/ds-shape.js +1 -1
  79. package/components/ds-snackbar.js +1 -1
  80. package/components/ds-spinner.js +1 -1
  81. package/components/ds-stack.js +1 -1
  82. package/components/ds-step-panel.d.ts +11 -0
  83. package/components/ds-step-panel.js +4 -0
  84. package/components/ds-step.d.ts +11 -0
  85. package/components/ds-step.js +4 -0
  86. package/components/ds-steps.d.ts +11 -0
  87. package/components/ds-steps.js +4 -0
  88. package/components/ds-tab-panel.d.ts +11 -0
  89. package/components/ds-tab-panel.js +4 -0
  90. package/components/ds-tab.d.ts +11 -0
  91. package/components/ds-tab.js +4 -0
  92. package/components/ds-tabs.d.ts +11 -0
  93. package/components/ds-tabs.js +4 -0
  94. package/components/ds-tag-group.js +1 -1
  95. package/components/ds-tag.js +1 -1
  96. package/components/ds-text.js +1 -1
  97. package/components/ds-textarea.js +1 -1
  98. package/components/ds-toast.js +1 -1
  99. package/components/ds-toggle.js +1 -1
  100. package/components/ds-tooltip.d.ts +11 -0
  101. package/components/ds-tooltip.js +4 -0
  102. package/components/index.js +1 -1
  103. package/components/p-3Mi9vpmB.js +4 -0
  104. package/components/p-B-en4B17.js +4 -0
  105. package/components/p-B1gnrQ9b.js +4 -0
  106. package/components/p-BU0dY8pq.js +4 -0
  107. package/components/p-BfXZJ1Fe.js +4 -0
  108. package/components/p-BgzU1loG.js +4 -0
  109. package/components/p-BhbWmCTu.js +4 -0
  110. package/components/p-BqY0KzJC.js +4 -0
  111. package/components/p-BrIcCcce.js +4 -0
  112. package/components/p-BrJFPhMA.js +4 -0
  113. package/components/p-Btdh3fq7.js +4 -0
  114. package/components/{p-Urcs7-vS.js → p-BwfAXfmz.js} +1 -1
  115. package/components/p-ByX1_7SF.js +4 -0
  116. package/components/p-C1jqbZdf.js +4 -0
  117. package/{dist/design-system/p-15bc012833.entry.js → components/p-CA7G72wZ.js} +1 -1
  118. package/components/p-CQHwI4iD.js +4 -0
  119. package/components/p-CYWn3X22.js +4 -0
  120. package/components/p-CjIxf5zy.js +4 -0
  121. package/components/p-Ctnm_MBD.js +4 -0
  122. package/components/p-CvaNxQtw.js +4 -0
  123. package/components/p-D9ILiUgm.js +4 -0
  124. package/components/{p-BATOumsf.js → p-D9YYP2SG.js} +1 -1
  125. package/components/p-DAYd9ty0.js +4 -0
  126. package/components/p-DIK6Zkg6.js +4 -0
  127. package/{dist/design-system/p-BkESlUMc.js → components/p-DQBzmbR6.js} +1 -1
  128. package/components/{p-z1jJgtep.js → p-DU7t9H9h.js} +1 -1
  129. package/components/p-DYTOWDAA.js +4 -0
  130. package/components/p-DYlqkAWn.js +4 -0
  131. package/components/p-DbM7ALm9.js +14 -0
  132. package/{dist/design-system/p-D2tr7015.js → components/p-DbY6Pfeh.js} +1 -1
  133. package/components/{p-DZqqelPH.js → p-DcSNuA8W.js} +1 -1
  134. package/components/p-DenZRIeA.js +4 -0
  135. package/components/p-DokkRjWC.js +4 -0
  136. package/{dist/design-system/p-BwrOVItb.js → components/p-Dr4MUfss.js} +1 -1
  137. package/components/p-DsvYY32v.js +4 -0
  138. package/components/p-Du7QOHtz.js +5 -0
  139. package/components/{p-E8U6M5ii.js → p-FBQaJyH0.js} +1 -1
  140. package/components/{p-Dr4dquer.js → p-J0mxIuTt.js} +1 -1
  141. package/{dist/design-system/p-DJxr2Dcd.js → components/p-UCeQ1JCs.js} +1 -1
  142. package/components/p-Uy_dVz21.js +4 -0
  143. package/components/p-WO0X5Vmy.js +4 -0
  144. package/components/p-bGV2P6rT.js +4 -0
  145. package/components/{p-Bt20CEww.js → p-n3_2KEz0.js} +1 -1
  146. package/dist/cjs/array-CioNm_V1.js +1985 -0
  147. package/dist/cjs/{breakpoints.decorator-qaoHOU6Q.js → breakpoints.decorator-C-Qm21UK.js} +1 -1
  148. package/dist/cjs/{breakpoints.subject-DhAN_ZAn.js → breakpoints.subject-XNcGwhzh.js} +3 -3
  149. package/dist/cjs/{button.interfaces-BueDWsuH.js → button.interfaces-CqlUGR-N.js} +1 -1
  150. package/dist/cjs/carousel.interfaces-BFQpUNrw.js +12 -0
  151. package/dist/cjs/{config.decorator-Qmrq4ZYj.js → config.decorator-ThGLtT-3.js} +1 -1
  152. package/dist/cjs/{config.utils-Cv4cx_Xa.js → config.utils-MhZvq4Qm.js} +1 -1
  153. package/dist/cjs/create-validator-decorator-BIgFqrMJ.js +212 -0
  154. package/dist/cjs/design-system.cjs.js +3 -3
  155. package/dist/cjs/{device-CptgCtVc.js → device-BnjBOLnP.js} +1 -1
  156. package/dist/cjs/ds-accordion.cjs.entry.js +30 -34
  157. package/dist/cjs/ds-alert-container.cjs.entry.js +12 -15
  158. package/dist/cjs/ds-app.cjs.entry.js +16 -6
  159. package/dist/cjs/ds-badge.cjs.entry.js +32 -25
  160. package/dist/cjs/ds-button-group.cjs.entry.js +14 -17
  161. package/dist/cjs/ds-button_2.cjs.entry.js +58 -73
  162. package/dist/cjs/ds-card-actions.cjs.entry.js +6 -8
  163. package/dist/cjs/ds-card-content.cjs.entry.js +2 -2
  164. package/dist/cjs/ds-card-header.cjs.entry.js +8 -5
  165. package/dist/cjs/ds-card-subtitle.cjs.entry.js +13 -13
  166. package/dist/cjs/ds-card-title.cjs.entry.js +11 -7
  167. package/dist/cjs/ds-card.cjs.entry.js +30 -42
  168. package/dist/cjs/ds-carousel-item.cjs.entry.js +128 -0
  169. package/dist/cjs/ds-carousel.cjs.entry.js +473 -0
  170. package/dist/cjs/ds-checkbox-group.cjs.entry.js +41 -2012
  171. package/dist/cjs/ds-checkbox.cjs.entry.js +23 -19
  172. package/dist/cjs/ds-content_2.cjs.entry.js +330 -0
  173. package/dist/cjs/ds-data-item.cjs.entry.js +146 -0
  174. package/dist/cjs/ds-data-label.cjs.entry.js +41 -0
  175. package/dist/cjs/ds-data-value.cjs.entry.js +31 -0
  176. package/dist/cjs/ds-data.cjs.entry.js +43 -0
  177. package/dist/cjs/ds-date.cjs.entry.js +5334 -0
  178. package/dist/cjs/{ds-logo.cjs.entry.js → ds-divider_2.cjs.entry.js} +130 -25
  179. package/dist/cjs/ds-drawer_2.cjs.entry.js +602 -0
  180. package/dist/cjs/ds-file-upload.cjs.entry.js +515 -0
  181. package/dist/cjs/ds-footer.cjs.entry.js +159 -0
  182. package/dist/cjs/ds-heading.cjs.entry.js +21 -19
  183. package/dist/cjs/ds-hint-text.cjs.entry.js +28 -0
  184. package/dist/cjs/ds-hint-title.cjs.entry.js +31 -0
  185. package/dist/cjs/ds-hint.cjs.entry.js +243 -0
  186. package/dist/cjs/ds-icon_2.cjs.entry.js +78 -70
  187. package/dist/cjs/ds-input.cjs.entry.js +45 -43
  188. package/dist/cjs/ds-item.cjs.entry.js +29 -34
  189. package/dist/cjs/ds-label.cjs.entry.js +22 -30
  190. package/dist/cjs/ds-list.cjs.entry.js +6 -12
  191. package/dist/cjs/ds-modal-body.cjs.entry.js +34 -0
  192. package/dist/cjs/ds-modal-header.cjs.entry.js +31 -0
  193. package/dist/cjs/ds-modal.cjs.entry.js +201 -0
  194. package/dist/cjs/ds-navbar.cjs.entry.js +359 -0
  195. package/dist/cjs/ds-notification.cjs.entry.js +19 -27
  196. package/dist/cjs/ds-number-input.cjs.entry.js +128 -45
  197. package/dist/cjs/ds-pagination.cjs.entry.js +41 -37
  198. package/dist/cjs/ds-progress-bar.cjs.entry.js +25 -29
  199. package/dist/cjs/ds-radio-group.cjs.entry.js +30 -29
  200. package/dist/cjs/ds-radio.cjs.entry.js +26 -33
  201. package/dist/cjs/ds-segment-item.cjs.entry.js +9 -9
  202. package/dist/cjs/ds-segment.cjs.entry.js +29 -117
  203. package/dist/cjs/ds-select-optgroup.cjs.entry.js +49 -0
  204. package/dist/cjs/ds-select-option.cjs.entry.js +57 -0
  205. package/dist/cjs/ds-select.cjs.entry.js +2772 -0
  206. package/dist/cjs/ds-shape.cjs.entry.js +10 -16
  207. package/dist/cjs/ds-snackbar.cjs.entry.js +40 -57
  208. package/dist/cjs/ds-step-panel.cjs.entry.js +55 -0
  209. package/dist/cjs/ds-step.cjs.entry.js +170 -0
  210. package/dist/cjs/ds-steps.cjs.entry.js +227 -0
  211. package/dist/cjs/ds-tab-panel.cjs.entry.js +55 -0
  212. package/dist/cjs/ds-tab.cjs.entry.js +120 -0
  213. package/dist/cjs/ds-tabs.cjs.entry.js +364 -0
  214. package/dist/cjs/ds-tag-group.cjs.entry.js +3 -3
  215. package/dist/cjs/ds-tag.cjs.entry.js +19 -26
  216. package/dist/cjs/ds-text.cjs.entry.js +28 -32
  217. package/dist/cjs/ds-textarea.cjs.entry.js +32 -31
  218. package/dist/cjs/ds-toast.cjs.entry.js +40 -54
  219. package/dist/cjs/ds-toggle.cjs.entry.js +22 -21
  220. package/dist/cjs/ds-tooltip.cjs.entry.js +182 -0
  221. package/dist/cjs/{field.util-RjuvTLNZ.js → field.util-L-DkeMVk.js} +1 -1
  222. package/dist/cjs/floating-ui.dom-Cu3dZdFD.js +1628 -0
  223. package/dist/cjs/focus-D3VVgpM7.js +1958 -0
  224. package/dist/cjs/footer.i18n-CpGxizgm.js +162 -0
  225. package/dist/cjs/{form-control-Bno2tBGf.js → form-control-CtMcJUuC.js} +2 -2
  226. package/dist/cjs/has-value-DK0oRqXI.js +12 -0
  227. package/dist/cjs/{index-CdD-TT_n.js → index-sC3JnTlJ.js} +497 -175
  228. package/dist/cjs/index.cjs.js +26 -8283
  229. package/dist/cjs/keyboard-C7y0jXYb.js +23 -0
  230. package/dist/cjs/{listener-DgVWqfa1.js → listener-BwB_xent.js} +1 -1
  231. package/dist/cjs/loader.cjs.js +2 -2
  232. package/dist/cjs/luxon-q23LOWrr.js +8137 -0
  233. package/dist/cjs/one-of-BZGRIMtQ.js +30 -0
  234. package/dist/cjs/popup.interfaces-B-mwd9rh.js +23 -0
  235. package/dist/cjs/required-COz3Unzu.js +38 -0
  236. package/dist/cjs/resize.decorator-DWM_fQgv.js +98 -0
  237. package/dist/cjs/scroll-CUuEh4xd.js +89 -0
  238. package/dist/cjs/svg-D9RbiR8R.js +2443 -0
  239. package/dist/cjs/{tslib.es6-BTi-SLnA.js → tslib.es6-CxyosZMg.js} +1 -1
  240. package/dist/cjs/type-hmc4CJcO.js +33 -0
  241. package/dist/collection/collection-manifest.json +30 -2
  242. package/dist/collection/components/accordion/accordion.host.css +1 -1
  243. package/dist/collection/components/accordion/accordion.js +22 -29
  244. package/dist/collection/components/alert/alert-container.js +8 -14
  245. package/dist/collection/components/alert/alert.controller.js +1 -1
  246. package/dist/collection/components/alert/snackbar/snackbar.js +30 -53
  247. package/dist/collection/components/alert/toast/toast.js +32 -53
  248. package/dist/collection/components/app/app.js +11 -3
  249. package/dist/collection/components/badge/badge.interfaces.js +1 -1
  250. package/dist/collection/components/badge/badge.js +28 -25
  251. package/dist/collection/components/button/button-group/button-group.js +8 -14
  252. package/dist/collection/components/button/button.host.css +1 -1
  253. package/dist/collection/components/button/button.interfaces.js +1 -1
  254. package/dist/collection/components/button/button.js +44 -54
  255. package/dist/collection/components/card/card-actions/card-actions.js +3 -6
  256. package/dist/collection/components/card/card-header/card-header.js +4 -3
  257. package/dist/collection/components/card/card-subtitle/card-subtitle.js +8 -11
  258. package/dist/collection/components/card/card-title/card-title.js +6 -5
  259. package/dist/collection/components/card/card.host.css +1 -1
  260. package/dist/collection/components/card/card.js +25 -38
  261. package/dist/collection/components/carousel/carousel/carousel.host.css +1 -0
  262. package/dist/collection/components/carousel/carousel/carousel.i18n.js +65 -0
  263. package/dist/collection/components/carousel/carousel/carousel.js +631 -0
  264. package/dist/collection/components/carousel/carousel-item/carousel-item.host.css +1 -0
  265. package/dist/collection/components/carousel/carousel-item/carousel-item.js +313 -0
  266. package/dist/collection/components/carousel/carousel.interfaces.js +6 -0
  267. package/dist/collection/components/carousel/test/carousel.a11y.play.js +34 -0
  268. package/dist/collection/components/carousel/test/carousel.component.play.js +57 -0
  269. package/dist/collection/components/carousel/test/carousel.visual.play.js +24 -0
  270. package/dist/collection/components/checkbox/checkbox-group/checkbox-group.host.css +1 -1
  271. package/dist/collection/components/checkbox/checkbox-group/checkbox-group.js +25 -26
  272. package/dist/collection/components/checkbox/checkbox.js +18 -18
  273. package/dist/collection/components/close/close.js +10 -21
  274. package/dist/collection/components/content/content.js +38 -52
  275. package/dist/collection/components/data/data-item.host.css +1 -0
  276. package/dist/collection/components/data/data-item.i18n.js +35 -0
  277. package/dist/collection/components/data/data-item.js +244 -0
  278. package/dist/collection/components/data/data-label.host.css +1 -0
  279. package/dist/collection/components/data/data-label.js +72 -0
  280. package/dist/collection/components/data/data-value.host.css +1 -0
  281. package/dist/collection/components/data/data-value.js +38 -0
  282. package/dist/collection/components/data/data.host.css +1 -0
  283. package/dist/collection/components/data/data.js +75 -0
  284. package/dist/collection/components/data/test/data.a11y.play.js +31 -0
  285. package/dist/collection/components/data/test/data.component.play.js +104 -0
  286. package/dist/collection/components/data/test/data.visual.play.js +25 -0
  287. package/dist/collection/components/date/date.host.css +1 -0
  288. package/dist/collection/components/date/date.i18n.js +105 -0
  289. package/dist/collection/components/date/date.interfaces.js +4 -0
  290. package/dist/collection/components/date/date.js +1241 -0
  291. package/dist/collection/components/date/date.mask.js +189 -0
  292. package/dist/collection/components/date/date.picker.js +536 -0
  293. package/dist/collection/components/date/test/date.a11y.play.js +27 -0
  294. package/dist/collection/components/date/test/date.component.play.js +69 -0
  295. package/dist/collection/components/date/test/date.visual.play.js +43 -0
  296. package/dist/collection/components/divider/divider.host.css +1 -1
  297. package/dist/collection/components/divider/divider.js +11 -24
  298. package/dist/collection/components/drawer/drawer.host.css +1 -0
  299. package/dist/collection/{utils/property-checkers/constants.js → components/drawer/drawer.interfaces.js} +1 -1
  300. package/dist/collection/components/drawer/drawer.js +492 -0
  301. package/dist/collection/components/drawer/test/drawer.a11y.play.js +39 -0
  302. package/dist/collection/components/drawer/test/drawer.component.play.js +131 -0
  303. package/dist/collection/components/drawer/test/drawer.visual.play.js +31 -0
  304. package/dist/collection/components/file-upload/file-upload.host.css +1 -0
  305. package/dist/collection/components/file-upload/file-upload.i18n.js +55 -0
  306. package/dist/collection/components/file-upload/file-upload.interfaces.js +10 -0
  307. package/dist/collection/components/file-upload/file-upload.js +1030 -0
  308. package/dist/collection/components/file-upload/test/file-upload.a11y.play.js +52 -0
  309. package/dist/collection/components/file-upload/test/file-upload.component.play.js +124 -0
  310. package/dist/collection/components/file-upload/test/file-upload.visual.play.js +18 -0
  311. package/dist/collection/components/file-upload/utils/file-list.util.js +13 -0
  312. package/dist/collection/components/file-upload/utils/file-size.util.js +10 -0
  313. package/dist/collection/components/file-upload/utils/file-validation.util.js +48 -0
  314. package/dist/collection/components/footer/footer.host.css +1 -0
  315. package/dist/collection/components/footer/footer.i18n.js +155 -0
  316. package/dist/collection/components/footer/footer.interfaces.js +4 -0
  317. package/dist/collection/components/footer/footer.js +350 -0
  318. package/dist/collection/components/footer/test/footer.a11y.play.js +17 -0
  319. package/dist/collection/components/footer/test/footer.component.play.js +74 -0
  320. package/dist/collection/components/footer/test/footer.visual.play.js +16 -0
  321. package/dist/collection/components/form/test/form.visual.play.js +13 -1
  322. package/dist/collection/components/heading/heading.js +16 -17
  323. package/dist/collection/components/hint/hint-text/hint-text.js +28 -0
  324. package/dist/collection/components/hint/hint-title/hint-title.js +31 -0
  325. package/dist/collection/components/hint/hint.host.css +1 -0
  326. package/dist/collection/components/hint/hint.i18n.js +35 -0
  327. package/dist/collection/components/hint/hint.interfaces.js +1 -0
  328. package/dist/collection/components/hint/hint.js +410 -0
  329. package/dist/collection/components/hint/test/hint.a11y.play.js +41 -0
  330. package/dist/collection/components/hint/test/hint.component.play.js +110 -0
  331. package/dist/collection/components/hint/test/hint.visual.play.js +39 -0
  332. package/dist/collection/components/icon/icon.host.css +1 -1
  333. package/dist/collection/components/icon/icon.interfaces.js +1 -0
  334. package/dist/collection/components/icon/icon.js +73 -42
  335. package/dist/collection/components/icon/test/icon.component.play.js +23 -1
  336. package/dist/collection/components/input/clear-button.i18n.js +35 -0
  337. package/dist/collection/components/input/clear-button.util.js +11 -0
  338. package/dist/collection/components/input/input.host.css +1 -1
  339. package/dist/collection/components/input/input.js +36 -37
  340. package/dist/collection/components/input/test/input.component.play.js +1 -1
  341. package/dist/collection/components/input/trigger-button.i18n.js +45 -0
  342. package/dist/collection/components/label/label.js +16 -28
  343. package/dist/collection/components/list/item/item.host.css +1 -1
  344. package/dist/collection/components/list/item/item.interfaces.js +1 -1
  345. package/dist/collection/components/list/item/item.js +27 -34
  346. package/dist/collection/components/list/list.js +3 -10
  347. package/dist/collection/components/list/test/list.visual.play.js +30 -0
  348. package/dist/collection/components/logo/logo.js +11 -18
  349. package/dist/collection/components/modal/modal-body/modal-body.host.css +1 -0
  350. package/dist/collection/components/modal/modal-body/modal-body.js +41 -0
  351. package/dist/collection/components/modal/modal-header/modal-header.js +32 -0
  352. package/dist/collection/components/modal/modal.controller.js +31 -0
  353. package/dist/collection/components/modal/modal.host.css +1 -0
  354. package/dist/collection/components/modal/modal.interfaces.js +1 -0
  355. package/dist/collection/components/modal/modal.js +461 -0
  356. package/dist/collection/components/modal/test/modal.a11y.play.js +59 -0
  357. package/dist/collection/components/modal/test/modal.component.play.js +196 -0
  358. package/dist/collection/components/modal/test/modal.visual.play.js +36 -0
  359. package/dist/collection/components/navbar/navbar.host.css +1 -0
  360. package/dist/collection/components/navbar/navbar.i18n.js +65 -0
  361. package/dist/collection/components/navbar/navbar.interfaces.js +6 -0
  362. package/dist/collection/components/navbar/navbar.js +544 -0
  363. package/dist/collection/components/navbar/test/navbar.a11y.play.js +26 -0
  364. package/dist/collection/components/navbar/test/navbar.component.play.js +76 -0
  365. package/dist/collection/components/navbar/test/navbar.visual.play.js +14 -0
  366. package/dist/collection/components/notification/notification.js +14 -26
  367. package/dist/collection/components/number-input/number-input.host.css +1 -1
  368. package/dist/collection/components/number-input/number-input.js +23 -24
  369. package/dist/collection/components/pagination/pagination.host.css +1 -1
  370. package/dist/collection/components/pagination/pagination.js +29 -28
  371. package/dist/collection/components/popup/popup.host.css +1 -0
  372. package/dist/collection/components/popup/popup.interfaces.js +18 -0
  373. package/dist/collection/components/popup/popup.js +869 -0
  374. package/dist/collection/components/popup/test/popup.a11y.play.js +50 -0
  375. package/dist/collection/components/popup/test/popup.component.play.js +168 -0
  376. package/dist/collection/components/popup/test/popup.visual.play.js +33 -0
  377. package/dist/collection/components/progress-bar/progress-bar.host.css +1 -1
  378. package/dist/collection/components/progress-bar/progress-bar.js +13 -20
  379. package/dist/collection/components/radio/radio-group/radio-group.host.css +1 -1
  380. package/dist/collection/components/radio/radio-group/radio-group.js +22 -23
  381. package/dist/collection/components/radio/radio.js +19 -20
  382. package/dist/collection/components/segment/segment/segment.host.css +1 -1
  383. package/dist/collection/components/segment/segment/segment.js +19 -20
  384. package/dist/collection/components/segment/segment-item.js +6 -7
  385. package/dist/collection/components/select/select-optgroup.host.css +1 -0
  386. package/dist/collection/components/select/select-optgroup.js +82 -0
  387. package/dist/collection/components/select/select-option.host.css +1 -0
  388. package/dist/collection/components/select/select-option.js +112 -0
  389. package/dist/collection/components/select/select.host.css +1 -0
  390. package/dist/collection/components/select/select.i18n.js +45 -0
  391. package/dist/collection/components/select/select.interfaces.js +4 -0
  392. package/dist/collection/components/select/select.js +1024 -0
  393. package/dist/collection/components/select/select.picker.js +276 -0
  394. package/dist/collection/components/select/test/select.a11y.play.js +81 -0
  395. package/dist/collection/components/select/test/select.component.play.js +184 -0
  396. package/dist/collection/components/select/test/select.visual.play.js +70 -0
  397. package/dist/collection/components/shape/shape.js +7 -14
  398. package/dist/collection/components/spinner/spinner.js +18 -26
  399. package/dist/collection/components/stack/stack.host.css +1 -1
  400. package/dist/collection/components/stack/stack.js +41 -153
  401. package/dist/collection/components/steps/step/step.host.css +1 -0
  402. package/dist/collection/components/steps/step/step.js +431 -0
  403. package/dist/collection/components/steps/step-panel/step-panel.host.css +1 -0
  404. package/dist/collection/components/steps/step-panel/step-panel.js +104 -0
  405. package/dist/collection/components/steps/steps/steps.host.css +1 -0
  406. package/dist/collection/components/steps/steps/steps.js +356 -0
  407. package/dist/collection/components/steps/steps.interfaces.js +4 -0
  408. package/dist/collection/components/steps/test/steps.a11y.play.js +73 -0
  409. package/dist/collection/components/steps/test/steps.component.play.js +182 -0
  410. package/dist/collection/components/steps/test/steps.visual.play.js +18 -0
  411. package/dist/collection/components/tabs/tab/tab.host.css +1 -0
  412. package/dist/collection/components/tabs/tab/tab.js +278 -0
  413. package/dist/collection/components/tabs/tab-panel/tab-panel.host.css +1 -0
  414. package/dist/collection/components/tabs/tab-panel/tab-panel.js +104 -0
  415. package/dist/collection/components/tabs/tabs/tabs.host.css +1 -0
  416. package/dist/collection/components/tabs/tabs/tabs.i18n.js +45 -0
  417. package/dist/collection/components/tabs/tabs/tabs.js +552 -0
  418. package/dist/collection/components/tabs/tabs.interfaces.js +12 -0
  419. package/dist/collection/components/tabs/test/tabs.a11y.play.js +60 -0
  420. package/dist/collection/components/tabs/test/tabs.component.play.js +129 -0
  421. package/dist/collection/components/tabs/test/tabs.visual.play.js +31 -0
  422. package/dist/collection/components/tag/tag-group/tag-group.js +1 -1
  423. package/dist/collection/components/tag/tag.js +15 -26
  424. package/dist/collection/components/text/text.js +23 -30
  425. package/dist/collection/components/textarea/textarea.host.css +1 -1
  426. package/dist/collection/components/textarea/textarea.js +24 -25
  427. package/dist/collection/components/time-input/test/time-input.visual.play.js +18 -0
  428. package/dist/collection/components/toggle/toggle.js +19 -20
  429. package/dist/collection/components/tooltip/test/tooltip.a11y.play.js +32 -0
  430. package/dist/collection/components/tooltip/test/tooltip.component.play.js +51 -0
  431. package/dist/collection/components/tooltip/test/tooltip.visual.play.js +16 -0
  432. package/dist/collection/components/tooltip/tooltip.host.css +1 -0
  433. package/dist/collection/components/tooltip/tooltip.interfaces.js +4 -0
  434. package/dist/collection/components/tooltip/tooltip.js +407 -0
  435. package/dist/collection/foundation/colors.visual.play.js +18 -0
  436. package/dist/collection/global/config/config.const.js +11 -0
  437. package/dist/collection/global/config/config.default.js +92 -42
  438. package/dist/collection/global/config/config.js +1 -1
  439. package/dist/collection/global/config/config.meta.js +27 -0
  440. package/dist/collection/global/config/index.js +1 -0
  441. package/dist/collection/global/config/initialize.js +2 -1
  442. package/dist/collection/global/constants/tags.constant.js +29 -1
  443. package/dist/collection/global/constants/version.constant.js +1 -1
  444. package/dist/collection/global/index.js +0 -1
  445. package/dist/collection/global/initialize.js +2 -0
  446. package/dist/collection/index.js +5 -20
  447. package/dist/collection/utils/attributes.js +0 -15
  448. package/dist/collection/utils/focus.js +72 -0
  449. package/dist/collection/utils/form-control.js +1 -1
  450. package/dist/collection/utils/has-value.js +7 -0
  451. package/dist/collection/utils/helpers.js +14 -74
  452. package/dist/collection/utils/index.js +7 -5
  453. package/dist/collection/utils/{property-checkers/is-value-empty.js → is-value-empty.js} +1 -1
  454. package/dist/collection/utils/number.js +6 -25
  455. package/dist/collection/utils/property-decorators/array-of.js +25 -0
  456. package/dist/collection/utils/property-decorators/bound.js +79 -0
  457. package/dist/collection/utils/property-decorators/create-validator-decorator.js +212 -0
  458. package/dist/collection/utils/property-decorators/date.js +24 -0
  459. package/dist/collection/utils/property-decorators/index.js +12 -0
  460. package/dist/collection/utils/property-decorators/iso-date.js +24 -0
  461. package/dist/collection/utils/property-decorators/one-of.js +25 -0
  462. package/dist/collection/utils/property-decorators/pattern.js +25 -0
  463. package/dist/collection/utils/property-decorators/required.js +44 -0
  464. package/dist/collection/utils/property-decorators/type.js +28 -0
  465. package/dist/collection/utils/property-decorators/url.js +32 -0
  466. package/dist/collection/utils/property-types.js +1 -0
  467. package/dist/collection/utils/svg.js +19 -0
  468. package/dist/design-system/design-system.esm.js +1 -1
  469. package/dist/design-system/index.esm.js +1 -1
  470. package/dist/design-system/p-01430d5c28.entry.js +4 -0
  471. package/dist/design-system/p-014d464627.entry.js +4 -0
  472. package/dist/design-system/p-0663d7c0f1.entry.js +4 -0
  473. package/dist/design-system/p-0bd2ce2da3.entry.js +4 -0
  474. package/dist/design-system/p-0ff0be5b83.entry.js +4 -0
  475. package/dist/design-system/p-10c136d00d.entry.js +4 -0
  476. package/dist/design-system/p-11f34d0c7d.entry.js +4 -0
  477. package/dist/design-system/p-13d1ce3158.entry.js +4 -0
  478. package/dist/design-system/p-163d606781.entry.js +4 -0
  479. package/dist/design-system/p-1VXOIrN2.js +4 -0
  480. package/dist/design-system/p-202ecb8f01.entry.js +4 -0
  481. package/dist/design-system/p-27d181c5ac.entry.js +4 -0
  482. package/dist/design-system/p-2a35e0b9b0.entry.js +4 -0
  483. package/dist/design-system/p-2f51e1d39b.entry.js +4 -0
  484. package/dist/design-system/p-3134821ac6.entry.js +4 -0
  485. package/dist/design-system/p-3292ae6a05.entry.js +4 -0
  486. package/dist/design-system/p-372bf379f9.entry.js +4 -0
  487. package/dist/design-system/p-3895178b39.entry.js +4 -0
  488. package/dist/design-system/p-3c6b7a2967.entry.js +4 -0
  489. package/dist/design-system/p-3ef4bd1c59.entry.js +4 -0
  490. package/dist/design-system/p-493b18cc46.entry.js +4 -0
  491. package/dist/design-system/p-4a99464dae.entry.js +4 -0
  492. package/dist/design-system/p-4e6638d14e.entry.js +4 -0
  493. package/dist/design-system/p-53dda5d400.entry.js +4 -0
  494. package/dist/design-system/p-5d17209d91.entry.js +4 -0
  495. package/dist/design-system/p-5e51fa8df4.entry.js +4 -0
  496. package/dist/design-system/p-60d29d8b8e.entry.js +4 -0
  497. package/dist/design-system/p-62cb503015.entry.js +4 -0
  498. package/dist/design-system/p-650289138a.entry.js +4 -0
  499. package/dist/design-system/p-65c221261c.entry.js +4 -0
  500. package/dist/design-system/p-68c9f4f630.entry.js +4 -0
  501. package/dist/design-system/p-68ebed7eee.entry.js +4 -0
  502. package/dist/design-system/p-6b6531379b.entry.js +4 -0
  503. package/dist/design-system/p-6d168ba9ad.entry.js +4 -0
  504. package/dist/design-system/p-6ef31a3c07.entry.js +4 -0
  505. package/dist/design-system/p-774b89ed0b.entry.js +4 -0
  506. package/dist/design-system/p-787bd92bcc.entry.js +4 -0
  507. package/{components/p-E1SnOz0L.js → dist/design-system/p-78NZc8PM.js} +1 -1
  508. package/dist/design-system/p-7c353652a9.entry.js +4 -0
  509. package/dist/design-system/p-7c8bf0f33e.entry.js +4 -0
  510. package/dist/design-system/p-7e702193fc.entry.js +4 -0
  511. package/dist/design-system/p-8353961d39.entry.js +4 -0
  512. package/dist/design-system/{p-1d312498a6.entry.js → p-8406f6faf1.entry.js} +1 -1
  513. package/dist/design-system/p-9f2dd0b55b.entry.js +4 -0
  514. package/dist/design-system/p-B-en4B17.js +4 -0
  515. package/dist/design-system/p-B1e0kNRJ.js +14 -0
  516. package/dist/design-system/p-B8KVoKrH.js +5 -0
  517. package/dist/design-system/p-BAY6Z8bT.js +4 -0
  518. package/dist/design-system/p-BLGVE-7Z.js +4 -0
  519. package/dist/design-system/{p-C7EnKCpl.js → p-BMM6Nxeh.js} +1 -1
  520. package/{components/p-Diz11uvt.js → dist/design-system/p-BPGfTrrM.js} +1 -1
  521. package/dist/design-system/p-BhdSNuGP.js +4 -0
  522. package/dist/design-system/p-BkTv_bQR.js +4 -0
  523. package/dist/design-system/p-BqY0KzJC.js +4 -0
  524. package/dist/design-system/p-BrJFPhMA.js +4 -0
  525. package/dist/design-system/p-BvEM6oCl.js +4 -0
  526. package/dist/design-system/p-C1jqbZdf.js +4 -0
  527. package/dist/design-system/p-C6MVahkC.js +5 -0
  528. package/dist/design-system/{p-DCf2fJmI.js → p-C7i6xLTJ.js} +1 -1
  529. package/dist/design-system/p-CvTcEsXg.js +4 -0
  530. package/dist/design-system/p-CwCAiaMq.js +4 -0
  531. package/{components/p-5Sp1eJOt.js → dist/design-system/p-DTxLRTYr.js} +1 -1
  532. package/dist/design-system/{p-Dnjznncd.js → p-DgVaaZT_.js} +1 -1
  533. package/dist/design-system/{p-CAcwu8uP.js → p-Dm2lqE3-.js} +1 -1
  534. package/dist/design-system/p-HwbqEzpk.js +4 -0
  535. package/dist/design-system/p-LCY5n5tq.js +4 -0
  536. package/dist/design-system/p-Uy_dVz21.js +4 -0
  537. package/dist/design-system/p-a465c1acce.entry.js +4 -0
  538. package/dist/design-system/p-a62b7985a0.entry.js +4 -0
  539. package/dist/design-system/p-a8de98dd7b.entry.js +4 -0
  540. package/dist/design-system/p-ad2b17b0a0.entry.js +4 -0
  541. package/dist/design-system/p-afd8bbe699.entry.js +4 -0
  542. package/dist/design-system/{p-7e6ed497e7.entry.js → p-b68bc14064.entry.js} +1 -1
  543. package/dist/design-system/p-b955a93959.entry.js +4 -0
  544. package/dist/design-system/p-c37f266740.entry.js +4 -0
  545. package/dist/design-system/p-caad93b943.entry.js +4 -0
  546. package/dist/design-system/p-cca79bfeb1.entry.js +4 -0
  547. package/dist/design-system/p-d5f8d8f5e1.entry.js +4 -0
  548. package/dist/design-system/p-dcb749efc7.entry.js +4 -0
  549. package/dist/design-system/p-dd38f8f206.entry.js +4 -0
  550. package/dist/design-system/p-ddf2a7dfee.entry.js +4 -0
  551. package/dist/design-system/p-df5899b930.entry.js +4 -0
  552. package/dist/design-system/p-e7472337ed.entry.js +4 -0
  553. package/dist/design-system/p-e85c92ca1a.entry.js +4 -0
  554. package/dist/design-system/p-f0119fe693.entry.js +4 -0
  555. package/dist/design-system/p-f4958b9e97.entry.js +4 -0
  556. package/dist/design-system/p-f62643c33d.entry.js +4 -0
  557. package/dist/design-system/p-fa9568abce.entry.js +4 -0
  558. package/dist/design-system/p-fcd98f22b7.entry.js +4 -0
  559. package/dist/design-system/p-feeef4a8cb.entry.js +4 -0
  560. package/dist/design-system/{p-BLPSziW-.js → p-hLAmwHiq.js} +1 -1
  561. package/dist/design-system/p-ij4OEkzJ.js +4 -0
  562. package/dist/design-system/p-tl_BegdE.js +4 -0
  563. package/dist/esm/array-dJH4dfMr.js +1983 -0
  564. package/dist/esm/{breakpoints.decorator-L2xeP46f.js → breakpoints.decorator-DZ0xN4Np.js} +1 -1
  565. package/dist/esm/{breakpoints.subject-BhbzG-rl.js → breakpoints.subject-BNnXcKMw.js} +3 -3
  566. package/dist/esm/{button.interfaces-BkESlUMc.js → button.interfaces-BPGfTrrM.js} +1 -1
  567. package/dist/esm/carousel.interfaces-B-en4B17.js +8 -0
  568. package/dist/esm/{config.decorator-BQNIja4k.js → config.decorator-ZQ0_Zx5y.js} +1 -1
  569. package/dist/esm/{config.utils-COlKFRlV.js → config.utils-D9o7rffC.js} +1 -1
  570. package/dist/esm/create-validator-decorator-DovxquEu.js +208 -0
  571. package/dist/esm/design-system.js +4 -4
  572. package/dist/esm/{device-Dhwt3m7W.js → device-CRuIJzXR.js} +1 -1
  573. package/dist/esm/ds-accordion.entry.js +30 -34
  574. package/dist/esm/ds-alert-container.entry.js +12 -15
  575. package/dist/esm/ds-app.entry.js +16 -6
  576. package/dist/esm/ds-badge.entry.js +32 -25
  577. package/dist/esm/ds-button-group.entry.js +14 -17
  578. package/dist/esm/ds-button_2.entry.js +58 -73
  579. package/dist/esm/ds-card-actions.entry.js +6 -8
  580. package/dist/esm/ds-card-content.entry.js +2 -2
  581. package/dist/esm/ds-card-header.entry.js +8 -5
  582. package/dist/esm/ds-card-subtitle.entry.js +13 -13
  583. package/dist/esm/ds-card-title.entry.js +11 -7
  584. package/dist/esm/ds-card.entry.js +30 -42
  585. package/dist/esm/ds-carousel-item.entry.js +126 -0
  586. package/dist/esm/ds-carousel.entry.js +471 -0
  587. package/dist/esm/ds-checkbox-group.entry.js +40 -2011
  588. package/dist/esm/ds-checkbox.entry.js +23 -19
  589. package/dist/esm/ds-content_2.entry.js +327 -0
  590. package/dist/esm/ds-data-item.entry.js +144 -0
  591. package/dist/esm/ds-data-label.entry.js +39 -0
  592. package/dist/esm/ds-data-value.entry.js +29 -0
  593. package/dist/esm/ds-data.entry.js +41 -0
  594. package/dist/esm/ds-date.entry.js +5332 -0
  595. package/dist/esm/{ds-logo.entry.js → ds-divider_2.entry.js} +130 -26
  596. package/dist/esm/ds-drawer_2.entry.js +599 -0
  597. package/dist/esm/ds-file-upload.entry.js +513 -0
  598. package/dist/esm/ds-footer.entry.js +157 -0
  599. package/dist/esm/ds-heading.entry.js +21 -19
  600. package/dist/esm/ds-hint-text.entry.js +26 -0
  601. package/dist/esm/ds-hint-title.entry.js +29 -0
  602. package/dist/esm/ds-hint.entry.js +241 -0
  603. package/dist/esm/ds-icon_2.entry.js +78 -70
  604. package/dist/esm/ds-input.entry.js +46 -44
  605. package/dist/esm/ds-item.entry.js +29 -34
  606. package/dist/esm/ds-label.entry.js +22 -30
  607. package/dist/esm/ds-list.entry.js +6 -12
  608. package/dist/esm/ds-modal-body.entry.js +32 -0
  609. package/dist/esm/ds-modal-header.entry.js +29 -0
  610. package/dist/esm/ds-modal.entry.js +199 -0
  611. package/dist/esm/ds-navbar.entry.js +357 -0
  612. package/dist/esm/ds-notification.entry.js +19 -27
  613. package/dist/esm/ds-number-input.entry.js +129 -46
  614. package/dist/esm/ds-pagination.entry.js +41 -37
  615. package/dist/esm/ds-progress-bar.entry.js +25 -29
  616. package/dist/esm/ds-radio-group.entry.js +31 -30
  617. package/dist/esm/ds-radio.entry.js +25 -32
  618. package/dist/esm/ds-segment-item.entry.js +9 -9
  619. package/dist/esm/ds-segment.entry.js +28 -116
  620. package/dist/esm/ds-select-optgroup.entry.js +47 -0
  621. package/dist/esm/ds-select-option.entry.js +55 -0
  622. package/dist/esm/ds-select.entry.js +2770 -0
  623. package/dist/esm/ds-shape.entry.js +10 -16
  624. package/dist/esm/ds-snackbar.entry.js +40 -57
  625. package/dist/esm/ds-step-panel.entry.js +53 -0
  626. package/dist/esm/ds-step.entry.js +168 -0
  627. package/dist/esm/ds-steps.entry.js +225 -0
  628. package/dist/esm/ds-tab-panel.entry.js +53 -0
  629. package/dist/esm/ds-tab.entry.js +118 -0
  630. package/dist/esm/ds-tabs.entry.js +362 -0
  631. package/dist/esm/ds-tag-group.entry.js +3 -3
  632. package/dist/esm/ds-tag.entry.js +19 -26
  633. package/dist/esm/ds-text.entry.js +28 -32
  634. package/dist/esm/ds-textarea.entry.js +33 -32
  635. package/dist/esm/ds-toast.entry.js +40 -54
  636. package/dist/esm/ds-toggle.entry.js +22 -21
  637. package/dist/esm/ds-tooltip.entry.js +180 -0
  638. package/dist/esm/{field.util-BXxRO7CD.js → field.util-BjZzAi09.js} +1 -1
  639. package/dist/esm/floating-ui.dom-BqY0KzJC.js +1621 -0
  640. package/dist/esm/focus-ZxHImoOj.js +1956 -0
  641. package/dist/esm/footer.i18n-BrJFPhMA.js +159 -0
  642. package/dist/esm/{form-control-D2O-sb65.js → form-control-DvJo0GKN.js} +2 -2
  643. package/dist/esm/has-value-DU9L2JaI.js +10 -0
  644. package/dist/esm/{index-CuwLeg-T.js → index-C6MVahkC.js} +496 -175
  645. package/dist/esm/index.js +13 -8273
  646. package/dist/esm/{input.interfaces-C7EnKCpl.js → input.interfaces-BMM6Nxeh.js} +1 -1
  647. package/dist/esm/keyboard-Uy_dVz21.js +20 -0
  648. package/dist/esm/{listener-C_kjUVTE.js → listener-DHP2OPMZ.js} +1 -1
  649. package/dist/esm/loader.js +3 -3
  650. package/dist/esm/luxon-C1jqbZdf.js +8133 -0
  651. package/dist/esm/one-of-CKPv0Nqm.js +28 -0
  652. package/dist/esm/popup.interfaces-BAY6Z8bT.js +20 -0
  653. package/dist/esm/required-Dqsbx5fH.js +36 -0
  654. package/dist/esm/resize.decorator-B8h8D676.js +96 -0
  655. package/dist/esm/scroll-CsH7NHo5.js +87 -0
  656. package/dist/esm/svg-B8KVoKrH.js +2440 -0
  657. package/dist/esm/{tslib.es6-tdchDLyb.js → tslib.es6-C9GKXw-5.js} +1 -1
  658. package/dist/esm/type-DzkhLOG_.js +31 -0
  659. package/dist/types/components/accordion/accordion.d.ts +0 -5
  660. package/dist/types/components/alert/alert-container.d.ts +0 -5
  661. package/dist/types/components/alert/snackbar/snackbar.d.ts +0 -5
  662. package/dist/types/components/alert/toast/toast.d.ts +0 -5
  663. package/dist/types/components/badge/badge.d.ts +1 -3
  664. package/dist/types/components/badge/badge.interfaces.d.ts +1 -1
  665. package/dist/types/components/button/button-group/button-group.d.ts +0 -5
  666. package/dist/types/components/button/button.d.ts +1 -3
  667. package/dist/types/components/button/button.interfaces.d.ts +1 -1
  668. package/dist/types/components/card/card-actions/card-actions.d.ts +0 -1
  669. package/dist/types/components/card/card-subtitle/card-subtitle.d.ts +0 -1
  670. package/dist/types/components/card/card.d.ts +1 -3
  671. package/dist/types/components/carousel/carousel/carousel.d.ts +114 -0
  672. package/dist/types/components/carousel/carousel/carousel.i18n.d.ts +9 -0
  673. package/dist/types/components/carousel/carousel-item/carousel-item.d.ts +70 -0
  674. package/dist/types/components/carousel/carousel.interfaces.d.ts +14 -0
  675. package/dist/types/components/carousel/test/carousel.a11y.play.d.ts +1 -0
  676. package/dist/types/components/carousel/test/carousel.component.play.d.ts +1 -0
  677. package/dist/types/components/carousel/test/carousel.visual.play.d.ts +1 -0
  678. package/dist/types/components/close/close.d.ts +1 -3
  679. package/dist/types/components/content/content.d.ts +2 -5
  680. package/dist/types/components/data/data-item.d.ts +43 -0
  681. package/dist/types/components/data/data-item.i18n.d.ts +6 -0
  682. package/dist/types/components/data/data-item.interfaces.d.ts +4 -0
  683. package/dist/types/components/data/data-label.d.ts +19 -0
  684. package/dist/types/components/data/data-label.interfaces.d.ts +3 -0
  685. package/dist/types/components/data/data-value.d.ts +15 -0
  686. package/dist/types/components/data/data-value.interfaces.d.ts +5 -0
  687. package/dist/types/components/data/data.d.ts +19 -0
  688. package/dist/types/components/data/data.interfaces.d.ts +4 -0
  689. package/dist/types/components/data/test/data.a11y.play.d.ts +1 -0
  690. package/dist/types/components/data/test/data.component.play.d.ts +1 -0
  691. package/dist/types/components/data/test/data.visual.play.d.ts +1 -0
  692. package/dist/types/components/date/date.d.ts +214 -0
  693. package/dist/types/components/date/date.i18n.d.ts +13 -0
  694. package/dist/types/components/date/date.interfaces.d.ts +18 -0
  695. package/dist/types/components/date/date.mask.d.ts +29 -0
  696. package/dist/types/components/date/date.picker.d.ts +67 -0
  697. package/dist/types/components/date/test/date.a11y.play.d.ts +1 -0
  698. package/dist/types/components/date/test/date.component.play.d.ts +1 -0
  699. package/dist/types/components/date/test/date.visual.play.d.ts +1 -0
  700. package/dist/types/components/divider/divider.d.ts +1 -3
  701. package/dist/types/components/drawer/drawer.d.ts +102 -0
  702. package/dist/types/components/drawer/drawer.interfaces.d.ts +8 -0
  703. package/dist/types/components/drawer/test/drawer.a11y.play.d.ts +1 -0
  704. package/dist/types/components/drawer/test/drawer.component.play.d.ts +1 -0
  705. package/dist/types/components/drawer/test/drawer.visual.play.d.ts +1 -0
  706. package/dist/types/components/file-upload/file-upload.d.ts +192 -0
  707. package/dist/types/components/file-upload/file-upload.i18n.d.ts +8 -0
  708. package/dist/types/components/file-upload/file-upload.interfaces.d.ts +24 -0
  709. package/dist/types/components/file-upload/test/file-upload.a11y.play.d.ts +1 -0
  710. package/dist/types/components/file-upload/test/file-upload.component.play.d.ts +1 -0
  711. package/dist/types/components/file-upload/test/file-upload.visual.play.d.ts +1 -0
  712. package/dist/types/components/file-upload/utils/file-list.util.d.ts +2 -0
  713. package/dist/types/components/file-upload/utils/file-size.util.d.ts +1 -0
  714. package/dist/types/components/file-upload/utils/file-validation.util.d.ts +13 -0
  715. package/dist/types/components/footer/footer.d.ts +68 -0
  716. package/dist/types/components/footer/footer.i18n.d.ts +7 -0
  717. package/dist/types/components/footer/footer.interfaces.d.ts +19 -0
  718. package/dist/types/components/footer/test/footer.a11y.play.d.ts +1 -0
  719. package/dist/types/components/footer/test/footer.component.play.d.ts +1 -0
  720. package/dist/types/components/footer/test/footer.visual.play.d.ts +1 -0
  721. package/dist/types/components/hint/hint-text/hint-text.d.ts +15 -0
  722. package/dist/types/components/hint/hint-title/hint-title.d.ts +16 -0
  723. package/dist/types/components/hint/hint.d.ts +87 -0
  724. package/dist/types/components/hint/hint.i18n.d.ts +6 -0
  725. package/dist/types/components/hint/hint.interfaces.d.ts +4 -0
  726. package/dist/types/components/hint/test/hint.a11y.play.d.ts +1 -0
  727. package/dist/types/components/hint/test/hint.component.play.d.ts +1 -0
  728. package/dist/types/components/hint/test/hint.visual.play.d.ts +1 -0
  729. package/dist/types/components/icon/icon.d.ts +7 -3
  730. package/dist/types/components/icon/icon.interfaces.d.ts +1 -1
  731. package/dist/types/components/input/clear-button.i18n.d.ts +6 -0
  732. package/dist/types/components/input/clear-button.util.d.ts +10 -0
  733. package/dist/types/components/input/trigger-button.i18n.d.ts +7 -0
  734. package/dist/types/components/label/label.d.ts +3 -5
  735. package/dist/types/components/list/item/item.d.ts +0 -5
  736. package/dist/types/components/list/item/item.interfaces.d.ts +1 -1
  737. package/dist/types/components/list/list.d.ts +0 -5
  738. package/dist/types/components/list/test/list.visual.play.d.ts +1 -0
  739. package/dist/types/components/logo/logo.d.ts +1 -2
  740. package/dist/types/components/modal/modal-body/modal-body.d.ts +15 -0
  741. package/dist/types/components/modal/modal-header/modal-header.d.ts +17 -0
  742. package/dist/types/components/modal/modal.controller.d.ts +3 -0
  743. package/dist/types/components/modal/modal.d.ts +97 -0
  744. package/dist/types/components/modal/modal.interfaces.d.ts +15 -0
  745. package/dist/types/components/modal/test/modal.a11y.play.d.ts +1 -0
  746. package/dist/types/components/modal/test/modal.component.play.d.ts +1 -0
  747. package/dist/types/components/modal/test/modal.visual.play.d.ts +1 -0
  748. package/dist/types/components/navbar/navbar.d.ts +128 -0
  749. package/dist/types/components/navbar/navbar.i18n.d.ts +9 -0
  750. package/dist/types/components/navbar/navbar.interfaces.d.ts +10 -0
  751. package/dist/types/components/navbar/test/navbar.a11y.play.d.ts +1 -0
  752. package/dist/types/components/navbar/test/navbar.component.play.d.ts +1 -0
  753. package/dist/types/components/navbar/test/navbar.visual.play.d.ts +1 -0
  754. package/dist/types/components/notification/notification.d.ts +1 -3
  755. package/dist/types/components/pagination/pagination.d.ts +0 -5
  756. package/dist/types/components/popup/popup.d.ts +152 -0
  757. package/dist/types/components/popup/popup.interfaces.d.ts +14 -0
  758. package/dist/types/components/popup/test/popup.a11y.play.d.ts +1 -0
  759. package/dist/types/components/popup/test/popup.component.play.d.ts +1 -0
  760. package/dist/types/components/popup/test/popup.visual.play.d.ts +1 -0
  761. package/dist/types/components/progress-bar/progress-bar.d.ts +0 -5
  762. package/dist/types/components/select/select-optgroup.d.ts +28 -0
  763. package/dist/types/components/select/select-option.d.ts +34 -0
  764. package/dist/types/components/select/select.d.ts +193 -0
  765. package/dist/types/components/select/select.i18n.d.ts +7 -0
  766. package/dist/types/components/select/select.interfaces.d.ts +16 -0
  767. package/dist/types/components/select/select.picker.d.ts +57 -0
  768. package/dist/types/components/select/test/select.a11y.play.d.ts +1 -0
  769. package/dist/types/components/select/test/select.component.play.d.ts +1 -0
  770. package/dist/types/components/select/test/select.visual.play.d.ts +1 -0
  771. package/dist/types/components/shape/shape.d.ts +2 -7
  772. package/dist/types/components/spinner/spinner.d.ts +0 -2
  773. package/dist/types/components/stack/stack.d.ts +7 -19
  774. package/dist/types/components/steps/step/step.d.ts +89 -0
  775. package/dist/types/components/steps/step-panel/step-panel.d.ts +34 -0
  776. package/dist/types/components/steps/steps/steps.d.ts +77 -0
  777. package/dist/types/components/steps/steps.interfaces.d.ts +10 -0
  778. package/dist/types/components/steps/test/steps.a11y.play.d.ts +1 -0
  779. package/dist/types/components/steps/test/steps.component.play.d.ts +1 -0
  780. package/dist/types/components/steps/test/steps.visual.play.d.ts +1 -0
  781. package/dist/types/components/tabs/tab/tab.d.ts +67 -0
  782. package/dist/types/components/tabs/tab-panel/tab-panel.d.ts +34 -0
  783. package/dist/types/components/tabs/tabs/tabs.d.ts +97 -0
  784. package/dist/types/components/tabs/tabs/tabs.i18n.d.ts +7 -0
  785. package/dist/types/components/tabs/tabs.interfaces.d.ts +12 -0
  786. package/dist/types/components/tabs/test/tabs.a11y.play.d.ts +1 -0
  787. package/dist/types/components/tabs/test/tabs.component.play.d.ts +1 -0
  788. package/dist/types/components/tabs/test/tabs.visual.play.d.ts +1 -0
  789. package/dist/types/components/tag/tag.d.ts +1 -3
  790. package/dist/types/components/text/text.d.ts +2 -7
  791. package/dist/types/components/time-input/test/time-input.visual.play.d.ts +1 -0
  792. package/dist/types/components/tooltip/test/tooltip.a11y.play.d.ts +1 -0
  793. package/dist/types/components/tooltip/test/tooltip.component.play.d.ts +1 -0
  794. package/dist/types/components/tooltip/test/tooltip.visual.play.d.ts +1 -0
  795. package/dist/types/components/tooltip/tooltip.d.ts +85 -0
  796. package/dist/types/components/tooltip/tooltip.interfaces.d.ts +10 -0
  797. package/dist/types/components.d.ts +4913 -1926
  798. package/dist/types/foundation/colors.visual.play.d.ts +1 -0
  799. package/dist/types/global/config/config.const.d.ts +3 -0
  800. package/dist/types/global/config/config.default.d.ts +0 -40
  801. package/dist/types/global/config/config.meta.d.ts +2 -0
  802. package/dist/types/global/config/config.types.d.ts +27 -0
  803. package/dist/types/global/config/index.d.ts +1 -0
  804. package/dist/types/global/index.d.ts +0 -1
  805. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/carousel.po.d.ts +12 -0
  806. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/data-item.po.d.ts +16 -0
  807. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/data.po.d.ts +12 -0
  808. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/date.po.d.ts +15 -0
  809. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/drawer.po.d.ts +11 -0
  810. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/file-upload.po.d.ts +16 -0
  811. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/footer.po.d.ts +16 -0
  812. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/hint.po.d.ts +10 -0
  813. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/index.d.ts +15 -0
  814. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/modal.po.d.ts +15 -0
  815. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/navbar.po.d.ts +13 -0
  816. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/popup.po.d.ts +11 -0
  817. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/select.po.d.ts +24 -0
  818. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/steps.po.d.ts +13 -0
  819. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/tabs.po.d.ts +13 -0
  820. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/components/tooltip.po.d.ts +6 -0
  821. package/dist/types/home/runner/work/design-system/design-system/packages/core/.stencil/packages/playwright/src/lib/page/utils/goto.d.ts +1 -1
  822. package/dist/types/index.d.ts +4 -1
  823. package/dist/types/stencil-public-runtime.d.ts +1 -0
  824. package/dist/types/utils/attributes.d.ts +0 -8
  825. package/dist/types/utils/focus.d.ts +18 -0
  826. package/dist/types/utils/form-control.d.ts +2 -2
  827. package/dist/types/utils/has-value.d.ts +1 -0
  828. package/dist/types/utils/index.d.ts +7 -5
  829. package/dist/types/utils/number.d.ts +0 -3
  830. package/dist/types/utils/property-decorators/array-of.d.ts +9 -0
  831. package/dist/types/utils/property-decorators/bound.d.ts +36 -0
  832. package/dist/types/utils/property-decorators/create-validator-decorator.d.ts +48 -0
  833. package/dist/types/utils/property-decorators/date.d.ts +6 -0
  834. package/dist/types/utils/property-decorators/index.d.ts +9 -0
  835. package/dist/types/utils/property-decorators/iso-date.d.ts +6 -0
  836. package/dist/types/utils/property-decorators/one-of.d.ts +8 -0
  837. package/dist/types/utils/property-decorators/pattern.d.ts +8 -0
  838. package/dist/types/utils/property-decorators/required.d.ts +17 -0
  839. package/dist/types/utils/property-decorators/type.d.ts +9 -0
  840. package/dist/types/utils/property-decorators/url.d.ts +6 -0
  841. package/dist/types/utils/svg.d.ts +2 -0
  842. package/docs/cem.json +17659 -0
  843. package/docs/components.json +38767 -17409
  844. package/docs/html.html-data.json +1529 -147
  845. package/docs/tags.json +29 -1
  846. package/package.json +45 -38
  847. package/sbom.cdx.json +54391 -0
  848. package/README.md +0 -33
  849. package/components/p-82RSSk25.js +0 -4
  850. package/components/p-BEngECpF.js +0 -4
  851. package/components/p-BMBthpLd.js +0 -4
  852. package/components/p-BNY3JzuV.js +0 -4
  853. package/components/p-BOTkpyFe.js +0 -5
  854. package/components/p-BOgMmRCt.js +0 -4
  855. package/components/p-CDYlUuhB.js +0 -4
  856. package/components/p-Cb75Rr6o.js +0 -4
  857. package/components/p-CojUmpFm.js +0 -4
  858. package/components/p-DHeVI6dR.js +0 -4
  859. package/components/p-DTPbL3uY.js +0 -4
  860. package/components/p-DnnGnukM.js +0 -4
  861. package/components/p-DtuTnY5l.js +0 -4
  862. package/components/p-JZ1uDtZv.js +0 -4
  863. package/components/p-cSbDziZm.js +0 -4
  864. package/components/p-gA-94RPS.js +0 -4
  865. package/components/p-xDEngwqW.js +0 -4
  866. package/dist/cjs/contact-SPfz2A_q.js +0 -1647
  867. package/dist/cjs/ds-content.cjs.entry.js +0 -154
  868. package/dist/cjs/ds-divider.cjs.entry.js +0 -131
  869. package/dist/cjs/ds-stack.cjs.entry.js +0 -224
  870. package/dist/cjs/isEmpty-BmKp4bH4.js +0 -99
  871. package/dist/cjs/stack.interfaces-6vlKvBmb.js +0 -68
  872. package/dist/cjs/svg-D7Mwbcvp.js +0 -1482
  873. package/dist/cjs/validate.decorator-C9-9HA0Y.js +0 -115
  874. package/dist/collection/global/constants/icons.constant.js +0 -42
  875. package/dist/collection/utils/element-states/element-states.decorator.js +0 -23
  876. package/dist/collection/utils/element-states/element-states.listener.js +0 -55
  877. package/dist/collection/utils/element-states/element-states.subject.js +0 -24
  878. package/dist/collection/utils/element-states/index.js +0 -5
  879. package/dist/collection/utils/keyboard/index.js +0 -6
  880. package/dist/collection/utils/keyboard/keyboard.decorator.js +0 -23
  881. package/dist/collection/utils/keyboard/keyboard.listener.js +0 -34
  882. package/dist/collection/utils/keyboard/keyboard.subject.js +0 -24
  883. package/dist/collection/utils/property-checkers/check-array-of.js +0 -13
  884. package/dist/collection/utils/property-checkers/check-date.js +0 -18
  885. package/dist/collection/utils/property-checkers/check-iso-date.js +0 -14
  886. package/dist/collection/utils/property-checkers/check-one-of.js +0 -13
  887. package/dist/collection/utils/property-checkers/check-pattern.js +0 -13
  888. package/dist/collection/utils/property-checkers/check-type.js +0 -20
  889. package/dist/collection/utils/property-checkers/check-url.js +0 -20
  890. package/dist/collection/utils/property-checkers/empty-or.js +0 -15
  891. package/dist/collection/utils/property-checkers/index.js +0 -57
  892. package/dist/collection/utils/property-checkers/required-and.js +0 -20
  893. package/dist/collection/utils/swipe/index.js +0 -6
  894. package/dist/collection/utils/swipe/swipe.decorator.js +0 -23
  895. package/dist/collection/utils/swipe/swipe.listener.js +0 -33
  896. package/dist/collection/utils/swipe/swipe.subject.js +0 -28
  897. package/dist/collection/utils/validate.decorator.js +0 -203
  898. package/dist/design-system/p-03bbcdf9de.entry.js +0 -4
  899. package/dist/design-system/p-1154323457.entry.js +0 -4
  900. package/dist/design-system/p-1f0601a4f4.entry.js +0 -4
  901. package/dist/design-system/p-21b080a49a.entry.js +0 -4
  902. package/dist/design-system/p-27c34c4e5f.entry.js +0 -4
  903. package/dist/design-system/p-2b91de302f.entry.js +0 -4
  904. package/dist/design-system/p-31c1235ac5.entry.js +0 -4
  905. package/dist/design-system/p-3259acaa64.entry.js +0 -4
  906. package/dist/design-system/p-339d85cca0.entry.js +0 -4
  907. package/dist/design-system/p-35e63b52e7.entry.js +0 -4
  908. package/dist/design-system/p-363f3a7ab4.entry.js +0 -4
  909. package/dist/design-system/p-3d901720f7.entry.js +0 -4
  910. package/dist/design-system/p-40ba8b9812.entry.js +0 -4
  911. package/dist/design-system/p-432430e14f.entry.js +0 -4
  912. package/dist/design-system/p-487807f228.entry.js +0 -4
  913. package/dist/design-system/p-4a049d1b7f.entry.js +0 -4
  914. package/dist/design-system/p-4f4cce8ce4.entry.js +0 -4
  915. package/dist/design-system/p-5a901a9b8e.entry.js +0 -4
  916. package/dist/design-system/p-5d3330bf93.entry.js +0 -4
  917. package/dist/design-system/p-640223834c.entry.js +0 -4
  918. package/dist/design-system/p-6b9aab417f.entry.js +0 -4
  919. package/dist/design-system/p-799705af3a.entry.js +0 -4
  920. package/dist/design-system/p-82RSSk25.js +0 -4
  921. package/dist/design-system/p-8e0872fef0.entry.js +0 -4
  922. package/dist/design-system/p-9617d56181.entry.js +0 -4
  923. package/dist/design-system/p-BaIoYrFa.js +0 -5
  924. package/dist/design-system/p-Cb75Rr6o.js +0 -4
  925. package/dist/design-system/p-CqZ6YSy9.js +0 -4
  926. package/dist/design-system/p-CqzM3doy.js +0 -4
  927. package/dist/design-system/p-CuwLeg-T.js +0 -5
  928. package/dist/design-system/p-DTPbL3uY.js +0 -4
  929. package/dist/design-system/p-aff68865ee.entry.js +0 -4
  930. package/dist/design-system/p-b3c6327744.entry.js +0 -4
  931. package/dist/design-system/p-be9023a38b.entry.js +0 -4
  932. package/dist/design-system/p-c031d1dce5.entry.js +0 -4
  933. package/dist/design-system/p-c3ae96e220.entry.js +0 -4
  934. package/dist/design-system/p-d430812a57.entry.js +0 -4
  935. package/dist/design-system/p-de1354f022.entry.js +0 -4
  936. package/dist/design-system/p-e3d0c82e2a.entry.js +0 -4
  937. package/dist/design-system/p-ea1a5e1f75.entry.js +0 -4
  938. package/dist/design-system/p-ea7169501c.entry.js +0 -4
  939. package/dist/design-system/p-eab397e041.entry.js +0 -4
  940. package/dist/design-system/p-ecba4deb9a.entry.js +0 -4
  941. package/dist/design-system/p-fe0dbd4b03.entry.js +0 -4
  942. package/dist/design-system/p-ng5ZzTOj.js +0 -4
  943. package/dist/esm/contact-Cb75Rr6o.js +0 -1636
  944. package/dist/esm/ds-content.entry.js +0 -152
  945. package/dist/esm/ds-divider.entry.js +0 -129
  946. package/dist/esm/ds-stack.entry.js +0 -222
  947. package/dist/esm/isEmpty-DmZYZqE9.js +0 -97
  948. package/dist/esm/stack.interfaces-ng5ZzTOj.js +0 -62
  949. package/dist/esm/svg-BaIoYrFa.js +0 -1480
  950. package/dist/esm/validate.decorator-82RSSk25.js +0 -110
  951. package/dist/types/global/constants/icons.constant.d.ts +0 -38
  952. package/dist/types/utils/element-states/element-states.decorator.d.ts +0 -3
  953. package/dist/types/utils/element-states/element-states.interfaces.d.ts +0 -10
  954. package/dist/types/utils/element-states/element-states.listener.d.ts +0 -15
  955. package/dist/types/utils/element-states/element-states.subject.d.ts +0 -8
  956. package/dist/types/utils/element-states/index.d.ts +0 -2
  957. package/dist/types/utils/keyboard/index.d.ts +0 -3
  958. package/dist/types/utils/keyboard/keyboard.decorator.d.ts +0 -3
  959. package/dist/types/utils/keyboard/keyboard.interfaces.d.ts +0 -8
  960. package/dist/types/utils/keyboard/keyboard.listener.d.ts +0 -9
  961. package/dist/types/utils/keyboard/keyboard.subject.d.ts +0 -8
  962. package/dist/types/utils/property-checkers/check-array-of.d.ts +0 -2
  963. package/dist/types/utils/property-checkers/check-date.d.ts +0 -1
  964. package/dist/types/utils/property-checkers/check-iso-date.d.ts +0 -1
  965. package/dist/types/utils/property-checkers/check-one-of.d.ts +0 -1
  966. package/dist/types/utils/property-checkers/check-pattern.d.ts +0 -1
  967. package/dist/types/utils/property-checkers/check-type.d.ts +0 -2
  968. package/dist/types/utils/property-checkers/check-url.d.ts +0 -1
  969. package/dist/types/utils/property-checkers/constants.d.ts +0 -1
  970. package/dist/types/utils/property-checkers/empty-or.d.ts +0 -1
  971. package/dist/types/utils/property-checkers/index.d.ts +0 -19
  972. package/dist/types/utils/property-checkers/required-and.d.ts +0 -1
  973. package/dist/types/utils/swipe/index.d.ts +0 -3
  974. package/dist/types/utils/swipe/swipe.decorator.d.ts +0 -5
  975. package/dist/types/utils/swipe/swipe.interfaces.d.ts +0 -10
  976. package/dist/types/utils/swipe/swipe.listener.d.ts +0 -10
  977. package/dist/types/utils/swipe/swipe.subject.d.ts +0 -11
  978. package/dist/types/utils/validate.decorator.d.ts +0 -114
  979. /package/dist/collection/{utils/element-states/element-states.interfaces.js → components/data/data-item.interfaces.js} +0 -0
  980. /package/dist/collection/{utils/keyboard/keyboard.interfaces.js → components/data/data-label.interfaces.js} +0 -0
  981. /package/dist/collection/{utils/property-checkers/property-types.js → components/data/data-value.interfaces.js} +0 -0
  982. /package/dist/collection/{utils/swipe/swipe.interfaces.js → components/data/data.interfaces.js} +0 -0
  983. /package/dist/collection/utils/{property-checkers/is-iso-date.js → is-iso-date.js} +0 -0
  984. /package/dist/collection/utils/{keyboard/keyboard.helpers.js → keyboard.js} +0 -0
  985. /package/dist/types/utils/{property-checkers/is-iso-date.d.ts → is-iso-date.d.ts} +0 -0
  986. /package/dist/types/utils/{property-checkers/is-value-empty.d.ts → is-value-empty.d.ts} +0 -0
  987. /package/dist/types/utils/{keyboard/keyboard.helpers.d.ts → keyboard.d.ts} +0 -0
  988. /package/dist/types/utils/{property-checkers/property-types.d.ts → property-types.d.ts} +0 -0
@@ -0,0 +1,2770 @@
1
+ /*!
2
+ * (C) Helvetia Design System https://design.baloise.dev/ - Apache License 2.0
3
+ */
4
+ import { B as registerInstance, I as createEvent, v as defaultConfig, D as raf, E as h$1, G as getElement } from './index-C6MVahkC.js';
5
+ import { _ as __decorate, L as Logger, a as __metadata } from './tslib.es6-C9GKXw-5.js';
6
+ import { i as inheritAttributes } from './attributes-B62ocg4Q.js';
7
+ import { s as stopEventBubbling } from './form-control-DvJo0GKN.js';
8
+ import { F as Field } from './field.util-BjZzAi09.js';
9
+ import { I as INPUT_COLORS } from './input.interfaces-BMM6Nxeh.js';
10
+ import { T as Type } from './type-DzkhLOG_.js';
11
+ import { O as OneOf } from './one-of-CKPv0Nqm.js';
12
+ import { L as ListenToConfig } from './config.decorator-ZQ0_Zx5y.js';
13
+ import './aria-DYfTMCkl.js';
14
+ import './label.i18n-C7I7OlaM.js';
15
+ import './create-validator-decorator-DovxquEu.js';
16
+ import './config.utils-D9o7rffC.js';
17
+
18
+ //#region src/slim-select/classes.ts
19
+ var e = class {
20
+ main;
21
+ placeholder;
22
+ values;
23
+ single;
24
+ multiString;
25
+ max;
26
+ value;
27
+ valueText;
28
+ valueDelete;
29
+ valueOut;
30
+ deselect;
31
+ deselectPath;
32
+ arrow;
33
+ arrowClose;
34
+ arrowOpen;
35
+ content;
36
+ contentOpen;
37
+ dirAbove;
38
+ dirBelow;
39
+ search;
40
+ searchHighlighter;
41
+ searching;
42
+ status;
43
+ addable;
44
+ addablePath;
45
+ list;
46
+ optgroup;
47
+ optgroupLabel;
48
+ optgroupLabelText;
49
+ optgroupActions;
50
+ optgroupSelectAll;
51
+ optgroupSelectAllBox;
52
+ optgroupSelectAllCheck;
53
+ optgroupClosable;
54
+ option;
55
+ optionDelete;
56
+ highlighted;
57
+ modalOverlay;
58
+ modalDialog;
59
+ modalTitle;
60
+ modalClose;
61
+ modalContent;
62
+ mainOpen;
63
+ close;
64
+ selected;
65
+ error;
66
+ disabled;
67
+ hide;
68
+ constructor(e) {
69
+ e ||= {};
70
+ let t = (e = "", t = "") => `${e} ${t}`.trim();
71
+ this.main = t("ss-main", e.main), this.placeholder = t("ss-placeholder", e.placeholder), this.values = t("ss-values", e.values), this.single = t("ss-single", e.single), this.multiString = t("ss-multi-string", e.multiString), this.max = t("ss-max", e.max), this.value = t("ss-value", e.value), this.valueText = t("ss-value-text", e.valueText), this.valueDelete = t("ss-value-delete", e.valueDelete), this.valueOut = t("ss-value-out", e.valueOut), this.deselect = t("ss-deselect", e.deselect), this.deselectPath = e.deselectPath || "M10,10 L90,90 M10,90 L90,10", this.arrow = t("ss-arrow", e.arrow), this.arrowClose = e.arrowClose || "M10,30 L50,70 L90,30", this.arrowOpen = e.arrowOpen || "M10,70 L50,30 L90,70", this.content = t("ss-content", e.content), this.contentOpen = t("ss-open", e.contentOpen), this.dirAbove = t("ss-dir-above", e.dirAbove), this.dirBelow = t("ss-dir-below", e.dirBelow), this.search = t("ss-search", e.search), this.searchHighlighter = t("ss-search-highlight", e.searchHighlighter), this.searching = t("ss-searching", e.searching), this.status = t("ss-status", e.status), this.addable = t("ss-addable", e.addable), this.addablePath = e.addablePath || "M50,10 L50,90 M10,50 L90,50", this.list = t("ss-list", e.list), this.optgroup = t("ss-optgroup", e.optgroup), this.optgroupLabel = t("ss-optgroup-label", e.optgroupLabel), this.optgroupLabelText = t("ss-optgroup-label-text", e.optgroupLabelText), this.optgroupActions = t("ss-optgroup-actions", e.optgroupActions), this.optgroupSelectAll = t("ss-selectall", e.optgroupSelectAll), this.optgroupSelectAllBox = e.optgroupSelectAllBox || "M60,10 L10,10 L10,90 L90,90 L90,50", this.optgroupSelectAllCheck = e.optgroupSelectAllCheck || "M30,45 L50,70 L90,10", this.optgroupClosable = t("ss-closable", e.optgroupClosable), this.option = t("ss-option", e.option), this.optionDelete = e.optionDelete || "M10,10 L90,90 M10,90 L90,10", this.highlighted = t("ss-highlighted", e.highlighted), this.modalOverlay = t("ss-modal-overlay", e.modalOverlay), this.modalDialog = t("ss-modal-dialog", e.modalDialog), this.modalTitle = t("ss-modal-title", e.modalTitle), this.modalClose = t("ss-modal-close", e.modalClose), this.modalContent = t("ss-modal-content", e.modalContent), this.mainOpen = t("ss-open", e.mainOpen), this.close = t("ss-close", e.close), this.selected = t("ss-selected", e.selected), this.error = t("ss-error", e.error), this.disabled = t("ss-disabled", e.disabled), this.hide = t("ss-hide", e.hide);
72
+ }
73
+ getFirst(e) {
74
+ return this[e].split(" ")[0];
75
+ }
76
+ }, t = 200, n = ["transform", "opacity"];
77
+ function r(e, n = t) {
78
+ let r = e.trim();
79
+ if (!r) return n;
80
+ if (r.endsWith("ms")) {
81
+ let e = parseFloat(r);
82
+ return Number.isNaN(e) ? n : e;
83
+ }
84
+ if (r.endsWith("s")) {
85
+ let e = parseFloat(r);
86
+ return Number.isNaN(e) ? n : e * 1e3;
87
+ }
88
+ let i = parseFloat(r);
89
+ return Number.isNaN(i) ? n : i;
90
+ }
91
+ function i(e, n = t) {
92
+ return r(getComputedStyle(e).getPropertyValue("--ss-animation-timing").trim(), n);
93
+ }
94
+ function a(e, n, r = t) {
95
+ let a = i(e, r) + 50;
96
+ return n === void 0 ? a : Math.max(a, n);
97
+ }
98
+ function o() {
99
+ return typeof window > "u" || typeof window.matchMedia != "function" ? false : window.matchMedia("(prefers-reduced-motion: reduce)").matches;
100
+ }
101
+ function s(e) {
102
+ return e === void 0 ? null : new Set(Array.isArray(e) ? e : [e]);
103
+ }
104
+ function c(e, n, r = t, i) {
105
+ if (o() || i?.aborted) return Promise.resolve();
106
+ let a = s(n);
107
+ return new Promise((t) => {
108
+ let n = null, o = false, s = () => {
109
+ o || (o = true, e.removeEventListener("transitionend", l), i?.removeEventListener("abort", c), n && clearTimeout(n), t());
110
+ }, c = () => s(), l = (t) => {
111
+ t.target === e && (a && (!a.has(t.propertyName) || (a.delete(t.propertyName), a.size > 0)) || s());
112
+ };
113
+ i?.addEventListener("abort", c, { once: true }), e.addEventListener("transitionend", l), n = setTimeout(s, r);
114
+ });
115
+ }
116
+ function l(e, n, r = t, i) {
117
+ return o() || i?.aborted ? Promise.resolve() : new Promise((t) => {
118
+ let a = null, o = false, s = () => {
119
+ o || (o = true, e.removeEventListener("animationend", l), a && clearTimeout(a), t());
120
+ }, l = (t) => {
121
+ t.target === e && (t.animationName !== n || s());
122
+ };
123
+ e.addEventListener("animationend", l), a = setTimeout(s, r);
124
+ });
125
+ }
126
+ //#endregion
127
+ //#region src/slim-select/settings.ts
128
+ var d = class {
129
+ id = "";
130
+ style = "";
131
+ class = [];
132
+ isMultiple = false;
133
+ isOpen = false;
134
+ isFullOpen = false;
135
+ disabled;
136
+ alwaysOpen;
137
+ showSearch;
138
+ focusSearch;
139
+ keepSearch;
140
+ ariaLabel;
141
+ searchPlaceholder;
142
+ searchText;
143
+ searchingText;
144
+ resultsText;
145
+ deselectText;
146
+ removeText;
147
+ searchHighlight;
148
+ closeOnSelect;
149
+ contentLocation;
150
+ contentPosition;
151
+ contentWidth;
152
+ openPosition;
153
+ placeholderText;
154
+ allowDeselect;
155
+ hideSelected;
156
+ multiString;
157
+ keepOrder;
158
+ showOptionTooltips;
159
+ minSelected;
160
+ maxSelected;
161
+ timeoutDelay;
162
+ maxValuesShown;
163
+ maxValuesMessage;
164
+ addableText;
165
+ modal;
166
+ modalTitle;
167
+ constructor(e) {
168
+ e ||= {}, this.id = "ss-" + h(), this.style = e.style || "", this.class = e.class || [], this.disabled = e.disabled !== void 0 && e.disabled, this.alwaysOpen = e.alwaysOpen !== void 0 && e.alwaysOpen, this.showSearch = e.showSearch === void 0 || e.showSearch, this.focusSearch = e.focusSearch === void 0 || e.focusSearch, this.keepSearch = e.keepSearch !== void 0 && e.keepSearch, this.ariaLabel = e.ariaLabel || "Combobox", this.searchPlaceholder = e.searchPlaceholder || "Search...", this.searchText = e.searchText || "No Results", this.searchingText = e.searchingText || "Searching...", this.resultsText = e.resultsText || "{count} results available", this.deselectText = e.deselectText || "Clear", this.removeText = e.removeText || "Remove", this.searchHighlight = e.searchHighlight !== void 0 && e.searchHighlight, this.closeOnSelect = e.closeOnSelect === void 0 || e.closeOnSelect, this.contentLocation = e.contentLocation || document.body, this.contentPosition = e.contentPosition || "absolute", this.contentWidth = e.contentWidth || "", this.openPosition = e.openPosition || "auto", this.placeholderText = e.placeholderText === void 0 ? "Select Value" : e.placeholderText, this.allowDeselect = e.allowDeselect !== void 0 && e.allowDeselect, this.hideSelected = e.hideSelected !== void 0 && e.hideSelected, this.multiString = e.multiString !== void 0 && e.multiString, this.keepOrder = e.keepOrder !== void 0 && e.keepOrder, this.showOptionTooltips = e.showOptionTooltips !== void 0 && e.showOptionTooltips, this.minSelected = e.minSelected || 0, this.maxSelected = e.maxSelected || 1e3, this.timeoutDelay = e.timeoutDelay || 200, this.maxValuesShown = e.maxValuesShown || 20, this.maxValuesMessage = e.maxValuesMessage || "{number} selected", this.addableText = e.addableText || "Press \"Enter\" to add {value}", this.modal = e.modal || "mobile", this.modalTitle = e.modalTitle || "";
169
+ }
170
+ };
171
+ //#endregion
172
+ //#region src/slim-select/helpers.ts
173
+ function f(e) {
174
+ if (!e) return {};
175
+ let t = {};
176
+ for (let n of Object.keys(e)) {
177
+ let r = e[n];
178
+ r !== void 0 && (t[n] = r);
179
+ }
180
+ return t;
181
+ }
182
+ function p(e) {
183
+ let t = e.cloneNode(true);
184
+ return t.querySelectorAll("select, option, optgroup, textarea, input, button").forEach((e) => e.remove()), t.textContent?.replace(/\s+/g, " ").trim() || "";
185
+ }
186
+ function m(e) {
187
+ if (e.labels && e.labels.length > 0) {
188
+ let t = Array.from(e.labels).map(p).filter(Boolean);
189
+ if (t.length > 0) return [...new Set(t)].join(" ");
190
+ }
191
+ return e.getAttribute("aria-label")?.trim() || "";
192
+ }
193
+ function h() {
194
+ return Math.random().toString(36).substring(2, 10);
195
+ }
196
+ function g(e, t) {
197
+ function n(e, n) {
198
+ return n && e && e.classList && e.classList.contains(n) || n && e && e.dataset && e.dataset.id && e.dataset.id === t ? e : null;
199
+ }
200
+ function r(e, t) {
201
+ return !e || e === document ? null : n(e, t) ? e : r(e.parentNode, t);
202
+ }
203
+ return n(e, t) || r(e, t);
204
+ }
205
+ function _(e, t = 50, n = false) {
206
+ let r;
207
+ return function(...i) {
208
+ let a = self, o = () => {
209
+ r = null, n || e.apply(a, i);
210
+ }, s = n && !r;
211
+ clearTimeout(r), r = setTimeout(o, t), s && e.apply(a, i);
212
+ };
213
+ }
214
+ function v(e, t) {
215
+ if (e.length !== t.length) return false;
216
+ let n = [...e].sort(), r = [...t].sort();
217
+ return n.every((e, t) => e === r[t]);
218
+ }
219
+ var y = [
220
+ "id",
221
+ "value",
222
+ "text",
223
+ "html",
224
+ "defaultSelected",
225
+ "selected",
226
+ "display",
227
+ "disabled",
228
+ "placeholder",
229
+ "class",
230
+ "style",
231
+ "mandatory"
232
+ ];
233
+ function b(e, t) {
234
+ let n = Object.keys(e), r = Object.keys(t);
235
+ if (n.length !== r.length) return false;
236
+ for (let r of n) if (e[r] !== t[r]) return false;
237
+ return true;
238
+ }
239
+ function x(e, t) {
240
+ switch (t) {
241
+ case "id": return e.id || "";
242
+ case "value": return e.value === void 0 ? e.text || "" : e.value || "";
243
+ case "text": return e.text || "";
244
+ case "html": return e.html || "";
245
+ case "defaultSelected": return e.defaultSelected ?? false;
246
+ case "selected": return e.selected ?? false;
247
+ case "display": return e.display ?? true;
248
+ case "disabled": return e.disabled ?? false;
249
+ case "placeholder": return e.placeholder ?? false;
250
+ case "class": return e.class || "";
251
+ case "style": return e.style || "";
252
+ case "mandatory": return e.mandatory ?? false;
253
+ default: return e.data || {};
254
+ }
255
+ }
256
+ function S(e) {
257
+ return !!e && typeof e == "object" && "label" in e && "options" in e;
258
+ }
259
+ function C(e, t) {
260
+ for (let n of y) if (x(e, n) !== x(t, n)) return false;
261
+ return b(e.data || {}, t.data || {});
262
+ }
263
+ function w(e, t) {
264
+ let n = (e) => ({
265
+ id: e.id || "",
266
+ label: e.label || "",
267
+ selectAll: e.selectAll ?? false,
268
+ closable: e.closable || "off"
269
+ }), r = n(e), i = n(t);
270
+ if (r.id !== i.id || r.label !== i.label || r.selectAll !== i.selectAll || r.closable !== i.closable) return false;
271
+ let a = e.options || [], o = t.options || [];
272
+ if (a.length !== o.length) return false;
273
+ for (let e = 0; e < a.length; e++) if (!C(a[e], o[e])) return false;
274
+ return true;
275
+ }
276
+ function T(e, t) {
277
+ if (e === t) return true;
278
+ if (e.length !== t.length) return false;
279
+ for (let n = 0; n < e.length; n++) {
280
+ let r = e[n], i = t[n], a = S(r);
281
+ if (a !== S(i)) return false;
282
+ if (a) {
283
+ if (!w(r, i)) return false;
284
+ continue;
285
+ }
286
+ if (!C(r, i)) return false;
287
+ }
288
+ return true;
289
+ }
290
+ function E(e) {
291
+ let t = e.replace(/[A-Z\u00C0-\u00D6\u00D8-\u00DE]/g, (e) => "-" + e.toLowerCase());
292
+ return e[0] === e[0].toUpperCase() ? t.substring(1) : t;
293
+ }
294
+ function D(e, t = typeof window < "u" ? window.innerWidth : 768) {
295
+ return e === "on" || e === "mobile" && t < 768;
296
+ }
297
+ //#endregion
298
+ //#region src/slim-select/events.ts
299
+ var O = class {
300
+ handlers;
301
+ attached = false;
302
+ constructor(e) {
303
+ this.handlers = e;
304
+ }
305
+ attach(e) {
306
+ this.attached || (this.attached = true, window.addEventListener("resize", this.resizeHandler, false), e.listenScroll && window.addEventListener("scroll", this.scrollHandler, false), document.addEventListener("visibilitychange", this.visibilityHandler));
307
+ }
308
+ attachDocumentClick() {
309
+ document.addEventListener("click", this.handlers.onDocumentClick);
310
+ }
311
+ detachDocumentClick() {
312
+ document.removeEventListener("click", this.handlers.onDocumentClick);
313
+ }
314
+ detach(e) {
315
+ this.attached && (this.attached = false, this.detachDocumentClick(), window.removeEventListener("resize", this.resizeHandler, false), e.listenScroll && window.removeEventListener("scroll", this.scrollHandler, false), document.removeEventListener("visibilitychange", this.visibilityHandler));
316
+ }
317
+ resizeHandler = _(() => {
318
+ this.handlers.onWindowResize();
319
+ });
320
+ scrollHandler = _(() => {
321
+ this.handlers.onWindowScroll();
322
+ });
323
+ visibilityHandler = () => {
324
+ this.handlers.onVisibilityChange();
325
+ };
326
+ }, k = class {
327
+ handlers;
328
+ options;
329
+ state = "closed";
330
+ pendingTimer = null;
331
+ waitResolvers = [];
332
+ generation = 0;
333
+ animationAbort = null;
334
+ constructor(e, t) {
335
+ this.handlers = e, this.options = t;
336
+ }
337
+ get isOpen() {
338
+ return this.state === "opening" || this.state === "open";
339
+ }
340
+ get isFullOpen() {
341
+ return this.state === "open";
342
+ }
343
+ async requestOpen() {
344
+ if (this.state === "opening" || this.state === "open") return;
345
+ this.cancelPending();
346
+ let e = ++this.generation;
347
+ if (this.handlers.beforeOpen && this.handlers.beforeOpen(), this.state = "opening", await this.waitForPhase("open", e), e !== this.generation) {
348
+ this.state === "opening" && (this.state = "closed");
349
+ return;
350
+ }
351
+ this.state = "open", this.handlers.afterOpen && this.handlers.afterOpen(), this.handlers.onOpenReady && this.handlers.onOpenReady();
352
+ }
353
+ async requestClose(e = {
354
+ source: "api",
355
+ selectionChanged: false
356
+ }) {
357
+ if (this.state === "closed" || this.state === "closing" || this.handlers.beforeClose && this.handlers.beforeClose(e) === false) return false;
358
+ this.cancelPending();
359
+ let t = ++this.generation;
360
+ return this.handlers.onClose && this.handlers.onClose(e), this.state = "closing", await this.waitForPhase("close", t), t === this.generation ? (this.state = "closed", this.handlers.afterClose && this.handlers.afterClose(), this.handlers.onCloseReady && this.handlers.onCloseReady(), true) : false;
361
+ }
362
+ cancelPending() {
363
+ this.generation++, this.animationAbort?.abort(), this.animationAbort = null, this.pendingTimer &&= (clearTimeout(this.pendingTimer), null);
364
+ let e = this.waitResolvers.splice(0);
365
+ for (let t of e) t();
366
+ }
367
+ destroy() {
368
+ this.cancelPending(), this.state = "closed";
369
+ }
370
+ waitForPhase(e, t) {
371
+ return new Promise((t) => {
372
+ let n = false, r = () => {
373
+ if (n) return;
374
+ n = true;
375
+ let e = this.waitResolvers.indexOf(r);
376
+ e !== -1 && this.waitResolvers.splice(e, 1), t();
377
+ };
378
+ if (this.waitResolvers.push(r), this.options.waitForAnimation) {
379
+ let t = new AbortController();
380
+ this.animationAbort = t, this.options.waitForAnimation(e, t.signal).catch(() => void 0).finally(() => {
381
+ this.animationAbort === t && (this.animationAbort = null), r();
382
+ });
383
+ } else this.pendingTimer = setTimeout(() => {
384
+ this.pendingTimer = null, r();
385
+ }, this.options.timeoutDelay);
386
+ }).then(() => {
387
+ });
388
+ }
389
+ }, A = class {
390
+ id;
391
+ value;
392
+ text;
393
+ html;
394
+ defaultSelected;
395
+ selected;
396
+ display;
397
+ disabled;
398
+ placeholder;
399
+ class;
400
+ style;
401
+ data;
402
+ mandatory;
403
+ constructor(e) {
404
+ this.id = !e.id || e.id === "" ? h() : e.id, this.value = e.value === void 0 ? e.text || "" : e.value || "", this.text = e.text || "", this.html = e.html || "", this.defaultSelected = e.defaultSelected !== void 0 && e.defaultSelected, this.selected = e.selected !== void 0 && e.selected, this.display = e.display === void 0 || e.display, this.disabled = e.disabled !== void 0 && e.disabled, this.mandatory = e.mandatory !== void 0 && e.mandatory, this.placeholder = e.placeholder !== void 0 && e.placeholder, this.class = e.class || "", this.style = e.style || "", this.data = f(e.data);
405
+ }
406
+ }, j = class {
407
+ id;
408
+ label;
409
+ selectAll;
410
+ closable;
411
+ options;
412
+ constructor(e) {
413
+ if (this.id = !e.id || e.id === "" ? h() : e.id, this.label = e.label || "", this.selectAll = e.selectAll !== void 0 && e.selectAll, this.closable = e.closable || "off", this.options = [], e.options) for (let t of e.options) this.options.push(new A(t));
414
+ }
415
+ }, M = class {
416
+ selectType = "single";
417
+ data = [];
418
+ selectedOrder = [];
419
+ catalog = null;
420
+ constructor(e, t) {
421
+ this.selectType = e, this.setData(t), this.snapshotCatalog();
422
+ }
423
+ validateDataArray(e) {
424
+ if (!Array.isArray(e)) return /* @__PURE__ */ Error("Data must be an array");
425
+ for (let t of e) if (t) if (t instanceof j || "label" in t) {
426
+ if (!("label" in t)) return /* @__PURE__ */ Error("Optgroup must have a label");
427
+ if ("options" in t && t.options) for (let e of t.options) {
428
+ let t = this.validateOption(e);
429
+ if (t) return t;
430
+ }
431
+ } else if (t instanceof A || "text" in t) {
432
+ let e = this.validateOption(t);
433
+ if (e) return e;
434
+ } else return /* @__PURE__ */ Error("Data object must be a valid optgroup or option");
435
+ return null;
436
+ }
437
+ validateOption(e) {
438
+ return "text" in e ? null : /* @__PURE__ */ Error("Option must have a text");
439
+ }
440
+ partialToFullData(e) {
441
+ let t = [];
442
+ return e.forEach((e) => {
443
+ if (e) {
444
+ if (e instanceof j || "label" in e) {
445
+ let n = [];
446
+ "options" in e && e.options && e.options.forEach((e) => {
447
+ n.push(new A(e));
448
+ }), n.length > 0 && t.push(new j(e));
449
+ }
450
+ (e instanceof A || "text" in e) && t.push(new A(e));
451
+ }
452
+ }), t;
453
+ }
454
+ snapshotCatalog() {
455
+ this.catalog = this.cloneData(this.data);
456
+ }
457
+ getCatalogData() {
458
+ return this.cloneData(this.catalog ?? this.data);
459
+ }
460
+ cloneData(e) {
461
+ return e.map((e) => e instanceof j ? new j({
462
+ id: e.id,
463
+ label: e.label,
464
+ selectAll: e.selectAll,
465
+ closable: e.closable,
466
+ options: e.options.map((e) => new A(e instanceof A ? { ...e } : e))
467
+ }) : new A({ ...e }));
468
+ }
469
+ optionMatchesSelected(e, t) {
470
+ return e.id === t.id || t.value !== "" && e.value !== "" && e.value === t.value;
471
+ }
472
+ findOptionInData(e, t) {
473
+ for (let n of e) {
474
+ if (n instanceof A) {
475
+ if (this.optionMatchesSelected(n, t)) return n;
476
+ continue;
477
+ }
478
+ for (let e of n.options) if (this.optionMatchesSelected(e, t)) return e;
479
+ }
480
+ return null;
481
+ }
482
+ setData(e, t = false) {
483
+ let n = this.partialToFullData(e), r = [];
484
+ if (t) {
485
+ r = this.getSelectedOptions();
486
+ let e = [];
487
+ r.forEach((t) => {
488
+ this.findOptionInData(n, t) || e.push(t);
489
+ }), this.data = [...e, ...n];
490
+ let t = this.selectType === "single" && r.length === 0, i = r.map((e) => {
491
+ let t = this.findOptionInData(this.data, e);
492
+ return t ? t.id : e.id;
493
+ });
494
+ this.setSelectedBy("id", i, t);
495
+ } else this.data = n;
496
+ !t && this.selectType === "single" && this.setSelectedBy("id", this.getSelected(), false);
497
+ }
498
+ getData(e = true) {
499
+ return this.filter(null, true, e);
500
+ }
501
+ getDataOptions(e = true) {
502
+ return this.filter(null, false, e);
503
+ }
504
+ addOption(e, t = false) {
505
+ if (t) {
506
+ let t = [new A(e)];
507
+ this.setData(t.concat(this.getData()));
508
+ } else this.setData(this.getData().concat(new A(e)));
509
+ }
510
+ setSelectedBy(e, t, n = false) {
511
+ let r = null, i = false, a = [];
512
+ for (let n of this.data) {
513
+ if (n instanceof j) for (let o of n.options) {
514
+ r ||= o;
515
+ let n = o[e] || "";
516
+ o.selected = !i && t.includes(n), o.selected && (a.push(o), this.selectType === "single" && (i = true));
517
+ }
518
+ n instanceof A && (r ||= n, n.selected = !i && t.includes(n[e]), n.selected && (a.push(n), this.selectType === "single" && (i = true)));
519
+ }
520
+ this.selectType === "single" && r && !i && !n && (r.selected = true, a.push(r));
521
+ let o = t.map((t) => a.find((n) => n[e] === t)?.id || "");
522
+ this.selectedOrder = o;
523
+ }
524
+ getSelected() {
525
+ return this.getSelectedOptions().map((e) => e.id);
526
+ }
527
+ getSelectedValues() {
528
+ return this.getSelectedOptions().map((e) => e.value);
529
+ }
530
+ getSelectedOptions() {
531
+ let e = [];
532
+ for (let t of this.data) if (t instanceof j) for (let n of t.options) n.selected && e.push(n);
533
+ else t.selected && e.push(t);
534
+ return e;
535
+ }
536
+ getOptgroupByID(e) {
537
+ for (let t of this.data) if (t instanceof j && t.id === e) return t;
538
+ return null;
539
+ }
540
+ getOptionByID(e) {
541
+ for (let t of this.data) if (t instanceof j) {
542
+ for (let n of t.options) if (n.id === e) return n;
543
+ } else if (t.id === e) return t;
544
+ return null;
545
+ }
546
+ getSelectType() {
547
+ return this.selectType;
548
+ }
549
+ getFirstOption() {
550
+ let e = null;
551
+ for (let t of this.data) if (t instanceof j ? e = t.options[0] : t instanceof A && (e = t), e) break;
552
+ return e;
553
+ }
554
+ search(e, t) {
555
+ return e = e.trim(), e === "" ? this.getData(false) : this.filter((n) => t(n, e), true, false);
556
+ }
557
+ createOptgroupView(e, t) {
558
+ let n = new j({
559
+ id: e.id,
560
+ label: e.label,
561
+ selectAll: e.selectAll,
562
+ closable: e.closable,
563
+ options: []
564
+ });
565
+ return n.options = t, n;
566
+ }
567
+ filter(e, t, n = true) {
568
+ let r = [];
569
+ return this.data.forEach((i) => {
570
+ if (i instanceof j) {
571
+ let a = [];
572
+ if (i.options.forEach((i) => {
573
+ (!e || e(i)) && (t ? a.push(n ? new A(i) : i) : r.push(n ? new A(i) : i));
574
+ }), a.length > 0) if (n) {
575
+ let e = new j(i);
576
+ e.options = a, r.push(e);
577
+ } else r.push(this.createOptgroupView(i, a));
578
+ }
579
+ i instanceof A && (!e || e(i)) && r.push(n ? new A(i) : i);
580
+ }), r;
581
+ }
582
+ selectedOrderOptions(e) {
583
+ let t = [];
584
+ return this.selectedOrder.forEach((n) => {
585
+ let r = e.find((e) => e.id === n);
586
+ r && t.push(r);
587
+ }), e.forEach((e) => {
588
+ let n = false;
589
+ t.forEach((t) => {
590
+ if (e.id === t.id) {
591
+ n = true;
592
+ return;
593
+ }
594
+ }), n || t.push(e);
595
+ }), t;
596
+ }
597
+ }, N = class {
598
+ settings;
599
+ store;
600
+ callbacks;
601
+ lastSelectedOption;
602
+ lastRenderedOptions;
603
+ optionsListIsFullData = false;
604
+ lastSearchFilterTerm = "";
605
+ main;
606
+ content;
607
+ classes;
608
+ positionObserver = null;
609
+ positionObserverRaf = 0;
610
+ overflowShiftRaf = 0;
611
+ modalElements = null;
612
+ modalSessionActive = null;
613
+ bodyScrollLocked = false;
614
+ savedBodyOverflow = "";
615
+ constructor(e, t, n, r) {
616
+ this.store = n, this.settings = e, this.classes = t, this.callbacks = r, this.lastSelectedOption = null, this.lastRenderedOptions = [], this.main = this.mainDiv(), this.content = this.contentDiv(), this.updateClassStyles(), this.updateAriaAttributes(), this.settings.contentPosition !== "relative" && (this.content.main.style.top = "-9999px", this.content.main.style.left = "-9999px", this.content.main.style.margin = "0", this.content.main.style.width = "auto"), this.settings.contentLocation && this.settings.contentLocation.appendChild(this.content.main), this.settings.modal !== "off" && !this.settings.alwaysOpen && (this.modalElements = this.createModalElements(), document.body.appendChild(this.modalElements.overlay));
617
+ }
618
+ requestClose(e, t) {
619
+ this.callbacks.close({
620
+ source: e,
621
+ option: t?.option,
622
+ selectionChanged: t?.selectionChanged ?? false
623
+ });
624
+ }
625
+ selectionChanged(e, t) {
626
+ if (e.length !== t.length) return true;
627
+ let n = e.map((e) => e.id).sort(), r = t.map((e) => e.id).sort();
628
+ return n.some((e, t) => e !== r[t]);
629
+ }
630
+ closeOnSingleSelectReclick(e) {
631
+ this.settings.closeOnSelect && this.requestClose("select", {
632
+ option: e,
633
+ selectionChanged: false
634
+ });
635
+ }
636
+ addClasses(e, t) {
637
+ if (!t || t.trim() === "") return;
638
+ let n = t.split(" ").filter((e) => e.trim() !== "");
639
+ for (let t of n) e.classList.add(t.trim());
640
+ }
641
+ removeClasses(e, t) {
642
+ if (!t || t.trim() === "") return;
643
+ let n = t.split(" ").filter((e) => e.trim() !== "");
644
+ for (let t of n) e.classList.remove(t.trim());
645
+ }
646
+ enable() {
647
+ this.removeClasses(this.main.main, this.classes.disabled), this.main.main.setAttribute("aria-disabled", "false"), this.content.search.input.disabled = false;
648
+ }
649
+ disable() {
650
+ this.addClasses(this.main.main, this.classes.disabled), this.main.main.setAttribute("aria-disabled", "true"), this.content.search.input.disabled = true;
651
+ }
652
+ open() {
653
+ this.main.arrow.path.setAttribute("d", this.classes.arrowOpen), this.main.main.setAttribute("aria-expanded", "true");
654
+ let e = this.resolveModalView();
655
+ if (!e) {
656
+ let e = this.settings.openPosition === "up" ? this.classes.dirAbove : this.classes.dirBelow;
657
+ this.addClasses(this.main.main, e), this.addClasses(this.content.main, e);
658
+ }
659
+ this.addClasses(this.content.main, this.classes.contentOpen), this.content.search.input.removeAttribute("aria-hidden"), e ? this.showModal() : this.moveContent();
660
+ let t = this.store.getSelectedOptions();
661
+ if (t.length) {
662
+ let e = t[t.length - 1].id, n = this.content.list.querySelector("[data-id=\"" + e + "\"]");
663
+ n && this.ensureElementInView(this.content.list, n);
664
+ }
665
+ }
666
+ isModalViewActive() {
667
+ return this.modalSessionActive === true;
668
+ }
669
+ resolveModalView() {
670
+ return this.settings.alwaysOpen || this.settings.modal === "off" || !this.modalElements ? false : (this.modalSessionActive === null && (this.modalSessionActive = D(this.settings.modal)), this.modalSessionActive);
671
+ }
672
+ createModalElements() {
673
+ let e = document.createElement("div");
674
+ this.addClasses(e, this.classes.modalOverlay), this.addClasses(e, this.classes.hide), e.dataset.id = this.settings.id;
675
+ let t = document.createElement("div");
676
+ this.addClasses(t, this.classes.modalDialog), t.setAttribute("role", "dialog"), t.setAttribute("aria-modal", "true");
677
+ let n = null;
678
+ this.settings.modalTitle ? (n = document.createElement("div"), this.addClasses(n, this.classes.modalTitle), n.id = `${this.settings.id}-modal-title`, n.textContent = this.settings.modalTitle, t.setAttribute("aria-labelledby", n.id)) : t.setAttribute("aria-label", this.settings.ariaLabel);
679
+ let r = document.createElement("button");
680
+ r.type = "button", this.addClasses(r, this.classes.modalClose), r.setAttribute("aria-label", "Close"), r.onclick = (e) => {
681
+ e.stopPropagation(), this.requestClose("modal");
682
+ };
683
+ let i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
684
+ i.setAttribute("viewBox", "0 0 100 100");
685
+ let a = document.createElementNS("http://www.w3.org/2000/svg", "path");
686
+ return a.setAttribute("d", this.classes.deselectPath), i.appendChild(a), r.appendChild(i), e.onclick = (t) => {
687
+ t.target === e && this.requestClose("modal");
688
+ }, n && t.appendChild(n), e.appendChild(t), {
689
+ overlay: e,
690
+ dialog: t,
691
+ closeButton: r,
692
+ title: n
693
+ };
694
+ }
695
+ showModal() {
696
+ this.modalElements && (this.modalElements.dialog.appendChild(this.content.main), this.addClasses(this.content.main, this.classes.modalContent), this.content.main.appendChild(this.modalElements.closeButton), this.content.main.style.top = "", this.content.main.style.left = "", this.content.main.style.margin = "", this.content.main.style.width = "", this.removeClasses(this.modalElements.overlay, this.classes.hide), requestAnimationFrame(() => {
697
+ this.modalElements && this.addClasses(this.modalElements.overlay, this.classes.contentOpen);
698
+ }), this.lockBodyScroll());
699
+ }
700
+ lockBodyScroll() {
701
+ this.bodyScrollLocked ||= (this.savedBodyOverflow = document.body.style.overflow, document.body.style.overflow = "hidden", true);
702
+ }
703
+ unlockBodyScroll() {
704
+ this.bodyScrollLocked && (document.body.style.overflow = this.savedBodyOverflow, this.bodyScrollLocked = false, this.savedBodyOverflow = "");
705
+ }
706
+ restoreContentOffscreen() {
707
+ this.settings.contentLocation && this.settings.contentLocation.appendChild(this.content.main), this.settings.contentPosition !== "relative" && (this.content.main.style.top = "-9999px", this.content.main.style.left = "-9999px", this.content.main.style.margin = "0", this.content.main.style.width = "auto");
708
+ }
709
+ finalizeModalClose() {
710
+ this.modalElements && this.content.main.parentElement === this.modalElements.dialog && (this.addClasses(this.modalElements.overlay, this.classes.hide), this.removeClasses(this.modalElements.overlay, this.classes.contentOpen), this.removeClasses(this.content.main, this.classes.modalContent), this.modalElements.closeButton.remove(), this.restoreContentOffscreen(), this.unlockBodyScroll());
711
+ }
712
+ waitForAnimation(e, t) {
713
+ let r = a(this.content.main, this.settings.timeoutDelay);
714
+ return c(this.content.main, n, r, t);
715
+ }
716
+ close() {
717
+ this.main.main.setAttribute("aria-expanded", "false"), this.main.arrow.path.setAttribute("d", this.classes.arrowClose);
718
+ let e = this.modalSessionActive === true;
719
+ this.removeClasses(this.content.main, this.classes.contentOpen), e || (this.removeClasses(this.main.main, this.classes.dirAbove), this.removeClasses(this.main.main, this.classes.dirBelow)), e && this.modalElements && this.removeClasses(this.modalElements.overlay, this.classes.contentOpen), this.modalSessionActive = null, this.content.search.input.setAttribute("aria-hidden", "true"), this.main.main.removeAttribute("aria-activedescendant");
720
+ }
721
+ clearDirectionClasses() {
722
+ this.removeClasses(this.main.main, this.classes.dirAbove), this.removeClasses(this.main.main, this.classes.dirBelow), this.removeClasses(this.content.main, this.classes.dirAbove), this.removeClasses(this.content.main, this.classes.dirBelow);
723
+ }
724
+ updateClassStyles() {
725
+ if (this.main.main.className = "", this.main.main.removeAttribute("style"), this.content.main.className = "", this.content.main.removeAttribute("style"), this.addClasses(this.main.main, this.classes.main), this.addClasses(this.content.main, this.classes.content), this.settings.style !== "" && (this.main.main.style.cssText = this.settings.style, this.content.main.style.cssText = this.settings.style), this.settings.class.length) for (let e of this.settings.class) e.trim() !== "" && (this.main.main.classList.add(e.trim()), this.content.main.classList.add(e.trim()));
726
+ (this.settings.contentPosition === "relative" || this.settings.contentPosition === "fixed") && this.content.main.classList.add("ss-" + this.settings.contentPosition);
727
+ }
728
+ updateAriaAttributes() {
729
+ let e = this.content.list.id;
730
+ this.main.main.role = "combobox", this.main.main.setAttribute("aria-haspopup", "listbox"), this.main.main.setAttribute("aria-controls", e), this.main.main.setAttribute("aria-expanded", "false"), this.content.list.setAttribute("role", "listbox"), this.content.list.setAttribute("aria-label", this.settings.ariaLabel + " listbox"), this.settings.isMultiple && this.content.list.setAttribute("aria-multiselectable", "true"), this.content.search.input.setAttribute("aria-controls", e);
731
+ }
732
+ mainDiv() {
733
+ let e = document.createElement("div");
734
+ e.dataset.id = this.settings.id, e.setAttribute("aria-label", this.settings.ariaLabel), e.tabIndex = 0, e.onkeydown = (e) => {
735
+ switch (e.key) {
736
+ case "ArrowUp":
737
+ case "ArrowDown": return this.callbacks.open(), e.key === "ArrowDown" ? this.highlight("down") : this.highlight("up"), false;
738
+ case "Tab": return this.requestClose("tab"), true;
739
+ case "Enter":
740
+ case " ":
741
+ this.callbacks.open();
742
+ let t = this.content.list.querySelector("." + this.classes.getFirst("highlighted"));
743
+ return t && t.click(), false;
744
+ case "Escape": return this.requestClose("escape"), false;
745
+ }
746
+ return e.key.length === 1 && this.callbacks.open(), true;
747
+ }, e.onclick = (e) => {
748
+ this.settings.disabled || (this.settings.isOpen ? this.requestClose("toggle") : this.callbacks.open());
749
+ };
750
+ let t = document.createElement("div");
751
+ this.addClasses(t, this.classes.values), e.appendChild(t);
752
+ let n = document.createElement("div");
753
+ this.addClasses(n, this.classes.deselect), n.setAttribute("role", "button"), n.setAttribute("aria-label", this.settings.deselectText), n.setAttribute("tabindex", "0");
754
+ let r = this.store?.getSelectedOptions();
755
+ !this.settings.allowDeselect || this.settings.isMultiple && r && r.length <= 0 || this.isAtMinSelected() ? this.addClasses(n, this.classes.hide) : this.removeClasses(n, this.classes.hide), n.onclick = (e) => {
756
+ if (e.stopPropagation(), this.settings.disabled || this.settings.isMultiple && this.isAtMinSelected()) return;
757
+ let t = true, n = this.store.getSelectedOptions(), r = [], i = "";
758
+ if (this.settings.isMultiple) {
759
+ let e = this.settings.minSelected, t = this.store.getSelected();
760
+ if (e > 0 && t.length > e) i = this.getMinimumSelectionIds(), r = n.filter((e) => i.includes(e.id));
761
+ else if (e <= 0) i = [];
762
+ else return;
763
+ }
764
+ if (this.callbacks.beforeChange && (t = this.callbacks.beforeChange(r, n) === true), t) {
765
+ if (this.settings.isMultiple) this.callbacks.setSelected(i, false), this.updateDeselectAll();
766
+ else {
767
+ let e = this.store.getFirstOption(), t = e ? e.id : "";
768
+ this.callbacks.setSelected(t, false);
769
+ }
770
+ this.settings.closeOnSelect && this.requestClose("deselect", { selectionChanged: true }), this.callbacks.afterChange && this.callbacks.afterChange(this.store.getSelectedOptions());
771
+ }
772
+ }, n.onkeydown = (e) => {
773
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), n.click());
774
+ };
775
+ let i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
776
+ i.setAttribute("viewBox", "0 0 100 100");
777
+ let a = document.createElementNS("http://www.w3.org/2000/svg", "path");
778
+ a.setAttribute("d", this.classes.deselectPath), i.appendChild(a), n.appendChild(i), e.appendChild(n);
779
+ let o = document.createElementNS("http://www.w3.org/2000/svg", "svg");
780
+ this.addClasses(o, this.classes.arrow), o.setAttribute("viewBox", "0 0 100 100");
781
+ let s = document.createElementNS("http://www.w3.org/2000/svg", "path");
782
+ return s.setAttribute("d", this.classes.arrowClose), this.settings.alwaysOpen && this.addClasses(o, this.classes.hide), o.appendChild(s), e.appendChild(o), {
783
+ main: e,
784
+ values: t,
785
+ deselect: {
786
+ main: n,
787
+ svg: i,
788
+ path: a
789
+ },
790
+ arrow: {
791
+ main: o,
792
+ path: s
793
+ }
794
+ };
795
+ }
796
+ mainFocus(e) {
797
+ e !== "click" && this.main.main.focus({ preventScroll: true });
798
+ }
799
+ placeholder() {
800
+ let e = this.store.filter((e) => e.placeholder, false, false), t = this.settings.placeholderText;
801
+ e.length && (e[0].html === "" ? e[0].text !== "" && (t = e[0].text) : t = e[0].html);
802
+ let n = document.createElement("div");
803
+ return this.addClasses(n, this.classes.placeholder), n.innerHTML = t, n;
804
+ }
805
+ renderValues() {
806
+ if (!this.settings.isMultiple) {
807
+ this.renderSingleValue();
808
+ return;
809
+ }
810
+ this.renderMultipleValues(), this.updateDeselectAll();
811
+ }
812
+ renderSingleValue() {
813
+ let e = this.store.filter((e) => e.selected && !e.placeholder, false, false), t = e.length > 0 ? e[0] : null;
814
+ if (!t) this.main.values.innerHTML = this.placeholder().outerHTML;
815
+ else {
816
+ let e = document.createElement("div");
817
+ this.addClasses(e, this.classes.single), t.html ? e.innerHTML = t.html : e.innerText = t.text, this.main.values.innerHTML = e.outerHTML;
818
+ }
819
+ !this.settings.allowDeselect || !e.length ? this.addClasses(this.main.deselect.main, this.classes.hide) : this.removeClasses(this.main.deselect.main, this.classes.hide);
820
+ }
821
+ renderMultipleValues() {
822
+ let e = this.main.values.childNodes, t = this.store.filter((e) => e.selected && e.display, false, false);
823
+ if (t.length === 0) {
824
+ this.main.values.innerHTML = this.placeholder().outerHTML;
825
+ return;
826
+ } else {
827
+ let e = this.main.values.querySelector("." + this.classes.getFirst("placeholder"));
828
+ e && e.remove();
829
+ }
830
+ if (this.settings.multiString) {
831
+ let e = t;
832
+ this.settings.keepOrder && (e = this.store.selectedOrderOptions(e));
833
+ let n = document.createElement("div");
834
+ this.addClasses(n, this.classes.multiString), n.textContent = e.map((e) => e.text).join(", "), this.settings.showOptionTooltips && n.setAttribute("title", n.textContent), this.main.values.innerHTML = n.outerHTML;
835
+ return;
836
+ }
837
+ if (t.length > this.settings.maxValuesShown) {
838
+ let e = document.createElement("div");
839
+ this.addClasses(e, this.classes.max), e.textContent = this.settings.maxValuesMessage.replace("{number}", t.length.toString()), this.main.values.innerHTML = e.outerHTML;
840
+ return;
841
+ } else {
842
+ let e = this.main.values.querySelector("." + this.classes.getFirst("max"));
843
+ e && e.remove();
844
+ }
845
+ this.settings.keepOrder && (t = this.store.selectedOrderOptions(t));
846
+ let n = [];
847
+ for (let r = 0; r < e.length; r++) {
848
+ let i = e[r], a = i.getAttribute("data-id");
849
+ a && (t.filter((e) => e.id === a, false).length || n.push(i));
850
+ }
851
+ let r = a(this.content.main, this.settings.timeoutDelay);
852
+ for (let e of n) this.addClasses(e, this.classes.valueOut), l(e, "ss-valueOut", r).then(() => {
853
+ this.main.values.hasChildNodes() && this.main.values.contains(e) && this.main.values.removeChild(e);
854
+ });
855
+ e = this.main.values.childNodes;
856
+ for (let n = 0; n < t.length; n++) {
857
+ let r = true;
858
+ for (let i = 0; i < e.length; i++) t[n].id === String(e[i].dataset.id) && (r = false);
859
+ r && (this.settings.keepOrder || e.length === 0 ? this.main.values.appendChild(this.multipleValue(t[n])) : n === 0 ? this.main.values.insertBefore(this.multipleValue(t[n]), e[n]) : e[n - 1].insertAdjacentElement("afterend", this.multipleValue(t[n])));
860
+ }
861
+ this.updateMultipleValueDeleteVisibility();
862
+ }
863
+ isAtMinSelected() {
864
+ return this.settings.isMultiple && this.settings.minSelected > 0 && this.store.getSelectedOptions().length <= this.settings.minSelected;
865
+ }
866
+ getMinimumSelectionIds() {
867
+ let e = this.store.getSelectedOptions();
868
+ return this.settings.keepOrder && (e = this.store.selectedOrderOptions(e)), e.slice(0, this.settings.minSelected).map((e) => e.id);
869
+ }
870
+ updateMultipleValueDeleteVisibility() {
871
+ if (!this.settings.isMultiple || this.settings.multiString) return;
872
+ let e = !this.isAtMinSelected(), t = this.main.values.querySelectorAll("." + this.classes.getFirst("valueDelete"));
873
+ for (let n of t) e ? this.removeClasses(n, this.classes.hide) : this.addClasses(n, this.classes.hide);
874
+ }
875
+ multipleValue(e) {
876
+ let t = document.createElement("div");
877
+ this.addClasses(t, this.classes.value), t.dataset.id = e.id;
878
+ let n = document.createElement("div");
879
+ if (this.addClasses(n, this.classes.valueText), n.textContent = e.text, t.appendChild(n), !e.mandatory) {
880
+ let n = document.createElement("div");
881
+ this.addClasses(n, this.classes.valueDelete), n.setAttribute("tabindex", "0"), n.setAttribute("role", "button"), n.setAttribute("aria-label", `${this.settings.removeText} ${e.text}`), this.isAtMinSelected() && this.addClasses(n, this.classes.hide), n.onclick = (t) => {
882
+ if (t.preventDefault(), t.stopPropagation(), this.settings.disabled) return;
883
+ let n = true, r = this.store.getSelectedOptions(), i = r.filter((t) => t.selected && t.id !== e.id, true);
884
+ if (!(this.settings.minSelected && i.length < this.settings.minSelected) && (this.callbacks.beforeChange && (n = this.callbacks.beforeChange(i, r) === true), n)) {
885
+ let e = [];
886
+ for (let t of i) {
887
+ if (t instanceof j) for (let n of t.options) n.id && e.push(n.id);
888
+ t instanceof A && e.push(t.id);
889
+ }
890
+ this.callbacks.setSelected(e, false), this.settings.closeOnSelect && this.requestClose("deselect", { selectionChanged: true }), this.callbacks.afterChange && this.callbacks.afterChange(i), this.updateDeselectAll(), this.updateMultipleValueDeleteVisibility();
891
+ }
892
+ };
893
+ let r = document.createElementNS("http://www.w3.org/2000/svg", "svg");
894
+ r.setAttribute("viewBox", "0 0 100 100");
895
+ let i = document.createElementNS("http://www.w3.org/2000/svg", "path");
896
+ i.setAttribute("d", this.classes.optionDelete), r.appendChild(i), n.appendChild(r), t.appendChild(n), n.onkeydown = (e) => {
897
+ e.key === "Enter" && n.click();
898
+ };
899
+ }
900
+ return t;
901
+ }
902
+ contentDiv() {
903
+ let e = document.createElement("div");
904
+ e.dataset.id = this.settings.id;
905
+ let t = this.searchDiv();
906
+ e.appendChild(t.main);
907
+ let n = document.createElement("div");
908
+ this.addClasses(n, this.classes.status), n.setAttribute("aria-live", "polite"), n.setAttribute("aria-atomic", "true"), n.setAttribute("role", "status"), e.appendChild(n);
909
+ let r = this.listDiv();
910
+ return e.appendChild(r), {
911
+ main: e,
912
+ search: t,
913
+ status: n,
914
+ list: r
915
+ };
916
+ }
917
+ announce(e) {
918
+ this.settings.showSearch && (this.content.status.textContent = e);
919
+ }
920
+ moveContent() {
921
+ if (!this.isModalViewActive()) {
922
+ if (this.settings.contentPosition === "relative") {
923
+ this.moveContentBelow();
924
+ return;
925
+ }
926
+ if (this.settings.openPosition === "down") {
927
+ this.moveContentBelow();
928
+ return;
929
+ } else if (this.settings.openPosition === "up") {
930
+ this.moveContentAbove();
931
+ return;
932
+ }
933
+ this.putContent() === "up" ? this.moveContentAbove() : this.moveContentBelow();
934
+ }
935
+ }
936
+ startPositionTracking() {
937
+ this.settings.contentPosition !== "absolute" || this.isModalViewActive() || (this.stopPositionTracking(), !(typeof ResizeObserver > "u") && (this.positionObserver = new ResizeObserver(() => {
938
+ this.settings.isOpen && (cancelAnimationFrame(this.positionObserverRaf), this.positionObserverRaf = requestAnimationFrame(() => {
939
+ this.moveContent();
940
+ }));
941
+ }), this.observePositionTargets()));
942
+ }
943
+ stopPositionTracking() {
944
+ cancelAnimationFrame(this.positionObserverRaf), this.positionObserver?.disconnect(), this.positionObserver = null, this.cancelOverflowShift();
945
+ }
946
+ observePositionTargets() {
947
+ if (!this.positionObserver) return;
948
+ let e = /* @__PURE__ */ new Set(), t = (t) => {
949
+ !t || e.has(t) || (e.add(t), this.positionObserver.observe(t));
950
+ };
951
+ t(this.main.main);
952
+ let n = this.main.main.parentElement, r = this.settings.contentLocation;
953
+ for (let e = 0; n && e < 8 && (t(n), n !== r); e++) n = n.parentElement;
954
+ }
955
+ searchDiv() {
956
+ let e = document.createElement("div"), t = document.createElement("input"), n = document.createElement("div");
957
+ this.addClasses(e, this.classes.search);
958
+ let r = {
959
+ main: e,
960
+ input: t
961
+ };
962
+ if (this.settings.showSearch || (this.addClasses(e, this.classes.hide), t.readOnly = true), t.type = "search", t.placeholder = this.settings.searchPlaceholder, t.tabIndex = -1, t.setAttribute("aria-label", this.settings.searchPlaceholder), t.setAttribute("aria-autocomplete", "list"), t.setAttribute("autocapitalize", "off"), t.setAttribute("autocomplete", "off"), t.setAttribute("autocorrect", "off"), t.setAttribute("aria-hidden", "true"), t.oninput = _((e) => {
963
+ this.callbacks.search(e.target.value);
964
+ }, 100), t.onkeydown = (e) => {
965
+ switch (e.key) {
966
+ case "ArrowUp":
967
+ case "ArrowDown": return e.key === "ArrowDown" ? this.highlight("down") : this.highlight("up"), false;
968
+ case "Tab": return this.requestClose("tab"), true;
969
+ case "Escape": return this.requestClose("escape"), false;
970
+ case "Enter":
971
+ let t = this.content.list.querySelector("." + this.classes.getFirst("highlighted"));
972
+ return t ? (t.click(), false) : this.callbacks.addable ? (n.click(), false) : true;
973
+ }
974
+ return true;
975
+ }, e.appendChild(t), this.callbacks.addable) {
976
+ this.addClasses(n, this.classes.addable);
977
+ let t = document.createElementNS("http://www.w3.org/2000/svg", "svg");
978
+ t.setAttribute("viewBox", "0 0 100 100");
979
+ let a = document.createElementNS("http://www.w3.org/2000/svg", "path");
980
+ a.setAttribute("d", this.classes.addablePath), t.appendChild(a), n.appendChild(t), n.onclick = (e) => {
981
+ if (e.preventDefault(), e.stopPropagation(), !this.callbacks.addable) return;
982
+ let t = this.content.search.input.value.trim();
983
+ if (t === "") {
984
+ this.content.search.input.focus();
985
+ return;
986
+ }
987
+ let n = (e) => {
988
+ let t = new A(e);
989
+ if (this.callbacks.addOption(t), this.settings.isMultiple) {
990
+ let e = this.store.getSelected();
991
+ e.push(t.id), this.callbacks.setSelected(e, true);
992
+ } else this.callbacks.setSelected([t.id], true);
993
+ if (this.callbacks.search(""), this.settings.closeOnSelect) {
994
+ let e = i(this.content.main);
995
+ setTimeout(() => {
996
+ this.requestClose("select", { selectionChanged: true });
997
+ }, e);
998
+ }
999
+ }, r = this.callbacks.addable(t);
1000
+ r === false || r == null || (r instanceof Promise ? r.then((e) => {
1001
+ typeof e == "string" ? n({
1002
+ text: e,
1003
+ value: e
1004
+ }) : r instanceof Error ? this.renderError(r.message) : n(e);
1005
+ }) : typeof r == "string" ? n({
1006
+ text: r,
1007
+ value: r
1008
+ }) : r instanceof Error ? this.renderError(r.message) : n(r));
1009
+ }, e.appendChild(n), r.addable = {
1010
+ main: n,
1011
+ svg: t,
1012
+ path: a
1013
+ };
1014
+ }
1015
+ return r;
1016
+ }
1017
+ searchFocus() {
1018
+ this.content.search.input.focus({ preventScroll: true });
1019
+ }
1020
+ getOptions(e = false, t = false, n = false) {
1021
+ let r = "." + this.classes.getFirst("option");
1022
+ return e && (r += ":not(." + this.classes.getFirst("placeholder") + ")"), t && (r += ":not(." + this.classes.getFirst("disabled") + ")"), n && (r += ":not(." + this.classes.getFirst("hide") + ")"), Array.from(this.content.list.querySelectorAll(r));
1023
+ }
1024
+ highlight(e) {
1025
+ let t = this.getOptions(true, true, true);
1026
+ if (t.length === 0) return;
1027
+ if (t.length === 1 && !t[0].classList.contains(this.classes.getFirst("highlighted"))) {
1028
+ this.addClasses(t[0], this.classes.highlighted);
1029
+ return;
1030
+ }
1031
+ let n = false;
1032
+ for (let e of t) e.classList.contains(this.classes.getFirst("highlighted")) && (n = true);
1033
+ if (!n) {
1034
+ for (let e of t) if (e.classList.contains(this.classes.getFirst("selected"))) {
1035
+ this.addClasses(e, this.classes.highlighted);
1036
+ break;
1037
+ }
1038
+ }
1039
+ for (let n = 0; n < t.length; n++) if (t[n].classList.contains(this.classes.getFirst("highlighted"))) {
1040
+ let r = t[n];
1041
+ this.removeClasses(r, this.classes.highlighted);
1042
+ let i = r.parentElement;
1043
+ if (i && i.classList.contains(this.classes.getFirst("mainOpen"))) {
1044
+ let e = i.querySelector("." + this.classes.getFirst("optgroupLabel"));
1045
+ e && e.click();
1046
+ }
1047
+ let a = t[e === "down" ? n + 1 < t.length ? n + 1 : 0 : n - 1 >= 0 ? n - 1 : t.length - 1];
1048
+ this.addClasses(a, this.classes.highlighted), this.ensureElementInView(this.content.list, a), a.id && this.main.main.setAttribute("aria-activedescendant", a.id);
1049
+ let o = a.parentElement;
1050
+ if (o && o.classList.contains(this.classes.getFirst("close"))) {
1051
+ let e = o.querySelector("." + this.classes.getFirst("optgroupLabel"));
1052
+ e && e.click();
1053
+ }
1054
+ return;
1055
+ }
1056
+ let r = t[e === "down" ? 0 : t.length - 1];
1057
+ this.addClasses(r, this.classes.highlighted), r.id && this.main.main.setAttribute("aria-activedescendant", r.id), this.ensureElementInView(this.content.list, r);
1058
+ }
1059
+ listDiv() {
1060
+ let e = document.createElement("div");
1061
+ this.addClasses(e, this.classes.list);
1062
+ let t = this.settings.id + "-list";
1063
+ return e.id = t, e.dataset.id = t, e;
1064
+ }
1065
+ renderError(e) {
1066
+ this.optionsListIsFullData = false, this.content.list.innerHTML = "";
1067
+ let t = document.createElement("div");
1068
+ this.addClasses(t, this.classes.error), t.textContent = e, this.content.list.appendChild(t);
1069
+ }
1070
+ renderSearching() {
1071
+ this.optionsListIsFullData = false, this.content.list.innerHTML = "";
1072
+ let e = document.createElement("div");
1073
+ this.addClasses(e, this.classes.searching), e.textContent = this.settings.searchingText, this.content.list.appendChild(e), this.announce(this.settings.searchingText);
1074
+ }
1075
+ renderOptions(e) {
1076
+ if (this.lastSearchFilterTerm = "", this.lastRenderedOptions = e.map((e) => e instanceof A ? [e] : e.options.map((e) => new A(e))).flat(), this.content.list.innerHTML = "", e.length === 0) {
1077
+ this.optionsListIsFullData = false;
1078
+ let e = document.createElement("div");
1079
+ if (this.addClasses(e, this.classes.search), this.callbacks.addable) {
1080
+ let t = this.settings.addableText.replace("{value}", this.content.search.input.value);
1081
+ e.innerHTML = t, this.announce(t);
1082
+ } else e.innerHTML = this.settings.searchText, this.announce(this.settings.searchText);
1083
+ this.content.list.appendChild(e);
1084
+ return;
1085
+ }
1086
+ this.settings.allowDeselect && !this.settings.isMultiple && (this.store.filter((e) => e.placeholder, false, false).length || this.store.addOption(new A({
1087
+ text: "",
1088
+ value: "",
1089
+ selected: false,
1090
+ placeholder: true
1091
+ }), true));
1092
+ let t = document.createDocumentFragment();
1093
+ for (let n of e) {
1094
+ if (n instanceof j) {
1095
+ let e = document.createElement("div");
1096
+ this.addClasses(e, this.classes.optgroup);
1097
+ let r = document.createElement("div");
1098
+ this.addClasses(r, this.classes.optgroupLabel), e.appendChild(r);
1099
+ let i = document.createElement("div");
1100
+ this.addClasses(i, this.classes.optgroupLabelText), i.textContent = n.label, r.appendChild(i);
1101
+ let a = document.createElement("div");
1102
+ if (this.addClasses(a, this.classes.optgroupActions), r.appendChild(a), this.settings.isMultiple && n.selectAll) {
1103
+ let e = document.createElement("div");
1104
+ this.addClasses(e, this.classes.optgroupSelectAll);
1105
+ let t = this.isOptgroupAllSelected(n.options);
1106
+ t && this.addClasses(e, this.classes.selected);
1107
+ let r = document.createElement("span");
1108
+ r.textContent = this.optgroupSelectAllLabel(t), e.appendChild(r);
1109
+ let i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
1110
+ i.setAttribute("viewBox", "0 0 100 100"), e.appendChild(i);
1111
+ let o = document.createElementNS("http://www.w3.org/2000/svg", "path");
1112
+ o.setAttribute("d", this.classes.optgroupSelectAllBox), i.appendChild(o);
1113
+ let s = document.createElementNS("http://www.w3.org/2000/svg", "path");
1114
+ s.setAttribute("d", this.classes.optgroupSelectAllCheck), i.appendChild(s), e.addEventListener("click", (e) => {
1115
+ e.preventDefault(), e.stopPropagation();
1116
+ let t = this.store.getSelected();
1117
+ if (this.isOptgroupAllSelected(n.options, new Set(t))) {
1118
+ let e = t.filter((e) => {
1119
+ for (let t of n.options) if (e === t.id) return false;
1120
+ return true;
1121
+ });
1122
+ this.callbacks.setSelected(e, true);
1123
+ return;
1124
+ } else {
1125
+ let e = n.options.map((e) => e.id).filter((e) => e !== void 0), r = t.concat(e);
1126
+ for (let e of n.options) e.id && !this.store.getOptionByID(e.id) && this.callbacks.addOption(new A(e));
1127
+ this.callbacks.setSelected(r, true);
1128
+ return;
1129
+ }
1130
+ }), a.appendChild(e);
1131
+ }
1132
+ if (n.closable !== "off") {
1133
+ let t = document.createElement("div");
1134
+ this.addClasses(t, this.classes.optgroupClosable);
1135
+ let i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
1136
+ i.setAttribute("viewBox", "0 0 100 100"), this.addClasses(i, this.classes.arrow), t.appendChild(i);
1137
+ let o = document.createElementNS("http://www.w3.org/2000/svg", "path");
1138
+ i.appendChild(o), n.options.some((e) => e.selected) || this.content.search.input.value.trim() !== "" ? (this.addClasses(t, this.classes.mainOpen), o.setAttribute("d", this.classes.arrowOpen)) : n.closable === "open" ? (this.addClasses(e, this.classes.mainOpen), o.setAttribute("d", this.classes.arrowOpen)) : n.closable === "close" && (this.addClasses(e, this.classes.close), o.setAttribute("d", this.classes.arrowClose)), r.addEventListener("click", (n) => {
1139
+ n.preventDefault(), n.stopPropagation(), this.isClosableOptgroupOpen(e, t) ? (this.removeClasses(e, this.classes.mainOpen), this.removeClasses(t, this.classes.mainOpen), this.addClasses(e, this.classes.close), o.setAttribute("d", this.classes.arrowClose)) : (this.closeOtherClosableOptgroups(e), this.removeClasses(e, this.classes.close), this.removeClasses(t, this.classes.mainOpen), this.addClasses(e, this.classes.mainOpen), o.setAttribute("d", this.classes.arrowOpen));
1140
+ }), a.appendChild(t);
1141
+ }
1142
+ e.appendChild(r);
1143
+ for (let r of n.options) e.appendChild(this.option(new A(r))), t.appendChild(e);
1144
+ }
1145
+ n instanceof A && t.appendChild(this.option(n));
1146
+ }
1147
+ this.content.list.appendChild(t), this.setOptionsListFullData(e), this.announce(this.settings.resultsText.replace("{count}", String(this.lastRenderedOptions.length)));
1148
+ }
1149
+ canFilterOptionsInPlace() {
1150
+ return this.optionsListIsFullData ? this.content.list.querySelector("." + this.classes.getFirst("option")) !== null : false;
1151
+ }
1152
+ resetSearchFilterState() {
1153
+ this.lastSearchFilterTerm = "";
1154
+ }
1155
+ filterOptionsInPlace(e, t) {
1156
+ let n = e.trim();
1157
+ if (n === this.lastSearchFilterTerm) return;
1158
+ this.lastSearchFilterTerm = n;
1159
+ let r = [], i = this.content.list.querySelectorAll("." + this.classes.getFirst("option"));
1160
+ for (let e of i) {
1161
+ let i = e.dataset.id;
1162
+ if (!i) continue;
1163
+ let a = this.store.getOptionByID(i);
1164
+ if (!a) continue;
1165
+ let o = a.placeholder || !a.display || a.selected && this.settings.hideSelected, s = t(a, n);
1166
+ o || !s ? (this.addClasses(e, this.classes.hide), this.removeClasses(e, this.classes.highlighted)) : (this.removeClasses(e, this.classes.hide), this.setOptionElementContent(e, a, n), r.push(a)), a.selected ? (this.addClasses(e, this.classes.selected), e.setAttribute("aria-selected", "true")) : (this.removeClasses(e, this.classes.selected), e.setAttribute("aria-selected", "false"));
1167
+ }
1168
+ this.lastRenderedOptions = r, this.updateOptgroupVisibilityAfterSearch(n), r.length === 0 ? this.updateSearchResultsMessage(0, n) : (this.removeListSearchMessage(), this.announce(this.settings.resultsText.replace("{count}", String(r.length)))), this.updateOptgroupSelectAllStates();
1169
+ }
1170
+ setOptionsListFullData(e) {
1171
+ let t = this.store.getDataOptions(false), n = e.map((e) => e instanceof A ? [e] : e.options.map((e) => new A(e))).flat();
1172
+ if (n.length !== t.length) {
1173
+ this.optionsListIsFullData = false;
1174
+ return;
1175
+ }
1176
+ let r = new Set(t.map((e) => e.id));
1177
+ this.optionsListIsFullData = n.every((e) => r.has(e.id));
1178
+ }
1179
+ isClosableOptgroupOpen(e, t) {
1180
+ return e.classList.contains(this.classes.getFirst("close")) ? false : e.classList.contains(this.classes.getFirst("mainOpen")) || t.classList.contains(this.classes.getFirst("mainOpen"));
1181
+ }
1182
+ closeClosableOptgroup(e) {
1183
+ let t = e.querySelector("." + this.classes.getFirst("optgroupClosable"));
1184
+ if (!t || e.classList.contains(this.classes.getFirst("close"))) return;
1185
+ this.removeClasses(e, this.classes.mainOpen), this.removeClasses(t, this.classes.mainOpen), this.addClasses(e, this.classes.close);
1186
+ let n = t.querySelector("path");
1187
+ n && n.setAttribute("d", this.classes.arrowClose);
1188
+ }
1189
+ closeOtherClosableOptgroups(e) {
1190
+ let t = this.content.list.querySelectorAll("." + this.classes.getFirst("optgroup"));
1191
+ for (let n of t) n !== e && this.closeClosableOptgroup(n);
1192
+ }
1193
+ updateOptgroupVisibilityAfterSearch(e) {
1194
+ let t = this.content.list.querySelectorAll("." + this.classes.getFirst("optgroup"));
1195
+ for (let n of t) {
1196
+ let t = n.querySelectorAll("." + this.classes.getFirst("option")), r = false;
1197
+ for (let e of t) if (!e.classList.contains(this.classes.getFirst("hide"))) {
1198
+ r = true;
1199
+ break;
1200
+ }
1201
+ if (!r) {
1202
+ this.addClasses(n, this.classes.hide);
1203
+ continue;
1204
+ }
1205
+ this.removeClasses(n, this.classes.hide), e !== "" && (this.removeClasses(n, this.classes.close), this.addClasses(n, this.classes.mainOpen));
1206
+ }
1207
+ }
1208
+ updateSearchResultsMessage(e, t) {
1209
+ if (this.removeListSearchMessage(), e > 0) return;
1210
+ let n = document.createElement("div");
1211
+ if (this.addClasses(n, this.classes.search), this.callbacks.addable) {
1212
+ let e = this.settings.addableText.replace("{value}", t);
1213
+ n.innerHTML = e, this.announce(e);
1214
+ } else n.innerHTML = this.settings.searchText, this.announce(this.settings.searchText);
1215
+ this.content.list.appendChild(n);
1216
+ }
1217
+ removeListSearchMessage() {
1218
+ this.content.list.querySelectorAll("." + this.classes.getFirst("search")).forEach((e) => e.remove());
1219
+ }
1220
+ setOptionElementContent(e, t, n) {
1221
+ let r = n.trim();
1222
+ this.settings.searchHighlight && r !== "" ? e.innerHTML = this.highlightText(t.html === "" ? t.text : t.html, r, this.classes.searchHighlighter) : t.html === "" ? e.textContent = t.text : e.innerHTML = t.html, this.settings.showOptionTooltips && e.textContent ? e.setAttribute("title", e.textContent) : e.removeAttribute("title");
1223
+ }
1224
+ hasRenderedOptions() {
1225
+ return this.content.list.querySelector("." + this.classes.getFirst("option")) !== null;
1226
+ }
1227
+ canUpdateOptionSelectionInPlace() {
1228
+ return this.content.search.input.value.trim() === "" && this.hasRenderedOptions();
1229
+ }
1230
+ updateOptionSelection() {
1231
+ let e = new Set(this.store.getSelected()), t = this.content.list.querySelectorAll("." + this.classes.getFirst("option")), n = null;
1232
+ for (let r of t) {
1233
+ let t = r.dataset.id;
1234
+ if (!t) continue;
1235
+ let i = this.store.getOptionByID(t);
1236
+ if (!i) continue;
1237
+ let a = e.has(t);
1238
+ a ? (this.addClasses(r, this.classes.selected), r.setAttribute("aria-selected", "true"), n = r) : (this.removeClasses(r, this.classes.selected), r.setAttribute("aria-selected", "false")), this.settings.hideSelected && (a ? this.addClasses(r, this.classes.hide) : (this.removeClasses(r, this.classes.hide), i.display || this.addClasses(r, this.classes.hide)));
1239
+ }
1240
+ !this.settings.isMultiple && n ? this.main.main.setAttribute("aria-activedescendant", n.id) : !this.settings.isMultiple && e.size === 0 && this.main.main.removeAttribute("aria-activedescendant"), this.updateOptgroupSelectAllStates();
1241
+ }
1242
+ updateOptgroupSelectAllStates() {
1243
+ if (!this.settings.isMultiple) return;
1244
+ let e = new Set(this.store.getSelected()), t = this.content.list.querySelectorAll("." + this.classes.getFirst("optgroup"));
1245
+ for (let n of t) {
1246
+ let t = n.querySelector("." + this.classes.getFirst("optgroupSelectAll"));
1247
+ if (!t) continue;
1248
+ let r = n.querySelectorAll("." + this.classes.getFirst("option")), i = r.length > 0;
1249
+ for (let t of r) {
1250
+ let n = t.dataset.id;
1251
+ if (!n || !e.has(n)) {
1252
+ i = false;
1253
+ break;
1254
+ }
1255
+ }
1256
+ i ? this.addClasses(t, this.classes.selected) : this.removeClasses(t, this.classes.selected);
1257
+ let a = t.querySelector("span");
1258
+ a && (a.textContent = this.optgroupSelectAllLabel(i));
1259
+ }
1260
+ }
1261
+ optgroupSelectAllLabel(e) {
1262
+ return e ? "Unselect All" : "Select All";
1263
+ }
1264
+ isOptgroupAllSelected(e, t) {
1265
+ if (e.length === 0) return false;
1266
+ for (let n of e) if (!(t ? n.id && t.has(n.id) : n.selected)) return false;
1267
+ return true;
1268
+ }
1269
+ option(e) {
1270
+ if (e.placeholder) {
1271
+ let e = document.createElement("div");
1272
+ return this.addClasses(e, this.classes.option), this.addClasses(e, this.classes.hide), e;
1273
+ }
1274
+ let t = document.createElement("div");
1275
+ return t.dataset.id = e.id, t.id = this.settings.id + "-" + e.id, this.addClasses(t, this.classes.option), t.setAttribute("role", "option"), e.class && e.class.split(" ").forEach((e) => {
1276
+ t.classList.add(e);
1277
+ }), e.style && (t.style.cssText = e.style), this.setOptionElementContent(t, e, this.content.search.input.value), e.display || this.addClasses(t, this.classes.hide), e.disabled && this.addClasses(t, this.classes.disabled), e.selected && this.settings.hideSelected && this.addClasses(t, this.classes.hide), e.selected ? (this.addClasses(t, this.classes.selected), t.setAttribute("aria-selected", "true"), this.main.main.setAttribute("aria-activedescendant", t.id)) : (this.removeClasses(t, this.classes.selected), t.setAttribute("aria-selected", "false")), t.addEventListener("click", (t) => {
1278
+ t.preventDefault(), t.stopPropagation();
1279
+ let n = this.store.getSelected(), r = t.currentTarget, i = String(r.dataset.id), a = this.store.getOptionByID(i) ?? e, o = n.includes(i), s = t.ctrlKey || t.metaKey;
1280
+ if (e.disabled) return;
1281
+ if (!this.settings.isMultiple && o && !this.settings.allowDeselect) {
1282
+ this.closeOnSingleSelectReclick(a);
1283
+ return;
1284
+ }
1285
+ if (o && a.mandatory) {
1286
+ this.closeOnSingleSelectReclick(a);
1287
+ return;
1288
+ }
1289
+ if (this.settings.isMultiple && this.settings.maxSelected <= n.length && !o || this.settings.isMultiple && this.settings.minSelected >= n.length && o && !s) return;
1290
+ let c = false, l = this.store.getSelectedOptions(), u = [];
1291
+ if (this.settings.isMultiple) {
1292
+ let n = l.some((e) => e.id === i);
1293
+ if (t.shiftKey && this.lastSelectedOption) {
1294
+ let t = this.lastRenderedOptions, n = t.findIndex((e) => e.id === this.lastSelectedOption.id), r = t.findIndex((t) => t.id === e.id);
1295
+ if (n >= 0 && r >= 0) {
1296
+ let e = Math.min(n, r), i = Math.max(n, r), a = t.slice(e, i + 1).filter((e) => !l.find((t) => t.id === e.id));
1297
+ u = l.length + a.length <= this.settings.maxSelected ? l.concat(a) : l;
1298
+ } else u = l;
1299
+ } else u = n ? l.filter((e) => e.id !== i) : l.concat(a), this.lastSelectedOption = a;
1300
+ }
1301
+ if (this.settings.isMultiple || (u = o ? [] : [a]), this.callbacks.beforeChange || (c = true), this.callbacks.beforeChange && (c = this.callbacks.beforeChange(u, l) !== false), c) {
1302
+ this.store.getOptionByID(i) || this.callbacks.addOption(e), this.callbacks.setSelected(u.map((e) => e.id), false);
1303
+ let n = t.ctrlKey || t.metaKey || t.shiftKey;
1304
+ this.settings.closeOnSelect && !(this.settings.isMultiple && n) && this.requestClose("select", {
1305
+ option: a,
1306
+ selectionChanged: this.selectionChanged(l, u)
1307
+ }), this.callbacks.afterChange && this.callbacks.afterChange(u);
1308
+ }
1309
+ }), t;
1310
+ }
1311
+ destroy() {
1312
+ this.stopPositionTracking(), this.modalElements ? (this.unlockBodyScroll(), this.content.main.parentElement === this.modalElements.dialog && this.restoreContentOffscreen(), this.modalElements.overlay.remove(), this.modalElements = null) : this.bodyScrollLocked && this.unlockBodyScroll(), this.main.main.remove(), this.content.main.remove(), this.removeDetachedInstanceDom();
1313
+ }
1314
+ removeDetachedInstanceDom() {
1315
+ let e = this.settings.id, t = this.classes.getFirst("main"), n = this.classes.getFirst("content"), r = this.classes.getFirst("modalOverlay");
1316
+ document.querySelectorAll(`[data-id="${e}"]`).forEach((e) => {
1317
+ (e.classList.contains(t) || e.classList.contains(n) || e.classList.contains(r)) && e.remove();
1318
+ });
1319
+ }
1320
+ highlightText(e, t, n) {
1321
+ let r = t.trim();
1322
+ if (r === "") return e;
1323
+ let i = r.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), a = document.createElement("div");
1324
+ a.innerHTML = e;
1325
+ let o = (e) => {
1326
+ if (e.nodeType === Node.TEXT_NODE) {
1327
+ let t = e.textContent || "", r = RegExp("(" + i + ")", "i");
1328
+ if (r.test(t)) {
1329
+ let i = document.createElement("span");
1330
+ t.split(r).forEach((e, t) => {
1331
+ if (e && r.test(e)) {
1332
+ let t = document.createElement("mark");
1333
+ t.className = n, t.textContent = e, i.appendChild(t);
1334
+ } else e && i.appendChild(document.createTextNode(e));
1335
+ }), e.parentNode?.replaceChild(i, e);
1336
+ }
1337
+ } else e.nodeType === Node.ELEMENT_NODE && Array.from(e.childNodes).forEach((e) => o(e));
1338
+ };
1339
+ return Array.from(a.childNodes).forEach((e) => o(e)), a.innerHTML;
1340
+ }
1341
+ setContentDirection(e) {
1342
+ let t = e === "above", n = t ? this.classes.dirAbove : this.classes.dirBelow, r = t ? this.classes.dirBelow : this.classes.dirAbove;
1343
+ if (this.removeClasses(this.main.main, r), this.addClasses(this.main.main, n), this.removeClasses(this.content.main, r), this.addClasses(this.content.main, n), t) {
1344
+ let e = this.main.main.offsetHeight, t = this.content.main.offsetHeight;
1345
+ this.content.main.style.margin = "-" + (e + t - 1) + "px 0px 0px 0px";
1346
+ } else this.content.main.style.margin = "-1px 0px 0px 0px";
1347
+ }
1348
+ setContentPosition() {
1349
+ let e = this.main.main.getBoundingClientRect();
1350
+ if (this.settings.contentPosition === "relative") {
1351
+ this.applyContentWidth(e);
1352
+ return;
1353
+ }
1354
+ this.cancelOverflowShift();
1355
+ let t, n;
1356
+ this.settings.contentPosition === "fixed" ? (t = e.top + e.height, n = e.left) : (t = e.top + window.scrollY + e.height, n = e.left + window.scrollX), this.content.main.style.top = t + "px", this.content.main.style.left = n + "px", this.applyContentWidth(e);
1357
+ let r = this.getKnownContentWidth(e);
1358
+ if (r !== null) {
1359
+ this.content.main.style.left = this.adjustLeftForOverflow(n, e.left, r) + "px";
1360
+ return;
1361
+ }
1362
+ this.overflowShiftRaf = requestAnimationFrame(() => {
1363
+ this.overflowShiftRaf = 0, this.applyOverflowShiftFromMeasure();
1364
+ });
1365
+ }
1366
+ applyContentWidth(e) {
1367
+ let t = this.settings.contentWidth;
1368
+ if (this.content.main.style.width = "", this.content.main.style.minWidth = "", this.content.main.style.maxWidth = "", !t) {
1369
+ this.settings.contentPosition !== "relative" && (this.content.main.style.width = e.width + "px");
1370
+ return;
1371
+ }
1372
+ t.startsWith(">") ? this.content.main.style.minWidth = t.slice(1) : t.startsWith("<") ? this.content.main.style.maxWidth = t.slice(1) : this.content.main.style.width = t;
1373
+ }
1374
+ cancelOverflowShift() {
1375
+ this.overflowShiftRaf &&= (cancelAnimationFrame(this.overflowShiftRaf), 0);
1376
+ }
1377
+ getKnownContentWidth(e) {
1378
+ let t = this.settings.contentWidth;
1379
+ if (!t) return e.width;
1380
+ if (t.startsWith(">") || t.startsWith("<") || t.includes("%")) return null;
1381
+ let n = parseFloat(t);
1382
+ return Number.isNaN(n) ? null : n;
1383
+ }
1384
+ adjustLeftForOverflow(e, t, n) {
1385
+ let r = t + n;
1386
+ if (r <= window.innerWidth) return e;
1387
+ let i = e - (r - (window.innerWidth - 20));
1388
+ return this.settings.contentPosition === "fixed" ? Math.max(0, i) : Math.max(window.scrollX, i);
1389
+ }
1390
+ applyOverflowShiftFromMeasure() {
1391
+ let e = this.content.main.getBoundingClientRect().right;
1392
+ if (e <= window.innerWidth) return;
1393
+ let t = e - (window.innerWidth - 20), n = (parseFloat(this.content.main.style.left) || 0) - t;
1394
+ this.settings.contentPosition === "fixed" ? this.content.main.style.left = Math.max(0, n) + "px" : this.content.main.style.left = Math.max(window.scrollX, n) + "px";
1395
+ }
1396
+ moveContentAbove() {
1397
+ this.setContentDirection("above"), this.setContentPosition();
1398
+ }
1399
+ moveContentBelow() {
1400
+ this.setContentDirection("below"), this.setContentPosition();
1401
+ }
1402
+ ensureElementInView(e, t) {
1403
+ let n = e.scrollTop + e.offsetTop, r = n + e.clientHeight, i = t.offsetTop, a = i + t.clientHeight;
1404
+ i < n ? e.scrollTop -= n - i : a > r && (e.scrollTop += a - r);
1405
+ }
1406
+ putContent() {
1407
+ let e = this.main.main.offsetHeight, t = this.main.main.getBoundingClientRect(), n = this.content.main.offsetHeight;
1408
+ return window.innerHeight - (t.top + e) <= n && t.top > n ? "up" : "down";
1409
+ }
1410
+ updateDeselectAll() {
1411
+ if (!this.store || !this.settings) return;
1412
+ let e = this.store.getSelectedOptions(), t = e && e.length > 0, n = this.settings.isMultiple, r = this.settings.allowDeselect, i = this.isAtMinSelected(), a = this.main.deselect.main, o = this.classes.hide;
1413
+ r && !(n && !t) && !i ? this.removeClasses(a, o) : this.addClasses(a, o);
1414
+ }
1415
+ };
1416
+ //#endregion
1417
+ //#region src/slim-select/mutations.ts
1418
+ function P(e, t) {
1419
+ let n = {
1420
+ classChanged: false,
1421
+ disabledChanged: false,
1422
+ optgroupOptionChanged: false,
1423
+ selectionChanged: false
1424
+ };
1425
+ for (let r of e) {
1426
+ if (r.target === t && (r.attributeName === "disabled" && (n.disabledChanged = true), r.attributeName === "class" && (n.classChanged = true), r.type === "childList")) {
1427
+ for (let e of Array.from(r.addedNodes)) if (e.nodeName === "OPTION" && e.value === t.value) {
1428
+ n.selectionChanged = true;
1429
+ break;
1430
+ }
1431
+ n.optgroupOptionChanged = true;
1432
+ }
1433
+ (r.target.nodeName === "OPTGROUP" || r.target.nodeName === "OPTION") && (n.optgroupOptionChanged = true);
1434
+ }
1435
+ return n;
1436
+ }
1437
+ //#endregion
1438
+ //#region src/slim-select/select.ts
1439
+ var F = class {
1440
+ select;
1441
+ onValueChange;
1442
+ onClassChange;
1443
+ onDisabledChange;
1444
+ onOptionsChange;
1445
+ onLabelClick;
1446
+ listen = false;
1447
+ observer = null;
1448
+ isUpdating = false;
1449
+ pendingOptionsChange = null;
1450
+ preventNativeSelect = null;
1451
+ preventNativeSelectMousedown = null;
1452
+ preventNativeSelectFocus = null;
1453
+ restoreAriaHiddenOnBlur = null;
1454
+ constructor(e) {
1455
+ this.select = e, this.valueChange = this.valueChange.bind(this), this.select.addEventListener("change", this.valueChange, { passive: true }), this.observer = new MutationObserver(this.observeCall.bind(this)), this.changeListen(true);
1456
+ }
1457
+ enable() {
1458
+ this.select.disabled = false;
1459
+ }
1460
+ disable() {
1461
+ this.select.disabled = true;
1462
+ }
1463
+ hideUI() {
1464
+ this.select.tabIndex = -1, this.select.style.position = "absolute", this.select.style.width = "1px", this.select.style.height = "1px", this.select.style.opacity = "0", this.select.style.overflow = "hidden", this.select.style.pointerEvents = "none", this.select.style.margin = "0", this.select.style.padding = "0", this.select.style.borderWidth = "0", this.select.style.clipPath = "inset(50%)", document.activeElement !== this.select && this.select.setAttribute("aria-hidden", "true"), this.preventNativeSelect || (this.preventNativeSelect = (e) => {
1465
+ e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation();
1466
+ }, this.preventNativeSelectMousedown = (e) => {
1467
+ e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation();
1468
+ }, this.preventNativeSelectFocus = (e) => {
1469
+ this.select.removeAttribute("aria-hidden"), e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation();
1470
+ }, this.restoreAriaHiddenOnBlur = () => {
1471
+ this.select.setAttribute("aria-hidden", "true");
1472
+ }, this.select.addEventListener("click", this.preventNativeSelect, {
1473
+ capture: true,
1474
+ passive: false
1475
+ }), this.select.addEventListener("mousedown", this.preventNativeSelectMousedown, {
1476
+ capture: true,
1477
+ passive: false
1478
+ }), this.select.addEventListener("focus", this.preventNativeSelectFocus, {
1479
+ capture: true,
1480
+ passive: false
1481
+ }), this.select.addEventListener("blur", this.restoreAriaHiddenOnBlur, {
1482
+ capture: true,
1483
+ passive: true
1484
+ }));
1485
+ }
1486
+ showUI() {
1487
+ this.select.removeAttribute("tabindex"), this.select.style.position = "", this.select.style.width = "", this.select.style.height = "", this.select.style.opacity = "", this.select.style.overflow = "", this.select.style.pointerEvents = "", this.select.style.margin = "", this.select.style.padding = "", this.select.style.borderWidth = "", this.select.style.clipPath = "", this.select.removeAttribute("aria-hidden"), this.preventNativeSelect &&= (this.select.removeEventListener("click", this.preventNativeSelect, { capture: true }), null), this.preventNativeSelectMousedown &&= (this.select.removeEventListener("mousedown", this.preventNativeSelectMousedown, { capture: true }), null), this.preventNativeSelectFocus &&= (this.select.removeEventListener("focus", this.preventNativeSelectFocus, { capture: true }), null), this.restoreAriaHiddenOnBlur &&= (this.select.removeEventListener("blur", this.restoreAriaHiddenOnBlur, { capture: true }), null);
1488
+ }
1489
+ changeListen(e) {
1490
+ this.listen = e, e && this.observer && this.observer.observe(this.select, {
1491
+ subtree: true,
1492
+ childList: true,
1493
+ attributes: true
1494
+ }), e || this.observer && this.observer.disconnect();
1495
+ }
1496
+ valueChange(e) {
1497
+ return this.listen && this.onValueChange && this.onValueChange(this.getSelectedOptions()), true;
1498
+ }
1499
+ observeCall(e) {
1500
+ if (!this.listen) return;
1501
+ let { classChanged: t, disabledChanged: n, optgroupOptionChanged: r, selectionChanged: i } = P(e, this.select), a = i;
1502
+ if (t && this.onClassChange && this.onClassChange(this.select.className.split(" ")), n && this.onDisabledChange && (this.changeListen(false), this.onDisabledChange(this.select.disabled), this.changeListen(true)), r && this.onOptionsChange) {
1503
+ if (this.isUpdating) {
1504
+ if (this.select.options.length > 0) {
1505
+ let e = this.getData();
1506
+ e.length > 0 && (this.pendingOptionsChange = e);
1507
+ }
1508
+ a && this.select.dispatchEvent(new Event("change"));
1509
+ return;
1510
+ }
1511
+ this.changeListen(false), this.onOptionsChange(this.getData()), this.changeListen(true), a = false;
1512
+ }
1513
+ a && this.select.dispatchEvent(new Event("change"));
1514
+ }
1515
+ getData() {
1516
+ let e = [], t = this.select.childNodes;
1517
+ for (let n of t) n.nodeName === "OPTGROUP" && e.push(this.getDataFromOptgroup(n)), n.nodeName === "OPTION" && e.push(this.getDataFromOption(n));
1518
+ return e;
1519
+ }
1520
+ getDataFromOptgroup(e) {
1521
+ let t = {
1522
+ id: e.id,
1523
+ label: e.label,
1524
+ selectAll: e.dataset ? e.dataset.selectall === "true" : false,
1525
+ closable: e.dataset ? e.dataset.closable : "off",
1526
+ options: []
1527
+ }, n = e.childNodes;
1528
+ for (let e of n) e.nodeName === "OPTION" && t.options.push(this.getDataFromOption(e));
1529
+ return t;
1530
+ }
1531
+ getDataFromOption(e) {
1532
+ return {
1533
+ id: e.id,
1534
+ value: e.value,
1535
+ text: e.text,
1536
+ html: e.dataset && e.dataset.html ? e.dataset.html : "",
1537
+ defaultSelected: e.defaultSelected,
1538
+ selected: e.selected,
1539
+ display: e.style.display !== "none",
1540
+ disabled: e.disabled,
1541
+ mandatory: e.dataset ? e.dataset.mandatory === "true" : false,
1542
+ placeholder: e.dataset.placeholder === "true",
1543
+ class: e.className,
1544
+ style: e.style.cssText,
1545
+ data: f(e.dataset)
1546
+ };
1547
+ }
1548
+ getSelectedOptions() {
1549
+ let e = [], t = this.select.childNodes;
1550
+ for (let n of t) {
1551
+ if (n.nodeName === "OPTGROUP") {
1552
+ let t = n.childNodes;
1553
+ for (let n of t) if (n.nodeName === "OPTION") {
1554
+ let t = n;
1555
+ t.selected && e.push(this.getDataFromOption(t));
1556
+ }
1557
+ }
1558
+ if (n.nodeName === "OPTION") {
1559
+ let t = n;
1560
+ t.selected && e.push(this.getDataFromOption(t));
1561
+ }
1562
+ }
1563
+ return e;
1564
+ }
1565
+ getSelectedValues() {
1566
+ return this.getSelectedOptions().map((e) => e.value);
1567
+ }
1568
+ setSelected(e) {
1569
+ this.changeListen(false);
1570
+ let t = this.select.childNodes;
1571
+ for (let n of t) {
1572
+ if (n.nodeName === "OPTGROUP") {
1573
+ let t = n.childNodes;
1574
+ for (let n of t) if (n.nodeName === "OPTION") {
1575
+ let t = n;
1576
+ t.selected = e.includes(t.id);
1577
+ }
1578
+ }
1579
+ if (n.nodeName === "OPTION") {
1580
+ let t = n;
1581
+ t.selected = e.includes(t.id);
1582
+ }
1583
+ }
1584
+ let n = this.getSelectedOptions();
1585
+ this.select.multiple || (this.select.value = n.length === 1 ? n[0].value : ""), this.select.dispatchEvent(new Event("change", { bubbles: true })), this.changeListen(true);
1586
+ }
1587
+ setSelectedByValue(e) {
1588
+ this.changeListen(false);
1589
+ let t = this.select.childNodes;
1590
+ for (let n of t) {
1591
+ if (n.nodeName === "OPTGROUP") {
1592
+ let t = n.childNodes;
1593
+ for (let n of t) if (n.nodeName === "OPTION") {
1594
+ let t = n;
1595
+ t.selected = e.includes(t.value);
1596
+ }
1597
+ }
1598
+ if (n.nodeName === "OPTION") {
1599
+ let t = n;
1600
+ t.selected = e.includes(t.value);
1601
+ }
1602
+ }
1603
+ let n = this.getSelectedOptions();
1604
+ this.select.multiple || (this.select.value = n.length === 1 ? n[0].value : ""), this.select.dispatchEvent(new Event("change", { bubbles: true })), this.changeListen(true);
1605
+ }
1606
+ updateSelect(e, t, n) {
1607
+ this.changeListen(false), e && (this.select.dataset.id = e), t && (this.select.style.cssText = t), n && (this.select.className = "", n.forEach((e) => {
1608
+ e.trim() !== "" && this.select.classList.add(e.trim());
1609
+ })), this.changeListen(true);
1610
+ }
1611
+ updateOptions(e) {
1612
+ if (!(!e || e.length === 0)) {
1613
+ this.isUpdating = true, this.pendingOptionsChange = null, this.changeListen(false), this.select.innerHTML = "";
1614
+ for (let t of e) t instanceof j && this.select.appendChild(this.createOptgroup(t)), t instanceof A && this.select.appendChild(this.createOption(t));
1615
+ if (this.select.dispatchEvent(new Event("change", { bubbles: true })), this.changeListen(true), this.isUpdating = false, this.pendingOptionsChange !== null) {
1616
+ let e = this.pendingOptionsChange;
1617
+ e.length > 0 && this.onOptionsChange ? (this.pendingOptionsChange = null, this.changeListen(false), this.onOptionsChange(e), this.changeListen(true)) : this.pendingOptionsChange = null;
1618
+ }
1619
+ }
1620
+ }
1621
+ createOptgroup(e) {
1622
+ let t = document.createElement("optgroup");
1623
+ if (t.id = e.id, t.label = e.label, e.selectAll && (t.dataset.selectAll = "true"), e.closable !== "off" && (t.dataset.closable = e.closable), e.options) for (let n of e.options) t.appendChild(this.createOption(n));
1624
+ return t;
1625
+ }
1626
+ createOption(e) {
1627
+ let t = document.createElement("option");
1628
+ return t.id = e.id, t.value = e.value, t.textContent = e.text, e.html !== "" && t.setAttribute("data-html", e.html), t.defaultSelected = e.defaultSelected, t.selected = e.selected, e.disabled && (t.disabled = true), e.display || (t.style.display = "none"), e.placeholder && t.setAttribute("data-placeholder", "true"), e.mandatory && t.setAttribute("data-mandatory", "true"), e.class && e.class.split(" ").forEach((e) => {
1629
+ t.classList.add(e);
1630
+ }), e.data && typeof e.data == "object" && Object.keys(e.data).forEach((n) => {
1631
+ t.setAttribute("data-" + E(n), e.data[n]);
1632
+ }), t;
1633
+ }
1634
+ setupLabelHandlers() {
1635
+ let e = [], t = this.select.id;
1636
+ t && document.querySelectorAll(`label[for="${t}"]`).forEach((t) => e.push(t));
1637
+ let n = this.select.parentElement;
1638
+ for (; n && n !== document.body;) {
1639
+ if (n.tagName === "LABEL") {
1640
+ e.push(n);
1641
+ break;
1642
+ }
1643
+ n = n.parentElement;
1644
+ }
1645
+ Array.from(new Set(e)).forEach((e) => {
1646
+ if (e.__slimSelectLabelHandler) return;
1647
+ let t = (e) => {
1648
+ let t = e.target, n = g(t, this.select.dataset.id);
1649
+ e.preventDefault(), !n && this.onLabelClick && this.onLabelClick();
1650
+ };
1651
+ e.__slimSelectLabelHandler = t, e.addEventListener("click", t, {
1652
+ capture: true,
1653
+ passive: false
1654
+ });
1655
+ });
1656
+ }
1657
+ removeLabelHandlers() {
1658
+ let e = [], t = this.select.id;
1659
+ t && document.querySelectorAll(`label[for="${t}"]`).forEach((t) => e.push(t));
1660
+ let n = this.select.parentElement;
1661
+ for (; n && n !== document.body;) {
1662
+ if (n.tagName === "LABEL") {
1663
+ e.push(n);
1664
+ break;
1665
+ }
1666
+ n = n.parentElement;
1667
+ }
1668
+ Array.from(new Set(e)).forEach((e) => {
1669
+ let t = e.__slimSelectLabelHandler;
1670
+ t && (e.removeEventListener("click", t, { capture: true }), delete e.__slimSelectLabelHandler);
1671
+ });
1672
+ }
1673
+ destroy() {
1674
+ this.changeListen(false), this.select.removeEventListener("change", this.valueChange), this.preventNativeSelect &&= (this.select.removeEventListener("click", this.preventNativeSelect, { capture: true }), null), this.preventNativeSelectMousedown &&= (this.select.removeEventListener("mousedown", this.preventNativeSelectMousedown, { capture: true }), null), this.preventNativeSelectFocus &&= (this.select.removeEventListener("focus", this.preventNativeSelectFocus, { capture: true }), null), this.restoreAriaHiddenOnBlur &&= (this.select.removeEventListener("blur", this.restoreAriaHiddenOnBlur, { capture: true }), null), this.observer &&= (this.observer.disconnect(), null), this.removeLabelHandlers(), delete this.select.dataset.id, this.showUI();
1675
+ }
1676
+ };
1677
+ //#endregion
1678
+ //#region src/slim-select/sync.ts
1679
+ function I(e, t) {
1680
+ return T(e.getData(false), t);
1681
+ }
1682
+ function L(e, t) {
1683
+ let n = Array.isArray(t) ? t : [t], r = e.getDataOptions(false), i = [];
1684
+ for (let e of n) {
1685
+ if (r.find((t) => t.id == e)) {
1686
+ i.push(e);
1687
+ continue;
1688
+ }
1689
+ for (let t of r.filter((t) => t.value == e)) i.push(t.id);
1690
+ }
1691
+ return i;
1692
+ }
1693
+ var R = class {
1694
+ deps;
1695
+ queue = [];
1696
+ flushScheduled = false;
1697
+ isSyncing = false;
1698
+ constructor(e) {
1699
+ this.deps = e;
1700
+ }
1701
+ enqueue(e) {
1702
+ if (this.queue.push(e), e.source === "native") {
1703
+ this.flushScheduled || (this.flushScheduled = true, queueMicrotask(() => this.flush()));
1704
+ return;
1705
+ }
1706
+ this.isSyncing || this.flush();
1707
+ }
1708
+ flush() {
1709
+ if (this.flushScheduled = false, this.queue.length === 0) return;
1710
+ let e = this.coalesceBatch(this.queue);
1711
+ this.queue = [], this.isSyncing = true;
1712
+ try {
1713
+ for (let t of e) this.applyChange(t);
1714
+ } finally {
1715
+ this.isSyncing = false, this.queue.length > 0 && this.flush();
1716
+ }
1717
+ }
1718
+ coalesceBatch(e) {
1719
+ let t = e.some((e) => e.type === "structure"), n = e.some((e) => e.type === "addOption");
1720
+ if (t || n) {
1721
+ let t = e.filter((e) => e.type === "structure" || e.type === "addOption"), n = t[t.length - 1];
1722
+ return n?.type === "structure" ? [n] : t;
1723
+ }
1724
+ let r = e.filter((e) => e.type === "selection");
1725
+ return r.length > 0 ? [r[r.length - 1]] : e;
1726
+ }
1727
+ applyChange(e) {
1728
+ switch (e.type) {
1729
+ case "structure":
1730
+ this.applyStructure(e.data, e.source, e.preserveSelection, e.isSearchResult);
1731
+ break;
1732
+ case "selection":
1733
+ this.applySelection(e.values, e.source, e.runAfterChange !== false);
1734
+ break;
1735
+ case "addOption":
1736
+ this.applyAddOption(e.option);
1737
+ break;
1738
+ }
1739
+ }
1740
+ applyStructure(e, t, n = false, r = false) {
1741
+ let { store: i, select: a, render: o, events: s } = this.deps;
1742
+ if (!r && I(i, e)) return;
1743
+ let c = i.getSelected(), l = i.validateDataArray(e);
1744
+ if (l) {
1745
+ s.error ? s.error(l) : this.deps.onError && this.deps.onError(l);
1746
+ return;
1747
+ }
1748
+ i.setData(e, n);
1749
+ let u = i.getData(false);
1750
+ r || i.snapshotCatalog(), a.updateOptions(u), o.renderValues(), o.renderOptions(u), s.afterChange && !v(c, i.getSelected()) && s.afterChange(i.getSelectedOptions());
1751
+ }
1752
+ applySelection(e, t, n) {
1753
+ let { store: r, select: i, render: a, events: o } = this.deps, s = r.getSelected(), c = L(r, e);
1754
+ if (v(s, c)) return;
1755
+ r.setSelectedBy("id", c), i.setSelectedByValue(r.getSelectedValues()), a.renderValues();
1756
+ let l = a.content.search.input.value.trim();
1757
+ l === "" ? a.canUpdateOptionSelectionInPlace() ? a.updateOptionSelection() : a.renderOptions(r.getData(false)) : a.hasRenderedOptions() ? a.updateOptionSelection() : this.deps.search && this.deps.search(l), n && o.afterChange && !v(s, r.getSelected()) && o.afterChange(r.getSelectedOptions());
1758
+ }
1759
+ applyAddOption(e) {
1760
+ let { store: t, select: n, render: r, events: i } = this.deps, a = t.getSelected(), o = r.content.search.input.value.trim() !== "" && !!this.deps.search, s = e.value ?? e.text ?? "", c = (e) => {
1761
+ for (let t of e) {
1762
+ if (t instanceof j) {
1763
+ if (t.options.some((e) => (e.value ?? e.text) === s)) return true;
1764
+ continue;
1765
+ }
1766
+ if ((t.value ?? t.text) === s) return true;
1767
+ }
1768
+ return false;
1769
+ };
1770
+ if (!c(t.getData(false))) if (o) {
1771
+ let n = t.getCatalogData();
1772
+ c(n) || t.setData([...n, new A(e)], true), t.snapshotCatalog();
1773
+ } else t.addOption(e), t.snapshotCatalog();
1774
+ let l = t.getData(false);
1775
+ n.updateOptions(l), r.renderValues(), r.renderOptions(l), i.afterChange && !v(a, t.getSelected()) && i.afterChange(t.getSelectedOptions());
1776
+ }
1777
+ }, z = class {
1778
+ selectEl;
1779
+ settings;
1780
+ cssClasses;
1781
+ select;
1782
+ store;
1783
+ render;
1784
+ sync;
1785
+ lifecycle;
1786
+ globalEvents;
1787
+ searchGeneration = 0;
1788
+ events = {
1789
+ search: void 0,
1790
+ searchFilter: (e, t) => e.text.toLowerCase().indexOf(t.toLowerCase()) !== -1,
1791
+ addable: void 0,
1792
+ beforeChange: void 0,
1793
+ afterChange: void 0,
1794
+ beforeOpen: void 0,
1795
+ afterOpen: void 0,
1796
+ beforeClose: void 0,
1797
+ afterClose: void 0
1798
+ };
1799
+ constructor(t) {
1800
+ if (this.selectEl = typeof t.select == "string" ? document.querySelector(t.select) : t.select, !this.selectEl) {
1801
+ t.events && t.events.error && t.events.error(/* @__PURE__ */ Error("Could not find select element"));
1802
+ return;
1803
+ }
1804
+ if (this.selectEl.tagName !== "SELECT") {
1805
+ t.events && t.events.error && t.events.error(/* @__PURE__ */ Error("Element isnt of type select"));
1806
+ return;
1807
+ }
1808
+ this.selectEl.dataset.ssid && this.destroy(), this.settings = new d(t.settings), this.cssClasses = new e(t.cssClasses);
1809
+ let n = [
1810
+ "beforeOpen",
1811
+ "afterOpen",
1812
+ "afterClose"
1813
+ ];
1814
+ for (let e in t.events) t.events.hasOwnProperty(e) && (n.indexOf(e) === -1 ? this.events[e] = t.events[e] : this.events[e] = _(t.events[e], 100));
1815
+ this.settings.disabled = t.settings?.disabled ? t.settings.disabled : this.selectEl.disabled, this.settings.isMultiple = this.selectEl.multiple, this.settings.style = this.selectEl.style.cssText, this.settings.class = this.selectEl.className.split(" "), this.select = new F(this.selectEl), this.selectEl.id || (this.selectEl.id = this.settings.id), this.select.updateSelect(this.settings.id, this.settings.style, this.settings.class), this.select.hideUI(), this.select.onClassChange = (e) => {
1816
+ this.settings.class = e, this.render.updateClassStyles();
1817
+ }, this.select.onDisabledChange = (e) => {
1818
+ e ? this.disable() : this.enable();
1819
+ }, this.select.onLabelClick = () => {
1820
+ this.settings.disabled || (this.settings.isOpen ? this.close({
1821
+ source: "toggle",
1822
+ selectionChanged: false
1823
+ }) : this.open());
1824
+ };
1825
+ let r = t.data ? t.data : this.select.getData();
1826
+ this.store = new M(this.settings.isMultiple ? "multiple" : "single", r), t.data && this.select.updateOptions(this.store.getData());
1827
+ let i = {
1828
+ open: this.open.bind(this),
1829
+ close: this.close.bind(this),
1830
+ addable: this.events.addable ? this.events.addable : void 0,
1831
+ setSelected: (e, t) => {
1832
+ this.sync.enqueue({
1833
+ type: "selection",
1834
+ values: e,
1835
+ source: "ui",
1836
+ runAfterChange: t
1837
+ });
1838
+ },
1839
+ addOption: (e) => {
1840
+ this.sync.enqueue({
1841
+ type: "addOption",
1842
+ option: e,
1843
+ source: "ui"
1844
+ });
1845
+ },
1846
+ search: this.search.bind(this),
1847
+ beforeChange: this.events.beforeChange,
1848
+ afterChange: this.events.afterChange
1849
+ };
1850
+ this.settings.modalTitle = t.settings?.modalTitle ?? m(this.selectEl), this.render = new N(this.settings, this.cssClasses, this.store, i), this.settings.timeoutDelay = a(this.render.content.main, t.settings?.timeoutDelay), this.sync = new R({
1851
+ select: this.select,
1852
+ store: this.store,
1853
+ render: this.render,
1854
+ events: this.events,
1855
+ search: this.search.bind(this)
1856
+ }), this.select.onValueChange = (e) => {
1857
+ this.sync.enqueue({
1858
+ type: "selection",
1859
+ values: e.map((e) => e.id),
1860
+ source: "native"
1861
+ });
1862
+ }, this.select.onOptionsChange = (e) => {
1863
+ this.sync.enqueue({
1864
+ type: "structure",
1865
+ data: e || [],
1866
+ source: "native"
1867
+ });
1868
+ }, this.lifecycle = new k({
1869
+ beforeOpen: this.events.beforeOpen,
1870
+ afterOpen: this.events.afterOpen,
1871
+ beforeClose: (e) => this.events.beforeClose?.(e),
1872
+ onClose: (e) => this.applyClose(e),
1873
+ afterClose: () => {
1874
+ this.render.clearDirectionClasses(), this.render.finalizeModalClose(), this.events.afterClose && this.events.afterClose();
1875
+ },
1876
+ onOpenReady: () => this.globalEvents.attachDocumentClick(),
1877
+ onCloseReady: () => this.globalEvents.detachDocumentClick()
1878
+ }, {
1879
+ timeoutDelay: this.settings.timeoutDelay,
1880
+ waitForAnimation: (e, t) => this.render.waitForAnimation(e, t)
1881
+ }), this.globalEvents = new O({
1882
+ onDocumentClick: this.documentClick.bind(this),
1883
+ onWindowResize: () => {
1884
+ !this.settings.isOpen && !this.settings.isFullOpen || this.render.moveContent();
1885
+ },
1886
+ onWindowScroll: () => {
1887
+ !this.settings.isOpen && !this.settings.isFullOpen || this.render.moveContent();
1888
+ },
1889
+ onVisibilityChange: () => {
1890
+ document.hidden && this.close({
1891
+ source: "api",
1892
+ selectionChanged: false
1893
+ });
1894
+ }
1895
+ }), this.render.renderValues(), this.render.renderOptions(this.store.getData(false));
1896
+ let o = this.selectEl.getAttribute("aria-label"), s = this.selectEl.getAttribute("aria-labelledby");
1897
+ if (o) this.render.main.main.setAttribute("aria-label", o);
1898
+ else if (s) this.render.main.main.removeAttribute("aria-label"), this.render.main.main.setAttribute("aria-labelledby", s);
1899
+ else if (this.selectEl.labels && this.selectEl.labels.length > 0) {
1900
+ let e = Array.from(this.selectEl.labels).map((e, t) => (e.id ||= `${this.settings.id}-label-${t}`, e.id));
1901
+ this.render.main.main.removeAttribute("aria-label"), this.render.main.main.setAttribute("aria-labelledby", e.join(" "));
1902
+ }
1903
+ this.selectEl.parentNode && this.selectEl.parentNode.insertBefore(this.render.main.main, this.selectEl.nextSibling), this.globalEvents.attach({ listenScroll: this.settings.openPosition === "auto" }), this.settings.disabled && this.disable(), this.settings.alwaysOpen && this.open(), this.select.setupLabelHandlers(), this.selectEl.slim = this;
1904
+ }
1905
+ enable() {
1906
+ this.settings.disabled = false, this.select.enable(), this.render.enable();
1907
+ }
1908
+ disable() {
1909
+ this.settings.disabled = true, this.select.disable(), this.render.disable();
1910
+ }
1911
+ getData() {
1912
+ return this.store.getData();
1913
+ }
1914
+ setData(e) {
1915
+ this.sync.enqueue({
1916
+ type: "structure",
1917
+ data: e,
1918
+ source: "api"
1919
+ });
1920
+ }
1921
+ getSelected() {
1922
+ let e = this.store.getSelectedOptions();
1923
+ return this.settings.keepOrder && (e = this.store.selectedOrderOptions(e)), e.map((e) => e.value);
1924
+ }
1925
+ setSelected(e, t = true) {
1926
+ this.sync.enqueue({
1927
+ type: "selection",
1928
+ values: e,
1929
+ source: "api",
1930
+ runAfterChange: t
1931
+ });
1932
+ }
1933
+ addOption(e) {
1934
+ this.sync.enqueue({
1935
+ type: "addOption",
1936
+ option: e,
1937
+ source: "api"
1938
+ });
1939
+ }
1940
+ open() {
1941
+ if (this.settings.disabled || this.settings.isOpen) return;
1942
+ this.lifecycle.cancelPending(), this.render.open(), this.settings.showSearch && this.settings.focusSearch && this.render.searchFocus(), this.settings.isOpen = true, this.lifecycle.requestOpen().then(() => {
1943
+ this.settings.isOpen && (this.settings.isFullOpen = this.lifecycle.isFullOpen, this.settings.isOpen = this.lifecycle.isOpen);
1944
+ }), this.settings.contentPosition === "absolute" && !this.render.isModalViewActive() && this.render.startPositionTracking();
1945
+ let e = this.render.content.search.input.value.trim();
1946
+ e !== "" && this.search(e);
1947
+ }
1948
+ close(e = {
1949
+ source: "api",
1950
+ selectionChanged: false
1951
+ }) {
1952
+ !this.settings.isOpen || this.settings.alwaysOpen || this.lifecycle.requestClose(e).then((e) => {
1953
+ e && (this.settings.isOpen || (this.settings.isOpen = this.lifecycle.isOpen, this.settings.isFullOpen = this.lifecycle.isFullOpen));
1954
+ });
1955
+ }
1956
+ applyClose(e) {
1957
+ this.render.close(), !this.settings.keepSearch && this.render.content.search.input.value !== "" && (this.sync.flush(), this.search(""));
1958
+ let t = e.source === "outside" || e.source === "toggle";
1959
+ this.render.mainFocus(t ? "click" : null), this.settings.isOpen = false, this.settings.isFullOpen = false, this.render.stopPositionTracking();
1960
+ }
1961
+ search(e) {
1962
+ let t = e.trim();
1963
+ if (t === "") {
1964
+ this.render.content.search.input.value = "", this.clearSearch();
1965
+ return;
1966
+ }
1967
+ if (this.render.content.search.input.value !== e && (this.render.content.search.input.value = e), this.events.search) {
1968
+ this.runApiSearch(t);
1969
+ return;
1970
+ }
1971
+ this.runLocalSearch(t);
1972
+ }
1973
+ clearSearch() {
1974
+ if (this.searchGeneration++, !this.events.search && this.render.canFilterOptionsInPlace()) {
1975
+ this.render.filterOptionsInPlace("", this.events.searchFilter), this.render.resetSearchFilterState();
1976
+ return;
1977
+ }
1978
+ this.render.resetSearchFilterState(), this.sync.enqueue({
1979
+ type: "structure",
1980
+ data: this.store.getCatalogData(),
1981
+ source: "api",
1982
+ preserveSelection: true
1983
+ });
1984
+ }
1985
+ runLocalSearch(e) {
1986
+ if (this.render.canFilterOptionsInPlace()) {
1987
+ this.render.filterOptionsInPlace(e, this.events.searchFilter);
1988
+ return;
1989
+ }
1990
+ let t = this.store.search(e, this.events.searchFilter);
1991
+ this.render.renderOptions(t);
1992
+ }
1993
+ runApiSearch(e) {
1994
+ let t = ++this.searchGeneration;
1995
+ this.render.renderSearching();
1996
+ let n = this.events.search(e, this.store.getSelectedOptions(), this.store.getCatalogData()), r = (n) => {
1997
+ t === this.searchGeneration && this.render.content.search.input.value.trim() === e && this.sync.enqueue({
1998
+ type: "structure",
1999
+ data: n,
2000
+ source: "api",
2001
+ preserveSelection: true,
2002
+ isSearchResult: true
2003
+ });
2004
+ };
2005
+ if (n instanceof Promise) {
2006
+ n.then(r).catch((e) => {
2007
+ t === this.searchGeneration && this.render.renderError(typeof e == "string" ? e : e.message);
2008
+ });
2009
+ return;
2010
+ }
2011
+ if (Array.isArray(n)) {
2012
+ r(n);
2013
+ return;
2014
+ }
2015
+ this.render.renderError("Search event must return a promise or an array of data");
2016
+ }
2017
+ destroy() {
2018
+ this.lifecycle.destroy(), this.render.stopPositionTracking(), this.globalEvents.detach({ listenScroll: this.settings.openPosition === "auto" }), this.store.setData([]), this.render.destroy(), this.select.destroy(), delete this.selectEl.slim;
2019
+ }
2020
+ documentClick(e) {
2021
+ this.settings.isOpen && e.target && !g(e.target, this.settings.id) && this.close({
2022
+ source: "outside",
2023
+ selectionChanged: false
2024
+ });
2025
+ }
2026
+ };
2027
+
2028
+ const i18nDsSelect = {
2029
+ de: {
2030
+ searchPlaceholder: 'Suchen…',
2031
+ noResults: 'Keine Ergebnisse',
2032
+ },
2033
+ en: {
2034
+ searchPlaceholder: 'Search…',
2035
+ noResults: 'No results',
2036
+ },
2037
+ fr: {
2038
+ searchPlaceholder: 'Rechercher…',
2039
+ noResults: 'Aucun résultat',
2040
+ },
2041
+ it: {
2042
+ searchPlaceholder: 'Cerca…',
2043
+ noResults: 'Nessun risultato',
2044
+ },
2045
+ nl: {
2046
+ searchPlaceholder: 'Zoeken…',
2047
+ noResults: 'Geen resultaten',
2048
+ },
2049
+ es: {
2050
+ searchPlaceholder: 'Buscar…',
2051
+ noResults: 'Sin resultados',
2052
+ },
2053
+ pl: {
2054
+ searchPlaceholder: 'Szukaj…',
2055
+ noResults: 'Brak wyników',
2056
+ },
2057
+ pt: {
2058
+ searchPlaceholder: 'Pesquisar…',
2059
+ noResults: 'Sem resultados',
2060
+ },
2061
+ sv: {
2062
+ searchPlaceholder: 'Sök…',
2063
+ noResults: 'Inga resultat',
2064
+ },
2065
+ fi: {
2066
+ searchPlaceholder: 'Hae…',
2067
+ noResults: 'Ei tuloksia',
2068
+ },
2069
+ };
2070
+
2071
+ function buildSlimData(options, optionGroups, placeholder, value) {
2072
+ const selected = Array.isArray(value) ? value : value ? [value] : [];
2073
+ const data = [];
2074
+ data.push({ text: placeholder || '', placeholder: true });
2075
+ if (optionGroups.length > 0) {
2076
+ data.push(...optionGroups.map(group => ({
2077
+ label: group.label,
2078
+ options: group.options.map(opt => ({
2079
+ text: opt.label,
2080
+ value: opt.value,
2081
+ disabled: !!opt.disabled,
2082
+ selected: selected.includes(opt.value),
2083
+ })),
2084
+ })));
2085
+ }
2086
+ else {
2087
+ data.push(...options.map(opt => ({
2088
+ text: opt.label,
2089
+ value: opt.value,
2090
+ disabled: !!opt.disabled,
2091
+ selected: selected.includes(opt.value),
2092
+ })));
2093
+ }
2094
+ return data;
2095
+ }
2096
+ const TYPEAHEAD_TIMEOUT_MS = 500;
2097
+ class SelectPickerController {
2098
+ constructor(config) {
2099
+ this.typeAheadBuffer = '';
2100
+ this.typeAheadLastTime = 0;
2101
+ this.config = config;
2102
+ this.init();
2103
+ }
2104
+ /**
2105
+ * PUBLIC API
2106
+ * ------------------------------------------------------
2107
+ */
2108
+ open() {
2109
+ var _a;
2110
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.open();
2111
+ }
2112
+ close() {
2113
+ var _a;
2114
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.close();
2115
+ }
2116
+ focus() {
2117
+ var _a;
2118
+ (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.focus();
2119
+ }
2120
+ blur() {
2121
+ var _a;
2122
+ (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.blur();
2123
+ }
2124
+ setData(data) {
2125
+ var _a;
2126
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.setData(data);
2127
+ }
2128
+ setSelected(value) {
2129
+ var _a;
2130
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.setSelected(value);
2131
+ }
2132
+ setDisabled(disabled) {
2133
+ var _a, _b;
2134
+ if (disabled) {
2135
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.disable();
2136
+ }
2137
+ else {
2138
+ (_b = this.slimSelect) === null || _b === void 0 ? void 0 : _b.enable();
2139
+ }
2140
+ }
2141
+ updateSearchPlaceholder(language) {
2142
+ const searchInput = this.config.shadowRoot.querySelector('.ss-search input');
2143
+ if (searchInput)
2144
+ searchInput.placeholder = i18nDsSelect[language].searchPlaceholder;
2145
+ }
2146
+ destroy() {
2147
+ var _a;
2148
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.destroy();
2149
+ this.slimSelect = undefined;
2150
+ }
2151
+ /**
2152
+ * PRIVATE
2153
+ * ------------------------------------------------------
2154
+ */
2155
+ get trigger() {
2156
+ return this.config.shadowRoot.querySelector('.ss-main');
2157
+ }
2158
+ init() {
2159
+ const { selectEl, popupEl, language, searchable, placeholder, disabled, readonly, multiple, clearable, data } = this.config;
2160
+ this.slimSelect = new z({
2161
+ select: selectEl,
2162
+ settings: {
2163
+ contentLocation: popupEl,
2164
+ contentPosition: 'relative',
2165
+ searchHighlight: true,
2166
+ showSearch: searchable,
2167
+ focusSearch: searchable,
2168
+ searchPlaceholder: i18nDsSelect[language].searchPlaceholder,
2169
+ searchText: i18nDsSelect[language].noResults,
2170
+ placeholderText: placeholder || ' ',
2171
+ disabled: disabled || readonly,
2172
+ closeOnSelect: !multiple,
2173
+ allowDeselect: clearable,
2174
+ modal: 'off',
2175
+ },
2176
+ data,
2177
+ events: {
2178
+ afterChange: (newVal) => this.config.onChange(newVal),
2179
+ afterOpen: () => {
2180
+ this.highlightFirstOption();
2181
+ this.config.onOpen();
2182
+ },
2183
+ afterClose: () => this.config.onClose(),
2184
+ },
2185
+ });
2186
+ this.connectLabelToTrigger();
2187
+ this.fixSearchListener();
2188
+ this.fixKeyboardOpen();
2189
+ this.fixOptionFocus();
2190
+ this.fixTypeAhead();
2191
+ this.highlightFirstOption();
2192
+ }
2193
+ // slim-select never auto-highlights an option: arrow keys are the only built-in trigger.
2194
+ // We want the first matching option highlighted whenever the list opens or a search
2195
+ // narrows the results, so keyboard users can immediately Enter/Space it. Skip it if
2196
+ // something is already highlighted (e.g. from a previous arrow-key navigation).
2197
+ highlightFirstOption() {
2198
+ var _a;
2199
+ if (this.config.popupEl.querySelector('.ss-highlighted'))
2200
+ return;
2201
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.render.highlight('down');
2202
+ }
2203
+ // Shadow DOM event retargeting makes e.target null inside slim-select's keyup handler.
2204
+ // Intercept during capture phase (before slim-select's bubble listener), stop propagation,
2205
+ // and drive the search programmatically from the element reference instead.
2206
+ fixSearchListener() {
2207
+ if (!this.config.searchable)
2208
+ return;
2209
+ const searchInput = this.config.shadowRoot.querySelector('.ss-search input');
2210
+ if (!searchInput)
2211
+ return;
2212
+ searchInput.addEventListener('input', ev => {
2213
+ var _a, _b;
2214
+ ev.stopImmediatePropagation();
2215
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.search((_b = searchInput.value) !== null && _b !== void 0 ? _b : '');
2216
+ this.highlightFirstOption();
2217
+ }, { capture: true });
2218
+ }
2219
+ // SlimSelect's Space/Enter listener uses document.activeElement to find its trigger,
2220
+ // but Shadow DOM retargeting returns the host element instead of .ss-main after a
2221
+ // programmatic focus() call — so Space stops working after the first selection.
2222
+ // We intercept keydown on the trigger directly to reopen the dropdown ourselves.
2223
+ fixKeyboardOpen() {
2224
+ const trigger = this.trigger;
2225
+ if (!trigger)
2226
+ return;
2227
+ trigger.addEventListener('keydown', ev => {
2228
+ var _a;
2229
+ const target = ev.target;
2230
+ if ((ev.key === ' ' || ev.key === 'Enter') &&
2231
+ target === trigger &&
2232
+ !target.classList.contains('ss-value-delete') &&
2233
+ !trigger.classList.contains('ss-open')) {
2234
+ ev.preventDefault();
2235
+ (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.open();
2236
+ }
2237
+ });
2238
+ }
2239
+ // Options are plain non-focusable divs, so a mouse click's mousedown phase makes the
2240
+ // browser blur .ss-main by default (before slim-select's own click handler ever runs).
2241
+ // Arrow-key navigation is wired to .ss-main's keydown, so once it loses focus keyboard
2242
+ // navigation silently breaks — and for multiple selects (closeOnSelect: false) slim-select
2243
+ // never re-focuses .ss-main afterwards, since it only does so on close. Prevent the browser's
2244
+ // default focus-shift at the source so .ss-main simply never loses focus during option clicks.
2245
+ fixOptionFocus() {
2246
+ this.config.popupEl.addEventListener('mousedown', ev => {
2247
+ const target = ev.target;
2248
+ if (target.closest('.ss-option'))
2249
+ ev.preventDefault();
2250
+ }, { capture: true });
2251
+ }
2252
+ // Non-searchable selects have no way to jump to an option by typing, unlike a native
2253
+ // <select> which supports "hidden" keyboard search: typing a letter jumps to the first
2254
+ // option starting with it, and repeating the same letter cycles through matches. We
2255
+ // replicate that here — highlighting the match while open, or selecting it directly
2256
+ // when closed — since slim-select itself doesn't offer this for non-searchable mode.
2257
+ fixTypeAhead() {
2258
+ if (this.config.searchable)
2259
+ return;
2260
+ const trigger = this.trigger;
2261
+ if (!trigger)
2262
+ return;
2263
+ trigger.addEventListener('keydown', ev => this.handleTypeAhead(ev));
2264
+ }
2265
+ handleTypeAhead(ev) {
2266
+ var _a;
2267
+ const key = ev.key;
2268
+ if (key.length !== 1 || key === ' ' || ev.ctrlKey || ev.metaKey || ev.altKey)
2269
+ return;
2270
+ const render = (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.render;
2271
+ if (!render)
2272
+ return;
2273
+ const now = Date.now();
2274
+ const withinTimeout = now - this.typeAheadLastTime <= TYPEAHEAD_TIMEOUT_MS;
2275
+ this.typeAheadLastTime = now;
2276
+ const isRepeat = withinTimeout && this.typeAheadBuffer.length > 0 && [...this.typeAheadBuffer].every(c => c === key);
2277
+ this.typeAheadBuffer = withinTimeout ? this.typeAheadBuffer + key : key;
2278
+ const options = render.getOptions(true, true, true);
2279
+ if (options.length === 0)
2280
+ return;
2281
+ const highlightedClass = render.classes.getFirst('highlighted');
2282
+ const highlighted = this.config.popupEl.querySelector(`.${highlightedClass}`);
2283
+ const startIndex = highlighted ? options.indexOf(highlighted) : -1;
2284
+ const match = isRepeat
2285
+ ? this.findNextTypeAheadMatch(options, key, startIndex)
2286
+ : options.find(o => this.optionText(o).startsWith(this.typeAheadBuffer.toLowerCase()));
2287
+ if (!match)
2288
+ return;
2289
+ ev.preventDefault();
2290
+ const isOpen = render.content.main.classList.contains(render.classes.getFirst('contentOpen'));
2291
+ if (isOpen) {
2292
+ this.setHighlightedOption(match);
2293
+ }
2294
+ else {
2295
+ match.click();
2296
+ }
2297
+ }
2298
+ findNextTypeAheadMatch(options, char, startIndex) {
2299
+ var _a;
2300
+ const lower = char.toLowerCase();
2301
+ const matches = options.filter(o => this.optionText(o).startsWith(lower));
2302
+ if (matches.length === 0)
2303
+ return undefined;
2304
+ return (_a = matches.find(o => options.indexOf(o) > startIndex)) !== null && _a !== void 0 ? _a : matches[0];
2305
+ }
2306
+ optionText(option) {
2307
+ var _a;
2308
+ return ((_a = option.textContent) !== null && _a !== void 0 ? _a : '').trim().toLowerCase();
2309
+ }
2310
+ setHighlightedOption(target) {
2311
+ var _a;
2312
+ const render = (_a = this.slimSelect) === null || _a === void 0 ? void 0 : _a.render;
2313
+ if (!render)
2314
+ return;
2315
+ const highlightedClass = render.classes.highlighted;
2316
+ const current = this.config.popupEl.querySelector(`.${render.classes.getFirst('highlighted')}`);
2317
+ if (current && current !== target)
2318
+ render.removeClasses(current, highlightedClass);
2319
+ render.addClasses(target, highlightedClass);
2320
+ render.ensureElementInView(render.content.list, target);
2321
+ if (target.id)
2322
+ render.main.main.setAttribute('aria-activedescendant', target.id);
2323
+ }
2324
+ connectLabelToTrigger() {
2325
+ const ssMain = this.trigger;
2326
+ if (ssMain) {
2327
+ ssMain.id = this.config.triggerId;
2328
+ ssMain.setAttribute('aria-labelledby', 'label');
2329
+ ssMain.removeAttribute('aria-label');
2330
+ }
2331
+ // <label for="..."> only focuses native labelable elements; .ss-main is a div,
2332
+ // so the browser ignores the for/id link. Wire it manually.
2333
+ const label = this.config.shadowRoot.querySelector('label');
2334
+ if (label && ssMain) {
2335
+ label.addEventListener('click', ev => {
2336
+ ev.preventDefault();
2337
+ ssMain.focus();
2338
+ });
2339
+ }
2340
+ }
2341
+ }
2342
+
2343
+ const selectHostCss = () => `:root{--ss-primary-color:#5897fb;--ss-bg-color:#ffffff;--ss-font-color:#4d4d4d;--ss-placeholder-color:#8d8d8d;--ss-disabled-color:#dcdee2;--ss-border-color:#dcdee2;--ss-highlight-color:#fffb8c;--ss-focus-color:var(--ss-primary-color);--ss-success-color:#00b755;--ss-error-color:#dc3545;--ss-main-height:40px;--ss-content-height:300px;--ss-modal-height:85vh;--ss-modal-width:min(90vw, 400px);--ss-search-height:var(--ss-main-height);--ss-option-height:var(--ss-main-height);--ss-spacing-l:9px;--ss-spacing-m:7px;--ss-spacing-s:5px;--ss-animation-timing:0.2s;--ss-border-radius:4px;--ss-modal-z-index:1000001}@-webkit-keyframes ss-valueIn{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes ss-valueIn{0%{-webkit-transform:scale(0);transform:scale(0);opacity:0}100%{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes ss-valueOut{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}@keyframes ss-valueOut{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}100%{-webkit-transform:scale(0);transform:scale(0);opacity:0}}.ss-hide{display:none !important}.ss-main{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:var(--ss-font-color);min-height:var(--ss-main-height);width:100%;padding:0 var(--ss-spacing-s);cursor:pointer;border:1px solid var(--ss-border-color);border-radius:var(--ss-border-radius);background-color:var(--ss-bg-color);outline:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background-color var(--ss-animation-timing),border-radius var(--ss-animation-timing);transition:background-color var(--ss-animation-timing),border-radius var(--ss-animation-timing)}@media (prefers-reduced-motion: reduce){.ss-main{-webkit-transition:background-color var(--ss-animation-timing);transition:background-color var(--ss-animation-timing)}}.ss-main{overflow:hidden}.ss-main:focus{-webkit-box-shadow:0 0 5px var(--ss-focus-color);box-shadow:0 0 5px var(--ss-focus-color)}.ss-main.ss-disabled{background-color:var(--ss-disabled-color);cursor:not-allowed}.ss-main.ss-disabled .ss-values .ss-disabled{color:var(--ss-font-color)}.ss-main.ss-disabled .ss-values .ss-value .ss-value-delete{cursor:not-allowed}.ss-main.ss-dir-above{border-top-left-radius:0px;border-top-right-radius:0px}.ss-main.ss-dir-below{border-bottom-left-radius:0px;border-bottom-right-radius:0px}.ss-main .ss-values{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:center;align-content:center;-ms-flex-item-align:stretch;align-self:stretch;gap:var(--ss-spacing-m);-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;max-width:100%;padding:var(--ss-spacing-s) 0;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.ss-main .ss-values:has(.ss-multi-string){-ms-flex-wrap:nowrap;flex-wrap:nowrap;gap:0}.ss-main .ss-values:has(.ss-single),.ss-main .ss-values:has(.ss-placeholder){-ms-flex-wrap:nowrap;flex-wrap:nowrap}.ss-main .ss-values .ss-single,.ss-main .ss-values .ss-placeholder,.ss-main .ss-values .ss-multi-string{display:block;-ms-flex:1 1 0%;flex:1 1 0%;min-width:0;width:100%;max-width:100%;margin:0;padding:0 var(--ss-spacing-m) 0 calc(var(--ss-spacing-l) - var(--ss-spacing-s));line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box}.ss-main .ss-values .ss-placeholder{color:var(--ss-placeholder-color)}.ss-main .ss-values .ss-max{display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-align:center;align-items:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;font-size:12px;color:var(--ss-bg-color);line-height:1;padding:var(--ss-spacing-s) var(--ss-spacing-m);background-color:var(--ss-primary-color);border-radius:var(--ss-border-radius)}.ss-main .ss-values .ss-value{display:-ms-flexbox;display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-flex-align:center;align-items:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%;background-color:var(--ss-primary-color);border-radius:var(--ss-border-radius);-webkit-animation-name:ss-valueIn;animation-name:ss-valueIn;-webkit-animation-duration:var(--ss-animation-timing);animation-duration:var(--ss-animation-timing);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.ss-main .ss-values .ss-value{-webkit-animation:none;animation:none}}.ss-main .ss-values .ss-value.ss-value-out{-webkit-animation-name:ss-valueOut;animation-name:ss-valueOut;-webkit-animation-duration:var(--ss-animation-timing);animation-duration:var(--ss-animation-timing);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}.ss-main .ss-values .ss-value .ss-value-text{-ms-flex:1;flex:1;min-width:0;font-size:12px;line-height:1;color:var(--ss-bg-color);padding:var(--ss-spacing-s) var(--ss-spacing-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss-main .ss-values .ss-value .ss-value-delete{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:var(--ss-spacing-l);width:var(--ss-spacing-l);padding:var(--ss-spacing-s) var(--ss-spacing-m);cursor:pointer;border-left:solid 1px var(--ss-bg-color);-webkit-box-sizing:content-box;box-sizing:content-box}.ss-main .ss-values .ss-value .ss-value-delete svg{height:var(--ss-spacing-l);width:var(--ss-spacing-l)}.ss-main .ss-values .ss-value .ss-value-delete svg path{fill:none;stroke:var(--ss-bg-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round}.ss-main .ss-deselect{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:auto;padding:0 var(--ss-spacing-m) 0 var(--ss-spacing-m)}.ss-main .ss-deselect svg{width:8px;height:8px}.ss-main .ss-deselect svg path{fill:none;stroke:var(--ss-font-color);stroke-width:20;stroke-linecap:round;stroke-linejoin:round}.ss-main .ss-arrow{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;width:12px;height:12px;margin:auto var(--ss-spacing-m) auto var(--ss-spacing-m)}.ss-main .ss-arrow path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;-webkit-transition:var(--ss-animation-timing);transition:var(--ss-animation-timing)}.ss-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.ss-content{position:absolute;display:-ms-flexbox;display:flex;height:auto;-ms-flex-direction:column;flex-direction:column;width:auto;max-height:var(--ss-content-height);-webkit-box-sizing:border-box;box-sizing:border-box;border:solid 1px var(--ss-border-color);background-color:var(--ss-bg-color);min-height:0;-webkit-transition:opacity var(--ss-animation-timing),-webkit-transform var(--ss-animation-timing);transition:opacity var(--ss-animation-timing),-webkit-transform var(--ss-animation-timing);transition:transform var(--ss-animation-timing),opacity var(--ss-animation-timing);transition:transform var(--ss-animation-timing),opacity var(--ss-animation-timing),-webkit-transform var(--ss-animation-timing);opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0);overflow:hidden;z-index:10000}@media (prefers-reduced-motion: reduce){.ss-content{-webkit-transition:none;transition:none}}.ss-content.ss-relative{position:relative;height:100%}.ss-content.ss-fixed{position:fixed}.ss-content.ss-dir-above{-webkit-transform-origin:center bottom;transform-origin:center bottom;-ms-flex-direction:column-reverse;flex-direction:column-reverse;border-top-left-radius:var(--ss-border-radius);border-top-right-radius:var(--ss-border-radius)}.ss-content.ss-dir-below{-webkit-transform-origin:center top;transform-origin:center top;border-bottom-left-radius:var(--ss-border-radius);border-bottom-right-radius:var(--ss-border-radius)}.ss-content.ss-open{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1)}.ss-content .ss-search{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;gap:var(--ss-spacing-s);min-height:var(--ss-search-height);padding:0 var(--ss-spacing-s);-webkit-box-sizing:border-box;box-sizing:border-box;border-bottom:1px solid var(--ss-border-color)}.ss-content .ss-search input{display:-ms-inline-flexbox;display:inline-flex;font-size:inherit;line-height:inherit;-ms-flex:1 1 auto;flex:1 1 auto;width:100%;min-width:0;min-height:0;height:100%;padding:0 var(--ss-spacing-m);margin:0;border:none;background-color:var(--ss-bg-color);outline:0;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.ss-content .ss-search input::-webkit-input-placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input::-moz-placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input:-ms-input-placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input::-ms-input-placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input::placeholder{color:var(--ss-placeholder-color);vertical-align:middle}.ss-content .ss-search input:focus{-webkit-box-shadow:none;box-shadow:none}.ss-content .ss-search .ss-addable{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;cursor:pointer;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-sizing:border-box;box-sizing:border-box;width:22px;height:22px;margin:auto 0;padding:0;border:none;border-radius:var(--ss-border-radius);background-color:var(--ss-primary-color)}.ss-content .ss-search .ss-addable svg{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex:0 0 auto;flex:0 0 auto;width:10px;height:10px;margin:0}.ss-content .ss-search .ss-addable svg path{fill:none;stroke:var(--ss-bg-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round}.ss-content.ss-dir-above .ss-search{border-bottom:none;border-top:1px solid var(--ss-border-color)}.ss-content .ss-list{-ms-flex:1 1 auto;flex:1 1 auto;height:auto;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-color:var(--ss-primary-color) var(--ss-bg-color)}.ss-content .ss-list .ss-error{color:var(--ss-error-color);padding:var(--ss-spacing-l)}.ss-content .ss-list .ss-searching{color:var(--ss-font-color);padding:var(--ss-spacing-l)}.ss-content .ss-list .ss-optgroup .ss-option{min-height:0;-webkit-transition:max-height var(--ss-animation-timing) ease,min-height var(--ss-animation-timing) ease,opacity var(--ss-animation-timing) ease,padding-top var(--ss-animation-timing) ease,padding-bottom var(--ss-animation-timing) ease,margin-top var(--ss-animation-timing) ease,margin-bottom var(--ss-animation-timing) ease;transition:max-height var(--ss-animation-timing) ease,min-height var(--ss-animation-timing) ease,opacity var(--ss-animation-timing) ease,padding-top var(--ss-animation-timing) ease,padding-bottom var(--ss-animation-timing) ease,margin-top var(--ss-animation-timing) ease,margin-bottom var(--ss-animation-timing) ease}.ss-content .ss-list .ss-optgroup:not(.ss-close):not(.ss-open) .ss-option{min-height:var(--ss-option-height)}.ss-content .ss-list .ss-optgroup.ss-open .ss-option{min-height:var(--ss-option-height);max-height:100px;opacity:1;overflow:visible}.ss-content .ss-list .ss-optgroup.ss-close .ss-option{min-height:0 !important;padding-top:0 !important;padding-bottom:0 !important;margin-top:0 !important;margin-bottom:0 !important;max-height:0;opacity:0;overflow:hidden}.ss-content .ss-list .ss-optgroup .ss-optgroup-label{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;min-height:var(--ss-option-height);padding:0 var(--ss-spacing-l)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-label-text{-ms-flex:1 1 auto;flex:1 1 auto;font-weight:bold;color:var(--ss-font-color)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label:has(.ss-arrow){cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--ss-spacing-m)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall{-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall:hover{opacity:.5}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall.ss-selected svg path{stroke:var(--ss-error-color)}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall span{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:60%;text-align:center;padding:0 var(--ss-spacing-s) 0 0}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg{-ms-flex:0 1 auto;flex:0 1 auto;width:13px;height:13px}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg path{fill:none;stroke:var(--ss-success-color);stroke-linecap:round;stroke-linejoin:round}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:first-child{stroke-width:5}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-selectall svg:last-child{stroke-width:11}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;cursor:pointer}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow{-ms-flex:1 1 auto;flex:1 1 auto;width:10px;height:10px}.ss-content .ss-list .ss-optgroup .ss-optgroup-label .ss-optgroup-actions .ss-closable .ss-arrow path{fill:none;stroke:var(--ss-font-color);stroke-width:18;stroke-linecap:round;stroke-linejoin:round;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;-webkit-transition:var(--ss-animation-timing);transition:var(--ss-animation-timing)}.ss-content .ss-list .ss-optgroup .ss-option{padding:0 var(--ss-spacing-l) 0 calc(var(--ss-spacing-l)*3)}.ss-content .ss-list .ss-option{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:var(--ss-option-height);padding:0 var(--ss-spacing-l);white-space:normal;color:var(--ss-font-color);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;content-visibility:auto;contain-intrinsic-size:auto var(--ss-option-height)}.ss-content .ss-list .ss-option:hover:not(.ss-disabled){color:var(--ss-bg-color);background-color:var(--ss-primary-color);border-left:5px solid var(--ss-primary-color);-webkit-transition:border-left var(--ss-animation-timing) ease;transition:border-left var(--ss-animation-timing) ease}.ss-content .ss-list .ss-option.ss-highlighted,.ss-content .ss-list .ss-option:not(.ss-disabled).ss-selected{color:var(--ss-bg-color);background-color:var(--ss-primary-color)}.ss-content .ss-list .ss-option.ss-disabled{cursor:not-allowed;background-color:var(--ss-disabled-color)}.ss-content .ss-list .ss-option.ss-disabled:hover{color:var(--ss-font-color)}.ss-content .ss-list .ss-option .ss-search-highlight{display:inline-block;background-color:var(--ss-highlight-color)}.ss-content .ss-list .ss-search{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;min-height:var(--ss-search-height);padding:0 var(--ss-spacing-l)}.ss-modal-overlay{position:fixed;inset:0;z-index:var(--ss-modal-z-index);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:var(--ss-spacing-l);-webkit-box-sizing:border-box;box-sizing:border-box;background-color:rgba(0,0,0,.8);opacity:0;-webkit-transition:opacity var(--ss-animation-timing);transition:opacity var(--ss-animation-timing)}@media (prefers-reduced-motion: reduce){.ss-modal-overlay{-webkit-transition:none;transition:none}}.ss-modal-overlay.ss-open{opacity:1}.ss-modal-overlay .ss-modal-dialog{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;max-width:var(--ss-modal-width);max-height:var(--ss-modal-height);overflow:visible}.ss-modal-overlay .ss-modal-dialog .ss-modal-title{-ms-flex:0 0 auto;flex:0 0 auto;width:100%;padding:0 0 var(--ss-spacing-l);-webkit-box-sizing:border-box;box-sizing:border-box;font-weight:bold;font-size:1.35em;line-height:1.3;color:#fff;text-align:left;background:none;border:none}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content{position:relative !important;top:auto !important;left:auto !important;width:100% !important;max-width:100%;max-height:var(--ss-modal-height);min-height:0;margin:0 !important;-webkit-transform-origin:center center;transform-origin:center center;z-index:1;border-radius:var(--ss-border-radius);overflow:visible}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-modal-close{position:absolute;top:0;right:0;z-index:2;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:28px;height:28px;padding:0;margin:0;border:none;border-radius:var(--ss-border-radius);background-color:var(--ss-bg-color);color:var(--ss-font-color);cursor:pointer;outline:0;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.5);box-shadow:0 1px 4px rgba(0,0,0,.5);-webkit-transform:translate(50%, -50%);transform:translate(50%, -50%)}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-modal-close:hover{background-color:var(--ss-bg-color);-webkit-box-shadow:0 2px 6px rgba(0,0,0,.16);box-shadow:0 2px 6px rgba(0,0,0,.16)}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-modal-close:focus{-webkit-box-shadow:0 0 5px var(--ss-focus-color);box-shadow:0 0 5px var(--ss-focus-color)}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-modal-close svg{width:10px;height:10px}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-modal-close svg path{fill:none;stroke:currentColor;stroke-width:20;stroke-linecap:round;stroke-linejoin:round}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-list{min-height:0;overflow-x:hidden;overflow-y:auto;border-radius:0 0 var(--ss-border-radius) var(--ss-border-radius);scrollbar-color:var(--ss-primary-color) var(--ss-bg-color)}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content .ss-search.ss-hide~.ss-list{border-radius:var(--ss-border-radius)}.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content.ss-dir-above,.ss-modal-overlay .ss-modal-dialog .ss-content.ss-modal-content.ss-dir-below{-ms-flex-direction:column;flex-direction:column;-webkit-transform-origin:center center;transform-origin:center center}:host{--_form-field-gap:var(--form-field-gap, var(--mod-form-field-gap, 0.25rem));--_form-container-background:var(--form-container-background, var(--mod-form-container-background, var(--ds-form-container-color-base-background)));--_form-container-border-color:var(--form-container-border-color, var(--mod-form-container-border-color, var(--ds-form-container-color-base-border)));--_form-container-border-width:var(--form-container-border-width, var(--mod-form-container-border-width, var(--ds-form-container-border-width)));--_form-container-radius:var(--form-container-radius, var(--mod-form-container-radius, var(--ds-form-container-radius)));--_form-container-hover-background:var(--form-container-hover-background, var(--mod-form-container-hover-background, var(--ds-form-container-color-hover-background)));--_form-container-active-background:var(--form-container-active-background, var(--mod-form-container-active-background, var(--ds-form-container-color-active-background)));--_form-container-focus-background:var(--form-container-focus-background, var(--mod-form-container-focus-background, var(--ds-form-container-color-focus-background)));--_form-container-hover-border:var(--form-container-hover-border, var(--mod-form-container-hover-border, var(--ds-form-container-color-hover-border)));--_form-container-active-border:var(--form-container-active-border, var(--mod-form-container-active-border, var(--ds-form-container-color-active-border)));--_form-container-focus-border:var(--form-container-focus-border, var(--mod-form-container-focus-border, var(--ds-form-container-color-focus-border)));--_form-label-color:var(--form-label-color, var(--mod-form-label-color, var(--ds-form-label-color-base)));--_form-label-family:var(--form-label-family, var(--mod-form-label-family, var(--ds-form-label-family)));--_form-label-weight:var(--form-label-weight, var(--mod-form-label-weight, var(--ds-form-label-weight)));--_form-label-line-height:var(--form-label-line-height, var(--mod-form-label-line-height, var(--ds-form-label-line-height)));--_form-label-size:var(--form-label-size, var(--mod-form-label-size, var(--ds-form-label-size-device)));--_form-description-color:var(--form-description-color, var(--mod-form-description-color, var(--ds-form-description-color-base)));--_form-description-family:var(--form-description-family, var(--mod-form-description-family, var(--ds-form-description-family)));--_form-description-weight:var(--form-description-weight, var(--mod-form-description-weight, var(--ds-form-description-weight)));--_form-description-line-height:var(--form-description-line-height, var(--mod-form-description-line-height, var(--ds-form-description-line-height)));--_form-description-size:var(--form-description-size, var(--mod-form-description-size, var(--ds-form-description-size-device)));--_select-family:var(--select-family, var(--mod-select-family, var(--ds-form-control-family)));--_select-weight:var(--select-weight, var(--mod-select-weight, var(--ds-form-control-weight)));--_select-line-height:var(--select-line-height, var(--mod-select-line-height, var(--ds-form-control-line-height)));--_select-size:var(--select-size, var(--mod-select-size, var(--ds-form-control-size-device)));--_select-color:var(--select-color, var(--mod-select-color, var(--ds-form-control-color-value-base)));--_select-placeholder:var(--select-placeholder, var(--mod-select-placeholder, var(--ds-form-control-color-placeholder-base)));--_select-background-color:var(--select-background-color, var(--mod-select-background-color, var(--ds-select-color-background-base)));--_select-text-color:var(--select-text-color, var(--mod-select-text-color, var(--ds-select-color-text-base)));--_select-primary-color:var(--select-primary-color, var(--mod-select-primary-color, var(--ds-select-color-primary-base)));--_select-placeholder-color:var(--select-placeholder-color, var(--mod-select-placeholder-color, var(--ds-select-color-placeholder-base)));--_select-disabled-color:var(--select-disabled-color, var(--mod-select-disabled-color, var(--ds-select-color-disabled)));--_select-border-color:var(--select-border-color, var(--mod-select-border-color, var(--ds-select-color-border-base)));--_select-highlight-color:var(--select-highlight-color, var(--mod-select-highlight-color, var(--ds-select-color-highlight-base)));--_select-focus-color:var(--select-focus-color, var(--mod-select-focus-color, var(--ds-select-color-focus-base)));--_select-success-color:var(--select-success-color, var(--mod-select-success-color, var(--ds-select-color-success)));--_select-error-color:var(--select-error-color, var(--mod-select-error-color, var(--ds-select-color-error)));--_select-radius:var(--select-radius, var(--mod-select-radius, var(--ds-select-radius)));--_select-content-family:var(--select-content-family, var(--mod-select-content-family, var(--ds-select-content-family)));--_select-content-background-color:var(--select-content-background-color, var(--mod-select-content-background-color, var(--ds-select-content-color-background-base)));--_select-content-shadow:var(--select-content-shadow, var(--mod-select-content-shadow, var(--ds-select-content-shadow)));--_select-search-text-color:var(--select-search-text-color, var(--mod-select-search-text-color, var(--ds-select-search-color-text-base)));--_select-option-text-color:var(--select-option-text-color, var(--mod-select-option-text-color, var(--ds-select-option-color-text-base)));--_select-option-background-color:var(--select-option-background-color, var(--mod-select-option-background-color, var(--ds-select-option-color-background-base)));--_select-option-border-color:var(--select-option-border-color, var(--mod-select-option-border-color, var(--ds-select-option-color-border-base)));--_select-option-selected-weight:var(--select-option-selected-weight, var(--mod-select-option-selected-weight, var(--ds-select-option-weight-selected)));--_select-option-selected-icon-color:var(--select-option-selected-icon-color, var(--mod-select-option-selected-icon-color, var(--ds-select-option-color-icon-selected)));--_select-option-selected-text-color:var(--select-option-selected-text-color, var(--mod-select-option-selected-text-color, var(--ds-select-option-color-text-selected)));--_select-option-selected-background-color:var(--select-option-selected-background-color, var(--mod-select-option-selected-background-color, var(--ds-select-option-color-background-selected)));--_select-option-hover-text-color:var(--select-option-hover-text-color, var(--mod-select-option-hover-text-color, var(--ds-select-option-color-text-hover)));--_select-option-hover-background-color:var(--select-option-hover-background-color, var(--mod-select-option-hover-background-color, var(--ds-select-option-color-background-hover)));--_select-option-highlight-text-color:var(--select-option-highlight-text-color, var(--mod-select-option-highlight-text-color, var(--ds-select-option-color-text-highlight)));--_select-option-highlight-background-color:var(--select-option-highlight-background-color, var(--mod-select-option-highlight-background-color, var(--ds-select-option-color-background-highlight)));--_select-option-disabled-text-color:var(--select-option-disabled-text-color, var(--mod-select-option-disabled-text-color, var(--ds-select-option-color-text-disabled)));--_select-option-disabled-background-color:var(--select-option-disabled-background-color, var(--mod-select-option-disabled-background-color, var(--ds-select-option-color-background-disabled)));--_select-optgroup-background-color:var(--select-optgroup-background-color, var(--mod-select-optgroup-background-color, var(--ds-select-optgroup-color-background-base)));--_select-optgroup-text-color:var(--select-optgroup-text-color, var(--mod-select-optgroup-text-color, var(--ds-select-optgroup-color-text-base)));--_select-optgroup-weight:var(--select-optgroup-weight, var(--mod-select-optgroup-weight, var(--ds-select-optgroup-weight)));--_select-icon-color:var(--select-icon-color, var(--mod-select-icon-color, var(--ds-select-icon-color-base)));--_select-icon-hover-color:var(--select-icon-hover-color, var(--mod-select-icon-hover-color, var(--ds-select-icon-color-hover)));--_select-icon-active-color:var(--select-icon-active-color, var(--mod-select-icon-active-color, var(--ds-select-icon-color-active)));--_select-tag-background-color:var(--select-tag-background-color, var(--mod-select-tag-background-color, var(--ds-select-chip-color-base-background)));--_select-tag-text-color:var(--select-tag-text-color, var(--mod-select-tag-text-color, var(--ds-select-chip-color-base-text)));--_select-tag-family:var(--select-tag-family, var(--mod-select-tag-family, var(--ds-select-chip-family)));--_select-checkbox-border-color:var(--select-checkbox-border-color, var(--mod-select-checkbox-border-color, var(--ds-select-checkbox-color-border-base)));--_select-checkbox-selected-background-color:var(--select-checkbox-selected-background-color, var(--mod-select-checkbox-selected-background-color, var(--ds-select-checkbox-color-background-selected)));--_select-checkbox-selected-border-color:var(--select-checkbox-selected-border-color, var(--mod-select-checkbox-selected-border-color, var(--ds-select-checkbox-color-border-selected)));--_select-focus-ring-color:var(--select-focus-ring-color, var(--mod-select-focus-ring-color, var(--ds-select-color-focus-ring-base)));--ss-bg-color:var(--_select-background-color);--ss-font-color:var(--_select-text-color);--ss-primary-color:var(--_select-primary-color);--ss-placeholder-color:var(--_select-placeholder-color);--ss-disabled-color:var(--_select-disabled-color);--ss-border-color:var(--_select-border-color);--ss-highlight-color:var(--_select-highlight-color);--ss-focus-color:var(--_select-focus-color);--ss-success-color:var(--_select-success-color);--ss-error-color:var(--_select-error-color);--ss-main-height:40px;--ss-content-height:300px;--ss-modal-height:85vh;--ss-modal-width:min(90vw, 400px);--ss-search-height:var(--ss-main-height);--ss-option-height:var(--ss-main-height);--ss-spacing-l:8px;--ss-spacing-m:4px;--ss-spacing-s:2px;--ss-icon-spacing:10px;--ss-animation-timing:0.2s;--ss-border-radius:var(--_select-radius);--ss-modal-z-index:1000001}:host{position:relative;display:grid;gap:var(--_form-field-gap)}:host #container{-webkit-box-sizing:border-box;box-sizing:border-box;clear:both;display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;align-items:center;min-height:3rem;gap:.25rem;padding-inline:.5rem;background:var(--_form-container-background);border:var(--_form-container-border-width) solid var(--_form-container-border-color);border-radius:var(--_form-container-radius)}@media (hover: hover)and (pointer: fine){:host #container:hover,:host #container.is-hovered{background:var(--_form-container-hover-background);border-color:var(--_form-container-hover-border)}}:host #container:active,:host #container.is-pressed{background:var(--_form-container-active-background);border-color:var(--_form-container-active-border)}:host #container:focus-within:not(:active),:host #container.is-focused:not(:active){background:var(--_form-container-focus-background);border-color:var(--_form-container-focus-border)}:host :where(fieldset){margin:0;padding:0;border:none}:host :where(legend){padding:0;float:left;width:100%}:host label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;overflow-wrap:break-word;text-wrap:balance;min-width:0;color:var(--_form-label-color);font-family:var(--_form-label-family);font-weight:var(--_form-label-weight);font-size:var(--_form-label-size);line-height:var(--_form-label-line-height)}:host #description{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;overflow-wrap:break-word;text-wrap:balance;min-width:0;gap:.25rem;min-height:1.125rem;color:var(--_form-description-color);font-family:var(--_form-description-family);font-weight:var(--_form-description-weight);font-size:var(--_form-description-size);line-height:var(--_form-description-line-height)}:host #description ds-icon{--icon-color:var(--_form-description-color)}:host #inner{position:relative;display:grid;gap:var(--_form-field-gap)}:host select{display:none}:host #container{position:relative;padding-inline:0;cursor:pointer}:host(.is-danger){--mod-form-container-border-color:var(--ds-form-container-color-danger-border);--mod-form-description-color:var(--ds-form-description-color-danger);--mod-form-container-hover-border:var(--ds-form-container-color-danger-border);--mod-form-container-active-border:var(--ds-form-container-color-danger-border)}:host(.is-success){--mod-form-container-border-color:var(--ds-form-container-color-success-border);--mod-form-description-color:var(--ds-form-description-color-success);--mod-form-container-hover-border:var(--ds-form-container-color-success-border);--mod-form-container-active-border:var(--ds-form-container-color-success-border)}:host(.is-warning){--mod-form-container-border-color:var(--ds-form-container-color-warning-border);--mod-form-description-color:var(--ds-form-description-color-warning);--mod-form-container-hover-border:var(--ds-form-container-color-warning-border);--mod-form-container-active-border:var(--ds-form-container-color-warning-border)}:host(.is-disabled){pointer-events:none;cursor:default;--mod-form-container-background:var(--ds-form-container-color-disabled-background);--mod-form-container-border-color:var(--ds-form-container-color-disabled-border);--mod-form-label-color:var(--ds-form-label-color-disabled);--mod-form-description-color:var(--ds-form-description-color-disabled);--mod-select-color:var(--ds-form-control-color-value-disabled);--mod-select-placeholder:var(--ds-form-control-color-placeholder-disabled)}:host #container{position:relative}:host #popup{display:block}:host .ss-main{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}@media print{:host .ss-main{display:none !important}}:host .ss-main{padding:0;margin:0;border:none;-webkit-box-shadow:none;box-shadow:none;font-family:var(--_select-content-family);z-index:var(--ds-alias-z-index-popup)}:host .ss-content{background-color:var(--_select-content-background-color);-webkit-box-shadow:var(--_select-content-shadow);box-shadow:var(--_select-content-shadow);border:none;margin:0 !important;position:absolute;top:100%;left:0;width:100%;min-height:0;max-height:300px;height:auto}@media (prefers-reduced-motion: reduce){:host .ss-content{-webkit-transition:none !important;transition:none !important;-webkit-animation:none !important;animation:none !important}}:host .ss-content .ss-search{border-width:2px;border-color:var(--_form-container-border-color)}:host .ss-content .ss-search input{color:var(--_select-search-text-color)}:host .ss-content .ss-search input[type=search]::-ms-clear{display:none;width:0;height:0}:host .ss-content .ss-search input[type=search]::-ms-reveal{display:none;width:0;height:0}:host .ss-content .ss-search input[type=search]::-webkit-search-decoration,:host .ss-content .ss-search input[type=search]::-webkit-search-cancel-button,:host .ss-content .ss-search input[type=search]::-webkit-search-results-button,:host .ss-content .ss-search input[type=search]::-webkit-search-results-decoration{display:none}:host .ss-content .ss-list .ss-option .ss-search-highlight{font-weight:var(--_select-option-selected-weight);color:var(--_select-option-highlight-text-color);border-radius:var(--_select-radius)}:host .ss-content .ss-list .ss-option{color:var(--_select-option-text-color);background-color:var(--_select-option-background-color);border-left:none !important;border-bottom:2px solid var(--_select-option-border-color)}:host .ss-content .ss-list .ss-option:last-child{border-bottom:none}:host .ss-content .ss-list .ss-option::after{display:block;content:"";width:14px;height:14px;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;margin-left:auto}:host .ss-content .ss-list .ss-option.ss-selected{font-weight:var(--_select-option-selected-weight);background-color:var(--_select-option-selected-background-color);color:var(--_select-option-selected-text-color)}:host .ss-content .ss-list .ss-option.ss-selected::after{-webkit-mask-image:url("data:image/svg+xml,<svg viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' clip-rule='evenodd' d='M13.637 1.19792C14.0627 1.54974 14.1227 2.18006 13.7708 2.60579L5.73084 12.335L5.72842 12.3379C5.54554 12.5575 5.31602 12.7336 5.05655 12.8534C4.79707 12.9731 4.51417 13.0336 4.22842 13.0302L4.22752 13.0302C3.93709 13.0266 3.65125 12.9573 3.39146 12.8274C3.13254 12.6979 2.9062 12.5117 2.72931 12.2826C2.72871 12.2818 2.72812 12.281 2.72752 12.2802L0.210633 9.04426C-0.128437 8.60831 -0.0499029 7.98003 0.386044 7.64096C0.821992 7.30189 1.45027 7.38043 1.78934 7.81638L4.25291 10.9838L12.2291 1.33176C12.5809 0.906034 13.2113 0.846112 13.637 1.19792Z'/></svg>");mask-image:url("data:image/svg+xml,<svg viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'><path fill-rule='evenodd' clip-rule='evenodd' d='M13.637 1.19792C14.0627 1.54974 14.1227 2.18006 13.7708 2.60579L5.73084 12.335L5.72842 12.3379C5.54554 12.5575 5.31602 12.7336 5.05655 12.8534C4.79707 12.9731 4.51417 13.0336 4.22842 13.0302L4.22752 13.0302C3.93709 13.0266 3.65125 12.9573 3.39146 12.8274C3.13254 12.6979 2.9062 12.5117 2.72931 12.2826C2.72871 12.2818 2.72812 12.281 2.72752 12.2802L0.210633 9.04426C-0.128437 8.60831 -0.0499029 7.98003 0.386044 7.64096C0.821992 7.30189 1.45027 7.38043 1.78934 7.81638L4.25291 10.9838L12.2291 1.33176C12.5809 0.906034 13.2113 0.846112 13.637 1.19792Z'/></svg>");-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background-color:var(--_select-option-selected-icon-color)}:host .ss-content .ss-list .ss-option:hover:not(.ss-disabled),:host .ss-content .ss-list .ss-option:active:not(.ss-disabled){background-color:var(--_select-option-hover-background-color);color:var(--_select-option-hover-text-color)}:host .ss-content .ss-list .ss-option.ss-highlighted{background-color:var(--_select-option-highlight-background-color);color:var(--_select-option-highlight-text-color)}:host .ss-content .ss-list .ss-option.ss-disabled{background-color:var(--_select-option-disabled-background-color);color:var(--_select-option-disabled-text-color)}:host .ss-main .ss-deselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}@media print{:host .ss-main .ss-deselect{display:none !important}}:host .ss-main .ss-deselect{border-radius:var(--ds-alias-radius-rounded);background:rgba(0,0,0,0);width:1.5rem;height:1.5rem;border:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-align:center;vertical-align:middle;cursor:pointer;word-break:normal;-webkit-box-shadow:none;box-shadow:none;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-transition-property:color,background-color,border-color,text-shadow,-webkit-box-shadow;transition-property:color,background-color,border-color,text-shadow,-webkit-box-shadow;transition-property:color,background-color,border-color,box-shadow,text-shadow;transition-property:color,background-color,border-color,box-shadow,text-shadow,-webkit-box-shadow;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(0, 0, 0.2, 1);transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}:host .ss-main .ss-deselect::-moz-focus-inner{border:0}:host .ss-main .ss-deselect:disabled{pointer-events:none}@media (hover: hover)and (pointer: fine){:host .ss-main .ss-deselect:hover,:host .ss-main .ss-deselect.is-hovered{--icon-color:var(--ds-alias-text-color-primary-hover);background:var(--ds-alias-background-color-highlight)}}:host .ss-main .ss-deselect:active,:host .ss-main .ss-deselect.is-pressed{--icon-color:var(--ds-alias-text-color-primary-active);background:var(--ds-alias-background-color-highlight)}@media (hover: hover)and (pointer: fine){:host .ss-main .ss-deselect:focus-visible:not(:active),:host .ss-main .ss-deselect.is-focused:not(:active){-webkit-box-shadow:var(--ds-alias-interaction-focus-color-border) 0 0 0 2px,var(--ds-alias-interaction-focus-color-base) 0 0 0 5px !important;box-shadow:var(--ds-alias-interaction-focus-color-border) 0 0 0 2px,var(--ds-alias-interaction-focus-color-base) 0 0 0 5px !important}}:host .ss-main .ss-deselect::after{position:absolute;content:"";display:block;width:1rem;height:1rem;margin-inline:var(--ss-icon-spacing);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill-rule='evenodd' d='M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L5.58579 7L0.292893 12.2929C-0.0976311 12.6834 -0.0976311 13.3166 0.292893 13.7071C0.683417 14.0976 1.31658 14.0976 1.70711 13.7071L7 8.41421L12.2929 13.7071C12.6834 14.0976 13.3166 14.0976 13.7071 13.7071C14.0976 13.3166 14.0976 12.6834 13.7071 12.2929L8.41421 7L13.7071 1.70711C14.0976 1.31658 14.0976 0.683417 13.7071 0.292893C13.3166 -0.0976311 12.6834 -0.0976311 12.2929 0.292893L7 5.58579L1.70711 0.292893Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill-rule='evenodd' d='M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L5.58579 7L0.292893 12.2929C-0.0976311 12.6834 -0.0976311 13.3166 0.292893 13.7071C0.683417 14.0976 1.31658 14.0976 1.70711 13.7071L7 8.41421L12.2929 13.7071C12.6834 14.0976 13.3166 14.0976 13.7071 13.7071C14.0976 13.3166 14.0976 12.6834 13.7071 12.2929L8.41421 7L13.7071 1.70711C14.0976 1.31658 14.0976 0.683417 13.7071 0.292893C13.3166 -0.0976311 12.6834 -0.0976311 12.2929 0.292893L7 5.58579L1.70711 0.292893Z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask-size:80%;mask-size:80%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background-color:var(--_select-icon-color);-webkit-transition:-webkit-transform var(--ss-animation-timing) ease-in-out;transition:-webkit-transform var(--ss-animation-timing) ease-in-out;transition:transform var(--ss-animation-timing) ease-in-out;transition:transform var(--ss-animation-timing) ease-in-out, -webkit-transform var(--ss-animation-timing) ease-in-out}@media (hover: hover)and (pointer: fine){:host .ss-main .ss-deselect:hover::after,:host .ss-main .ss-deselect.is-hovered::after{background-color:var(--_select-icon-hover-color)}}:host .ss-main .ss-deselect:active::after,:host .ss-main .ss-deselect.is-pressed::after{background-color:var(--_select-icon-active-color)}:host .ss-main .ss-deselect svg{display:none}:host .ss-main .ss-arrow{display:block;width:1rem;height:1rem;margin-inline:var(--ss-icon-spacing);-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%2010'%3E%3Cpath%20fill='black'%20d='M5,7.874a1.238,1.238,0,0,1-.879-.364L.206,3.393A.75.75,0,1,1,1.294,2.36L4.819,6.072a.249.249,0,0,0,.362,0L8.706,2.36A.75.75,0,1,1,9.794,3.393L5.9,7.5A1.269,1.269,0,0,1,5,7.874Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2010%2010'%3E%3Cpath%20fill='black'%20d='M5,7.874a1.238,1.238,0,0,1-.879-.364L.206,3.393A.75.75,0,1,1,1.294,2.36L4.819,6.072a.249.249,0,0,0,.362,0L8.706,2.36A.75.75,0,1,1,9.794,3.393L5.9,7.5A1.269,1.269,0,0,1,5,7.874Z'/%3E%3C/svg%3E");-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background-color:var(--_select-icon-color);-webkit-transition:-webkit-transform var(--ss-animation-timing) ease-in-out;transition:-webkit-transform var(--ss-animation-timing) ease-in-out;transition:transform var(--ss-animation-timing) ease-in-out;transition:transform var(--ss-animation-timing) ease-in-out, -webkit-transform var(--ss-animation-timing) ease-in-out}:host .ss-main .ss-arrow path{display:none}:host .ss-main.ss-dir-below .ss-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host .ss-main .ss-values{padding-inline:var(--ss-icon-spacing)}:host .ss-main .ss-values .ss-single{padding-inline:0}:host .ss-main .ss-values .ss-value{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;user-drag:none;min-height:1.5rem;padding-block:var(--ds-tag-space-padding-y-sm);padding-inline:var(--ds-tag-space-padding-x-sm);border-radius:var(--ds-tag-radius-base);background-color:var(--_select-tag-background-color)}:host .ss-main .ss-values .ss-value .ss-value-text{color:var(--_select-tag-text-color);font-family:var(--_select-tag-family);line-height:1;font-size:var(--ds-tag-font-size-sm);font-weight:var(--ds-tag-font-weight-sm);padding:0}:host .ss-main .ss-values .ss-value .ss-value-delete{position:relative;margin:0;padding:0;width:20px;height:20px;border:none;border-radius:var(--ds-close-radius);background-color:var(--ds-close-color-background-base);-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;margin-left:.25rem;margin-right:-0.5rem}:host .ss-main .ss-values .ss-value .ss-value-delete::after{display:block;content:"";width:10px;height:10px;margin-left:5px;margin-right:5px;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill-rule='evenodd' d='M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L5.58579 7L0.292893 12.2929C-0.0976311 12.6834 -0.0976311 13.3166 0.292893 13.7071C0.683417 14.0976 1.31658 14.0976 1.70711 13.7071L7 8.41421L12.2929 13.7071C12.6834 14.0976 13.3166 14.0976 13.7071 13.7071C14.0976 13.3166 14.0976 12.6834 13.7071 12.2929L8.41421 7L13.7071 1.70711C14.0976 1.31658 14.0976 0.683417 13.7071 0.292893C13.3166 -0.0976311 12.6834 -0.0976311 12.2929 0.292893L7 5.58579L1.70711 0.292893Z' clip-rule='evenodd'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath fill-rule='evenodd' d='M1.70711 0.292893C1.31658 -0.0976311 0.683417 -0.0976311 0.292893 0.292893C-0.0976311 0.683417 -0.0976311 1.31658 0.292893 1.70711L5.58579 7L0.292893 12.2929C-0.0976311 12.6834 -0.0976311 13.3166 0.292893 13.7071C0.683417 14.0976 1.31658 14.0976 1.70711 13.7071L7 8.41421L12.2929 13.7071C12.6834 14.0976 13.3166 14.0976 13.7071 13.7071C14.0976 13.3166 14.0976 12.6834 13.7071 12.2929L8.41421 7L13.7071 1.70711C14.0976 1.31658 14.0976 0.683417 13.7071 0.292893C13.3166 -0.0976311 12.6834 -0.0976311 12.2929 0.292893L7 5.58579L1.70711 0.292893Z' clip-rule='evenodd'/%3E%3C/svg%3E");-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;background-color:var(--ds-close-color-icon-base)}:host .ss-main .ss-values .ss-value .ss-value-delete svg{display:none}@media (hover: hover)and (pointer: fine){:host .ss-main .ss-values .ss-value .ss-value-delete:hover{background-color:var(--ds-close-color-background-hover)}}:host .ss-main .ss-values .ss-value .ss-value-delete:active{background-color:var(--ds-close-color-background-active)}@media (hover: hover)and (pointer: fine){:host .ss-main .ss-values .ss-value .ss-value-delete:focus-visible:not(:active){-webkit-box-shadow:var(--ds-alias-interaction-focus-color-border) 0 0 0 2px,var(--_select-focus-ring-color) 0 0 0 5px !important;box-shadow:var(--ds-alias-interaction-focus-color-border) 0 0 0 2px,var(--_select-focus-ring-color) 0 0 0 5px !important}}:host .ss-content .ss-list .ss-optgroup .ss-optgroup-label{background-color:var(--_select-optgroup-background-color);color:var(--_select-optgroup-text-color);font-weight:var(--_select-optgroup-weight)}:host #popup.is-multiple .ss-content .ss-list .ss-option::after{display:none}:host #popup.is-multiple .ss-content .ss-list .ss-option::before{width:16px;height:16px;content:"";border:2px solid var(--_select-checkbox-border-color);border-radius:var(--_select-radius);margin-right:.5rem;-ms-flex-negative:0;flex-shrink:0}:host #popup.is-multiple .ss-content .ss-list .ss-option.ss-selected::before{background-color:var(--_select-checkbox-selected-background-color);border-color:var(--_select-checkbox-selected-border-color);background-image:url("data:image/svg+xml,<svg viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'><path fill='%23ffffff' fill-rule='evenodd' clip-rule='evenodd' d='M13.637 1.19792C14.0627 1.54974 14.1227 2.18006 13.7708 2.60579L5.73084 12.335L5.72842 12.3379C5.54554 12.5575 5.31602 12.7336 5.05655 12.8534C4.79707 12.9731 4.51417 13.0336 4.22842 13.0302L4.22752 13.0302C3.93709 13.0266 3.65125 12.9573 3.39146 12.8274C3.13254 12.6979 2.9062 12.5117 2.72931 12.2826C2.72871 12.2818 2.72812 12.281 2.72752 12.2802L0.210633 9.04426C-0.128437 8.60831 -0.0499029 7.98003 0.386044 7.64096C0.821992 7.30189 1.45027 7.38043 1.78934 7.81638L4.25291 10.9838L12.2291 1.33176C12.5809 0.906034 13.2113 0.846112 13.637 1.19792Z'/></svg>");background-size:75%;background-repeat:no-repeat;background-position:center}`;
2344
+
2345
+ const DsSelect = class {
2346
+ constructor(hostRef) {
2347
+ registerInstance(this, hostRef);
2348
+ this.dsChange = createEvent(this, "dsChange");
2349
+ this.dsFocus = createEvent(this, "dsFocus");
2350
+ this.dsBlur = createEvent(this, "dsBlur");
2351
+ this.dsClick = createEvent(this, "dsClick");
2352
+ if (hostRef.$hostElement$["s-ei"]) {
2353
+ this.internals = hostRef.$hostElement$["s-ei"];
2354
+ }
2355
+ else {
2356
+ this.internals = hostRef.$hostElement$.attachInternals();
2357
+ hostRef.$hostElement$["s-ei"] = this.internals;
2358
+ }
2359
+ this.inheritedAttributes = {};
2360
+ this.initialValue = null;
2361
+ this.selectId = `ds-select-${SelectIds++}`;
2362
+ this.focused = false;
2363
+ this.language = defaultConfig.language;
2364
+ this.region = defaultConfig.region;
2365
+ this.slottedOptions = [];
2366
+ this.slottedOptionGroups = [];
2367
+ /**
2368
+ * PUBLIC PROPERTY API
2369
+ * ------------------------------------------------------
2370
+ */
2371
+ /**
2372
+ * The current value of the select.
2373
+ * In single mode: `string | null`.
2374
+ * In multiple mode: `string[]` (array of selected values). As an HTML attribute, multiple
2375
+ * values can also be passed as a comma-separated string, e.g. `value="it,ch"`.
2376
+ */
2377
+ this.value = null;
2378
+ /**
2379
+ * The name of the control, which is submitted with the form data.
2380
+ */
2381
+ this.name = this.selectId;
2382
+ /**
2383
+ * The label displayed above the select field.
2384
+ */
2385
+ this.label = '';
2386
+ /**
2387
+ * The description displayed below the select field.
2388
+ */
2389
+ this.description = '';
2390
+ /**
2391
+ * Defines the color state of the select field.
2392
+ */
2393
+ this.color = 'primary';
2394
+ /**
2395
+ * If `true`, the component renders in an invalid state.
2396
+ */
2397
+ this.invalid = false;
2398
+ /**
2399
+ * Validation message shown when `invalid` is true.
2400
+ */
2401
+ this.invalidText = '';
2402
+ /**
2403
+ * If `true`, the user must select a value before submitting the form.
2404
+ */
2405
+ this.required = true;
2406
+ /**
2407
+ * If `true`, the select is non-interactive and excluded from form submission.
2408
+ */
2409
+ this.disabled = false;
2410
+ /**
2411
+ * If `true`, the value cannot be changed by the user.
2412
+ */
2413
+ this.readonly = false;
2414
+ /**
2415
+ * If `true`, the user can select multiple options.
2416
+ * The `value` prop and `dsChange` event will carry a `string[]` instead of `string | null`.
2417
+ */
2418
+ this.multiple = false;
2419
+ /**
2420
+ * If `true`, a search input is shown inside the dropdown to filter options.
2421
+ */
2422
+ this.searchable = false;
2423
+ /**
2424
+ * If `true`, a clear button is shown inside the trigger that resets the value to `null` (single mode only).
2425
+ */
2426
+ this.clearable = false;
2427
+ /**
2428
+ * Placeholder text shown when no option is selected.
2429
+ */
2430
+ this.placeholder = '';
2431
+ /**
2432
+ * The list of selectable options (flat).
2433
+ * Use `optionGroups` when options should be grouped under a label.
2434
+ * If both are set, `optionGroups` takes precedence.
2435
+ */
2436
+ this.options = [];
2437
+ /**
2438
+ * The list of option groups. Each group has a `label` and an `options` array.
2439
+ * When set, `options` is ignored.
2440
+ */
2441
+ this.optionGroups = [];
2442
+ /**
2443
+ * If `true`, in Angular reactive forms the control will not be set invalid automatically.
2444
+ */
2445
+ this.autoInvalidOff = false;
2446
+ this.handleSlotChange = () => {
2447
+ this.readOptionsFromSlot();
2448
+ this.refreshSlimData();
2449
+ };
2450
+ }
2451
+ createLogger(log) {
2452
+ this.log = log;
2453
+ }
2454
+ valueChanged(newVal) {
2455
+ const normalized = this.normalizeValue(newVal);
2456
+ if (normalized !== newVal) {
2457
+ this.value = normalized;
2458
+ return;
2459
+ }
2460
+ this.syncFormValue(normalized);
2461
+ if (!this.picker)
2462
+ return;
2463
+ this.picker.setSelected(normalized !== null && normalized !== void 0 ? normalized : []);
2464
+ }
2465
+ disabledChanged() {
2466
+ this.syncDisabledState();
2467
+ }
2468
+ readonlyChanged() {
2469
+ this.syncDisabledState();
2470
+ }
2471
+ optionsChanged() {
2472
+ this.refreshSlimData();
2473
+ }
2474
+ optionGroupsChanged() {
2475
+ this.refreshSlimData();
2476
+ }
2477
+ /**
2478
+ * LIFECYCLE
2479
+ * ------------------------------------------------------
2480
+ */
2481
+ connectedCallback() {
2482
+ this.value = this.normalizeValue(this.value);
2483
+ this.initialValue = this.value;
2484
+ this.syncFormValue(this.value);
2485
+ }
2486
+ componentWillLoad() {
2487
+ this.inheritedAttributes = inheritAttributes(this.el, ['aria-label', 'tabindex', 'title']);
2488
+ }
2489
+ componentDidLoad() {
2490
+ if (!this.selectEl || !this.popupEl || !this.el.shadowRoot)
2491
+ return;
2492
+ this.readOptionsFromSlot();
2493
+ this.picker = new SelectPickerController({
2494
+ selectEl: this.selectEl,
2495
+ popupEl: this.popupEl,
2496
+ shadowRoot: this.el.shadowRoot,
2497
+ triggerId: this.selectId,
2498
+ language: this.language,
2499
+ placeholder: this.placeholder,
2500
+ searchable: this.searchable,
2501
+ disabled: this.disabled,
2502
+ readonly: this.readonly,
2503
+ multiple: this.multiple,
2504
+ clearable: this.clearable,
2505
+ data: this.buildSlimData(),
2506
+ onChange: newVal => this.handleAfterChange(newVal),
2507
+ onOpen: () => {
2508
+ this.focused = true;
2509
+ this.dsFocus.emit(new FocusEvent('focus'));
2510
+ },
2511
+ onClose: () => {
2512
+ this.focused = false;
2513
+ this.dsBlur.emit(new FocusEvent('blur'));
2514
+ },
2515
+ });
2516
+ this.syncFormValue(this.value);
2517
+ this.initialValue = this.value;
2518
+ }
2519
+ disconnectedCallback() {
2520
+ var _a;
2521
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.destroy();
2522
+ this.picker = undefined;
2523
+ }
2524
+ /**
2525
+ * PUBLIC LISTENERS
2526
+ * ------------------------------------------------------
2527
+ */
2528
+ listenToClick(ev) {
2529
+ if ((this.disabled || this.readonly) && ev.target === this.el) {
2530
+ stopEventBubbling(ev);
2531
+ }
2532
+ }
2533
+ listenToReset(ev) {
2534
+ const form = ev.target;
2535
+ if (form === null || form === void 0 ? void 0 : form.contains(this.el)) {
2536
+ this.value = this.initialValue;
2537
+ }
2538
+ }
2539
+ /**
2540
+ * PUBLIC METHODS
2541
+ * ------------------------------------------------------
2542
+ */
2543
+ /**
2544
+ * @internal define config for the component
2545
+ */
2546
+ async configChanged(state) {
2547
+ var _a;
2548
+ this.language = state.language;
2549
+ this.region = state.region;
2550
+ if (this.searchable) {
2551
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.updateSearchPlaceholder(state.language);
2552
+ }
2553
+ }
2554
+ /**
2555
+ * Opens the select dropdown.
2556
+ */
2557
+ async open() {
2558
+ var _a;
2559
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.open();
2560
+ }
2561
+ /**
2562
+ * Closes the select dropdown.
2563
+ */
2564
+ async close() {
2565
+ var _a;
2566
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.close();
2567
+ }
2568
+ /**
2569
+ * Sets focus on the select trigger.
2570
+ */
2571
+ async setFocus() {
2572
+ var _a;
2573
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.focus();
2574
+ }
2575
+ /**
2576
+ * Removes focus from the select trigger.
2577
+ */
2578
+ async setBlur() {
2579
+ var _a;
2580
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.blur();
2581
+ }
2582
+ /**
2583
+ * PRIVATE METHODS
2584
+ * ------------------------------------------------------
2585
+ */
2586
+ // Attributes are always strings, so `value="it,ch"` arrives as a single string in
2587
+ // multiple mode. Split it into the `string[]` the rest of the component expects.
2588
+ normalizeValue(val) {
2589
+ if (this.multiple && typeof val === 'string') {
2590
+ return val
2591
+ .split(',')
2592
+ .map(v => v.trim())
2593
+ .filter(v => v.length > 0);
2594
+ }
2595
+ return val;
2596
+ }
2597
+ refreshSlimData() {
2598
+ var _a;
2599
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.setData(this.buildSlimData());
2600
+ }
2601
+ buildSlimData() {
2602
+ const options = this.options.length > 0 ? this.options : this.slottedOptions;
2603
+ const optionGroups = this.optionGroups.length > 0 ? this.optionGroups : this.slottedOptionGroups;
2604
+ return buildSlimData(options, optionGroups, this.placeholder, this.value);
2605
+ }
2606
+ // Reads ds-select-option / ds-select-optgroup light-DOM children (the HTML-only alternative
2607
+ // to the options / optionGroups props) into the same shape those props use.
2608
+ readOptionsFromSlot() {
2609
+ var _a;
2610
+ const slot = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
2611
+ if (!slot)
2612
+ return;
2613
+ const assignedElements = slot.assignedElements({ flatten: true });
2614
+ const optgroups = assignedElements.filter(el => el.tagName.toLowerCase() === 'ds-select-optgroup');
2615
+ if (optgroups.length > 0) {
2616
+ this.slottedOptionGroups = optgroups.map(el => ({
2617
+ label: el.label,
2618
+ options: this.mapSelectOptionElements(Array.from(el.querySelectorAll('ds-select-option'))),
2619
+ }));
2620
+ this.slottedOptions = [];
2621
+ }
2622
+ else {
2623
+ const options = assignedElements.filter(el => el.tagName.toLowerCase() === 'ds-select-option');
2624
+ this.slottedOptions = this.mapSelectOptionElements(options);
2625
+ this.slottedOptionGroups = [];
2626
+ }
2627
+ }
2628
+ mapSelectOptionElements(elements) {
2629
+ return elements.map(el => {
2630
+ var _a, _b;
2631
+ const option = el;
2632
+ return {
2633
+ label: (_b = (_a = option.textContent) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '',
2634
+ value: option.value,
2635
+ disabled: option.disabled,
2636
+ };
2637
+ });
2638
+ }
2639
+ handleAfterChange(newVal) {
2640
+ var _a, _b;
2641
+ const selected = newVal.filter(o => !o.placeholder);
2642
+ if (this.multiple) {
2643
+ const values = selected.map(o => o.value);
2644
+ this.syncFormValue(values);
2645
+ this.value = values;
2646
+ this.dsChange.emit(values);
2647
+ }
2648
+ else {
2649
+ const value = (_b = (_a = selected[0]) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
2650
+ this.syncFormValue(value);
2651
+ this.value = value;
2652
+ this.dsChange.emit(value);
2653
+ raf(() => { var _a; return (_a = this.picker) === null || _a === void 0 ? void 0 : _a.close(); });
2654
+ }
2655
+ }
2656
+ syncFormValue(val) {
2657
+ if (Array.isArray(val)) {
2658
+ const formData = new FormData();
2659
+ val.forEach(v => formData.append(this.name, v));
2660
+ this.internals.setFormValue(formData);
2661
+ }
2662
+ else {
2663
+ this.internals.setFormValue(val);
2664
+ }
2665
+ }
2666
+ syncDisabledState() {
2667
+ var _a;
2668
+ (_a = this.picker) === null || _a === void 0 ? void 0 : _a.setDisabled(this.disabled || this.readonly);
2669
+ }
2670
+ /**
2671
+ * RENDER
2672
+ * ------------------------------------------------------
2673
+ */
2674
+ render() {
2675
+ return (h$1(Field, { key: 'eecfb4cab9d68210135674b01c7df8ee53723d10', disabled: this.disabled, color: this.color, invalid: this.invalid, label: this.label, description: this.description, invalidText: this.invalidText, required: this.required, language: this.language, inputId: this.selectId, onClick: ev => this.dsClick.emit(ev) }, h$1("select", Object.assign({ key: '1531c1c858bcb110bbe450ba662e2c483943039c', name: this.name, multiple: this.multiple, required: this.required, disabled: this.disabled, "aria-hidden": "true", tabindex: -1, ref: el => (this.selectEl = el) }, this.inheritedAttributes)), h$1("div", { key: '291ee9706eae79cfdf4e2fc3f7021f5e1e8fe8d3', id: "popup", class: {
2676
+ 'is-multiple': this.multiple,
2677
+ }, ref: el => (this.popupEl = el) }, h$1("slot", { key: '6599aa56141ef60408922cbdf18e03d44544ec5e', onSlotchange: this.handleSlotChange }))));
2678
+ }
2679
+ static get formAssociated() { return true; }
2680
+ get el() { return getElement(this); }
2681
+ static get watchers() { return {
2682
+ "value": [{
2683
+ "valueChanged": 0
2684
+ }],
2685
+ "disabled": [{
2686
+ "disabledChanged": 0
2687
+ }],
2688
+ "readonly": [{
2689
+ "readonlyChanged": 0
2690
+ }],
2691
+ "options": [{
2692
+ "optionsChanged": 0
2693
+ }],
2694
+ "optionGroups": [{
2695
+ "optionGroupsChanged": 0
2696
+ }]
2697
+ }; }
2698
+ };
2699
+ __decorate([
2700
+ Logger('select'),
2701
+ __metadata("design:type", Function),
2702
+ __metadata("design:paramtypes", [Function]),
2703
+ __metadata("design:returntype", void 0)
2704
+ ], DsSelect.prototype, "createLogger", null);
2705
+ __decorate([
2706
+ Type('string'),
2707
+ __metadata("design:type", String)
2708
+ ], DsSelect.prototype, "name", void 0);
2709
+ __decorate([
2710
+ Type('string'),
2711
+ __metadata("design:type", String)
2712
+ ], DsSelect.prototype, "label", void 0);
2713
+ __decorate([
2714
+ Type('string'),
2715
+ __metadata("design:type", String)
2716
+ ], DsSelect.prototype, "description", void 0);
2717
+ __decorate([
2718
+ OneOf(INPUT_COLORS),
2719
+ __metadata("design:type", String)
2720
+ ], DsSelect.prototype, "color", void 0);
2721
+ __decorate([
2722
+ Type('boolean'),
2723
+ __metadata("design:type", Boolean)
2724
+ ], DsSelect.prototype, "invalid", void 0);
2725
+ __decorate([
2726
+ Type('string'),
2727
+ __metadata("design:type", String)
2728
+ ], DsSelect.prototype, "invalidText", void 0);
2729
+ __decorate([
2730
+ Type('boolean'),
2731
+ __metadata("design:type", Boolean)
2732
+ ], DsSelect.prototype, "required", void 0);
2733
+ __decorate([
2734
+ Type('boolean'),
2735
+ __metadata("design:type", Boolean)
2736
+ ], DsSelect.prototype, "disabled", void 0);
2737
+ __decorate([
2738
+ Type('boolean'),
2739
+ __metadata("design:type", Boolean)
2740
+ ], DsSelect.prototype, "readonly", void 0);
2741
+ __decorate([
2742
+ Type('boolean'),
2743
+ __metadata("design:type", Boolean)
2744
+ ], DsSelect.prototype, "multiple", void 0);
2745
+ __decorate([
2746
+ Type('boolean'),
2747
+ __metadata("design:type", Boolean)
2748
+ ], DsSelect.prototype, "searchable", void 0);
2749
+ __decorate([
2750
+ Type('boolean'),
2751
+ __metadata("design:type", Boolean)
2752
+ ], DsSelect.prototype, "clearable", void 0);
2753
+ __decorate([
2754
+ Type('string'),
2755
+ __metadata("design:type", String)
2756
+ ], DsSelect.prototype, "placeholder", void 0);
2757
+ __decorate([
2758
+ Type('boolean'),
2759
+ __metadata("design:type", Boolean)
2760
+ ], DsSelect.prototype, "autoInvalidOff", void 0);
2761
+ __decorate([
2762
+ ListenToConfig(),
2763
+ __metadata("design:type", Function),
2764
+ __metadata("design:paramtypes", [Object]),
2765
+ __metadata("design:returntype", Promise)
2766
+ ], DsSelect.prototype, "configChanged", null);
2767
+ let SelectIds = 0;
2768
+ DsSelect.style = selectHostCss();
2769
+
2770
+ export { DsSelect as ds_select };