@six-group/ui-library 0.0.0-insider.ad9373a → 0.0.0-insider.af88f91

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 (731) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +7 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  3. package/dist/cjs/{form-control-72186fcc.js → form-control-de259450.js} +2 -2
  4. package/dist/cjs/{form-control-72186fcc.js.map → form-control-de259450.js.map} +1 -1
  5. package/dist/cjs/{index-5dd19c4b.js → index-1f707a55.js} +76 -44
  6. package/dist/cjs/index-1f707a55.js.map +1 -0
  7. package/dist/cjs/index.cjs.js +54 -1
  8. package/dist/cjs/index.cjs.js.map +1 -1
  9. package/dist/cjs/loader.cjs.js +5 -3
  10. package/dist/cjs/loader.cjs.js.map +1 -1
  11. package/dist/cjs/{modal-3ce015be.js → modal-bd7fc5bc.js} +1 -18
  12. package/dist/cjs/modal-bd7fc5bc.js.map +1 -0
  13. package/dist/cjs/six-alert.cjs.entry.js +42 -9
  14. package/dist/cjs/six-alert.cjs.entry.js.map +1 -1
  15. package/dist/cjs/six-avatar.cjs.entry.js +4 -3
  16. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -1
  17. package/dist/cjs/six-badge.cjs.entry.js +5 -4
  18. package/dist/cjs/six-badge.cjs.entry.js.map +1 -1
  19. package/dist/cjs/six-button.cjs.entry.js +7 -5
  20. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  21. package/dist/cjs/six-card.cjs.entry.js +4 -3
  22. package/dist/cjs/six-card.cjs.entry.js.map +1 -1
  23. package/dist/cjs/six-checkbox_2.cjs.entry.js +11 -9
  24. package/dist/cjs/six-checkbox_2.cjs.entry.js.map +1 -1
  25. package/dist/cjs/six-datepicker.cjs.entry.js +40 -12
  26. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  27. package/dist/cjs/six-details.cjs.entry.js +7 -6
  28. package/dist/cjs/six-details.cjs.entry.js.map +1 -1
  29. package/dist/cjs/six-dialog.cjs.entry.js +14 -30
  30. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -1
  31. package/dist/cjs/six-drawer.cjs.entry.js +13 -30
  32. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  33. package/dist/cjs/six-dropdown_2.cjs.entry.js +17 -13
  34. package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
  35. package/dist/cjs/six-error-page.cjs.entry.js +4 -3
  36. package/dist/cjs/six-error-page.cjs.entry.js.map +1 -1
  37. package/dist/cjs/six-error.cjs.entry.js +5 -4
  38. package/dist/cjs/six-error.cjs.entry.js.map +1 -1
  39. package/dist/cjs/six-file-list-item.cjs.entry.js +6 -5
  40. package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/six-file-list.cjs.entry.js +4 -3
  42. package/dist/cjs/six-file-list.cjs.entry.js.map +1 -1
  43. package/dist/cjs/six-file-upload.cjs.entry.js +32 -9
  44. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
  45. package/dist/cjs/six-footer.cjs.entry.js +4 -3
  46. package/dist/cjs/six-footer.cjs.entry.js.map +1 -1
  47. package/dist/cjs/six-group-label.cjs.entry.js +5 -4
  48. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  49. package/dist/cjs/six-header.cjs.entry.js +24 -16
  50. package/dist/cjs/six-header.cjs.entry.js.map +1 -1
  51. package/dist/cjs/six-icon-button.cjs.entry.js +6 -5
  52. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
  53. package/dist/cjs/six-icon.cjs.entry.js +6 -5
  54. package/dist/cjs/six-icon.cjs.entry.js.map +1 -1
  55. package/dist/cjs/six-input.cjs.entry.js +7 -6
  56. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  57. package/dist/cjs/six-item-picker.cjs.entry.js +6 -5
  58. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -1
  59. package/dist/cjs/six-language-switcher.cjs.entry.js +11 -6
  60. package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -1
  61. package/dist/cjs/six-layout-grid.cjs.entry.js +4 -3
  62. package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -1
  63. package/dist/cjs/six-main-container.cjs.entry.js +4 -3
  64. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -1
  65. package/dist/cjs/six-menu-divider.cjs.entry.js +4 -3
  66. package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -1
  67. package/dist/cjs/six-menu-label.cjs.entry.js +4 -3
  68. package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -1
  69. package/dist/cjs/six-picto.cjs.entry.js +4 -3
  70. package/dist/cjs/six-picto.cjs.entry.js.map +1 -1
  71. package/dist/cjs/six-progress-bar.cjs.entry.js +5 -4
  72. package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -1
  73. package/dist/cjs/six-progress-ring.cjs.entry.js +4 -3
  74. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -1
  75. package/dist/cjs/six-radio.cjs.entry.js +5 -4
  76. package/dist/cjs/six-radio.cjs.entry.js.map +1 -1
  77. package/dist/cjs/six-range.cjs.entry.js +17 -6
  78. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  79. package/dist/cjs/six-root.cjs.entry.js +4 -22
  80. package/dist/cjs/six-root.cjs.entry.js.map +1 -1
  81. package/dist/cjs/six-search-field.cjs.entry.js +4 -3
  82. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -1
  83. package/dist/cjs/six-select.cjs.entry.js +70 -44
  84. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  85. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +4 -3
  86. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  87. package/dist/cjs/six-sidebar-item.cjs.entry.js +5 -4
  88. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -1
  89. package/dist/cjs/six-sidebar.cjs.entry.js +5 -4
  90. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -1
  91. package/dist/cjs/six-spinner.cjs.entry.js +3 -2
  92. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -1
  93. package/dist/cjs/six-stage-indicator.cjs.entry.js +23 -0
  94. package/dist/cjs/six-stage-indicator.cjs.entry.js.map +1 -0
  95. package/dist/cjs/six-switch.cjs.entry.js +6 -5
  96. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  97. package/dist/cjs/six-tab-group.cjs.entry.js +34 -8
  98. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
  99. package/dist/cjs/six-tab-panel.cjs.entry.js +4 -3
  100. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -1
  101. package/dist/cjs/six-tab.cjs.entry.js +5 -4
  102. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  103. package/dist/cjs/six-tag.cjs.entry.js +5 -4
  104. package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
  105. package/dist/cjs/six-textarea.cjs.entry.js +6 -5
  106. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
  107. package/dist/cjs/six-tile.cjs.entry.js +6 -5
  108. package/dist/cjs/six-tile.cjs.entry.js.map +1 -1
  109. package/dist/cjs/six-timepicker.cjs.entry.js +4 -3
  110. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  111. package/dist/cjs/six-tooltip.cjs.entry.js +5 -4
  112. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ui-library.cjs.js +6 -4
  114. package/dist/cjs/ui-library.cjs.js.map +1 -1
  115. package/dist/collection/assets/TRADEMARKS.md +3 -3
  116. package/dist/collection/collection-manifest.json +5 -6
  117. package/dist/collection/components/six-alert/six-alert.css +4 -0
  118. package/dist/collection/components/six-alert/six-alert.js +57 -12
  119. package/dist/collection/components/six-alert/six-alert.js.map +1 -1
  120. package/dist/collection/components/six-avatar/six-avatar.js +1 -1
  121. package/dist/collection/components/six-avatar/six-avatar.js.map +1 -1
  122. package/dist/collection/components/six-badge/six-badge.js +2 -2
  123. package/dist/collection/components/six-badge/six-badge.js.map +1 -1
  124. package/dist/collection/components/six-button/six-button.css +18 -0
  125. package/dist/collection/components/six-button/six-button.js +5 -4
  126. package/dist/collection/components/six-button/six-button.js.map +1 -1
  127. package/dist/collection/components/six-button/test/six-button.spec.js.map +1 -1
  128. package/dist/collection/components/six-card/six-card.js +1 -1
  129. package/dist/collection/components/six-card/six-card.js.map +1 -1
  130. package/dist/collection/components/six-checkbox/six-checkbox.css +2 -0
  131. package/dist/collection/components/six-checkbox/six-checkbox.js +2 -2
  132. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
  133. package/dist/collection/components/six-datepicker/six-datepicker.js +14 -12
  134. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  135. package/dist/collection/components/six-details/six-details.css +0 -4
  136. package/dist/collection/components/six-details/six-details.js +3 -3
  137. package/dist/collection/components/six-details/six-details.js.map +1 -1
  138. package/dist/collection/components/six-dialog/six-dialog.js +10 -28
  139. package/dist/collection/components/six-dialog/six-dialog.js.map +1 -1
  140. package/dist/collection/components/six-drawer/six-drawer.js +9 -28
  141. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
  142. package/dist/collection/components/six-dropdown/six-dropdown.js +10 -8
  143. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -1
  144. package/dist/collection/components/six-error/six-error.css +1 -0
  145. package/dist/collection/components/six-error/six-error.js +1 -1
  146. package/dist/collection/components/six-error/six-error.js.map +1 -1
  147. package/dist/collection/components/six-error-page/six-error-page.js +1 -1
  148. package/dist/collection/components/six-error-page/six-error-page.js.map +1 -1
  149. package/dist/collection/components/six-file-list/six-file-list.js +1 -1
  150. package/dist/collection/components/six-file-list/six-file-list.js.map +1 -1
  151. package/dist/collection/components/six-file-list-item/six-file-list-item.css +1 -1
  152. package/dist/collection/components/six-file-list-item/six-file-list-item.js +2 -2
  153. package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -1
  154. package/dist/collection/components/six-file-upload/six-file-upload.css +11 -0
  155. package/dist/collection/components/six-file-upload/six-file-upload.js +85 -7
  156. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -1
  157. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js +187 -24
  158. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js.map +1 -1
  159. package/dist/collection/components/six-footer/six-footer.js +1 -1
  160. package/dist/collection/components/six-footer/six-footer.js.map +1 -1
  161. package/dist/collection/components/six-group-label/six-group-label.js +1 -1
  162. package/dist/collection/components/six-group-label/six-group-label.js.map +1 -1
  163. package/dist/collection/components/six-header/six-header.css +9 -0
  164. package/dist/collection/components/six-header/six-header.js +38 -13
  165. package/dist/collection/components/six-header/six-header.js.map +1 -1
  166. package/dist/collection/components/six-icon/six-icon.css +2 -6
  167. package/dist/collection/components/six-icon/six-icon.js +2 -2
  168. package/dist/collection/components/six-icon/six-icon.js.map +1 -1
  169. package/dist/collection/components/six-icon-button/six-icon-button.js +3 -3
  170. package/dist/collection/components/six-icon-button/six-icon-button.js.map +1 -1
  171. package/dist/collection/components/six-input/six-input.js +3 -3
  172. package/dist/collection/components/six-input/six-input.js.map +1 -1
  173. package/dist/collection/components/six-item-picker/six-item-picker.js +3 -3
  174. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -1
  175. package/dist/collection/components/six-language-switcher/six-language-switcher.css +7 -2
  176. package/dist/collection/components/six-language-switcher/six-language-switcher.js +7 -3
  177. package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -1
  178. package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js +20 -20
  179. package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js.map +1 -1
  180. package/dist/collection/components/six-layout-grid/six-layout-grid.js +1 -1
  181. package/dist/collection/components/six-layout-grid/six-layout-grid.js.map +1 -1
  182. package/dist/collection/components/six-main-container/six-main-container.js +1 -1
  183. package/dist/collection/components/six-main-container/six-main-container.js.map +1 -1
  184. package/dist/collection/components/six-menu/six-menu.js +2 -2
  185. package/dist/collection/components/six-menu/six-menu.js.map +1 -1
  186. package/dist/collection/components/six-menu/test/six-menu.spec.js.map +1 -1
  187. package/dist/collection/components/six-menu-divider/six-menu-divider.js +1 -1
  188. package/dist/collection/components/six-menu-divider/six-menu-divider.js.map +1 -1
  189. package/dist/collection/components/six-menu-item/six-menu-item.js +2 -2
  190. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -1
  191. package/dist/collection/components/six-menu-label/six-menu-label.js +1 -1
  192. package/dist/collection/components/six-menu-label/six-menu-label.js.map +1 -1
  193. package/dist/collection/components/six-picto/six-picto.js +1 -1
  194. package/dist/collection/components/six-picto/six-picto.js.map +1 -1
  195. package/dist/collection/components/six-progress-bar/six-progress-bar.js +2 -2
  196. package/dist/collection/components/six-progress-bar/six-progress-bar.js.map +1 -1
  197. package/dist/collection/components/six-progress-ring/six-progress-ring.js +1 -1
  198. package/dist/collection/components/six-progress-ring/six-progress-ring.js.map +1 -1
  199. package/dist/collection/components/six-radio/six-radio.js +2 -2
  200. package/dist/collection/components/six-radio/six-radio.js.map +1 -1
  201. package/dist/collection/components/six-range/six-range.css +1 -1
  202. package/dist/collection/components/six-range/six-range.js +12 -2
  203. package/dist/collection/components/six-range/six-range.js.map +1 -1
  204. package/dist/collection/components/six-root/six-root.js +1 -69
  205. package/dist/collection/components/six-root/six-root.js.map +1 -1
  206. package/dist/collection/components/six-root/test/six-root.spec.js +0 -7
  207. package/dist/collection/components/six-root/test/six-root.spec.js.map +1 -1
  208. package/dist/collection/components/six-search-field/six-search-field.js +1 -1
  209. package/dist/collection/components/six-search-field/six-search-field.js.map +1 -1
  210. package/dist/collection/components/six-select/six-select.js +33 -41
  211. package/dist/collection/components/six-select/six-select.js.map +1 -1
  212. package/dist/collection/components/six-select/test/util.spec.js +23 -1
  213. package/dist/collection/components/six-select/test/util.spec.js.map +1 -1
  214. package/dist/collection/components/six-select/util.js +24 -0
  215. package/dist/collection/components/six-select/util.js.map +1 -1
  216. package/dist/collection/components/six-sidebar/six-sidebar.js +2 -2
  217. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -1
  218. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +2 -2
  219. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -1
  220. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.css +1 -0
  221. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -1
  222. package/dist/collection/components/six-switch/six-switch.js +2 -2
  223. package/dist/collection/components/six-switch/six-switch.js.map +1 -1
  224. package/dist/collection/components/six-tab/six-tab.js +2 -2
  225. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  226. package/dist/collection/components/six-tab-group/six-tab-group.js +33 -7
  227. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
  228. package/dist/collection/components/six-tab-panel/six-tab-panel.js +1 -1
  229. package/dist/collection/components/six-tab-panel/six-tab-panel.js.map +1 -1
  230. package/dist/collection/components/six-tag/six-tag.js +2 -2
  231. package/dist/collection/components/six-tag/six-tag.js.map +1 -1
  232. package/dist/collection/components/six-textarea/six-textarea.js +2 -2
  233. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -1
  234. package/dist/collection/components/six-textarea/test/six-textarea.spec.js.map +1 -1
  235. package/dist/collection/components/six-tile/six-tile.js +3 -3
  236. package/dist/collection/components/six-tile/six-tile.js.map +1 -1
  237. package/dist/collection/components/six-timepicker/six-timepicker.js +1 -1
  238. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  239. package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js.map +1 -1
  240. package/dist/collection/components/six-tooltip/six-tooltip.js +2 -2
  241. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -1
  242. package/dist/collection/index.js +1 -0
  243. package/dist/collection/index.js.map +1 -1
  244. package/dist/collection/utils/alert.js +54 -0
  245. package/dist/collection/utils/alert.js.map +1 -0
  246. package/dist/collection/utils/date-util.js +25 -0
  247. package/dist/collection/utils/date-util.js.map +1 -1
  248. package/dist/collection/utils/date-util.spec.js.map +1 -1
  249. package/dist/collection/utils/error-messages.js.map +1 -1
  250. package/dist/collection/utils/event-listeners.js.map +1 -1
  251. package/dist/collection/utils/focus-visible.js.map +1 -1
  252. package/dist/collection/utils/form.js.map +1 -1
  253. package/dist/collection/utils/modal.js.map +1 -1
  254. package/dist/collection/utils/popover.js.map +1 -1
  255. package/dist/collection/utils/popup.js.map +1 -1
  256. package/dist/collection/utils/scroll.js.map +1 -1
  257. package/dist/collection/utils/slot.js.map +1 -1
  258. package/dist/collection/utils/tabbable.js.map +1 -1
  259. package/dist/collection/utils/time.util.js.map +1 -1
  260. package/dist/collection/utils/time.util.spec.js.map +1 -1
  261. package/dist/components/index.js +55 -3
  262. package/dist/components/index.js.map +1 -1
  263. package/dist/components/modal.js +1 -17
  264. package/dist/components/modal.js.map +1 -1
  265. package/dist/components/six-alert.js +41 -8
  266. package/dist/components/six-alert.js.map +1 -1
  267. package/dist/components/six-avatar.js +3 -2
  268. package/dist/components/six-avatar.js.map +1 -1
  269. package/dist/components/six-badge.js +4 -3
  270. package/dist/components/six-badge.js.map +1 -1
  271. package/dist/components/six-button2.js +6 -4
  272. package/dist/components/six-button2.js.map +1 -1
  273. package/dist/components/six-card.js +3 -2
  274. package/dist/components/six-card.js.map +1 -1
  275. package/dist/components/six-checkbox2.js +5 -4
  276. package/dist/components/six-checkbox2.js.map +1 -1
  277. package/dist/components/six-datepicker.js +39 -11
  278. package/dist/components/six-datepicker.js.map +1 -1
  279. package/dist/components/six-details2.js +6 -5
  280. package/dist/components/six-details2.js.map +1 -1
  281. package/dist/components/six-dialog.js +13 -29
  282. package/dist/components/six-dialog.js.map +1 -1
  283. package/dist/components/six-drawer.js +12 -29
  284. package/dist/components/six-drawer.js.map +1 -1
  285. package/dist/components/six-dropdown2.js +12 -9
  286. package/dist/components/six-dropdown2.js.map +1 -1
  287. package/dist/components/six-error-page.js +3 -2
  288. package/dist/components/six-error-page.js.map +1 -1
  289. package/dist/components/six-error2.js +4 -3
  290. package/dist/components/six-error2.js.map +1 -1
  291. package/dist/components/six-file-list-item.js +5 -4
  292. package/dist/components/six-file-list-item.js.map +1 -1
  293. package/dist/components/six-file-list.js +3 -2
  294. package/dist/components/six-file-list.js.map +1 -1
  295. package/dist/components/six-file-upload.js +51 -12
  296. package/dist/components/six-file-upload.js.map +1 -1
  297. package/dist/components/six-footer.js +3 -2
  298. package/dist/components/six-footer.js.map +1 -1
  299. package/dist/components/six-group-label.js +3 -2
  300. package/dist/components/six-group-label.js.map +1 -1
  301. package/dist/components/six-header.js +24 -15
  302. package/dist/components/six-header.js.map +1 -1
  303. package/dist/components/six-icon-button2.js +5 -4
  304. package/dist/components/six-icon-button2.js.map +1 -1
  305. package/dist/components/six-icon2.js +5 -4
  306. package/dist/components/six-icon2.js.map +1 -1
  307. package/dist/components/six-input2.js +5 -4
  308. package/dist/components/six-input2.js.map +1 -1
  309. package/dist/components/six-item-picker2.js +5 -4
  310. package/dist/components/six-item-picker2.js.map +1 -1
  311. package/dist/components/six-language-switcher.js +10 -5
  312. package/dist/components/six-language-switcher.js.map +1 -1
  313. package/dist/components/six-layout-grid.js +3 -2
  314. package/dist/components/six-layout-grid.js.map +1 -1
  315. package/dist/components/six-main-container.js +3 -2
  316. package/dist/components/six-main-container.js.map +1 -1
  317. package/dist/components/six-menu-divider.js +3 -2
  318. package/dist/components/six-menu-divider.js.map +1 -1
  319. package/dist/components/six-menu-item2.js +4 -3
  320. package/dist/components/six-menu-item2.js.map +1 -1
  321. package/dist/components/six-menu-label.js +3 -2
  322. package/dist/components/six-menu-label.js.map +1 -1
  323. package/dist/components/six-menu2.js +4 -3
  324. package/dist/components/six-menu2.js.map +1 -1
  325. package/dist/components/six-picto2.js +3 -2
  326. package/dist/components/six-picto2.js.map +1 -1
  327. package/dist/components/six-progress-bar.js +4 -3
  328. package/dist/components/six-progress-bar.js.map +1 -1
  329. package/dist/components/six-progress-ring.js +3 -2
  330. package/dist/components/six-progress-ring.js.map +1 -1
  331. package/dist/components/six-radio.js +4 -3
  332. package/dist/components/six-radio.js.map +1 -1
  333. package/dist/components/six-range.js +15 -4
  334. package/dist/components/six-range.js.map +1 -1
  335. package/dist/components/six-root.js +6 -34
  336. package/dist/components/six-root.js.map +1 -1
  337. package/dist/components/six-search-field.js +3 -2
  338. package/dist/components/six-search-field.js.map +1 -1
  339. package/dist/components/six-select.js +68 -42
  340. package/dist/components/six-select.js.map +1 -1
  341. package/dist/components/six-sidebar-item-group.js +3 -2
  342. package/dist/components/six-sidebar-item-group.js.map +1 -1
  343. package/dist/components/six-sidebar-item.js +4 -3
  344. package/dist/components/six-sidebar-item.js.map +1 -1
  345. package/dist/components/six-sidebar.js +4 -3
  346. package/dist/components/six-sidebar.js.map +1 -1
  347. package/dist/components/six-spinner2.js +2 -1
  348. package/dist/components/six-spinner2.js.map +1 -1
  349. package/dist/components/six-stage-indicator2.js +2 -1
  350. package/dist/components/six-stage-indicator2.js.map +1 -1
  351. package/dist/components/six-switch.js +4 -3
  352. package/dist/components/six-switch.js.map +1 -1
  353. package/dist/components/six-tab-group.js +35 -8
  354. package/dist/components/six-tab-group.js.map +1 -1
  355. package/dist/components/six-tab-panel.js +3 -2
  356. package/dist/components/six-tab-panel.js.map +1 -1
  357. package/dist/components/six-tab.js +4 -3
  358. package/dist/components/six-tab.js.map +1 -1
  359. package/dist/components/six-tag.js +4 -3
  360. package/dist/components/six-tag.js.map +1 -1
  361. package/dist/components/six-textarea.js +4 -3
  362. package/dist/components/six-textarea.js.map +1 -1
  363. package/dist/components/six-tile.js +5 -4
  364. package/dist/components/six-tile.js.map +1 -1
  365. package/dist/components/six-timepicker2.js +3 -2
  366. package/dist/components/six-timepicker2.js.map +1 -1
  367. package/dist/components/six-tooltip2.js +4 -3
  368. package/dist/components/six-tooltip2.js.map +1 -1
  369. package/dist/components.json +190 -129
  370. package/dist/esm/app-globals-0f993ce5.js +5 -0
  371. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  372. package/dist/esm/{form-control-77fcccd0.js → form-control-30c5bd8b.js} +2 -2
  373. package/dist/esm/{form-control-77fcccd0.js.map → form-control-30c5bd8b.js.map} +1 -1
  374. package/dist/esm/{index-6c10d50b.js → index-5390c1d6.js} +76 -44
  375. package/dist/esm/index-5390c1d6.js.map +1 -0
  376. package/dist/esm/index.js +56 -0
  377. package/dist/esm/index.js.map +1 -1
  378. package/dist/esm/loader.js +6 -4
  379. package/dist/esm/loader.js.map +1 -1
  380. package/dist/esm/{modal-96526245.js → modal-6c1288e3.js} +2 -18
  381. package/dist/esm/modal-6c1288e3.js.map +1 -0
  382. package/dist/esm/six-alert.entry.js +42 -9
  383. package/dist/esm/six-alert.entry.js.map +1 -1
  384. package/dist/esm/six-avatar.entry.js +4 -3
  385. package/dist/esm/six-avatar.entry.js.map +1 -1
  386. package/dist/esm/six-badge.entry.js +5 -4
  387. package/dist/esm/six-badge.entry.js.map +1 -1
  388. package/dist/esm/six-button.entry.js +7 -5
  389. package/dist/esm/six-button.entry.js.map +1 -1
  390. package/dist/esm/six-card.entry.js +4 -3
  391. package/dist/esm/six-card.entry.js.map +1 -1
  392. package/dist/esm/six-checkbox_2.entry.js +11 -9
  393. package/dist/esm/six-checkbox_2.entry.js.map +1 -1
  394. package/dist/esm/six-datepicker.entry.js +40 -12
  395. package/dist/esm/six-datepicker.entry.js.map +1 -1
  396. package/dist/esm/six-details.entry.js +7 -6
  397. package/dist/esm/six-details.entry.js.map +1 -1
  398. package/dist/esm/six-dialog.entry.js +14 -30
  399. package/dist/esm/six-dialog.entry.js.map +1 -1
  400. package/dist/esm/six-drawer.entry.js +13 -30
  401. package/dist/esm/six-drawer.entry.js.map +1 -1
  402. package/dist/esm/six-dropdown_2.entry.js +17 -13
  403. package/dist/esm/six-dropdown_2.entry.js.map +1 -1
  404. package/dist/esm/six-error-page.entry.js +4 -3
  405. package/dist/esm/six-error-page.entry.js.map +1 -1
  406. package/dist/esm/six-error.entry.js +5 -4
  407. package/dist/esm/six-error.entry.js.map +1 -1
  408. package/dist/esm/six-file-list-item.entry.js +6 -5
  409. package/dist/esm/six-file-list-item.entry.js.map +1 -1
  410. package/dist/esm/six-file-list.entry.js +4 -3
  411. package/dist/esm/six-file-list.entry.js.map +1 -1
  412. package/dist/esm/six-file-upload.entry.js +32 -9
  413. package/dist/esm/six-file-upload.entry.js.map +1 -1
  414. package/dist/esm/six-footer.entry.js +4 -3
  415. package/dist/esm/six-footer.entry.js.map +1 -1
  416. package/dist/esm/six-group-label.entry.js +5 -4
  417. package/dist/esm/six-group-label.entry.js.map +1 -1
  418. package/dist/esm/six-header.entry.js +24 -16
  419. package/dist/esm/six-header.entry.js.map +1 -1
  420. package/dist/esm/six-icon-button.entry.js +6 -5
  421. package/dist/esm/six-icon-button.entry.js.map +1 -1
  422. package/dist/esm/six-icon.entry.js +6 -5
  423. package/dist/esm/six-icon.entry.js.map +1 -1
  424. package/dist/esm/six-input.entry.js +7 -6
  425. package/dist/esm/six-input.entry.js.map +1 -1
  426. package/dist/esm/six-item-picker.entry.js +6 -5
  427. package/dist/esm/six-item-picker.entry.js.map +1 -1
  428. package/dist/esm/six-language-switcher.entry.js +11 -6
  429. package/dist/esm/six-language-switcher.entry.js.map +1 -1
  430. package/dist/esm/six-layout-grid.entry.js +4 -3
  431. package/dist/esm/six-layout-grid.entry.js.map +1 -1
  432. package/dist/esm/six-main-container.entry.js +4 -3
  433. package/dist/esm/six-main-container.entry.js.map +1 -1
  434. package/dist/esm/six-menu-divider.entry.js +4 -3
  435. package/dist/esm/six-menu-divider.entry.js.map +1 -1
  436. package/dist/esm/six-menu-label.entry.js +4 -3
  437. package/dist/esm/six-menu-label.entry.js.map +1 -1
  438. package/dist/esm/six-picto.entry.js +4 -3
  439. package/dist/esm/six-picto.entry.js.map +1 -1
  440. package/dist/esm/six-progress-bar.entry.js +5 -4
  441. package/dist/esm/six-progress-bar.entry.js.map +1 -1
  442. package/dist/esm/six-progress-ring.entry.js +4 -3
  443. package/dist/esm/six-progress-ring.entry.js.map +1 -1
  444. package/dist/esm/six-radio.entry.js +5 -4
  445. package/dist/esm/six-radio.entry.js.map +1 -1
  446. package/dist/esm/six-range.entry.js +17 -6
  447. package/dist/esm/six-range.entry.js.map +1 -1
  448. package/dist/esm/six-root.entry.js +4 -22
  449. package/dist/esm/six-root.entry.js.map +1 -1
  450. package/dist/esm/six-search-field.entry.js +4 -3
  451. package/dist/esm/six-search-field.entry.js.map +1 -1
  452. package/dist/esm/six-select.entry.js +70 -44
  453. package/dist/esm/six-select.entry.js.map +1 -1
  454. package/dist/esm/six-sidebar-item-group.entry.js +4 -3
  455. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  456. package/dist/esm/six-sidebar-item.entry.js +5 -4
  457. package/dist/esm/six-sidebar-item.entry.js.map +1 -1
  458. package/dist/esm/six-sidebar.entry.js +5 -4
  459. package/dist/esm/six-sidebar.entry.js.map +1 -1
  460. package/dist/esm/six-spinner.entry.js +3 -2
  461. package/dist/esm/six-spinner.entry.js.map +1 -1
  462. package/dist/esm/six-stage-indicator.entry.js +19 -0
  463. package/dist/esm/six-stage-indicator.entry.js.map +1 -0
  464. package/dist/esm/six-switch.entry.js +6 -5
  465. package/dist/esm/six-switch.entry.js.map +1 -1
  466. package/dist/esm/six-tab-group.entry.js +34 -8
  467. package/dist/esm/six-tab-group.entry.js.map +1 -1
  468. package/dist/esm/six-tab-panel.entry.js +4 -3
  469. package/dist/esm/six-tab-panel.entry.js.map +1 -1
  470. package/dist/esm/six-tab.entry.js +5 -4
  471. package/dist/esm/six-tab.entry.js.map +1 -1
  472. package/dist/esm/six-tag.entry.js +5 -4
  473. package/dist/esm/six-tag.entry.js.map +1 -1
  474. package/dist/esm/six-textarea.entry.js +6 -5
  475. package/dist/esm/six-textarea.entry.js.map +1 -1
  476. package/dist/esm/six-tile.entry.js +6 -5
  477. package/dist/esm/six-tile.entry.js.map +1 -1
  478. package/dist/esm/six-timepicker.entry.js +4 -3
  479. package/dist/esm/six-timepicker.entry.js.map +1 -1
  480. package/dist/esm/six-tooltip.entry.js +5 -4
  481. package/dist/esm/six-tooltip.entry.js.map +1 -1
  482. package/dist/esm/ui-library.js +7 -5
  483. package/dist/esm/ui-library.js.map +1 -1
  484. package/dist/types/components/six-alert/six-alert.d.ts +13 -6
  485. package/dist/types/components/six-button/six-button.d.ts +1 -1
  486. package/dist/types/components/six-datepicker/six-datepicker.d.ts +1 -1
  487. package/dist/types/components/six-dialog/six-dialog.d.ts +1 -0
  488. package/dist/types/components/six-file-upload/six-file-upload.d.ts +10 -0
  489. package/dist/types/components/six-header/six-header.d.ts +3 -1
  490. package/dist/types/components/six-range/six-range.d.ts +2 -0
  491. package/dist/types/components/six-root/six-root.d.ts +0 -13
  492. package/dist/types/components/six-select/six-select.d.ts +0 -2
  493. package/dist/types/components/six-select/util.d.ts +2 -0
  494. package/dist/types/components/six-tab-group/six-tab-group.d.ts +4 -1
  495. package/dist/types/components.d.ts +58 -59
  496. package/dist/types/index.d.ts +1 -0
  497. package/dist/types/types.d.ts +1 -0
  498. package/dist/types/utils/alert.d.ts +10 -0
  499. package/dist/types/utils/date-util.d.ts +9 -1
  500. package/dist/ui-library/assets/TRADEMARKS.md +3 -3
  501. package/dist/ui-library/index.esm.js +1 -1
  502. package/dist/ui-library/index.esm.js.map +1 -1
  503. package/dist/ui-library/p-030fa1fa.entry.js +2 -0
  504. package/dist/ui-library/p-030fa1fa.entry.js.map +1 -0
  505. package/dist/ui-library/p-037afc74.entry.js +2 -0
  506. package/dist/ui-library/p-037afc74.entry.js.map +1 -0
  507. package/dist/ui-library/{p-2cd674e0.entry.js → p-03d1b956.entry.js} +2 -2
  508. package/dist/ui-library/p-03d1b956.entry.js.map +1 -0
  509. package/dist/ui-library/p-047d02ad.entry.js +2 -0
  510. package/dist/ui-library/p-047d02ad.entry.js.map +1 -0
  511. package/dist/ui-library/p-05eb1bab.js +3 -0
  512. package/dist/ui-library/p-05eb1bab.js.map +1 -0
  513. package/dist/ui-library/{p-1431a2a8.entry.js → p-060069d4.entry.js} +2 -2
  514. package/dist/ui-library/p-060069d4.entry.js.map +1 -0
  515. package/dist/ui-library/p-06ba653e.entry.js +2 -0
  516. package/dist/ui-library/p-06ba653e.entry.js.map +1 -0
  517. package/dist/ui-library/p-07c8de65.entry.js +2 -0
  518. package/dist/ui-library/p-07c8de65.entry.js.map +1 -0
  519. package/dist/ui-library/p-14e5fccc.entry.js +2 -0
  520. package/dist/ui-library/p-14e5fccc.entry.js.map +1 -0
  521. package/dist/ui-library/p-189602e4.entry.js +2 -0
  522. package/dist/ui-library/p-189602e4.entry.js.map +1 -0
  523. package/dist/ui-library/p-19560508.entry.js +2 -0
  524. package/dist/ui-library/p-19560508.entry.js.map +1 -0
  525. package/dist/ui-library/{p-a036cc6f.entry.js → p-2386627e.entry.js} +2 -2
  526. package/dist/ui-library/p-2386627e.entry.js.map +1 -0
  527. package/dist/ui-library/p-32e421a3.entry.js +2 -0
  528. package/dist/ui-library/p-32e421a3.entry.js.map +1 -0
  529. package/dist/ui-library/p-3603dd96.entry.js +2 -0
  530. package/dist/ui-library/p-3603dd96.entry.js.map +1 -0
  531. package/dist/ui-library/p-39ff5f61.entry.js +2 -0
  532. package/dist/ui-library/p-39ff5f61.entry.js.map +1 -0
  533. package/dist/ui-library/{p-1b135e1c.entry.js → p-3b5a76ea.entry.js} +2 -2
  534. package/dist/ui-library/p-3b5a76ea.entry.js.map +1 -0
  535. package/dist/ui-library/p-419ed003.entry.js +2 -0
  536. package/dist/ui-library/p-419ed003.entry.js.map +1 -0
  537. package/dist/ui-library/p-45003bae.entry.js +2 -0
  538. package/dist/ui-library/p-45003bae.entry.js.map +1 -0
  539. package/dist/ui-library/{p-88767c27.entry.js → p-4963f03c.entry.js} +2 -2
  540. package/dist/ui-library/p-4963f03c.entry.js.map +1 -0
  541. package/dist/ui-library/p-4d89932f.entry.js +2 -0
  542. package/dist/ui-library/p-4d89932f.entry.js.map +1 -0
  543. package/dist/ui-library/{p-67496e8c.js → p-605bdd81.js} +2 -2
  544. package/dist/ui-library/p-63acceb6.entry.js +2 -0
  545. package/dist/ui-library/p-63acceb6.entry.js.map +1 -0
  546. package/dist/ui-library/p-651293e7.js +2 -0
  547. package/dist/ui-library/p-651293e7.js.map +1 -0
  548. package/dist/ui-library/p-6888b9ee.entry.js +2 -0
  549. package/dist/ui-library/p-6888b9ee.entry.js.map +1 -0
  550. package/dist/ui-library/{p-4a3ba956.entry.js → p-6f9153be.entry.js} +2 -2
  551. package/dist/ui-library/p-6f9153be.entry.js.map +1 -0
  552. package/dist/ui-library/p-7561b336.entry.js +2 -0
  553. package/dist/ui-library/p-7561b336.entry.js.map +1 -0
  554. package/dist/ui-library/p-785810fa.entry.js +2 -0
  555. package/dist/ui-library/p-785810fa.entry.js.map +1 -0
  556. package/dist/ui-library/p-7c18b8ca.entry.js +2 -0
  557. package/dist/ui-library/p-7c18b8ca.entry.js.map +1 -0
  558. package/dist/ui-library/p-82bd8781.entry.js +2 -0
  559. package/dist/ui-library/p-82bd8781.entry.js.map +1 -0
  560. package/dist/ui-library/p-89db9a8b.entry.js +2 -0
  561. package/dist/ui-library/p-89db9a8b.entry.js.map +1 -0
  562. package/dist/ui-library/{p-831517cd.entry.js → p-8f1d3461.entry.js} +2 -2
  563. package/dist/ui-library/p-8f1d3461.entry.js.map +1 -0
  564. package/dist/ui-library/p-8fb96142.entry.js +2 -0
  565. package/dist/ui-library/p-8fb96142.entry.js.map +1 -0
  566. package/dist/ui-library/p-96d441e9.entry.js +2 -0
  567. package/dist/ui-library/p-96d441e9.entry.js.map +1 -0
  568. package/dist/ui-library/{p-e340a0ad.entry.js → p-9bc1639b.entry.js} +2 -2
  569. package/dist/ui-library/p-9bc1639b.entry.js.map +1 -0
  570. package/dist/ui-library/p-9cb83369.entry.js +2 -0
  571. package/dist/ui-library/p-9cb83369.entry.js.map +1 -0
  572. package/dist/ui-library/p-a398e3eb.entry.js +2 -0
  573. package/dist/ui-library/p-a398e3eb.entry.js.map +1 -0
  574. package/dist/ui-library/p-a7e2f511.entry.js +2 -0
  575. package/dist/ui-library/p-a7e2f511.entry.js.map +1 -0
  576. package/dist/ui-library/{p-d702b6ec.entry.js → p-a8863197.entry.js} +2 -2
  577. package/dist/ui-library/p-a8863197.entry.js.map +1 -0
  578. package/dist/ui-library/p-a9e009af.entry.js +2 -0
  579. package/dist/ui-library/p-a9e009af.entry.js.map +1 -0
  580. package/dist/ui-library/p-ab921403.entry.js +2 -0
  581. package/dist/ui-library/p-ab921403.entry.js.map +1 -0
  582. package/dist/ui-library/{p-2132da0a.entry.js → p-ac00076d.entry.js} +2 -2
  583. package/dist/ui-library/p-ac00076d.entry.js.map +1 -0
  584. package/dist/ui-library/p-b4bc4915.entry.js +2 -0
  585. package/dist/ui-library/p-b4bc4915.entry.js.map +1 -0
  586. package/dist/ui-library/p-b5acf54d.entry.js +2 -0
  587. package/dist/ui-library/p-b5acf54d.entry.js.map +1 -0
  588. package/dist/ui-library/p-b60c20aa.entry.js +2 -0
  589. package/dist/ui-library/p-b60c20aa.entry.js.map +1 -0
  590. package/dist/ui-library/p-c1d68730.entry.js +2 -0
  591. package/dist/ui-library/p-c1d68730.entry.js.map +1 -0
  592. package/dist/ui-library/p-c35a7cef.entry.js +2 -0
  593. package/dist/ui-library/p-c35a7cef.entry.js.map +1 -0
  594. package/dist/ui-library/p-c62893e5.entry.js +2 -0
  595. package/dist/ui-library/p-c62893e5.entry.js.map +1 -0
  596. package/dist/ui-library/p-c6464bfe.entry.js +2 -0
  597. package/dist/ui-library/p-c6464bfe.entry.js.map +1 -0
  598. package/dist/ui-library/{p-8c38a7bd.entry.js → p-cf109cbf.entry.js} +2 -2
  599. package/dist/ui-library/p-cf109cbf.entry.js.map +1 -0
  600. package/dist/ui-library/p-d07b549f.entry.js +2 -0
  601. package/dist/ui-library/p-d07b549f.entry.js.map +1 -0
  602. package/dist/ui-library/{p-021f6da9.entry.js → p-d42f1ea9.entry.js} +2 -2
  603. package/dist/ui-library/p-d42f1ea9.entry.js.map +1 -0
  604. package/dist/ui-library/p-e1255160.js +2 -0
  605. package/dist/ui-library/p-e1255160.js.map +1 -0
  606. package/dist/ui-library/p-fe37dadf.entry.js +2 -0
  607. package/dist/ui-library/p-fe37dadf.entry.js.map +1 -0
  608. package/dist/ui-library/p-fe89a7c4.entry.js +2 -0
  609. package/dist/ui-library/p-fe89a7c4.entry.js.map +1 -0
  610. package/dist/ui-library/ui-library.css +1 -1
  611. package/dist/ui-library/ui-library.esm.js +1 -1
  612. package/dist/ui-library/ui-library.esm.js.map +1 -1
  613. package/package.json +6 -6
  614. package/dist/cjs/index-5dd19c4b.js.map +0 -1
  615. package/dist/cjs/modal-3ce015be.js.map +0 -1
  616. package/dist/cjs/set-attributes_2.cjs.entry.js +0 -73
  617. package/dist/cjs/set-attributes_2.cjs.entry.js.map +0 -1
  618. package/dist/collection/components/six-header/assets/six-logo.svg +0 -1
  619. package/dist/collection/components/six-header/test/six-header.spec.js +0 -177
  620. package/dist/collection/components/six-header/test/six-header.spec.js.map +0 -1
  621. package/dist/collection/utils/support.js +0 -16
  622. package/dist/collection/utils/support.js.map +0 -1
  623. package/dist/collection/wrappers/set-attributes/set-attributes.js +0 -74
  624. package/dist/collection/wrappers/set-attributes/set-attributes.js.map +0 -1
  625. package/dist/collection/wrappers/set-attributes/test/set-attributes.spec.js +0 -16
  626. package/dist/collection/wrappers/set-attributes/test/set-attributes.spec.js.map +0 -1
  627. package/dist/components/set-attributes.d.ts +0 -11
  628. package/dist/components/set-attributes.js +0 -8
  629. package/dist/components/set-attributes.js.map +0 -1
  630. package/dist/components/set-attributes2.js +0 -73
  631. package/dist/components/set-attributes2.js.map +0 -1
  632. package/dist/esm/index-6c10d50b.js.map +0 -1
  633. package/dist/esm/modal-96526245.js.map +0 -1
  634. package/dist/esm/set-attributes_2.entry.js +0 -68
  635. package/dist/esm/set-attributes_2.entry.js.map +0 -1
  636. package/dist/types/utils/support.d.ts +0 -1
  637. package/dist/types/wrappers/set-attributes/set-attributes.d.ts +0 -9
  638. package/dist/ui-library/assets/six-logo.svg +0 -1
  639. package/dist/ui-library/p-01ae4500.entry.js +0 -2
  640. package/dist/ui-library/p-01ae4500.entry.js.map +0 -1
  641. package/dist/ui-library/p-021f6da9.entry.js.map +0 -1
  642. package/dist/ui-library/p-0274c52c.entry.js +0 -2
  643. package/dist/ui-library/p-0274c52c.entry.js.map +0 -1
  644. package/dist/ui-library/p-0cb135aa.entry.js +0 -2
  645. package/dist/ui-library/p-0cb135aa.entry.js.map +0 -1
  646. package/dist/ui-library/p-1431a2a8.entry.js.map +0 -1
  647. package/dist/ui-library/p-1aa28025.entry.js +0 -2
  648. package/dist/ui-library/p-1aa28025.entry.js.map +0 -1
  649. package/dist/ui-library/p-1b135e1c.entry.js.map +0 -1
  650. package/dist/ui-library/p-1be990f9.entry.js +0 -2
  651. package/dist/ui-library/p-1be990f9.entry.js.map +0 -1
  652. package/dist/ui-library/p-2008636b.entry.js +0 -2
  653. package/dist/ui-library/p-2008636b.entry.js.map +0 -1
  654. package/dist/ui-library/p-2132da0a.entry.js.map +0 -1
  655. package/dist/ui-library/p-2cd674e0.entry.js.map +0 -1
  656. package/dist/ui-library/p-2d86ba99.entry.js +0 -2
  657. package/dist/ui-library/p-2d86ba99.entry.js.map +0 -1
  658. package/dist/ui-library/p-31a4a74c.entry.js +0 -2
  659. package/dist/ui-library/p-31a4a74c.entry.js.map +0 -1
  660. package/dist/ui-library/p-3783aed0.entry.js +0 -2
  661. package/dist/ui-library/p-3783aed0.entry.js.map +0 -1
  662. package/dist/ui-library/p-391f10f1.entry.js +0 -2
  663. package/dist/ui-library/p-391f10f1.entry.js.map +0 -1
  664. package/dist/ui-library/p-3dd28dc0.entry.js +0 -2
  665. package/dist/ui-library/p-3dd28dc0.entry.js.map +0 -1
  666. package/dist/ui-library/p-3f0f59b6.entry.js +0 -2
  667. package/dist/ui-library/p-3f0f59b6.entry.js.map +0 -1
  668. package/dist/ui-library/p-46ee280d.entry.js +0 -2
  669. package/dist/ui-library/p-46ee280d.entry.js.map +0 -1
  670. package/dist/ui-library/p-4752a63c.entry.js +0 -2
  671. package/dist/ui-library/p-4752a63c.entry.js.map +0 -1
  672. package/dist/ui-library/p-4772a9d3.entry.js +0 -2
  673. package/dist/ui-library/p-4772a9d3.entry.js.map +0 -1
  674. package/dist/ui-library/p-48c453f1.entry.js +0 -2
  675. package/dist/ui-library/p-48c453f1.entry.js.map +0 -1
  676. package/dist/ui-library/p-4a3ba956.entry.js.map +0 -1
  677. package/dist/ui-library/p-4b154936.entry.js +0 -2
  678. package/dist/ui-library/p-4b154936.entry.js.map +0 -1
  679. package/dist/ui-library/p-5a5f6869.entry.js +0 -2
  680. package/dist/ui-library/p-5a5f6869.entry.js.map +0 -1
  681. package/dist/ui-library/p-621c2742.entry.js +0 -2
  682. package/dist/ui-library/p-621c2742.entry.js.map +0 -1
  683. package/dist/ui-library/p-65778e3d.entry.js +0 -2
  684. package/dist/ui-library/p-65778e3d.entry.js.map +0 -1
  685. package/dist/ui-library/p-78529c8c.entry.js +0 -2
  686. package/dist/ui-library/p-78529c8c.entry.js.map +0 -1
  687. package/dist/ui-library/p-7eb4bbe7.entry.js +0 -2
  688. package/dist/ui-library/p-7eb4bbe7.entry.js.map +0 -1
  689. package/dist/ui-library/p-831517cd.entry.js.map +0 -1
  690. package/dist/ui-library/p-87e197ee.entry.js +0 -2
  691. package/dist/ui-library/p-87e197ee.entry.js.map +0 -1
  692. package/dist/ui-library/p-88767c27.entry.js.map +0 -1
  693. package/dist/ui-library/p-8c38a7bd.entry.js.map +0 -1
  694. package/dist/ui-library/p-943ce0f2.entry.js +0 -2
  695. package/dist/ui-library/p-943ce0f2.entry.js.map +0 -1
  696. package/dist/ui-library/p-98ce9502.entry.js +0 -2
  697. package/dist/ui-library/p-98ce9502.entry.js.map +0 -1
  698. package/dist/ui-library/p-998de05d.js +0 -2
  699. package/dist/ui-library/p-998de05d.js.map +0 -1
  700. package/dist/ui-library/p-a036cc6f.entry.js.map +0 -1
  701. package/dist/ui-library/p-a29f6a0e.entry.js +0 -2
  702. package/dist/ui-library/p-a29f6a0e.entry.js.map +0 -1
  703. package/dist/ui-library/p-a3fd8c74.entry.js +0 -2
  704. package/dist/ui-library/p-a3fd8c74.entry.js.map +0 -1
  705. package/dist/ui-library/p-a919b557.entry.js +0 -2
  706. package/dist/ui-library/p-a919b557.entry.js.map +0 -1
  707. package/dist/ui-library/p-ace4ec84.entry.js +0 -2
  708. package/dist/ui-library/p-ace4ec84.entry.js.map +0 -1
  709. package/dist/ui-library/p-adf5a4da.entry.js +0 -2
  710. package/dist/ui-library/p-adf5a4da.entry.js.map +0 -1
  711. package/dist/ui-library/p-b5f844f7.entry.js +0 -2
  712. package/dist/ui-library/p-b5f844f7.entry.js.map +0 -1
  713. package/dist/ui-library/p-b8ea574b.entry.js +0 -2
  714. package/dist/ui-library/p-b8ea574b.entry.js.map +0 -1
  715. package/dist/ui-library/p-ca63a6fa.js +0 -3
  716. package/dist/ui-library/p-ca63a6fa.js.map +0 -1
  717. package/dist/ui-library/p-d221d86a.entry.js +0 -2
  718. package/dist/ui-library/p-d221d86a.entry.js.map +0 -1
  719. package/dist/ui-library/p-d702b6ec.entry.js.map +0 -1
  720. package/dist/ui-library/p-db9d2fde.entry.js +0 -2
  721. package/dist/ui-library/p-db9d2fde.entry.js.map +0 -1
  722. package/dist/ui-library/p-e0dd0307.entry.js +0 -2
  723. package/dist/ui-library/p-e0dd0307.entry.js.map +0 -1
  724. package/dist/ui-library/p-e340a0ad.entry.js.map +0 -1
  725. package/dist/ui-library/p-efa14ac2.entry.js +0 -2
  726. package/dist/ui-library/p-efa14ac2.entry.js.map +0 -1
  727. package/dist/ui-library/p-fce214eb.entry.js +0 -2
  728. package/dist/ui-library/p-fce214eb.entry.js.map +0 -1
  729. package/dist/ui-library/p-fe87f64b.entry.js +0 -2
  730. package/dist/ui-library/p-fe87f64b.entry.js.map +0 -1
  731. /package/dist/ui-library/{p-67496e8c.js.map → p-605bdd81.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"six-search-field.js","sourceRoot":"","sources":["../../../src/components/six-search-field/six-search-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAM7D;;;;;GAKG;AAOH,MAAM,OAAO,cAAc;;QAqBjB,mBAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAEtC,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;aACjE;QACH,CAAC,CAAC;;wBAtBkC,qBAAqB;wBAGrB,KAAK;qBAGR,EAAE;yBAGf,KAAK;;IAgBzB,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACtC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;YAAE,OAAO;QAEtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,KAAY,EAAE,EAAE;YACrE,MAAM,aAAa,GAAG,KAAsB,CAAC;YAC7C,IAAI,aAAa,CAAC,GAAG,KAAK,OAAO,EAAE;gBACjC,mBAAmB;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,WAAK,KAAK,EAAC,YAAY;YACrB,iBACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACrC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBAEzB,gBAAU,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,aAElF,CACD;YACZ,eAAQ,CACJ,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, EventEmitter, h, Prop, Watch } from '@stencil/core';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { EventListeners } from '../../utils/event-listeners';\n\nexport interface SixSearchFieldChangePayload {\n value: string;\n}\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the results below the search component.\n */\n\n@Component({\n tag: 'six-search-field',\n styleUrl: 'six-search-field.scss',\n shadow: true,\n})\nexport class SixSearchField {\n /** The input's placeholder text. */\n @Prop() placeholder?: string;\n\n /** Debounce time in milliseconds, default is 300 ms */\n @Prop({ reflect: true }) debounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set to true to disable the input. */\n @Prop({ reflect: true }) disabled = false;\n\n /** The input's value attribute. */\n @Prop({ reflect: true }) value = '';\n\n /** Set to true to add a clear button when the input is populated. */\n @Prop() clearable = false;\n\n /** Emitted when a search is triggered */\n @Event({ eventName: 'six-search-field-change' }) searchFieldChange!: EventEmitter<SixSearchFieldChangePayload>;\n\n private inputElement?: HTMLSixInputElement;\n\n private eventListeners = new EventListeners();\n\n private handleInputChange = () => {\n if (this.inputElement != null) {\n this.searchFieldChange.emit({ value: this.inputElement.value });\n }\n };\n\n @Watch('value')\n handleValueChange() {\n if (this.inputElement != null) {\n this.inputElement.value = this.value;\n }\n }\n\n componentDidLoad() {\n if (this.inputElement == null) return;\n\n this.eventListeners.add(this.inputElement, 'six-input-input', debounce(this.handleInputChange, this.debounce));\n this.eventListeners.add(this.inputElement, 'keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (keyboardEvent.key === 'Enter') {\n // emit immediately\n this.handleInputChange();\n }\n });\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n\n render() {\n return (\n <div class=\"search-box\">\n <six-input\n ref={(el) => (this.inputElement = el)}\n placeholder={this.placeholder}\n value={this.value}\n disabled={this.disabled}\n clearable={this.clearable}\n >\n <six-icon class=\"search-box__icon\" slot=\"prefix\" size=\"small\" onClick={this.handleInputChange}>\n search\n </six-icon>\n </six-input>\n <slot />\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"six-search-field.js","sourceRoot":"","sources":["../../../src/components/six-search-field/six-search-field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAM7D;;;;;GAKG;AAOH,MAAM,OAAO,cAAc;;QAqBjB,mBAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAEtC,sBAAiB,GAAG,GAAG,EAAE;YAC/B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC;;wBAtBkC,qBAAqB;wBAGrB,KAAK;qBAGR,EAAE;yBAGf,KAAK;;IAgBzB,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;YAAE,OAAO;QAEtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,KAAY,EAAE,EAAE;YACrE,MAAM,aAAa,GAAG,KAAsB,CAAC;YAC7C,IAAI,aAAa,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBAClC,mBAAmB;gBACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,4DAAK,KAAK,EAAC,YAAY;YACrB,kEACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC,EACrC,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBAEzB,iEAAU,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,aAElF,CACD;YACZ,8DAAQ,CACJ,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, EventEmitter, h, Prop, Watch } from '@stencil/core';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { EventListeners } from '../../utils/event-listeners';\n\nexport interface SixSearchFieldChangePayload {\n value: string;\n}\n\n/**\n * @since 1.0\n * @status stable\n *\n * @slot - Used to define the results below the search component.\n */\n\n@Component({\n tag: 'six-search-field',\n styleUrl: 'six-search-field.scss',\n shadow: true,\n})\nexport class SixSearchField {\n /** The input's placeholder text. */\n @Prop() placeholder?: string;\n\n /** Debounce time in milliseconds, default is 300 ms */\n @Prop({ reflect: true }) debounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set to true to disable the input. */\n @Prop({ reflect: true }) disabled = false;\n\n /** The input's value attribute. */\n @Prop({ reflect: true }) value = '';\n\n /** Set to true to add a clear button when the input is populated. */\n @Prop() clearable = false;\n\n /** Emitted when a search is triggered */\n @Event({ eventName: 'six-search-field-change' }) searchFieldChange!: EventEmitter<SixSearchFieldChangePayload>;\n\n private inputElement?: HTMLSixInputElement;\n\n private eventListeners = new EventListeners();\n\n private handleInputChange = () => {\n if (this.inputElement != null) {\n this.searchFieldChange.emit({ value: this.inputElement.value });\n }\n };\n\n @Watch('value')\n handleValueChange() {\n if (this.inputElement != null) {\n this.inputElement.value = this.value;\n }\n }\n\n componentDidLoad() {\n if (this.inputElement == null) return;\n\n this.eventListeners.add(this.inputElement, 'six-input-input', debounce(this.handleInputChange, this.debounce));\n this.eventListeners.add(this.inputElement, 'keydown', (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n if (keyboardEvent.key === 'Enter') {\n // emit immediately\n this.handleInputChange();\n }\n });\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n\n render() {\n return (\n <div class=\"search-box\">\n <six-input\n ref={(el) => (this.inputElement = el)}\n placeholder={this.placeholder}\n value={this.value}\n disabled={this.disabled}\n clearable={this.clearable}\n >\n <six-icon class=\"search-box__icon\" slot=\"prefix\" size=\"small\" onClick={this.handleInputChange}>\n search\n </six-icon>\n </six-input>\n <slot />\n </div>\n );\n }\n}\n"]}
@@ -4,6 +4,7 @@ import FormControl from "../../functional-components/form-control/form-control";
4
4
  import { EventListeners } from "../../utils/event-listeners";
5
5
  import { debounce, DEFAULT_DEBOUNCE_FAST } from "../../utils/execution-control";
6
6
  import { getLanguage } from "../../utils/error-messages";
7
+ import { convertToValidArrayValue, convertToValidValue, valueEquals } from "./util";
7
8
  let id = 0;
8
9
  /**
9
10
  * @since 1.0
@@ -138,12 +139,12 @@ export class SixSelect {
138
139
  return;
139
140
  }
140
141
  this.activeItemIndex = -1;
141
- // reset display style of main items
142
- const mainItems = this.getItems();
143
- mainItems.forEach((item) => (item.style.display = 'unset'));
144
- // show selected menu items in the selection container and hide them in the main container
145
- const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);
146
142
  if (!this.virtualScroll && this.multiple) {
143
+ // reset display style of main items
144
+ const mainItems = this.getItems();
145
+ mainItems.forEach((item) => (item.style.display = 'unset'));
146
+ // show selected menu items in the selection container and hide them in the main container
147
+ const checkedItems = getCheckedItems(convertToValidArrayValue(this.value), mainItems);
147
148
  checkedItems.forEach((i) => (i.style.display = 'none'));
148
149
  this.selectionContainerItems = checkedItems.map((item) => {
149
150
  return (h("six-menu-item", { key: item.value, checked: true, value: item.value, checkType: this.multiple ? 'checkbox' : 'check', onClick: (event) => {
@@ -163,6 +164,9 @@ export class SixSelect {
163
164
  };
164
165
  this.handleMenuHide = () => {
165
166
  this.isOpen = false;
167
+ if (this.multiple) {
168
+ this.handleBlur();
169
+ }
166
170
  };
167
171
  this.handleSlotChange = () => {
168
172
  this.hasHelpTextSlot = hasSlot(this.host, 'help-text');
@@ -215,34 +219,37 @@ export class SixSelect {
215
219
  this.handleSlotChange();
216
220
  }
217
221
  handleMultipleChange() {
218
- // Cast to array | string based on `this.multiple`
219
- const value = this.getValueAsArray();
220
- this.value = this.multiple ? value : value[0] || '';
222
+ this.value = convertToValidValue(this.value, this.multiple);
221
223
  this.syncItemsFromValue();
222
224
  }
223
225
  async handleValueChange() {
224
- if (this.multiple && !Array.isArray(this.value)) {
225
- this.value = [];
226
- }
227
- if (!this.multiple && typeof this.value !== 'string') {
228
- this.value = '';
226
+ const newValue = convertToValidValue(this.value, this.multiple);
227
+ if (!valueEquals(this.value, newValue)) {
228
+ this.value = newValue;
229
229
  }
230
230
  await this.syncItemsFromValue();
231
231
  }
232
232
  connectedCallback() {
233
+ var _a;
233
234
  if (this.virtualScroll && this.options === null) {
234
235
  console.error('Options must be defined when using virtual scrolling');
235
236
  }
236
- this.init();
237
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
238
+ this.eventListeners.forward('six-select-change', 'change', this.host);
239
+ this.eventListeners.forward('six-select-blur', 'blur', this.host);
240
+ this.eventListeners.forward('six-select-focus', 'focus', this.host);
241
+ if (this.displayValuesContainer) {
242
+ this.resizeObserver.observe(this.displayValuesContainer);
243
+ }
237
244
  }
238
245
  componentWillLoad() {
246
+ this.value = convertToValidValue(this.value, this.multiple);
239
247
  this.handleSlotChange();
240
- if (this.multiple && this.value != null) {
241
- this.value = this.getValueAsArray();
242
- }
243
248
  }
244
249
  componentDidLoad() {
245
- this.init();
250
+ if (this.displayValuesContainer) {
251
+ this.resizeObserver.observe(this.displayValuesContainer);
252
+ }
246
253
  // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning
247
254
  requestAnimationFrame(() => this.syncItemsFromValue());
248
255
  if (this.autocomplete && this.autocompleteInput != null) {
@@ -267,16 +274,6 @@ export class SixSelect {
267
274
  this.hasFocus = true;
268
275
  (_a = this.box) === null || _a === void 0 ? void 0 : _a.focus(options);
269
276
  }
270
- init() {
271
- var _a;
272
- (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
273
- this.eventListeners.forward('six-select-change', 'change', this.host);
274
- this.eventListeners.forward('six-select-blur', 'blur', this.host);
275
- this.eventListeners.forward('six-select-focus', 'focus', this.host);
276
- if (this.displayValuesContainer) {
277
- this.resizeObserver.observe(this.displayValuesContainer);
278
- }
279
- }
280
277
  getItemLabel(item) {
281
278
  var _a, _b;
282
279
  const slot = (_a = item.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
@@ -303,11 +300,6 @@ export class SixSelect {
303
300
  var _a;
304
301
  return [...(((_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('six-menu-item')) || [])];
305
302
  }
306
- getValueAsArray() {
307
- const values = Array.isArray(this.value) ? this.value : this.value === '' ? [] : [this.value];
308
- // enforce that the values are converted to 'string' before the value is compared
309
- return values.map(String);
310
- }
311
303
  async clearValues() {
312
304
  this.value = this.multiple ? [] : '';
313
305
  this.selectionContainerItems = [];
@@ -327,7 +319,7 @@ export class SixSelect {
327
319
  async syncItemsFromValue() {
328
320
  const selectionContainerItems = this.getSelectionContainerItems();
329
321
  const mainItems = this.getItems();
330
- const value = this.getValueAsArray();
322
+ const value = convertToValidValue(this.value, this.multiple);
331
323
  selectionContainerItems.forEach((item) => {
332
324
  item.checkType = this.multiple ? 'checkbox' : 'check';
333
325
  item.checked = value.includes(item.value);
@@ -336,7 +328,7 @@ export class SixSelect {
336
328
  item.checkType = this.multiple ? 'checkbox' : 'check';
337
329
  item.checked = value.includes(item.value);
338
330
  });
339
- const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);
331
+ const checkedItems = getCheckedItems(convertToValidArrayValue(this.value), mainItems);
340
332
  this.displayedValues = checkedItems.map((i) => this.getItemLabel(i));
341
333
  if (this.autocomplete && this.autocompleteInput != null) {
342
334
  this.autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
@@ -405,7 +397,7 @@ export class SixSelect {
405
397
  showClear = true;
406
398
  showExpand = false;
407
399
  }
408
- return (h(FormControl, { inputId: this.inputId, label: this.label, labelId: this.labelId, hasLabelSlot: this.hasLabelSlot, helpTextId: this.helpTextId, helpText: this.helpText, hasHelpTextSlot: this.hasHelpTextSlot, errorTextId: this.errorTextId, errorText: this.errorText, errorTextCount: this.errorTextCount, hasErrorTextSlot: this.hasErrorTextSlot, size: this.size, onLabelClick: this.handleLabelClick, disabled: this.disabled, required: this.required, displayError: this.invalid }, h("six-dropdown", { part: "base", ref: (el) => (this.dropdown = el), hoist: this.hoist, matchTriggerWidth: true, closeOnSelect: !this.multiple, containingElement: this.host, disableHideOnEnterAndSpace: this.autocomplete, class: {
400
+ return (h(FormControl, { key: '995bb87e0b65e09cc2aea9b9309e03388e9a3013', inputId: this.inputId, label: this.label, labelId: this.labelId, hasLabelSlot: this.hasLabelSlot, helpTextId: this.helpTextId, helpText: this.helpText, hasHelpTextSlot: this.hasHelpTextSlot, errorTextId: this.errorTextId, errorText: this.errorText, errorTextCount: this.errorTextCount, hasErrorTextSlot: this.hasErrorTextSlot, size: this.size, onLabelClick: this.handleLabelClick, disabled: this.disabled, required: this.required, displayError: this.invalid }, h("six-dropdown", { key: '14d641ae28f41c426b51b89d7a4dea1c842c6341', part: "base", ref: (el) => (this.dropdown = el), hoist: this.hoist, matchTriggerWidth: true, closeOnSelect: !this.multiple, containingElement: this.host, disableHideOnEnterAndSpace: this.autocomplete, class: {
409
401
  select: true,
410
402
  'select--open': this.isOpen,
411
403
  'select--empty': ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === 0,
@@ -420,20 +412,20 @@ export class SixSelect {
420
412
  'select--large': this.size === 'large',
421
413
  'select--pill': this.pill,
422
414
  'select--invalid': this.invalid,
423
- }, onKeyDown: this.handleKeyDown, "onSix-dropdown-show": this.handleMenuShow, "onSix-dropdown-hide": this.handleMenuHide, filterPlaceholder: this.filterPlaceholder, filterDebounce: this.filterDebounce, filter: this.filter, asyncFilter: this.asyncFilter, virtualScroll: this.virtualScroll }, h("div", { slot: "trigger", ref: (el) => (this.box = el), id: this.inputId, class: {
415
+ }, onKeyDown: this.handleKeyDown, "onSix-dropdown-show": this.handleMenuShow, "onSix-dropdown-hide": this.handleMenuHide, filterPlaceholder: this.filterPlaceholder, filterDebounce: this.filterDebounce, filter: this.filter, asyncFilter: this.asyncFilter, virtualScroll: this.virtualScroll }, h("div", { key: 'ea452a8196bc7ffc8fbc3ec98298b13a2bdaa0b2', slot: "trigger", ref: (el) => (this.box = el), id: this.inputId, class: {
424
416
  select__box: true,
425
417
  'select__box--line': this.line,
426
418
  'select__box--autocomplete': this.autocomplete,
427
- }, role: "combobox", "aria-labelledby": this.labelId, "aria-describedby": this.helpTextId, "aria-haspopup": "true", "aria-expanded": this.isOpen ? 'true' : 'false', tabIndex: this.disabled ? -1 : 0, onBlur: this.handleBlur, onFocus: this.handleFocus }, h("div", { class: "display__values", ref: (el) => (this.displayValuesContainer = el) }, this.displayedValues.length > 0 ? (h("span", { class: "display__values-and-counter" }, h("span", { class: "display__values-values" }, this.displayedValues.map((value) => (h("span", { key: value, class: "display-value" }, value, h("span", { class: { separator: true } }, ", "))))), h("span", { ref: (el) => (this.overflowCount = el), class: "overflow-count" }, "+10"))) : (h("span", { class: "placeholder" }, this.placeholder))), showClear && (h("six-icon-button", { exportparts: "base:clear-button", class: "select__clear", name: "clear", size: "small", onClick: this.handleClearClick, tabindex: "-1" })), showExpand && (h("span", { part: "icon", class: "select__icon" }, h("six-icon", { size: "medium" }, "expand_more"))), h("six-input", { ref: (el) => (this.autocompleteInput = el), class: {
419
+ }, role: "combobox", "aria-labelledby": this.labelId, "aria-describedby": this.helpTextId, "aria-haspopup": "true", "aria-expanded": this.isOpen ? 'true' : 'false', tabIndex: this.disabled ? -1 : 0, onBlur: this.handleBlur, onFocus: this.handleFocus }, h("div", { key: '7b6e70973681445a4de6e2c0e1a31aa3b512cd68', class: "display__values", ref: (el) => (this.displayValuesContainer = el) }, this.displayedValues.length > 0 ? (h("span", { class: "display__values-and-counter" }, h("span", { class: "display__values-values" }, this.displayedValues.map((value) => (h("span", { key: value, class: "display-value" }, value, h("span", { class: { separator: true } }, ", "))))), h("span", { ref: (el) => (this.overflowCount = el), class: "overflow-count" }, "+10"))) : (h("span", { class: "placeholder" }, this.placeholder))), showClear && (h("six-icon-button", { exportparts: "base:clear-button", class: "select__clear", name: "clear", size: "small", onClick: this.handleClearClick, tabindex: "-1" })), showExpand && (h("span", { part: "icon", class: "select__icon" }, h("six-icon", { size: "medium" }, "expand_more"))), h("six-input", { key: '34a321d5de3e51132f2dfb364979c1c55995b8c2', ref: (el) => (this.autocompleteInput = el), class: {
428
420
  select__input: true,
429
421
  'select__hidden-select': !this.autocomplete,
430
- }, "aria-hidden": "true", required: this.required, onFocus: this.handleFocus, clearable: this.clearable, placeholder: this.placeholder, pill: this.pill, disabled: this.disabled, size: this.size, tabIndex: -1 })), h("div", { class: {
422
+ }, "aria-hidden": "true", required: this.required, onFocus: this.handleFocus, clearable: this.clearable, placeholder: this.placeholder, pill: this.pill, disabled: this.disabled, size: this.size, tabIndex: -1 })), h("div", { key: 'b6a75066f44bcfa23646f09f12858741eb329935', class: {
431
423
  'selection-container': true,
432
424
  'selection-container--border': this.selectionContainerItems.length > 0 && items.length !== this.selectionContainerItems.length,
433
- } }, this.selectionContainerItems), h("six-menu", { ref: (el) => (this.menu = el), part: "menu", class: {
425
+ } }, this.selectionContainerItems), h("six-menu", { key: '273440b4570424484c8eb4bc41475b2fdd769bb9', ref: (el) => (this.menu = el), part: "menu", class: {
434
426
  select__menu: true,
435
427
  'select__menu--hidden': !hasMenuItems,
436
- }, "onSix-menu-item-selected": this.handleMenuSelect, items: this.options, virtualScroll: this.virtualScroll, "remove-box-shadow": true, "disable-keyboard-handling": true }, h("slot", { onSlotchange: this.handleSlotChange })), this.multiple && this.selectAllButton && (h("div", { class: "select-all", slot: "dropdown-footer" }, h("six-button", { type: "link", onClick: () => this.selectAll() }, this.selectAllText == null ? selectAllDefaultText(hasDeselectedOptions) : this.selectAllText))))));
428
+ }, "onSix-menu-item-selected": this.handleMenuSelect, items: this.options, virtualScroll: this.virtualScroll, "remove-box-shadow": true, "disable-keyboard-handling": true }, h("slot", { key: '6d3b8c080879dfc652816ff96f39d0821a676708', onSlotchange: this.handleSlotChange })), this.multiple && this.selectAllButton && (h("div", { class: "select-all", slot: "dropdown-footer" }, h("six-button", { type: "link", onClick: () => this.selectAll() }, this.selectAllText == null ? selectAllDefaultText(hasDeselectedOptions) : this.selectAllText))))));
437
429
  }
438
430
  hasSelection() {
439
431
  return this.multiple ? this.value.length > 0 : this.value !== '';
@@ -1 +1 @@
1
- {"version":3,"file":"six-select.js","sourceRoot":"","sources":["../../../src/components/six-select/six-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { getTextContent, hasSlot } from '../../utils/slot';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { SixMenuItemData } from '../six-menu/six-menu';\nimport { getLanguage } from '../../utils/error-messages';\n\nexport interface SixSelectChangePayload {\n value: string | string[];\n isSelected: boolean;\n}\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The select's options in the form of menu items.\n * @slot label - The select's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the select.\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part base - The component's base wrapper.\n * @part clear-button - The input's clear button, exported from six-input.\n * @part form-control - The form control that wraps the label, input, and help text.\n * @part help-text - The select's help text.\n * @part icon - The select's icon.\n * @part label - The select's label.\n * @part menu - The select menu, a six-menu element.\n * @part tag - The multiselect option, a six-tag element.\n * @part tags - The container in which multiselect options are rendered.\n */\n\n@Component({\n tag: 'six-select',\n styleUrl: 'six-select.scss',\n shadow: true,\n})\nexport class SixSelect {\n private box?: HTMLElement;\n private menu?: HTMLElement;\n private dropdown?: HTMLSixDropdownElement;\n private displayValuesContainer?: HTMLElement;\n private overflowCount?: HTMLElement;\n private autocompleteInput?: HTMLSixInputElement;\n private inputId = `select-${++id}`;\n private labelId = `select-label-${id}`;\n private helpTextId = `select-help-text-${id}`;\n private errorTextId = `select-error-text-${id}`;\n private eventListeners = new EventListeners();\n private activeItemIndex = -1;\n private resizeObserver = new ResizeObserver(() => this.updateDisplayedValues());\n\n @Element() host!: HTMLSixSelectElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasLabelSlot = false;\n @State() hasErrorTextSlot = false;\n @State() isOpen = false;\n @State() displayedValues: string[] = [];\n\n /** Menu items shown in the selection container. */\n @State() selectionContainerItems: HTMLSixMenuItemElement[] = [];\n\n /** Set to true to enable multiselect. */\n @Prop() multiple = false;\n\n /** Enables the select all button. */\n @Prop() selectAllButton = false;\n\n /**\n * Custom text for the \"select all\" button. Defaults to \"Select all\" and equivalents in supported languages.\n */\n @Prop() selectAllText?: string;\n\n /**\n * The maximum number of tags to show when `multiple` is true. After the maximum, \"+n\" will be shown to indicate the\n * number of additional items that are selected. Set to -1 to remove the limit.\n *\n * @deprecated: This property is ignored. The component now displays as many items as possible and computes the \"+n\" dynamically.\n */\n @Prop() maxTagsVisible = 3;\n\n /** Set to true to disable the select control. */\n @Prop() disabled = false;\n\n /** The select's name. */\n @Prop() name = '';\n\n /** The select's placeholder text. */\n @Prop() placeholder = '';\n\n /** The filter's placeholder text. */\n @Prop() filterPlaceholder?: string;\n\n /** The debounce for the filter callbacks. */\n @Prop() filterDebounce?: number;\n\n /** The select's size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /** The value of the control. This will be a string or an array depending on `multiple`. */\n @Prop({ mutable: true }) value: string | string[] = '';\n\n /** Set to true to draw a pill-style select with rounded edges. */\n @Prop() pill = false;\n\n /** The select's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** Set to true to add a clear button when the select is populated. */\n @Prop() clearable = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** Set to render as line */\n @Prop() line = false;\n\n /** Set to true to allow filtering for entries in the dropdown */\n @Prop() filter = false;\n\n /**\n * Set to true to allow async filtering.\n * When you enter something in the search field the component will only emit an event but not filter any elements itself.\n * You can then simply listen to the 'six-async-filter-fired' event to manage the shown menu-items yourself\n */\n @Prop() asyncFilter = false;\n\n /**\n * Set to true to turn the six-select into an autocomplete.\n */\n @Prop() autocomplete = false;\n\n /** The debounce for when the input changes for autocompletes should be emitted */\n @Prop() inputDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set the options to be shown in the dropdown (alternative to setting the elements via html) */\n @Prop() options: SixMenuItemData[] | null = null;\n\n /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\n * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */\n @Prop() virtualScroll = false;\n\n @Watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.isOpen) {\n this.dropdown?.hide();\n }\n }\n\n @Watch('helpText')\n @Watch('errorText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('multiple')\n handleMultipleChange() {\n // Cast to array | string based on `this.multiple`\n const value = this.getValueAsArray();\n this.value = this.multiple ? value : value[0] || '';\n this.syncItemsFromValue();\n }\n\n @Watch('value')\n async handleValueChange() {\n if (this.multiple && !Array.isArray(this.value)) {\n this.value = [];\n }\n\n if (!this.multiple && typeof this.value !== 'string') {\n this.value = '';\n }\n await this.syncItemsFromValue();\n }\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-select-change' }) sixChange!: EventEmitter<SixSelectChangePayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-select-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-select-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n if (this.virtualScroll && this.options === null) {\n console.error('Options must be defined when using virtual scrolling');\n }\n this.init();\n }\n\n componentWillLoad() {\n this.handleSlotChange();\n if (this.multiple && this.value != null) {\n this.value = this.getValueAsArray();\n }\n }\n\n componentDidLoad() {\n this.init();\n\n // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning\n requestAnimationFrame(() => this.syncItemsFromValue());\n\n if (this.autocomplete && this.autocompleteInput != null) {\n const autocompleteInput = this.autocompleteInput;\n this.eventListeners.add(\n autocompleteInput,\n 'six-input-input',\n debounce((event) => {\n this.value = autocompleteInput.value;\n this.sixChange.emit({ value: this.value, isSelected: false });\n event.stopPropagation();\n }, this.inputDebounce)\n );\n autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n }\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n /** Sets focus on the select. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.hasFocus = true;\n this.box?.focus(options);\n }\n\n private init() {\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.forward('six-select-change', 'change', this.host);\n this.eventListeners.forward('six-select-blur', 'blur', this.host);\n this.eventListeners.forward('six-select-focus', 'focus', this.host);\n if (this.displayValuesContainer) {\n this.resizeObserver.observe(this.displayValuesContainer);\n }\n }\n\n private getItemLabel(item: HTMLSixMenuItemElement): string {\n const slot = item.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot != null) {\n return getTextContent(slot);\n } else {\n // bugfix/COMSLI-203-six-select-value-is-not-updated-if-the-slot-is-changed\n return item.textContent ?? '';\n }\n }\n\n private getItems(): HTMLSixMenuItemElement[] {\n if (this.options !== null && this.menu != null && this.menu.shadowRoot != null) {\n return [...this.menu.shadowRoot.querySelectorAll('six-menu-item')];\n }\n\n return [...this.host.querySelectorAll('six-menu-item')];\n }\n\n private getVisibleItems(): HTMLSixMenuItemElement[] {\n const selectionContainerItems = this.getSelectionContainerItems();\n const mainItems = this.getItems();\n return [...selectionContainerItems, ...mainItems].filter((i) => i.style.display !== 'none');\n }\n\n private getSelectionContainerItems() {\n return [...(this.host.shadowRoot?.querySelectorAll('six-menu-item') || [])];\n }\n\n private getValueAsArray() {\n const values = Array.isArray(this.value) ? this.value : this.value === '' ? [] : [this.value];\n // enforce that the values are converted to 'string' before the value is compared\n return values.map(String);\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleClearClick = async (event: MouseEvent) => {\n event.stopPropagation();\n await this.clearValues();\n await this.dropdown?.hide();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private async clearValues() {\n this.value = this.multiple ? [] : '';\n this.selectionContainerItems = [];\n await this.syncItemsFromValue();\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.virtualScroll || this.autocomplete) {\n return;\n }\n\n if (['Control', 'Escape'].includes(event.key)) {\n return;\n }\n\n const items = this.getVisibleItems();\n\n // Ctrl-A selects all items\n if (this.isOpen && this.multiple && event.code === 'KeyA' && event.ctrlKey) {\n event.preventDefault();\n this.selectAll();\n return;\n }\n\n // Tabbing out of the control closes it\n if (event.key === 'Tab') {\n if (this.isOpen) {\n this.dropdown?.hide();\n }\n return;\n }\n\n if (event.key === ' ' && !this.multiple) {\n return;\n }\n\n // Enter and Space selects the active item\n if (this.activeItemIndex >= 0 && ['Enter', ' '].includes(event.key)) {\n const activeItem = items.at(this.activeItemIndex);\n event.preventDefault();\n activeItem?.click();\n return;\n }\n\n // Move the selection when pressing up or down\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n // Show the menu if it's not already open\n if (!this.isOpen) {\n this.dropdown?.show();\n }\n\n if (items.length > 0) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n this.activeItemIndex++;\n } else if (event.key === 'ArrowUp') {\n this.activeItemIndex--;\n } else if (event.key === 'Home') {\n this.activeItemIndex = 0;\n } else if (event.key === 'End') {\n this.activeItemIndex = items.length - 1;\n }\n\n if (this.activeItemIndex < 0) this.activeItemIndex = 0;\n if (this.activeItemIndex > items.length - 1) this.activeItemIndex = items.length - 1;\n\n items.at(this.activeItemIndex)?.setFocus();\n }\n }\n\n // All other keys open the menu\n if (!this.isOpen) {\n event.stopPropagation();\n event.preventDefault();\n this.dropdown?.show();\n }\n };\n\n private selectAll() {\n const visibleItems = this.getVisibleItems();\n const hasDeselectedOptions = this.hasDeselectedOptions();\n visibleItems.filter((option) => !option.disabled).forEach((option) => (option.checked = hasDeselectedOptions));\n const checkedItems = visibleItems.filter((option) => option.checked).map((option) => option.value);\n this.value = hasDeselectedOptions ? checkedItems : [];\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n\n private handleLabelClick = () => {\n this.box?.focus();\n };\n\n private handleMenuSelect = (event: CustomEvent) => {\n const currentItem = event.detail.item as HTMLSixMenuItemElement;\n if (this.multiple) {\n currentItem.checked = !currentItem.checked;\n } else {\n this.getItems().forEach((i) => (i.checked = false));\n currentItem.checked = true;\n }\n this.syncValueFromItems();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private handleMenuShow = (event: CustomEvent) => {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this.activeItemIndex = -1;\n\n // reset display style of main items\n const mainItems = this.getItems();\n mainItems.forEach((item) => (item.style.display = 'unset'));\n\n // show selected menu items in the selection container and hide them in the main container\n const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);\n if (!this.virtualScroll && this.multiple) {\n checkedItems.forEach((i) => (i.style.display = 'none'));\n this.selectionContainerItems = checkedItems.map((item) => {\n return (\n <six-menu-item\n key={item.value} // key makes sure the node is not re-used: https://stenciljs.com/docs/templating-jsx#conditionals\n checked={true}\n value={item.value}\n checkType={this.multiple ? 'checkbox' : 'check'}\n onClick={(event) => {\n event.stopPropagation();\n if (!this.disabled) {\n const menuItem = event.target as HTMLSixMenuItemElement;\n const isChecked = menuItem.checked;\n menuItem.checked = !isChecked;\n item.checked = !isChecked;\n this.syncValueFromItems();\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n }}\n >\n {this.getItemLabel(item)}\n </six-menu-item>\n );\n });\n }\n\n this.isOpen = true;\n };\n\n private handleMenuHide = () => {\n this.isOpen = false;\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n this.syncItemsFromValue();\n };\n\n /**\n * Sets the checked state of menu items and renders the displayed values.\n */\n private async syncItemsFromValue() {\n const selectionContainerItems = this.getSelectionContainerItems();\n const mainItems = this.getItems();\n const value = this.getValueAsArray();\n\n selectionContainerItems.forEach((item) => {\n item.checkType = this.multiple ? 'checkbox' : 'check';\n item.checked = value.includes(item.value);\n });\n mainItems.forEach((item) => {\n item.checkType = this.multiple ? 'checkbox' : 'check';\n item.checked = value.includes(item.value);\n });\n\n const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);\n this.displayedValues = checkedItems.map((i) => this.getItemLabel(i));\n\n if (this.autocomplete && this.autocompleteInput != null) {\n this.autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n }\n\n requestAnimationFrame(() => {\n this.updateDisplayedValues();\n });\n }\n\n private syncValueFromItems() {\n const items = this.getItems();\n const checkedValues = items.filter((item) => item.checked).map((item) => item.value);\n if (this.multiple) {\n this.value = checkedValues;\n } else {\n this.value = checkedValues.length > 0 ? checkedValues[0] : '';\n }\n }\n\n private updateDisplayedValues() {\n const displayValueOptions = [...(this.displayValuesContainer?.querySelectorAll('.display-value') ?? [])];\n if (this.displayValuesContainer == null || displayValueOptions.length === 0 || this.overflowCount == null) {\n return;\n }\n\n // Show all options and separators to properly measure all widths.\n displayValueOptions.forEach((d) => {\n showDisplayValue(d);\n showSeparator(d);\n });\n\n // Measure available width. The last separator is added to the available width, because it will be hidden later on.\n const separator = displayValueOptions[displayValueOptions.length - 1].querySelector('.separator');\n if (separator == null) return;\n let availableWidth = getWidth(this.displayValuesContainer) + getWidth(separator);\n\n // Compute how many display value elements fit in the available width\n let { fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth);\n\n if (overflowCount === 0) {\n // All items fit, hide overflow count and show all values.\n hideOverflowCount(this.overflowCount);\n showFittingValues(displayValueOptions, fitCount);\n } else {\n // Not all items fit in the available width. Recompute the available width with the overflow-count visible.\n\n // Increment overflow count by one to make sure the elements fit, even if the overflow count increases to the\n // next higher power of ten, e.g. from 9 to 10 or 99 to 100.\n setOverflowCount(this.overflowCount, overflowCount + 1);\n showOverflowCount(this.overflowCount);\n\n // Subtract the overflow count from the available width\n availableWidth = availableWidth - getWidth(this.overflowCount);\n\n // Compute how many display value elements fit in the new available width\n ({ fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth));\n\n // Show overflow count and items that fit.\n setOverflowCount(this.overflowCount, overflowCount);\n showFittingValues(displayValueOptions, fitCount);\n }\n }\n\n render() {\n const hasSelection = this.hasSelection();\n const items = this.getItems();\n const hasMenuItems = items.length > 0;\n const hasDeselectedOptions = this.hasDeselectedOptions();\n let showClear = false;\n let showExpand = hasMenuItems;\n if (this.clearable && hasSelection) {\n showClear = true;\n showExpand = false;\n }\n\n return (\n <FormControl\n inputId={this.inputId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n errorTextId={this.errorTextId}\n errorText={this.errorText}\n errorTextCount={this.errorTextCount}\n hasErrorTextSlot={this.hasErrorTextSlot}\n size={this.size}\n onLabelClick={this.handleLabelClick}\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <six-dropdown\n part=\"base\"\n ref={(el) => (this.dropdown = el)}\n hoist={this.hoist}\n matchTriggerWidth={true}\n closeOnSelect={!this.multiple}\n containingElement={this.host}\n disableHideOnEnterAndSpace={this.autocomplete}\n class={{\n select: true,\n 'select--open': this.isOpen,\n 'select--empty': this.value?.length === 0,\n 'select--focused': this.hasFocus,\n 'select--clearable': this.clearable,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--has-tags': this.multiple && hasSelection,\n 'select--placeholder-visible': this.displayedValues.length === 0,\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n 'select--pill': this.pill,\n 'select--invalid': this.invalid,\n }}\n onKeyDown={this.handleKeyDown}\n onSix-dropdown-show={this.handleMenuShow}\n onSix-dropdown-hide={this.handleMenuHide}\n filterPlaceholder={this.filterPlaceholder}\n filterDebounce={this.filterDebounce}\n filter={this.filter}\n asyncFilter={this.asyncFilter}\n virtualScroll={this.virtualScroll}\n >\n {/* Trigger */}\n <div\n slot=\"trigger\"\n ref={(el) => (this.box = el)}\n id={this.inputId}\n class={{\n select__box: true,\n 'select__box--line': this.line,\n 'select__box--autocomplete': this.autocomplete,\n }}\n role=\"combobox\"\n aria-labelledby={this.labelId}\n aria-describedby={this.helpTextId}\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : 0}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n >\n {/* Display values */}\n <div class=\"display__values\" ref={(el) => (this.displayValuesContainer = el)}>\n {this.displayedValues.length > 0 ? (\n <span class=\"display__values-and-counter\">\n <span class=\"display__values-values\">\n {this.displayedValues.map((value) => (\n <span key={value} class=\"display-value\">\n {value}\n <span class={{ separator: true }}>, </span>\n </span>\n ))}\n </span>\n <span ref={(el) => (this.overflowCount = el)} class=\"overflow-count\">\n +10\n </span>\n </span>\n ) : (\n <span class=\"placeholder\">{this.placeholder}</span>\n )}\n </div>\n\n {/* Clear */}\n {showClear && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n class=\"select__clear\"\n name=\"clear\"\n size=\"small\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n />\n )}\n\n {/* Expand */}\n {showExpand && (\n <span part=\"icon\" class=\"select__icon\">\n <six-icon size=\"medium\">expand_more</six-icon>\n </span>\n )}\n\n {/* Autocomplete */}\n <six-input\n ref={(el) => (this.autocompleteInput = el)}\n class={{\n select__input: true,\n 'select__hidden-select': !this.autocomplete,\n }}\n aria-hidden=\"true\"\n required={this.required}\n onFocus={this.handleFocus}\n clearable={this.clearable}\n placeholder={this.placeholder}\n pill={this.pill}\n disabled={this.disabled}\n size={this.size}\n tabIndex={-1}\n />\n </div>\n\n {/* Selection container */}\n <div\n class={{\n 'selection-container': true,\n 'selection-container--border':\n this.selectionContainerItems.length > 0 && items.length !== this.selectionContainerItems.length,\n }}\n >\n {this.selectionContainerItems}\n </div>\n\n {/* Menu */}\n <six-menu\n ref={(el) => (this.menu = el)}\n part=\"menu\"\n class={{\n select__menu: true,\n 'select__menu--hidden': !hasMenuItems,\n }}\n onSix-menu-item-selected={this.handleMenuSelect}\n items={this.options}\n virtualScroll={this.virtualScroll}\n remove-box-shadow={true}\n disable-keyboard-handling={true}\n >\n <slot onSlotchange={this.handleSlotChange} />\n </six-menu>\n\n {/* Select all */}\n {this.multiple && this.selectAllButton && (\n <div class=\"select-all\" slot=\"dropdown-footer\">\n <six-button type=\"link\" onClick={() => this.selectAll()}>\n {this.selectAllText == null ? selectAllDefaultText(hasDeselectedOptions) : this.selectAllText}\n </six-button>\n </div>\n )}\n </six-dropdown>\n </FormControl>\n );\n }\n\n private hasSelection() {\n return this.multiple ? this.value.length > 0 : this.value !== '';\n }\n\n private hasDeselectedOptions() {\n return this.getVisibleItems().some((opt) => !opt.disabled && !opt.checked);\n }\n}\n\nfunction getCheckedItems(value: string[], items: HTMLSixMenuItemElement[]): HTMLSixMenuItemElement[] {\n return items.filter((item) => value.includes(item.value));\n}\n\nfunction getWidth(element: Element) {\n return element.getBoundingClientRect().width;\n}\n\nfunction computeFitCount(options: Element[], availableWidth: number): { fitCount: number; overflowCount: number } {\n let accumulatedWidth = 0;\n let fitCount = 0;\n\n for (let i = 0; i < options.length; i++) {\n const displayOption = options[i];\n const width = getWidth(displayOption);\n if (i === 0 && width > availableWidth) {\n fitCount = 1;\n break;\n }\n accumulatedWidth += width;\n if (accumulatedWidth > availableWidth) {\n break;\n } else {\n fitCount += 1;\n }\n }\n const overflowCount = options.length - fitCount;\n return { fitCount, overflowCount };\n}\n\nfunction showFittingValues(displayValueOptions: Element[], fitCount: number) {\n if (displayValueOptions.length > 0) {\n // show items that fit\n displayValueOptions.slice(0, fitCount).forEach((displayValue, index, list) => {\n showDisplayValue(displayValue);\n const isLast = index === list.length - 1;\n if (isLast) {\n hideSeparator(displayValue);\n } else {\n showSeparator(displayValue);\n }\n });\n\n // hide the rest\n displayValueOptions.slice(fitCount).forEach((displayValue) => {\n hideDisplayValue(displayValue);\n showSeparator(displayValue);\n });\n }\n}\n\nfunction hideSeparator(displayValueOption: Element) {\n displayValueOption.querySelector('.separator')?.classList.add('separator--hidden');\n}\n\nfunction showSeparator(displayValueOption: Element) {\n displayValueOption.querySelector('.separator')?.classList.remove('separator--hidden');\n}\n\nfunction showDisplayValue(displayValueOption: Element) {\n displayValueOption.classList.remove('display-value--hidden');\n}\n\nfunction hideDisplayValue(displayValueOption: Element) {\n displayValueOption.classList.add('display-value--hidden');\n}\n\nfunction setOverflowCount(overflowCount: Element, count: number) {\n overflowCount.textContent = `+${count}`;\n}\n\nfunction showOverflowCount(overflowCount: Element) {\n overflowCount.classList.remove('overflow-count-hidden');\n}\n\nfunction hideOverflowCount(overflowCount: Element) {\n overflowCount.classList.add('overflow-count-hidden');\n}\n\nfunction selectAllDefaultText(hasDeselectedOptions: boolean) {\n const lang = getLanguage();\n switch (lang) {\n case 'de':\n return hasDeselectedOptions ? 'Alle auswählen' : 'Alle abwählen';\n case 'fr':\n return hasDeselectedOptions ? 'Tout sélectionner' : 'Tout désélectionner';\n case 'it':\n return hasDeselectedOptions ? 'Seleziona tutto' : 'Deseleziona tutto';\n case 'en':\n return hasDeselectedOptions ? 'Select all' : 'Deselect all';\n case 'es':\n return hasDeselectedOptions ? 'Seleccionar todo' : 'Deseleccionar todo';\n }\n}\n"]}
1
+ {"version":3,"file":"six-select.js","sourceRoot":"","sources":["../../../src/components/six-select/six-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { getTextContent, hasSlot } from '../../utils/slot';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { SixMenuItemData } from '../six-menu/six-menu';\nimport { getLanguage } from '../../utils/error-messages';\nimport { convertToValidArrayValue, convertToValidValue, valueEquals } from './util';\n\nexport interface SixSelectChangePayload {\n value: string | string[];\n isSelected: boolean;\n}\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The select's options in the form of menu items.\n * @slot label - The select's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the select.\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part base - The component's base wrapper.\n * @part clear-button - The input's clear button, exported from six-input.\n * @part form-control - The form control that wraps the label, input, and help text.\n * @part help-text - The select's help text.\n * @part icon - The select's icon.\n * @part label - The select's label.\n * @part menu - The select menu, a six-menu element.\n * @part tag - The multiselect option, a six-tag element.\n * @part tags - The container in which multiselect options are rendered.\n */\n\n@Component({\n tag: 'six-select',\n styleUrl: 'six-select.scss',\n shadow: true,\n})\nexport class SixSelect {\n private box?: HTMLElement;\n private menu?: HTMLElement;\n private dropdown?: HTMLSixDropdownElement;\n private displayValuesContainer?: HTMLElement;\n private overflowCount?: HTMLElement;\n private autocompleteInput?: HTMLSixInputElement;\n private inputId = `select-${++id}`;\n private labelId = `select-label-${id}`;\n private helpTextId = `select-help-text-${id}`;\n private errorTextId = `select-error-text-${id}`;\n private eventListeners = new EventListeners();\n private activeItemIndex = -1;\n private resizeObserver = new ResizeObserver(() => this.updateDisplayedValues());\n\n @Element() host!: HTMLSixSelectElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasLabelSlot = false;\n @State() hasErrorTextSlot = false;\n @State() isOpen = false;\n @State() displayedValues: string[] = [];\n\n /** Menu items shown in the selection container. */\n @State() selectionContainerItems: HTMLSixMenuItemElement[] = [];\n\n /** Set to true to enable multiselect. */\n @Prop() multiple = false;\n\n /** Enables the select all button. */\n @Prop() selectAllButton = false;\n\n /**\n * Custom text for the \"select all\" button. Defaults to \"Select all\" and equivalents in supported languages.\n */\n @Prop() selectAllText?: string;\n\n /**\n * The maximum number of tags to show when `multiple` is true. After the maximum, \"+n\" will be shown to indicate the\n * number of additional items that are selected. Set to -1 to remove the limit.\n *\n * @deprecated: This property is ignored. The component now displays as many items as possible and computes the \"+n\" dynamically.\n */\n @Prop() maxTagsVisible = 3;\n\n /** Set to true to disable the select control. */\n @Prop() disabled = false;\n\n /** The select's name. */\n @Prop() name = '';\n\n /** The select's placeholder text. */\n @Prop() placeholder = '';\n\n /** The filter's placeholder text. */\n @Prop() filterPlaceholder?: string;\n\n /** The debounce for the filter callbacks. */\n @Prop() filterDebounce?: number;\n\n /** The select's size. */\n @Prop() size: 'small' | 'medium' | 'large' = 'medium';\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /** The value of the control. This will be a string or an array depending on `multiple`. */\n @Prop({ mutable: true }) value: string | string[] = '';\n\n /** Set to true to draw a pill-style select with rounded edges. */\n @Prop() pill = false;\n\n /** The select's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** Set to true to add a clear button when the select is populated. */\n @Prop() clearable = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** Set to render as line */\n @Prop() line = false;\n\n /** Set to true to allow filtering for entries in the dropdown */\n @Prop() filter = false;\n\n /**\n * Set to true to allow async filtering.\n * When you enter something in the search field the component will only emit an event but not filter any elements itself.\n * You can then simply listen to the 'six-async-filter-fired' event to manage the shown menu-items yourself\n */\n @Prop() asyncFilter = false;\n\n /**\n * Set to true to turn the six-select into an autocomplete.\n */\n @Prop() autocomplete = false;\n\n /** The debounce for when the input changes for autocompletes should be emitted */\n @Prop() inputDebounce = DEFAULT_DEBOUNCE_FAST;\n\n /** Set the options to be shown in the dropdown (alternative to setting the elements via html) */\n @Prop() options: SixMenuItemData[] | null = null;\n\n /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\n * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */\n @Prop() virtualScroll = false;\n\n @Watch('disabled')\n handleDisabledChange() {\n if (this.disabled && this.isOpen) {\n this.dropdown?.hide();\n }\n }\n\n @Watch('helpText')\n @Watch('errorText')\n @Watch('label')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('multiple')\n handleMultipleChange() {\n this.value = convertToValidValue(this.value, this.multiple);\n this.syncItemsFromValue();\n }\n\n @Watch('value')\n async handleValueChange() {\n const newValue = convertToValidValue(this.value, this.multiple);\n if (!valueEquals(this.value, newValue)) {\n this.value = newValue;\n }\n await this.syncItemsFromValue();\n }\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-select-change' }) sixChange!: EventEmitter<SixSelectChangePayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-select-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-select-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n if (this.virtualScroll && this.options === null) {\n console.error('Options must be defined when using virtual scrolling');\n }\n\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.forward('six-select-change', 'change', this.host);\n this.eventListeners.forward('six-select-blur', 'blur', this.host);\n this.eventListeners.forward('six-select-focus', 'focus', this.host);\n if (this.displayValuesContainer) {\n this.resizeObserver.observe(this.displayValuesContainer);\n }\n }\n\n componentWillLoad() {\n this.value = convertToValidValue(this.value, this.multiple);\n this.handleSlotChange();\n }\n\n componentDidLoad() {\n if (this.displayValuesContainer) {\n this.resizeObserver.observe(this.displayValuesContainer);\n }\n\n // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning\n requestAnimationFrame(() => this.syncItemsFromValue());\n\n if (this.autocomplete && this.autocompleteInput != null) {\n const autocompleteInput = this.autocompleteInput;\n this.eventListeners.add(\n autocompleteInput,\n 'six-input-input',\n debounce((event) => {\n this.value = autocompleteInput.value;\n this.sixChange.emit({ value: this.value, isSelected: false });\n event.stopPropagation();\n }, this.inputDebounce)\n );\n autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n }\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n /** Sets focus on the select. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.hasFocus = true;\n this.box?.focus(options);\n }\n\n private getItemLabel(item: HTMLSixMenuItemElement): string {\n const slot = item.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n if (slot != null) {\n return getTextContent(slot);\n } else {\n // bugfix/COMSLI-203-six-select-value-is-not-updated-if-the-slot-is-changed\n return item.textContent ?? '';\n }\n }\n\n private getItems(): HTMLSixMenuItemElement[] {\n if (this.options !== null && this.menu != null && this.menu.shadowRoot != null) {\n return [...this.menu.shadowRoot.querySelectorAll('six-menu-item')];\n }\n\n return [...this.host.querySelectorAll('six-menu-item')];\n }\n\n private getVisibleItems(): HTMLSixMenuItemElement[] {\n const selectionContainerItems = this.getSelectionContainerItems();\n const mainItems = this.getItems();\n return [...selectionContainerItems, ...mainItems].filter((i) => i.style.display !== 'none');\n }\n\n private getSelectionContainerItems() {\n return [...(this.host.shadowRoot?.querySelectorAll('six-menu-item') || [])];\n }\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleClearClick = async (event: MouseEvent) => {\n event.stopPropagation();\n await this.clearValues();\n await this.dropdown?.hide();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private async clearValues() {\n this.value = this.multiple ? [] : '';\n this.selectionContainerItems = [];\n await this.syncItemsFromValue();\n }\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.virtualScroll || this.autocomplete) {\n return;\n }\n\n if (['Control', 'Escape'].includes(event.key)) {\n return;\n }\n\n const items = this.getVisibleItems();\n\n // Ctrl-A selects all items\n if (this.isOpen && this.multiple && event.code === 'KeyA' && event.ctrlKey) {\n event.preventDefault();\n this.selectAll();\n return;\n }\n\n // Tabbing out of the control closes it\n if (event.key === 'Tab') {\n if (this.isOpen) {\n this.dropdown?.hide();\n }\n return;\n }\n\n if (event.key === ' ' && !this.multiple) {\n return;\n }\n\n // Enter and Space selects the active item\n if (this.activeItemIndex >= 0 && ['Enter', ' '].includes(event.key)) {\n const activeItem = items.at(this.activeItemIndex);\n event.preventDefault();\n activeItem?.click();\n return;\n }\n\n // Move the selection when pressing up or down\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n // Show the menu if it's not already open\n if (!this.isOpen) {\n this.dropdown?.show();\n }\n\n if (items.length > 0) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n this.activeItemIndex++;\n } else if (event.key === 'ArrowUp') {\n this.activeItemIndex--;\n } else if (event.key === 'Home') {\n this.activeItemIndex = 0;\n } else if (event.key === 'End') {\n this.activeItemIndex = items.length - 1;\n }\n\n if (this.activeItemIndex < 0) this.activeItemIndex = 0;\n if (this.activeItemIndex > items.length - 1) this.activeItemIndex = items.length - 1;\n\n items.at(this.activeItemIndex)?.setFocus();\n }\n }\n\n // All other keys open the menu\n if (!this.isOpen) {\n event.stopPropagation();\n event.preventDefault();\n this.dropdown?.show();\n }\n };\n\n private selectAll() {\n const visibleItems = this.getVisibleItems();\n const hasDeselectedOptions = this.hasDeselectedOptions();\n visibleItems.filter((option) => !option.disabled).forEach((option) => (option.checked = hasDeselectedOptions));\n const checkedItems = visibleItems.filter((option) => option.checked).map((option) => option.value);\n this.value = hasDeselectedOptions ? checkedItems : [];\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n\n private handleLabelClick = () => {\n this.box?.focus();\n };\n\n private handleMenuSelect = (event: CustomEvent) => {\n const currentItem = event.detail.item as HTMLSixMenuItemElement;\n if (this.multiple) {\n currentItem.checked = !currentItem.checked;\n } else {\n this.getItems().forEach((i) => (i.checked = false));\n currentItem.checked = true;\n }\n this.syncValueFromItems();\n this.sixChange.emit({ value: this.value, isSelected: true });\n };\n\n private handleMenuShow = (event: CustomEvent) => {\n if (this.disabled) {\n event.preventDefault();\n return;\n }\n this.activeItemIndex = -1;\n\n if (!this.virtualScroll && this.multiple) {\n // reset display style of main items\n const mainItems = this.getItems();\n mainItems.forEach((item) => (item.style.display = 'unset'));\n\n // show selected menu items in the selection container and hide them in the main container\n const checkedItems = getCheckedItems(convertToValidArrayValue(this.value), mainItems);\n checkedItems.forEach((i) => (i.style.display = 'none'));\n this.selectionContainerItems = checkedItems.map((item) => {\n return (\n <six-menu-item\n key={item.value} // key makes sure the node is not re-used: https://stenciljs.com/docs/templating-jsx#conditionals\n checked={true}\n value={item.value}\n checkType={this.multiple ? 'checkbox' : 'check'}\n onClick={(event) => {\n event.stopPropagation();\n if (!this.disabled) {\n const menuItem = event.target as HTMLSixMenuItemElement;\n const isChecked = menuItem.checked;\n menuItem.checked = !isChecked;\n item.checked = !isChecked;\n this.syncValueFromItems();\n this.sixChange.emit({ value: this.value, isSelected: true });\n }\n }}\n >\n {this.getItemLabel(item)}\n </six-menu-item>\n );\n });\n }\n\n this.isOpen = true;\n };\n\n private handleMenuHide = () => {\n this.isOpen = false;\n if (this.multiple) {\n this.handleBlur();\n }\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n this.syncItemsFromValue();\n };\n\n /**\n * Sets the checked state of menu items and renders the displayed values.\n */\n private async syncItemsFromValue() {\n const selectionContainerItems = this.getSelectionContainerItems();\n const mainItems = this.getItems();\n const value = convertToValidValue(this.value, this.multiple);\n\n selectionContainerItems.forEach((item) => {\n item.checkType = this.multiple ? 'checkbox' : 'check';\n item.checked = value.includes(item.value);\n });\n mainItems.forEach((item) => {\n item.checkType = this.multiple ? 'checkbox' : 'check';\n item.checked = value.includes(item.value);\n });\n\n const checkedItems = getCheckedItems(convertToValidArrayValue(this.value), mainItems);\n this.displayedValues = checkedItems.map((i) => this.getItemLabel(i));\n\n if (this.autocomplete && this.autocompleteInput != null) {\n this.autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;\n }\n\n requestAnimationFrame(() => {\n this.updateDisplayedValues();\n });\n }\n\n private syncValueFromItems() {\n const items = this.getItems();\n const checkedValues = items.filter((item) => item.checked).map((item) => item.value);\n if (this.multiple) {\n this.value = checkedValues;\n } else {\n this.value = checkedValues.length > 0 ? checkedValues[0] : '';\n }\n }\n\n private updateDisplayedValues() {\n const displayValueOptions = [...(this.displayValuesContainer?.querySelectorAll('.display-value') ?? [])];\n if (this.displayValuesContainer == null || displayValueOptions.length === 0 || this.overflowCount == null) {\n return;\n }\n\n // Show all options and separators to properly measure all widths.\n displayValueOptions.forEach((d) => {\n showDisplayValue(d);\n showSeparator(d);\n });\n\n // Measure available width. The last separator is added to the available width, because it will be hidden later on.\n const separator = displayValueOptions[displayValueOptions.length - 1].querySelector('.separator');\n if (separator == null) return;\n let availableWidth = getWidth(this.displayValuesContainer) + getWidth(separator);\n\n // Compute how many display value elements fit in the available width\n let { fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth);\n\n if (overflowCount === 0) {\n // All items fit, hide overflow count and show all values.\n hideOverflowCount(this.overflowCount);\n showFittingValues(displayValueOptions, fitCount);\n } else {\n // Not all items fit in the available width. Recompute the available width with the overflow-count visible.\n\n // Increment overflow count by one to make sure the elements fit, even if the overflow count increases to the\n // next higher power of ten, e.g. from 9 to 10 or 99 to 100.\n setOverflowCount(this.overflowCount, overflowCount + 1);\n showOverflowCount(this.overflowCount);\n\n // Subtract the overflow count from the available width\n availableWidth = availableWidth - getWidth(this.overflowCount);\n\n // Compute how many display value elements fit in the new available width\n ({ fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth));\n\n // Show overflow count and items that fit.\n setOverflowCount(this.overflowCount, overflowCount);\n showFittingValues(displayValueOptions, fitCount);\n }\n }\n\n render() {\n const hasSelection = this.hasSelection();\n const items = this.getItems();\n const hasMenuItems = items.length > 0;\n const hasDeselectedOptions = this.hasDeselectedOptions();\n let showClear = false;\n let showExpand = hasMenuItems;\n if (this.clearable && hasSelection) {\n showClear = true;\n showExpand = false;\n }\n\n return (\n <FormControl\n inputId={this.inputId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n errorTextId={this.errorTextId}\n errorText={this.errorText}\n errorTextCount={this.errorTextCount}\n hasErrorTextSlot={this.hasErrorTextSlot}\n size={this.size}\n onLabelClick={this.handleLabelClick}\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <six-dropdown\n part=\"base\"\n ref={(el) => (this.dropdown = el)}\n hoist={this.hoist}\n matchTriggerWidth={true}\n closeOnSelect={!this.multiple}\n containingElement={this.host}\n disableHideOnEnterAndSpace={this.autocomplete}\n class={{\n select: true,\n 'select--open': this.isOpen,\n 'select--empty': this.value?.length === 0,\n 'select--focused': this.hasFocus,\n 'select--clearable': this.clearable,\n 'select--disabled': this.disabled,\n 'select--multiple': this.multiple,\n 'select--has-tags': this.multiple && hasSelection,\n 'select--placeholder-visible': this.displayedValues.length === 0,\n 'select--small': this.size === 'small',\n 'select--medium': this.size === 'medium',\n 'select--large': this.size === 'large',\n 'select--pill': this.pill,\n 'select--invalid': this.invalid,\n }}\n onKeyDown={this.handleKeyDown}\n onSix-dropdown-show={this.handleMenuShow}\n onSix-dropdown-hide={this.handleMenuHide}\n filterPlaceholder={this.filterPlaceholder}\n filterDebounce={this.filterDebounce}\n filter={this.filter}\n asyncFilter={this.asyncFilter}\n virtualScroll={this.virtualScroll}\n >\n {/* Trigger */}\n <div\n slot=\"trigger\"\n ref={(el) => (this.box = el)}\n id={this.inputId}\n class={{\n select__box: true,\n 'select__box--line': this.line,\n 'select__box--autocomplete': this.autocomplete,\n }}\n role=\"combobox\"\n aria-labelledby={this.labelId}\n aria-describedby={this.helpTextId}\n aria-haspopup=\"true\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : 0}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n >\n {/* Display values */}\n <div class=\"display__values\" ref={(el) => (this.displayValuesContainer = el)}>\n {this.displayedValues.length > 0 ? (\n <span class=\"display__values-and-counter\">\n <span class=\"display__values-values\">\n {this.displayedValues.map((value) => (\n <span key={value} class=\"display-value\">\n {value}\n <span class={{ separator: true }}>, </span>\n </span>\n ))}\n </span>\n <span ref={(el) => (this.overflowCount = el)} class=\"overflow-count\">\n +10\n </span>\n </span>\n ) : (\n <span class=\"placeholder\">{this.placeholder}</span>\n )}\n </div>\n\n {/* Clear */}\n {showClear && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n class=\"select__clear\"\n name=\"clear\"\n size=\"small\"\n onClick={this.handleClearClick}\n tabindex=\"-1\"\n />\n )}\n\n {/* Expand */}\n {showExpand && (\n <span part=\"icon\" class=\"select__icon\">\n <six-icon size=\"medium\">expand_more</six-icon>\n </span>\n )}\n\n {/* Autocomplete */}\n <six-input\n ref={(el) => (this.autocompleteInput = el)}\n class={{\n select__input: true,\n 'select__hidden-select': !this.autocomplete,\n }}\n aria-hidden=\"true\"\n required={this.required}\n onFocus={this.handleFocus}\n clearable={this.clearable}\n placeholder={this.placeholder}\n pill={this.pill}\n disabled={this.disabled}\n size={this.size}\n tabIndex={-1}\n />\n </div>\n\n {/* Selection container */}\n <div\n class={{\n 'selection-container': true,\n 'selection-container--border':\n this.selectionContainerItems.length > 0 && items.length !== this.selectionContainerItems.length,\n }}\n >\n {this.selectionContainerItems}\n </div>\n\n {/* Menu */}\n <six-menu\n ref={(el) => (this.menu = el)}\n part=\"menu\"\n class={{\n select__menu: true,\n 'select__menu--hidden': !hasMenuItems,\n }}\n onSix-menu-item-selected={this.handleMenuSelect}\n items={this.options}\n virtualScroll={this.virtualScroll}\n remove-box-shadow={true}\n disable-keyboard-handling={true}\n >\n <slot onSlotchange={this.handleSlotChange} />\n </six-menu>\n\n {/* Select all */}\n {this.multiple && this.selectAllButton && (\n <div class=\"select-all\" slot=\"dropdown-footer\">\n <six-button type=\"link\" onClick={() => this.selectAll()}>\n {this.selectAllText == null ? selectAllDefaultText(hasDeselectedOptions) : this.selectAllText}\n </six-button>\n </div>\n )}\n </six-dropdown>\n </FormControl>\n );\n }\n\n private hasSelection() {\n return this.multiple ? this.value.length > 0 : this.value !== '';\n }\n\n private hasDeselectedOptions() {\n return this.getVisibleItems().some((opt) => !opt.disabled && !opt.checked);\n }\n}\n\nfunction getCheckedItems(value: string[], items: HTMLSixMenuItemElement[]): HTMLSixMenuItemElement[] {\n return items.filter((item) => value.includes(item.value));\n}\n\nfunction getWidth(element: Element) {\n return element.getBoundingClientRect().width;\n}\n\nfunction computeFitCount(options: Element[], availableWidth: number): { fitCount: number; overflowCount: number } {\n let accumulatedWidth = 0;\n let fitCount = 0;\n\n for (let i = 0; i < options.length; i++) {\n const displayOption = options[i];\n const width = getWidth(displayOption);\n if (i === 0 && width > availableWidth) {\n fitCount = 1;\n break;\n }\n accumulatedWidth += width;\n if (accumulatedWidth > availableWidth) {\n break;\n } else {\n fitCount += 1;\n }\n }\n const overflowCount = options.length - fitCount;\n return { fitCount, overflowCount };\n}\n\nfunction showFittingValues(displayValueOptions: Element[], fitCount: number) {\n if (displayValueOptions.length > 0) {\n // show items that fit\n displayValueOptions.slice(0, fitCount).forEach((displayValue, index, list) => {\n showDisplayValue(displayValue);\n const isLast = index === list.length - 1;\n if (isLast) {\n hideSeparator(displayValue);\n } else {\n showSeparator(displayValue);\n }\n });\n\n // hide the rest\n displayValueOptions.slice(fitCount).forEach((displayValue) => {\n hideDisplayValue(displayValue);\n showSeparator(displayValue);\n });\n }\n}\n\nfunction hideSeparator(displayValueOption: Element) {\n displayValueOption.querySelector('.separator')?.classList.add('separator--hidden');\n}\n\nfunction showSeparator(displayValueOption: Element) {\n displayValueOption.querySelector('.separator')?.classList.remove('separator--hidden');\n}\n\nfunction showDisplayValue(displayValueOption: Element) {\n displayValueOption.classList.remove('display-value--hidden');\n}\n\nfunction hideDisplayValue(displayValueOption: Element) {\n displayValueOption.classList.add('display-value--hidden');\n}\n\nfunction setOverflowCount(overflowCount: Element, count: number) {\n overflowCount.textContent = `+${count}`;\n}\n\nfunction showOverflowCount(overflowCount: Element) {\n overflowCount.classList.remove('overflow-count-hidden');\n}\n\nfunction hideOverflowCount(overflowCount: Element) {\n overflowCount.classList.add('overflow-count-hidden');\n}\n\nfunction selectAllDefaultText(hasDeselectedOptions: boolean) {\n const lang = getLanguage();\n switch (lang) {\n case 'de':\n return hasDeselectedOptions ? 'Alle auswählen' : 'Alle abwählen';\n case 'fr':\n return hasDeselectedOptions ? 'Tout sélectionner' : 'Tout désélectionner';\n case 'it':\n return hasDeselectedOptions ? 'Seleziona tutto' : 'Deseleziona tutto';\n case 'en':\n return hasDeselectedOptions ? 'Select all' : 'Deselect all';\n case 'es':\n return hasDeselectedOptions ? 'Seleccionar todo' : 'Deseleccionar todo';\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { getValue, isValidValue } from "../util";
1
+ import { convertToValidValue, getValue, isValidValue } from "../util";
2
2
  describe('util', () => {
3
3
  describe('getValue(multiple)', () => {
4
4
  it.each([
@@ -77,5 +77,27 @@ describe('util', () => {
77
77
  expect(isValidValue(value, false, menuItems)).toBe(expected);
78
78
  });
79
79
  });
80
+ describe('convertToValidValue(value, multiple)', () => {
81
+ it.each([
82
+ [null, true, []],
83
+ [[null], true, []],
84
+ [[1, 2], true, []],
85
+ [[], true, []],
86
+ [['abcd', 'efgh'], true, ['abcd', 'efgh']],
87
+ [[{}], true, []],
88
+ [{}, true, []],
89
+ ['abc', true, ['abc']],
90
+ ['', true, []],
91
+ [undefined, true, []],
92
+ [1, false, ''],
93
+ ['', false, ''],
94
+ [{}, false, ''],
95
+ ['abc', false, 'abc'],
96
+ [[], false, ''],
97
+ [null, false, ''],
98
+ ])("value '%s', multiple: '%s' === '%s'", (value, multiple, expected) => {
99
+ expect(convertToValidValue(value, multiple)).toStrictEqual(expected);
100
+ });
101
+ });
80
102
  });
81
103
  //# sourceMappingURL=util.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.spec.js","sourceRoot":"","sources":["../../../../src/components/six-select/test/util.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { getValue, isValidValue } from '../util';\n\ndescribe('util', () => {\n describe('getValue(multiple)', () => {\n it.each([\n [null, [], []],\n [undefined, [], []],\n [10, [], []],\n [[1, 2, 3], [{ value: '1' }, { value: '2' }], []],\n [{}, [], []],\n [[], [], []],\n ['', [], []],\n ['1', [{ value: '1' }], ['1']],\n [['1'], [{ value: '1' }], ['1']],\n ['1', [{ value: '2' }], []],\n [['1'], [{ value: '2' }], []],\n ['1', [{ value: '1' }, { value: '2' }], ['1']],\n [['1'], [{ value: '1' }, { value: '2' }], ['1']],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(getValue(value, true, menuItems)).toStrictEqual(expected);\n });\n });\n\n describe('getValue(single)', () => {\n it.each([\n [null, [], ''],\n [undefined, [], ''],\n [10, [], ''],\n [{}, [], ''],\n [[], [], ''],\n ['', [], ''],\n ['1', [{ value: '1' }], '1'],\n [['1'], [{ value: '1' }], ''],\n ['1', [{ value: '2' }], ''],\n [['1'], [{ value: '2' }], ''],\n ['1', [{ value: '1' }, { value: '2' }], '1'],\n [['2'], [{ value: '1' }, { value: '2' }], ''],\n [[1, 2], [{ value: '1' }, { value: '2' }], ''],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(getValue(value, false, menuItems)).toStrictEqual(expected);\n });\n });\n\n describe('isValidValue(multiple)', () => {\n it.each([\n [null, [], false],\n [undefined, [], false],\n [10, [], false],\n [{}, [], false],\n ['', [], true],\n [[], [], true],\n ['1', [{ value: '1' }], true],\n [['1'], [{ value: '1' }], true],\n ['1', [{ value: '2' }], false],\n [['1'], [{ value: '2' }], false],\n ['1', [{ value: '1' }, { value: '2' }], true],\n [['1'], [{ value: '1' }, { value: '2' }], true],\n [['1', '3'], [{ value: '1' }, { value: '2' }], false],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(isValidValue(value, true, menuItems)).toBe(expected);\n });\n });\n\n describe('isValidValue(single)', () => {\n it.each([\n [null, [], false],\n [undefined, [], false],\n [10, [], false],\n [{}, [], false],\n ['', [], true],\n [[], [], false],\n ['1', [{ value: '1' }], true],\n [['1'], [{ value: '1' }], false],\n ['1', [{ value: '2' }], false],\n [['1'], [{ value: '2' }], false],\n ['1', [{ value: '1' }, { value: '2' }], true],\n [['2'], [{ value: '1' }, { value: '2' }], false],\n [[1, 2], [{ value: '1' }, { value: '2' }], false],\n [['1', '2'], [{ value: '1' }, { value: '2' }], false],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(isValidValue(value, false, menuItems)).toBe(expected);\n });\n });\n});\n"]}
1
+ {"version":3,"file":"util.spec.js","sourceRoot":"","sources":["../../../../src/components/six-select/test/util.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { convertToValidValue, getValue, isValidValue } from '../util';\n\ndescribe('util', () => {\n describe('getValue(multiple)', () => {\n it.each([\n [null, [], []],\n [undefined, [], []],\n [10, [], []],\n [[1, 2, 3], [{ value: '1' }, { value: '2' }], []],\n [{}, [], []],\n [[], [], []],\n ['', [], []],\n ['1', [{ value: '1' }], ['1']],\n [['1'], [{ value: '1' }], ['1']],\n ['1', [{ value: '2' }], []],\n [['1'], [{ value: '2' }], []],\n ['1', [{ value: '1' }, { value: '2' }], ['1']],\n [['1'], [{ value: '1' }, { value: '2' }], ['1']],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(getValue(value, true, menuItems)).toStrictEqual(expected);\n });\n });\n\n describe('getValue(single)', () => {\n it.each([\n [null, [], ''],\n [undefined, [], ''],\n [10, [], ''],\n [{}, [], ''],\n [[], [], ''],\n ['', [], ''],\n ['1', [{ value: '1' }], '1'],\n [['1'], [{ value: '1' }], ''],\n ['1', [{ value: '2' }], ''],\n [['1'], [{ value: '2' }], ''],\n ['1', [{ value: '1' }, { value: '2' }], '1'],\n [['2'], [{ value: '1' }, { value: '2' }], ''],\n [[1, 2], [{ value: '1' }, { value: '2' }], ''],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(getValue(value, false, menuItems)).toStrictEqual(expected);\n });\n });\n\n describe('isValidValue(multiple)', () => {\n it.each([\n [null, [], false],\n [undefined, [], false],\n [10, [], false],\n [{}, [], false],\n ['', [], true],\n [[], [], true],\n ['1', [{ value: '1' }], true],\n [['1'], [{ value: '1' }], true],\n ['1', [{ value: '2' }], false],\n [['1'], [{ value: '2' }], false],\n ['1', [{ value: '1' }, { value: '2' }], true],\n [['1'], [{ value: '1' }, { value: '2' }], true],\n [['1', '3'], [{ value: '1' }, { value: '2' }], false],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(isValidValue(value, true, menuItems)).toBe(expected);\n });\n });\n\n describe('isValidValue(single)', () => {\n it.each([\n [null, [], false],\n [undefined, [], false],\n [10, [], false],\n [{}, [], false],\n ['', [], true],\n [[], [], false],\n ['1', [{ value: '1' }], true],\n [['1'], [{ value: '1' }], false],\n ['1', [{ value: '2' }], false],\n [['1'], [{ value: '2' }], false],\n ['1', [{ value: '1' }, { value: '2' }], true],\n [['2'], [{ value: '1' }, { value: '2' }], false],\n [[1, 2], [{ value: '1' }, { value: '2' }], false],\n [['1', '2'], [{ value: '1' }, { value: '2' }], false],\n ])(\"value '%s', items: '%s' == '%s'\", (value, menuItems, expected) => {\n expect(isValidValue(value, false, menuItems)).toBe(expected);\n });\n });\n\n describe('convertToValidValue(value, multiple)', () => {\n it.each([\n [null, true, []],\n [[null], true, []],\n [[1, 2], true, []],\n [[], true, []],\n [['abcd', 'efgh'], true, ['abcd', 'efgh']],\n [[{}], true, []],\n [{}, true, []],\n ['abc', true, ['abc']],\n ['', true, []],\n [undefined, true, []],\n [1, false, ''],\n ['', false, ''],\n [{}, false, ''],\n ['abc', false, 'abc'],\n [[], false, ''],\n [null, false, ''],\n ])(\"value '%s', multiple: '%s' === '%s'\", (value, multiple, expected) => {\n expect(convertToValidValue(value, multiple)).toStrictEqual(expected);\n });\n });\n});\n"]}
@@ -25,6 +25,30 @@ export function isValidValue(value, multiple, menuItems) {
25
25
  }
26
26
  return getSelectedMenuItem(value, menuItems) != null;
27
27
  }
28
+ export function convertToValidValue(value, multiple) {
29
+ if (multiple) {
30
+ if (Array.isArray(value)) {
31
+ return value.filter((element) => typeof element === 'string');
32
+ }
33
+ else if (typeof value === 'string' && value.length > 0) {
34
+ return [value];
35
+ }
36
+ else {
37
+ return [];
38
+ }
39
+ }
40
+ else {
41
+ if (typeof value === 'string') {
42
+ return value;
43
+ }
44
+ else {
45
+ return '';
46
+ }
47
+ }
48
+ }
49
+ export function convertToValidArrayValue(value) {
50
+ return convertToValidValue(value, true);
51
+ }
28
52
  export function valueEquals(a, b) {
29
53
  if (Array.isArray(a) && Array.isArray(b)) {
30
54
  return a.length === b.length && a.every((element, index) => element === b[index]);
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/six-select/util.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,QAAiB,EAAE,SAAqB;;IAC/E,IAAI,QAAQ,EAAE;QACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAC5C;aAAM;YACL,OAAO,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SACtD;KACF;IAED,OAAO,MAAA,MAAA,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,QAAiB,EAAE,SAAqB;IACnF,IAAI,KAAK,KAAK,EAAE,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,QAAQ,EAAE;QACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,OAAO,IAAI,CAAC;aACb;YACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;SACpE;QACD,OAAO,2BAA2B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;KACjE;IAED,OAAO,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAoB,EAAE,CAAoB;IACpE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;KACnF;SAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzD,OAAO,CAAC,KAAK,CAAC,CAAC;KAChB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;KAC3B;IACD,OAAO,KAAK,KAAK,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAiB,EAAE,SAAqB;IACjE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc,EAAE,SAAqB;IACxE,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc,EAAE,SAAqB;IAChE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC","sourcesContent":["export interface MenuItem {\n value: string;\n}\n\nexport function getValue(value: unknown, multiple: boolean, menuItems: MenuItem[]): string | string[] {\n if (multiple) {\n if (Array.isArray(value)) {\n return getSelectedValues(value, menuItems);\n } else {\n return getSelectedValuesFromString(value, menuItems);\n }\n }\n\n return getSelectedMenuItem(value, menuItems)?.value ?? '';\n}\n\nexport function isValidValue(value: unknown, multiple: boolean, menuItems: MenuItem[]): boolean {\n if (value === '') {\n return true;\n }\n\n if (multiple) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return true;\n }\n return getSelectedValues(value, menuItems).length === value.length;\n }\n return getSelectedValuesFromString(value, menuItems).length > 0;\n }\n\n return getSelectedMenuItem(value, menuItems) != null;\n}\n\nexport function valueEquals(a: string | string[], b: string | string[]): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((element, index) => element === b[index]);\n } else if (typeof a === 'string' && typeof b === 'string') {\n return a === b;\n }\n return false;\n}\n\nexport function isValueEmpty(value: string | string[]): boolean {\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return value === '';\n}\n\nfunction getSelectedValues(values: unknown[], menuItems: MenuItem[]): string[] {\n return menuItems.filter((menuItem) => values.includes(menuItem.value)).map((menuItem) => menuItem.value);\n}\n\nfunction getSelectedValuesFromString(value: unknown, menuItems: MenuItem[]): string[] {\n return menuItems.filter((menuItem) => value === menuItem.value).map((menuItem) => menuItem.value);\n}\n\nfunction getSelectedMenuItem(value: unknown, menuItems: MenuItem[]): MenuItem | undefined {\n return menuItems.find((item) => value === item.value);\n}\n"]}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/components/six-select/util.ts"],"names":[],"mappings":"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","sourcesContent":["export interface MenuItem {\n value: string;\n}\n\nexport function getValue(value: unknown, multiple: boolean, menuItems: MenuItem[]): string | string[] {\n if (multiple) {\n if (Array.isArray(value)) {\n return getSelectedValues(value, menuItems);\n } else {\n return getSelectedValuesFromString(value, menuItems);\n }\n }\n\n return getSelectedMenuItem(value, menuItems)?.value ?? '';\n}\n\nexport function isValidValue(value: unknown, multiple: boolean, menuItems: MenuItem[]): boolean {\n if (value === '') {\n return true;\n }\n\n if (multiple) {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return true;\n }\n return getSelectedValues(value, menuItems).length === value.length;\n }\n return getSelectedValuesFromString(value, menuItems).length > 0;\n }\n\n return getSelectedMenuItem(value, menuItems) != null;\n}\n\nexport function convertToValidValue(value: unknown, multiple: boolean): string | string[] {\n if (multiple) {\n if (Array.isArray(value)) {\n return value.filter((element) => typeof element === 'string');\n } else if (typeof value === 'string' && value.length > 0) {\n return [value];\n } else {\n return [];\n }\n } else {\n if (typeof value === 'string') {\n return value;\n } else {\n return '';\n }\n }\n}\n\nexport function convertToValidArrayValue(value: unknown): string[] {\n return convertToValidValue(value, true) as string[];\n}\n\nexport function valueEquals(a: string | string[], b: string | string[]): boolean {\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((element, index) => element === b[index]);\n } else if (typeof a === 'string' && typeof b === 'string') {\n return a === b;\n }\n return false;\n}\n\nexport function isValueEmpty(value: string | string[]): boolean {\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return value === '';\n}\n\nfunction getSelectedValues(values: unknown[], menuItems: MenuItem[]): string[] {\n return menuItems.filter((menuItem) => values.includes(menuItem.value)).map((menuItem) => menuItem.value);\n}\n\nfunction getSelectedValuesFromString(value: unknown, menuItems: MenuItem[]): string[] {\n return menuItems.filter((menuItem) => value === menuItem.value).map((menuItem) => menuItem.value);\n}\n\nfunction getSelectedMenuItem(value: unknown, menuItems: MenuItem[]): MenuItem | undefined {\n return menuItems.find((item) => value === item.value);\n}\n"]}