@infineon/infineon-design-system-stencil 35.5.0--canary.1904.c3cb7254ae476891ebdb18f1579f66379ad24854.0 → 36.0.0--canary.1926.3b76d5defe8b9a743d9ec0dd5e6879c04e8055c0.0

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/ifx-accordion_2.cjs.entry.js +26 -33
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -7
  4. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-badge.cjs.entry.js +1 -9
  6. package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ifx-basic-table.cjs.entry.js +4 -9
  8. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -8
  10. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ifx-button.cjs.entry.js +1 -6
  12. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-card.cjs.entry.js +3 -8
  14. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +1 -6
  16. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-checkbox.cjs.entry.js +3 -8
  18. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-chip_3.cjs.entry.js +9 -17
  20. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-content-switcher.cjs.entry.js +1 -6
  22. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-date-picker.cjs.entry.js +2 -9
  24. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-dropdown.cjs.entry.js +1 -6
  26. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  28. package/dist/cjs/ifx-file-upload.cjs.entry.js +2 -9
  29. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +2 -2
  31. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  33. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  34. package/dist/cjs/ifx-footer.cjs.entry.js +4 -9
  35. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -6
  37. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ifx-icon.cjs.entry.js +3 -36
  39. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ifx-indicator.cjs.entry.js +2 -7
  41. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ifx-link.cjs.entry.js +1 -9
  43. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  45. package/dist/cjs/ifx-modal.cjs.entry.js +2 -9
  46. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +932 -0
  48. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -0
  49. package/dist/cjs/ifx-navbar.cjs.entry.js +3 -5
  50. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ifx-notification.cjs.entry.js +2 -10
  52. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -7
  54. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -6
  56. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -7
  58. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -6
  60. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -9
  62. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -9
  64. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-select.cjs.entry.js +2 -7
  66. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-set-filter.cjs.entry.js +19 -2
  68. package/dist/cjs/ifx-set-filter.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-sidebar.cjs.entry.js +5 -7
  70. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-slider.cjs.entry.js +3 -8
  72. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ifx-spinner_2.cjs.entry.js +6 -17
  74. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ifx-status.cjs.entry.js +1 -9
  76. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-step.cjs.entry.js +4 -4
  78. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -7
  80. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-switch.cjs.entry.js +1 -6
  82. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  84. package/dist/cjs/ifx-table.cjs.entry.js +5 -10
  85. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -7
  87. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ifx-tag.cjs.entry.js +1 -9
  89. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  91. package/dist/cjs/ifx-textarea.cjs.entry.js +1 -6
  92. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -9
  94. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +2 -2
  96. package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -9
  97. package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -1
  98. package/dist/cjs/index-7f4df11a.js +14 -14
  99. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  100. package/dist/cjs/loader.cjs.js +1 -1
  101. package/dist/collection/collection-manifest.json +1 -0
  102. package/dist/collection/components/accordion/accordion.js +2 -8
  103. package/dist/collection/components/accordion/accordion.js.map +1 -1
  104. package/dist/collection/components/accordion/accordionItem.css +4 -0
  105. package/dist/collection/components/accordion/accordionItem.js +24 -24
  106. package/dist/collection/components/accordion/accordionItem.js.map +1 -1
  107. package/dist/collection/components/alert/alert.js +0 -6
  108. package/dist/collection/components/alert/alert.js.map +1 -1
  109. package/dist/collection/components/badge/badge.js +1 -9
  110. package/dist/collection/components/badge/badge.js.map +1 -1
  111. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -8
  112. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  113. package/dist/collection/components/button/button.js +1 -6
  114. package/dist/collection/components/button/button.js.map +1 -1
  115. package/dist/collection/components/card/card.js +3 -8
  116. package/dist/collection/components/card/card.js.map +1 -1
  117. package/dist/collection/components/checkbox/checkbox.js +3 -8
  118. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  119. package/dist/collection/components/checkbox-group/checkbox-group.js +1 -6
  120. package/dist/collection/components/checkbox-group/checkbox-group.js.map +1 -1
  121. package/dist/collection/components/chip/chip.js +8 -13
  122. package/dist/collection/components/chip/chip.js.map +1 -1
  123. package/dist/collection/components/content-switcher/content-switcher.js +1 -6
  124. package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
  125. package/dist/collection/components/date-picker/date-picker.js +2 -9
  126. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  127. package/dist/collection/components/dropdown/dropdown.js +1 -6
  128. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  129. package/dist/collection/components/file-upload/file-upload.js +2 -9
  130. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  131. package/dist/collection/components/footer/footer.js +4 -9
  132. package/dist/collection/components/footer/footer.js.map +1 -1
  133. package/dist/collection/components/footer/footer.stories.js +4 -4
  134. package/dist/collection/components/footer/footer.stories.js.map +1 -1
  135. package/dist/collection/components/icon/infineonIconStencil.js +3 -36
  136. package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
  137. package/dist/collection/components/icon-button/icon-button.js +1 -6
  138. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  139. package/dist/collection/components/indicator/indicator.js +2 -7
  140. package/dist/collection/components/indicator/indicator.js.map +1 -1
  141. package/dist/collection/components/link/link.js +1 -9
  142. package/dist/collection/components/link/link.js.map +1 -1
  143. package/dist/collection/components/modal/modal.js +2 -9
  144. package/dist/collection/components/modal/modal.js.map +1 -1
  145. package/dist/collection/components/navigation/navbar/navbar.js +3 -5
  146. package/dist/collection/components/navigation/navbar/navbar.js.map +1 -1
  147. package/dist/collection/components/navigation/sidebar/sidebar.js +5 -7
  148. package/dist/collection/components/navigation/sidebar/sidebar.js.map +1 -1
  149. package/dist/collection/components/notification/notification.js +2 -10
  150. package/dist/collection/components/notification/notification.js.map +1 -1
  151. package/dist/collection/components/pagination/pagination.js +1 -6
  152. package/dist/collection/components/pagination/pagination.js.map +1 -1
  153. package/dist/collection/components/progress-bar/progress-bar.js +1 -7
  154. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  155. package/dist/collection/components/radio-button/radio-button.js +2 -7
  156. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  157. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -6
  158. package/dist/collection/components/radio-button-group/radio-button-group.js.map +1 -1
  159. package/dist/collection/components/search-bar/search-bar.js +1 -6
  160. package/dist/collection/components/search-bar/search-bar.js.map +1 -1
  161. package/dist/collection/components/search-field/search-field.js +1 -9
  162. package/dist/collection/components/search-field/search-field.js.map +1 -1
  163. package/dist/collection/components/segmented-control/segmented-control.js +2 -9
  164. package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
  165. package/dist/collection/components/select/multi-select/interfaces.js.map +1 -1
  166. package/dist/collection/components/select/multi-select/multiselect-option.css +112 -0
  167. package/dist/collection/components/select/multi-select/multiselect-option.js +505 -0
  168. package/dist/collection/components/select/multi-select/multiselect-option.js.map +1 -0
  169. package/dist/collection/components/select/multi-select/multiselect.css +56 -67
  170. package/dist/collection/components/select/multi-select/multiselect.js +678 -432
  171. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  172. package/dist/collection/components/select/multi-select/multiselect.stories.js +439 -135
  173. package/dist/collection/components/select/multi-select/multiselect.stories.js.map +1 -1
  174. package/dist/collection/components/select/single-select/select.js +2 -7
  175. package/dist/collection/components/select/single-select/select.js.map +1 -1
  176. package/dist/collection/components/slider/slider.css +2 -2
  177. package/dist/collection/components/slider/slider.js +2 -7
  178. package/dist/collection/components/slider/slider.js.map +1 -1
  179. package/dist/collection/components/spinner/spinner.js +2 -10
  180. package/dist/collection/components/spinner/spinner.js.map +1 -1
  181. package/dist/collection/components/status/status.js +1 -9
  182. package/dist/collection/components/status/status.js.map +1 -1
  183. package/dist/collection/components/stepper/step/step.js +4 -4
  184. package/dist/collection/components/stepper/step/step.js.map +1 -1
  185. package/dist/collection/components/stepper/stepper.js +2 -7
  186. package/dist/collection/components/stepper/stepper.js.map +1 -1
  187. package/dist/collection/components/switch/switch.js +1 -6
  188. package/dist/collection/components/switch/switch.js.map +1 -1
  189. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +1 -1
  190. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +2 -2
  191. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +1 -1
  192. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +1 -1
  193. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -1
  194. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js +19 -2
  195. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js.map +1 -1
  196. package/dist/collection/components/table-advanced-version/table.js +5 -10
  197. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  198. package/dist/collection/components/table-advanced-version/table.stories.js +2 -3
  199. package/dist/collection/components/table-advanced-version/table.stories.js.map +1 -1
  200. package/dist/collection/components/table-basic-version/table.js +4 -9
  201. package/dist/collection/components/table-basic-version/table.js.map +1 -1
  202. package/dist/collection/components/tabs/tab.js +1 -1
  203. package/dist/collection/components/tabs/tabs.js +3 -7
  204. package/dist/collection/components/tabs/tabs.js.map +1 -1
  205. package/dist/collection/components/tag/tag.js +1 -9
  206. package/dist/collection/components/tag/tag.js.map +1 -1
  207. package/dist/collection/components/templates/template/template.js +1 -1
  208. package/dist/collection/components/templates/templates-ui/templates-ui.js +1 -1
  209. package/dist/collection/components/text-field/text-field.js +4 -9
  210. package/dist/collection/components/text-field/text-field.js.map +1 -1
  211. package/dist/collection/components/textarea/textarea.js +1 -6
  212. package/dist/collection/components/textarea/textarea.js.map +1 -1
  213. package/dist/collection/components/tooltip/tooltip.js +4 -9
  214. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  215. package/dist/collection/components/tree-view/tree-view-item.js +2 -2
  216. package/dist/collection/components/tree-view/tree-view.js +1 -9
  217. package/dist/collection/components/tree-view/tree-view.js.map +1 -1
  218. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  219. package/dist/components/ifx-accordion-item.js +1 -1
  220. package/dist/components/ifx-accordion.js +1 -1
  221. package/dist/components/ifx-alert.js +1 -1
  222. package/dist/components/ifx-badge.js +1 -9
  223. package/dist/components/ifx-badge.js.map +1 -1
  224. package/dist/components/ifx-basic-table.js +4 -9
  225. package/dist/components/ifx-basic-table.js.map +1 -1
  226. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  227. package/dist/components/ifx-breadcrumb.js +1 -8
  228. package/dist/components/ifx-breadcrumb.js.map +1 -1
  229. package/dist/components/ifx-button.js +1 -1
  230. package/dist/components/ifx-card.js +3 -8
  231. package/dist/components/ifx-card.js.map +1 -1
  232. package/dist/components/ifx-checkbox-group.js +2 -7
  233. package/dist/components/ifx-checkbox-group.js.map +1 -1
  234. package/dist/components/ifx-checkbox.js +1 -1
  235. package/dist/components/ifx-chip-item.js +1 -1
  236. package/dist/components/ifx-chip.js +1 -1
  237. package/dist/components/ifx-content-switcher.js +1 -6
  238. package/dist/components/ifx-content-switcher.js.map +1 -1
  239. package/dist/components/ifx-date-picker.js +3 -10
  240. package/dist/components/ifx-date-picker.js.map +1 -1
  241. package/dist/components/ifx-download.js +1 -1
  242. package/dist/components/ifx-dropdown-item.js +1 -1
  243. package/dist/components/ifx-dropdown-separator.js +29 -1
  244. package/dist/components/ifx-dropdown-separator.js.map +1 -1
  245. package/dist/components/ifx-dropdown-trigger-button.js +2 -2
  246. package/dist/components/ifx-dropdown.js +1 -6
  247. package/dist/components/ifx-dropdown.js.map +1 -1
  248. package/dist/components/ifx-faq.js +4 -4
  249. package/dist/components/ifx-file-upload.js +6 -13
  250. package/dist/components/ifx-file-upload.js.map +1 -1
  251. package/dist/components/ifx-filter-accordion.js +4 -4
  252. package/dist/components/ifx-filter-bar.js +3 -3
  253. package/dist/components/ifx-filter-search.js +3 -3
  254. package/dist/components/ifx-filter-type-group.js +1 -1
  255. package/dist/components/ifx-footer.js +4 -9
  256. package/dist/components/ifx-footer.js.map +1 -1
  257. package/dist/components/ifx-icon-button.js +1 -1
  258. package/dist/components/ifx-icon.js +1 -1
  259. package/dist/components/ifx-icons-preview.js +4 -4
  260. package/dist/components/ifx-indicator.js +1 -1
  261. package/dist/components/ifx-link.js +1 -1
  262. package/dist/components/ifx-list-entry.js +4 -4
  263. package/dist/components/ifx-list.js +2 -2
  264. package/dist/components/ifx-modal.js +4 -11
  265. package/dist/components/ifx-modal.js.map +1 -1
  266. package/dist/components/ifx-multiselect-option.d.ts +11 -0
  267. package/dist/components/ifx-multiselect-option.js +8 -0
  268. package/dist/components/ifx-multiselect-option.js.map +1 -0
  269. package/dist/components/ifx-multiselect.js +1 -1
  270. package/dist/components/ifx-navbar-item.js +2 -2
  271. package/dist/components/ifx-navbar.js +4 -6
  272. package/dist/components/ifx-navbar.js.map +1 -1
  273. package/dist/components/ifx-notification.js +1 -1
  274. package/dist/components/ifx-overview-table.js +3 -3
  275. package/dist/components/ifx-pagination.js +1 -1
  276. package/dist/components/ifx-progress-bar.js +1 -1
  277. package/dist/components/ifx-radio-button-group.js +2 -7
  278. package/dist/components/ifx-radio-button-group.js.map +1 -1
  279. package/dist/components/ifx-radio-button.js +1 -1
  280. package/dist/components/ifx-search-bar.js +3 -8
  281. package/dist/components/ifx-search-bar.js.map +1 -1
  282. package/dist/components/ifx-search-field.js +1 -1
  283. package/dist/components/ifx-segment.js +1 -1
  284. package/dist/components/ifx-segmented-control.js +3 -10
  285. package/dist/components/ifx-segmented-control.js.map +1 -1
  286. package/dist/components/ifx-select.js +1 -1
  287. package/dist/components/ifx-set-filter.js +35 -12
  288. package/dist/components/ifx-set-filter.js.map +1 -1
  289. package/dist/components/ifx-sidebar-item.js +2 -2
  290. package/dist/components/ifx-sidebar.js +5 -7
  291. package/dist/components/ifx-sidebar.js.map +1 -1
  292. package/dist/components/ifx-slider.js +4 -9
  293. package/dist/components/ifx-slider.js.map +1 -1
  294. package/dist/components/ifx-spinner.js +1 -1
  295. package/dist/components/ifx-status.js +1 -9
  296. package/dist/components/ifx-status.js.map +1 -1
  297. package/dist/components/ifx-step.js +5 -5
  298. package/dist/components/ifx-step.js.map +1 -1
  299. package/dist/components/ifx-stepper.js +2 -7
  300. package/dist/components/ifx-stepper.js.map +1 -1
  301. package/dist/components/ifx-switch.js +1 -6
  302. package/dist/components/ifx-switch.js.map +1 -1
  303. package/dist/components/ifx-tab.js +1 -1
  304. package/dist/components/ifx-table.js +14 -19
  305. package/dist/components/ifx-table.js.map +1 -1
  306. package/dist/components/ifx-tabs.js +3 -8
  307. package/dist/components/ifx-tabs.js.map +1 -1
  308. package/dist/components/ifx-tag.js +2 -10
  309. package/dist/components/ifx-tag.js.map +1 -1
  310. package/dist/components/ifx-template.js +1 -1
  311. package/dist/components/ifx-templates-ui.js +9 -9
  312. package/dist/components/ifx-text-field.js +1 -1
  313. package/dist/components/ifx-textarea.js +1 -6
  314. package/dist/components/ifx-textarea.js.map +1 -1
  315. package/dist/components/ifx-tooltip.js +5 -10
  316. package/dist/components/ifx-tooltip.js.map +1 -1
  317. package/dist/components/ifx-tree-view-item.js +4 -4
  318. package/dist/components/ifx-tree-view.js +1 -9
  319. package/dist/components/ifx-tree-view.js.map +1 -1
  320. package/dist/components/p-09673a59.js +119 -0
  321. package/dist/components/p-09673a59.js.map +1 -0
  322. package/dist/components/{p-816b2612.js → p-17df0350.js} +2 -7
  323. package/dist/components/p-17df0350.js.map +1 -0
  324. package/dist/components/p-1bb40944.js +602 -0
  325. package/dist/components/p-1bb40944.js.map +1 -0
  326. package/dist/components/{p-e126ea6f.js → p-351949f1.js} +3 -11
  327. package/dist/components/p-351949f1.js.map +1 -0
  328. package/dist/components/{p-54b39a91.js → p-357107c5.js} +3 -8
  329. package/dist/components/p-357107c5.js.map +1 -0
  330. package/dist/components/p-3f51d740.js +432 -0
  331. package/dist/components/p-3f51d740.js.map +1 -0
  332. package/dist/components/{p-9ea9e274.js → p-53d4339c.js} +2 -10
  333. package/dist/components/p-53d4339c.js.map +1 -0
  334. package/dist/components/{p-6d95b3c1.js → p-5e9d3450.js} +2 -8
  335. package/dist/components/p-5e9d3450.js.map +1 -0
  336. package/dist/components/{p-465d3172.js → p-8a645052.js} +3 -11
  337. package/dist/components/p-8a645052.js.map +1 -0
  338. package/dist/components/{p-94da6823.js → p-9142f93b.js} +3 -8
  339. package/dist/components/p-9142f93b.js.map +1 -0
  340. package/dist/components/{p-4fc475c9.js → p-9a258534.js} +4 -37
  341. package/dist/components/p-9a258534.js.map +1 -0
  342. package/dist/components/{p-1ad917f9.js → p-9bdb8233.js} +4 -9
  343. package/dist/components/p-9bdb8233.js.map +1 -0
  344. package/dist/components/{p-830057b3.js → p-ba627b54.js} +2 -8
  345. package/dist/components/p-ba627b54.js.map +1 -0
  346. package/dist/components/{p-24382260.js → p-c90a8438.js} +6 -11
  347. package/dist/components/p-c90a8438.js.map +1 -0
  348. package/dist/components/{p-cf109552.js → p-cdac7da6.js} +5 -10
  349. package/dist/components/p-cdac7da6.js.map +1 -0
  350. package/dist/components/{p-8cb991f4.js → p-cf9adb93.js} +5 -13
  351. package/dist/components/p-cf9adb93.js.map +1 -0
  352. package/dist/components/{p-13578a85.js → p-dda8b55f.js} +7 -7
  353. package/dist/components/{p-13578a85.js.map → p-dda8b55f.js.map} +1 -1
  354. package/dist/components/{p-0905733d.js → p-e4c0ba88.js} +11 -16
  355. package/dist/components/p-e4c0ba88.js.map +1 -0
  356. package/dist/components/{p-cca71d97.js → p-ed739e86.js} +2 -9
  357. package/dist/components/p-ed739e86.js.map +1 -0
  358. package/dist/components/{p-0d6ca0f6.js → p-eebb75a8.js} +3 -8
  359. package/dist/components/p-eebb75a8.js.map +1 -0
  360. package/dist/components/{p-ee0f87ac.js → p-f38c3009.js} +3 -3
  361. package/dist/components/{p-ee0f87ac.js.map → p-f38c3009.js.map} +1 -1
  362. package/dist/components/{p-13126216.js → p-f5675de2.js} +5 -10
  363. package/dist/components/p-f5675de2.js.map +1 -0
  364. package/dist/esm/ifx-accordion_2.entry.js +26 -33
  365. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  366. package/dist/esm/ifx-alert_2.entry.js +1 -7
  367. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  368. package/dist/esm/ifx-badge.entry.js +2 -10
  369. package/dist/esm/ifx-badge.entry.js.map +1 -1
  370. package/dist/esm/ifx-basic-table.entry.js +4 -9
  371. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  372. package/dist/esm/ifx-breadcrumb.entry.js +1 -8
  373. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  374. package/dist/esm/ifx-button.entry.js +1 -6
  375. package/dist/esm/ifx-button.entry.js.map +1 -1
  376. package/dist/esm/ifx-card.entry.js +3 -8
  377. package/dist/esm/ifx-card.entry.js.map +1 -1
  378. package/dist/esm/ifx-checkbox-group.entry.js +1 -6
  379. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  380. package/dist/esm/ifx-checkbox.entry.js +3 -8
  381. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  382. package/dist/esm/ifx-chip_3.entry.js +9 -17
  383. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  384. package/dist/esm/ifx-content-switcher.entry.js +1 -6
  385. package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
  386. package/dist/esm/ifx-date-picker.entry.js +2 -9
  387. package/dist/esm/ifx-date-picker.entry.js.map +1 -1
  388. package/dist/esm/ifx-dropdown.entry.js +1 -6
  389. package/dist/esm/ifx-dropdown.entry.js.map +1 -1
  390. package/dist/esm/ifx-faq.entry.js +1 -1
  391. package/dist/esm/ifx-file-upload.entry.js +2 -9
  392. package/dist/esm/ifx-file-upload.entry.js.map +1 -1
  393. package/dist/esm/ifx-filter-accordion.entry.js +2 -2
  394. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  395. package/dist/esm/ifx-filter-search.entry.js +1 -1
  396. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  397. package/dist/esm/ifx-footer.entry.js +4 -9
  398. package/dist/esm/ifx-footer.entry.js.map +1 -1
  399. package/dist/esm/ifx-icon-button.entry.js +1 -6
  400. package/dist/esm/ifx-icon-button.entry.js.map +1 -1
  401. package/dist/esm/ifx-icon.entry.js +4 -37
  402. package/dist/esm/ifx-icon.entry.js.map +1 -1
  403. package/dist/esm/ifx-indicator.entry.js +2 -7
  404. package/dist/esm/ifx-indicator.entry.js.map +1 -1
  405. package/dist/esm/ifx-link.entry.js +2 -10
  406. package/dist/esm/ifx-link.entry.js.map +1 -1
  407. package/dist/esm/ifx-list-entry.entry.js +1 -1
  408. package/dist/esm/ifx-modal.entry.js +2 -9
  409. package/dist/esm/ifx-modal.entry.js.map +1 -1
  410. package/dist/esm/ifx-multiselect_2.entry.js +927 -0
  411. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -0
  412. package/dist/esm/ifx-navbar.entry.js +3 -5
  413. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  414. package/dist/esm/ifx-notification.entry.js +3 -11
  415. package/dist/esm/ifx-notification.entry.js.map +1 -1
  416. package/dist/esm/ifx-progress-bar.entry.js +2 -8
  417. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  418. package/dist/esm/ifx-radio-button-group.entry.js +1 -6
  419. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  420. package/dist/esm/ifx-radio-button.entry.js +2 -7
  421. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  422. package/dist/esm/ifx-search-bar.entry.js +1 -6
  423. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  424. package/dist/esm/ifx-search-field.entry.js +2 -10
  425. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  426. package/dist/esm/ifx-segmented-control.entry.js +2 -9
  427. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  428. package/dist/esm/ifx-select.entry.js +2 -7
  429. package/dist/esm/ifx-select.entry.js.map +1 -1
  430. package/dist/esm/ifx-set-filter.entry.js +19 -2
  431. package/dist/esm/ifx-set-filter.entry.js.map +1 -1
  432. package/dist/esm/ifx-sidebar.entry.js +5 -7
  433. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  434. package/dist/esm/ifx-slider.entry.js +3 -8
  435. package/dist/esm/ifx-slider.entry.js.map +1 -1
  436. package/dist/esm/ifx-spinner_2.entry.js +7 -18
  437. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  438. package/dist/esm/ifx-status.entry.js +2 -10
  439. package/dist/esm/ifx-status.entry.js.map +1 -1
  440. package/dist/esm/ifx-step.entry.js +4 -4
  441. package/dist/esm/ifx-step.entry.js.map +1 -1
  442. package/dist/esm/ifx-stepper.entry.js +2 -7
  443. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  444. package/dist/esm/ifx-switch.entry.js +1 -6
  445. package/dist/esm/ifx-switch.entry.js.map +1 -1
  446. package/dist/esm/ifx-tab.entry.js +1 -1
  447. package/dist/esm/ifx-table.entry.js +5 -10
  448. package/dist/esm/ifx-table.entry.js.map +1 -1
  449. package/dist/esm/ifx-tabs.entry.js +2 -7
  450. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  451. package/dist/esm/ifx-tag.entry.js +2 -10
  452. package/dist/esm/ifx-tag.entry.js.map +1 -1
  453. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  454. package/dist/esm/ifx-textarea.entry.js +1 -6
  455. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  456. package/dist/esm/ifx-tooltip.entry.js +4 -9
  457. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  458. package/dist/esm/ifx-tree-view-item.entry.js +2 -2
  459. package/dist/esm/ifx-tree-view.entry.js +2 -10
  460. package/dist/esm/ifx-tree-view.entry.js.map +1 -1
  461. package/dist/esm/index-6c9eba32.js +14 -14
  462. package/dist/esm/infineon-design-system-stencil.js +1 -1
  463. package/dist/esm/loader.js +1 -1
  464. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  465. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  466. package/dist/infineon-design-system-stencil/p-02496917.entry.js +2 -0
  467. package/dist/infineon-design-system-stencil/p-02496917.entry.js.map +1 -0
  468. package/dist/infineon-design-system-stencil/{p-f2bea855.entry.js → p-04d8ea38.entry.js} +2 -2
  469. package/dist/infineon-design-system-stencil/p-061bfdb1.entry.js +2 -0
  470. package/dist/infineon-design-system-stencil/p-061bfdb1.entry.js.map +1 -0
  471. package/dist/infineon-design-system-stencil/{p-87fbd617.entry.js → p-0c1c831c.entry.js} +2 -2
  472. package/dist/infineon-design-system-stencil/p-135110b2.entry.js +2 -0
  473. package/dist/infineon-design-system-stencil/p-135110b2.entry.js.map +1 -0
  474. package/dist/infineon-design-system-stencil/p-13c107bf.entry.js +2 -0
  475. package/dist/infineon-design-system-stencil/p-13c107bf.entry.js.map +1 -0
  476. package/dist/infineon-design-system-stencil/p-17f3f2f5.entry.js +2 -0
  477. package/dist/infineon-design-system-stencil/p-17f3f2f5.entry.js.map +1 -0
  478. package/dist/infineon-design-system-stencil/p-1bf2d4f8.entry.js +2 -0
  479. package/dist/infineon-design-system-stencil/p-1bf2d4f8.entry.js.map +1 -0
  480. package/dist/infineon-design-system-stencil/p-2006c7a0.entry.js +2 -0
  481. package/dist/infineon-design-system-stencil/p-2006c7a0.entry.js.map +1 -0
  482. package/dist/infineon-design-system-stencil/p-292cff35.entry.js +2 -0
  483. package/dist/infineon-design-system-stencil/p-292cff35.entry.js.map +1 -0
  484. package/dist/infineon-design-system-stencil/p-2d89c5e0.entry.js +2 -0
  485. package/dist/infineon-design-system-stencil/p-2d89c5e0.entry.js.map +1 -0
  486. package/dist/infineon-design-system-stencil/p-33a4fd0a.entry.js +2 -0
  487. package/dist/infineon-design-system-stencil/p-33a4fd0a.entry.js.map +1 -0
  488. package/dist/infineon-design-system-stencil/{p-a9cfb70d.entry.js → p-36dcebde.entry.js} +2 -2
  489. package/dist/infineon-design-system-stencil/p-37d6c639.entry.js +2 -0
  490. package/dist/infineon-design-system-stencil/p-37d6c639.entry.js.map +1 -0
  491. package/dist/infineon-design-system-stencil/{p-0f096cf1.entry.js → p-3d037fa4.entry.js} +2 -2
  492. package/dist/infineon-design-system-stencil/p-3d23deba.entry.js +2 -0
  493. package/dist/infineon-design-system-stencil/p-3d23deba.entry.js.map +1 -0
  494. package/dist/infineon-design-system-stencil/p-3ff96710.entry.js +2 -0
  495. package/dist/infineon-design-system-stencil/p-3ff96710.entry.js.map +1 -0
  496. package/dist/infineon-design-system-stencil/p-4764665d.entry.js +2 -0
  497. package/dist/infineon-design-system-stencil/p-4764665d.entry.js.map +1 -0
  498. package/dist/infineon-design-system-stencil/p-47a3e831.entry.js +2 -0
  499. package/dist/infineon-design-system-stencil/p-47a3e831.entry.js.map +1 -0
  500. package/dist/infineon-design-system-stencil/p-487d2155.entry.js +2 -0
  501. package/dist/infineon-design-system-stencil/p-487d2155.entry.js.map +1 -0
  502. package/dist/infineon-design-system-stencil/p-4f82fcfd.entry.js +2 -0
  503. package/dist/infineon-design-system-stencil/p-4f82fcfd.entry.js.map +1 -0
  504. package/dist/infineon-design-system-stencil/p-5e376887.entry.js +2 -0
  505. package/dist/infineon-design-system-stencil/p-5e376887.entry.js.map +1 -0
  506. package/dist/infineon-design-system-stencil/p-5f38cace.entry.js +2 -0
  507. package/dist/infineon-design-system-stencil/p-5f38cace.entry.js.map +1 -0
  508. package/dist/infineon-design-system-stencil/p-6250b9f6.entry.js +2 -0
  509. package/dist/infineon-design-system-stencil/p-6250b9f6.entry.js.map +1 -0
  510. package/dist/infineon-design-system-stencil/p-6790d912.entry.js +2 -0
  511. package/dist/infineon-design-system-stencil/p-6790d912.entry.js.map +1 -0
  512. package/dist/infineon-design-system-stencil/p-6bdca580.entry.js +2 -0
  513. package/dist/infineon-design-system-stencil/p-6bdca580.entry.js.map +1 -0
  514. package/dist/infineon-design-system-stencil/{p-babf3f2d.entry.js → p-6c2698a3.entry.js} +2 -2
  515. package/dist/infineon-design-system-stencil/p-6c999b11.entry.js +2 -0
  516. package/dist/infineon-design-system-stencil/p-6c999b11.entry.js.map +1 -0
  517. package/dist/infineon-design-system-stencil/{p-9c28f35f.entry.js → p-6e7b0250.entry.js} +3 -3
  518. package/dist/infineon-design-system-stencil/p-6e7b0250.entry.js.map +1 -0
  519. package/dist/infineon-design-system-stencil/p-70f4fd1b.entry.js +2 -0
  520. package/dist/infineon-design-system-stencil/p-70f4fd1b.entry.js.map +1 -0
  521. package/dist/infineon-design-system-stencil/p-741ee6fd.entry.js +2 -0
  522. package/dist/infineon-design-system-stencil/p-741ee6fd.entry.js.map +1 -0
  523. package/dist/infineon-design-system-stencil/p-7619bd75.entry.js +2 -0
  524. package/dist/infineon-design-system-stencil/p-7619bd75.entry.js.map +1 -0
  525. package/dist/infineon-design-system-stencil/p-76e0c34f.entry.js +2 -0
  526. package/dist/infineon-design-system-stencil/p-76e0c34f.entry.js.map +1 -0
  527. package/dist/infineon-design-system-stencil/{p-6d99d01d.entry.js → p-7adee2dd.entry.js} +2 -2
  528. package/dist/infineon-design-system-stencil/p-99faadcf.entry.js +2 -0
  529. package/dist/infineon-design-system-stencil/p-99faadcf.entry.js.map +1 -0
  530. package/dist/infineon-design-system-stencil/p-9fc0f50d.entry.js +2 -0
  531. package/dist/infineon-design-system-stencil/p-9fc0f50d.entry.js.map +1 -0
  532. package/dist/infineon-design-system-stencil/p-a2a44fbe.entry.js +2 -0
  533. package/dist/infineon-design-system-stencil/p-a356a82d.entry.js +2 -0
  534. package/dist/infineon-design-system-stencil/p-a356a82d.entry.js.map +1 -0
  535. package/dist/infineon-design-system-stencil/p-a80e321b.entry.js +2 -0
  536. package/dist/infineon-design-system-stencil/p-a80e321b.entry.js.map +1 -0
  537. package/dist/infineon-design-system-stencil/p-aadd1a9d.entry.js +2 -0
  538. package/dist/infineon-design-system-stencil/p-aadd1a9d.entry.js.map +1 -0
  539. package/dist/infineon-design-system-stencil/p-ad1ec9d6.entry.js +2 -0
  540. package/dist/infineon-design-system-stencil/p-ad1ec9d6.entry.js.map +1 -0
  541. package/dist/infineon-design-system-stencil/p-b73a5f18.entry.js +2 -0
  542. package/dist/infineon-design-system-stencil/p-b73a5f18.entry.js.map +1 -0
  543. package/dist/infineon-design-system-stencil/{p-2b38c405.entry.js → p-b7cb706f.entry.js} +2 -2
  544. package/dist/infineon-design-system-stencil/{p-2b38c405.entry.js.map → p-b7cb706f.entry.js.map} +1 -1
  545. package/dist/infineon-design-system-stencil/p-b9c761d3.entry.js +2 -0
  546. package/dist/infineon-design-system-stencil/p-b9c761d3.entry.js.map +1 -0
  547. package/dist/infineon-design-system-stencil/{p-7b7ac7fa.entry.js → p-c7e86c7c.entry.js} +2 -2
  548. package/dist/infineon-design-system-stencil/p-c84ef603.entry.js +2 -0
  549. package/dist/infineon-design-system-stencil/p-c84ef603.entry.js.map +1 -0
  550. package/dist/infineon-design-system-stencil/p-d890b0de.entry.js +2 -0
  551. package/dist/infineon-design-system-stencil/p-d890b0de.entry.js.map +1 -0
  552. package/dist/infineon-design-system-stencil/p-dd28f3a1.entry.js +2 -0
  553. package/dist/infineon-design-system-stencil/p-dd28f3a1.entry.js.map +1 -0
  554. package/dist/infineon-design-system-stencil/p-e571c002.entry.js +2 -0
  555. package/dist/infineon-design-system-stencil/p-e72e5fb2.entry.js +2 -0
  556. package/dist/infineon-design-system-stencil/p-e72e5fb2.entry.js.map +1 -0
  557. package/dist/infineon-design-system-stencil/p-ef6d0dc6.entry.js +2 -0
  558. package/dist/infineon-design-system-stencil/p-ef6d0dc6.entry.js.map +1 -0
  559. package/dist/infineon-design-system-stencil/p-f338fb85.entry.js +2 -0
  560. package/dist/infineon-design-system-stencil/p-f338fb85.entry.js.map +1 -0
  561. package/dist/infineon-design-system-stencil/p-f9a7ae20.entry.js +2 -0
  562. package/dist/infineon-design-system-stencil/p-f9a7ae20.entry.js.map +1 -0
  563. package/dist/types/components/accordion/accordion.d.ts +0 -1
  564. package/dist/types/components/accordion/accordionItem.d.ts +1 -2
  565. package/dist/types/components/alert/alert.d.ts +0 -1
  566. package/dist/types/components/badge/badge.d.ts +0 -2
  567. package/dist/types/components/breadcrumb/breadcrumb.d.ts +0 -1
  568. package/dist/types/components/date-picker/date-picker.d.ts +0 -1
  569. package/dist/types/components/file-upload/file-upload.d.ts +0 -1
  570. package/dist/types/components/icon/infineonIconStencil.d.ts +0 -3
  571. package/dist/types/components/link/link.d.ts +0 -2
  572. package/dist/types/components/modal/modal.d.ts +0 -1
  573. package/dist/types/components/notification/notification.d.ts +0 -2
  574. package/dist/types/components/progress-bar/progress-bar.d.ts +0 -1
  575. package/dist/types/components/search-field/search-field.d.ts +0 -2
  576. package/dist/types/components/segmented-control/segmented-control.d.ts +0 -1
  577. package/dist/types/components/select/multi-select/interfaces.d.ts +1 -1
  578. package/dist/types/components/select/multi-select/multiselect-option.d.ts +36 -0
  579. package/dist/types/components/select/multi-select/multiselect.d.ts +38 -61
  580. package/dist/types/components/select/multi-select/multiselect.stories.d.ts +219 -30
  581. package/dist/types/components/spinner/spinner.d.ts +0 -2
  582. package/dist/types/components/status/status.d.ts +0 -2
  583. package/dist/types/components/tag/tag.d.ts +0 -2
  584. package/dist/types/components/tree-view/tree-view.d.ts +0 -2
  585. package/dist/types/components.d.ts +54 -8
  586. package/package.json +2 -2
  587. package/dist/cjs/dom-utils-2c4573c2.js +0 -20
  588. package/dist/cjs/dom-utils-2c4573c2.js.map +0 -1
  589. package/dist/cjs/ifx-multiselect.cjs.entry.js +0 -550
  590. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +0 -1
  591. package/dist/cjs/tracking-f00364dc.js +0 -41
  592. package/dist/cjs/tracking-f00364dc.js.map +0 -1
  593. package/dist/collection/global/utils/dom-utils.js +0 -15
  594. package/dist/collection/global/utils/dom-utils.js.map +0 -1
  595. package/dist/collection/global/utils/tracking.js +0 -37
  596. package/dist/collection/global/utils/tracking.js.map +0 -1
  597. package/dist/components/p-0905733d.js.map +0 -1
  598. package/dist/components/p-0d6ca0f6.js.map +0 -1
  599. package/dist/components/p-13126216.js.map +0 -1
  600. package/dist/components/p-1ad917f9.js.map +0 -1
  601. package/dist/components/p-1ecafb97.js +0 -18
  602. package/dist/components/p-1ecafb97.js.map +0 -1
  603. package/dist/components/p-24382260.js.map +0 -1
  604. package/dist/components/p-347a1b14.js +0 -603
  605. package/dist/components/p-347a1b14.js.map +0 -1
  606. package/dist/components/p-465d3172.js.map +0 -1
  607. package/dist/components/p-4fc475c9.js.map +0 -1
  608. package/dist/components/p-54b39a91.js.map +0 -1
  609. package/dist/components/p-68016aea.js +0 -33
  610. package/dist/components/p-68016aea.js.map +0 -1
  611. package/dist/components/p-6d95b3c1.js.map +0 -1
  612. package/dist/components/p-6ecb6a6f.js +0 -39
  613. package/dist/components/p-6ecb6a6f.js.map +0 -1
  614. package/dist/components/p-816b2612.js.map +0 -1
  615. package/dist/components/p-830057b3.js.map +0 -1
  616. package/dist/components/p-8cb991f4.js.map +0 -1
  617. package/dist/components/p-94da6823.js.map +0 -1
  618. package/dist/components/p-9ea9e274.js.map +0 -1
  619. package/dist/components/p-cca71d97.js.map +0 -1
  620. package/dist/components/p-cf109552.js.map +0 -1
  621. package/dist/components/p-e126ea6f.js.map +0 -1
  622. package/dist/components/p-fe90e932.js +0 -119
  623. package/dist/components/p-fe90e932.js.map +0 -1
  624. package/dist/esm/dom-utils-1988cdf1.js +0 -18
  625. package/dist/esm/dom-utils-1988cdf1.js.map +0 -1
  626. package/dist/esm/ifx-multiselect.entry.js +0 -546
  627. package/dist/esm/ifx-multiselect.entry.js.map +0 -1
  628. package/dist/esm/tracking-a7efdbcd.js +0 -39
  629. package/dist/esm/tracking-a7efdbcd.js.map +0 -1
  630. package/dist/infineon-design-system-stencil/p-0c60ce87.entry.js +0 -2
  631. package/dist/infineon-design-system-stencil/p-0c60ce87.entry.js.map +0 -1
  632. package/dist/infineon-design-system-stencil/p-14842bbb.entry.js +0 -2
  633. package/dist/infineon-design-system-stencil/p-14842bbb.entry.js.map +0 -1
  634. package/dist/infineon-design-system-stencil/p-19fcf1db.entry.js +0 -2
  635. package/dist/infineon-design-system-stencil/p-19fcf1db.entry.js.map +0 -1
  636. package/dist/infineon-design-system-stencil/p-1ecafb97.js +0 -2
  637. package/dist/infineon-design-system-stencil/p-1ecafb97.js.map +0 -1
  638. package/dist/infineon-design-system-stencil/p-1fd80576.entry.js +0 -2
  639. package/dist/infineon-design-system-stencil/p-1fd80576.entry.js.map +0 -1
  640. package/dist/infineon-design-system-stencil/p-227fa186.entry.js +0 -2
  641. package/dist/infineon-design-system-stencil/p-227fa186.entry.js.map +0 -1
  642. package/dist/infineon-design-system-stencil/p-26c73456.entry.js +0 -2
  643. package/dist/infineon-design-system-stencil/p-26c73456.entry.js.map +0 -1
  644. package/dist/infineon-design-system-stencil/p-296f215f.entry.js +0 -2
  645. package/dist/infineon-design-system-stencil/p-296f215f.entry.js.map +0 -1
  646. package/dist/infineon-design-system-stencil/p-32b0dfda.entry.js +0 -2
  647. package/dist/infineon-design-system-stencil/p-32b0dfda.entry.js.map +0 -1
  648. package/dist/infineon-design-system-stencil/p-34738a10.entry.js +0 -2
  649. package/dist/infineon-design-system-stencil/p-45ac2698.entry.js +0 -2
  650. package/dist/infineon-design-system-stencil/p-45ac2698.entry.js.map +0 -1
  651. package/dist/infineon-design-system-stencil/p-4eda4ef3.entry.js +0 -2
  652. package/dist/infineon-design-system-stencil/p-4eda4ef3.entry.js.map +0 -1
  653. package/dist/infineon-design-system-stencil/p-52420868.entry.js +0 -2
  654. package/dist/infineon-design-system-stencil/p-52420868.entry.js.map +0 -1
  655. package/dist/infineon-design-system-stencil/p-5493e6f5.entry.js +0 -2
  656. package/dist/infineon-design-system-stencil/p-5493e6f5.entry.js.map +0 -1
  657. package/dist/infineon-design-system-stencil/p-5a12d20a.entry.js +0 -2
  658. package/dist/infineon-design-system-stencil/p-5a12d20a.entry.js.map +0 -1
  659. package/dist/infineon-design-system-stencil/p-65255c40.entry.js +0 -2
  660. package/dist/infineon-design-system-stencil/p-65255c40.entry.js.map +0 -1
  661. package/dist/infineon-design-system-stencil/p-65e57b85.entry.js +0 -2
  662. package/dist/infineon-design-system-stencil/p-68423787.entry.js +0 -2
  663. package/dist/infineon-design-system-stencil/p-68423787.entry.js.map +0 -1
  664. package/dist/infineon-design-system-stencil/p-6d72ad32.entry.js +0 -2
  665. package/dist/infineon-design-system-stencil/p-6d72ad32.entry.js.map +0 -1
  666. package/dist/infineon-design-system-stencil/p-6ecb6a6f.js +0 -2
  667. package/dist/infineon-design-system-stencil/p-6ecb6a6f.js.map +0 -1
  668. package/dist/infineon-design-system-stencil/p-73d39ed6.entry.js +0 -2
  669. package/dist/infineon-design-system-stencil/p-73d39ed6.entry.js.map +0 -1
  670. package/dist/infineon-design-system-stencil/p-76914839.entry.js +0 -2
  671. package/dist/infineon-design-system-stencil/p-76914839.entry.js.map +0 -1
  672. package/dist/infineon-design-system-stencil/p-796675ed.entry.js +0 -2
  673. package/dist/infineon-design-system-stencil/p-796675ed.entry.js.map +0 -1
  674. package/dist/infineon-design-system-stencil/p-79b7d7a2.entry.js +0 -2
  675. package/dist/infineon-design-system-stencil/p-79b7d7a2.entry.js.map +0 -1
  676. package/dist/infineon-design-system-stencil/p-82c59e6b.entry.js +0 -2
  677. package/dist/infineon-design-system-stencil/p-82c59e6b.entry.js.map +0 -1
  678. package/dist/infineon-design-system-stencil/p-82dd7e7d.entry.js +0 -2
  679. package/dist/infineon-design-system-stencil/p-82dd7e7d.entry.js.map +0 -1
  680. package/dist/infineon-design-system-stencil/p-877e1d37.entry.js +0 -2
  681. package/dist/infineon-design-system-stencil/p-877e1d37.entry.js.map +0 -1
  682. package/dist/infineon-design-system-stencil/p-8a7bfe65.entry.js +0 -2
  683. package/dist/infineon-design-system-stencil/p-8a7bfe65.entry.js.map +0 -1
  684. package/dist/infineon-design-system-stencil/p-98532a0e.entry.js +0 -2
  685. package/dist/infineon-design-system-stencil/p-98532a0e.entry.js.map +0 -1
  686. package/dist/infineon-design-system-stencil/p-9c28f35f.entry.js.map +0 -1
  687. package/dist/infineon-design-system-stencil/p-a0006775.entry.js +0 -2
  688. package/dist/infineon-design-system-stencil/p-a0006775.entry.js.map +0 -1
  689. package/dist/infineon-design-system-stencil/p-ac7db8d1.entry.js +0 -2
  690. package/dist/infineon-design-system-stencil/p-ac7db8d1.entry.js.map +0 -1
  691. package/dist/infineon-design-system-stencil/p-ae8110b7.entry.js +0 -2
  692. package/dist/infineon-design-system-stencil/p-ae8110b7.entry.js.map +0 -1
  693. package/dist/infineon-design-system-stencil/p-aeaa6d0b.entry.js +0 -2
  694. package/dist/infineon-design-system-stencil/p-aeaa6d0b.entry.js.map +0 -1
  695. package/dist/infineon-design-system-stencil/p-b110d5d4.entry.js +0 -2
  696. package/dist/infineon-design-system-stencil/p-b110d5d4.entry.js.map +0 -1
  697. package/dist/infineon-design-system-stencil/p-b17a0e8c.entry.js +0 -2
  698. package/dist/infineon-design-system-stencil/p-b17a0e8c.entry.js.map +0 -1
  699. package/dist/infineon-design-system-stencil/p-bb7b2a3c.entry.js +0 -2
  700. package/dist/infineon-design-system-stencil/p-bb7b2a3c.entry.js.map +0 -1
  701. package/dist/infineon-design-system-stencil/p-c164c83b.entry.js +0 -2
  702. package/dist/infineon-design-system-stencil/p-c164c83b.entry.js.map +0 -1
  703. package/dist/infineon-design-system-stencil/p-c220733b.entry.js +0 -2
  704. package/dist/infineon-design-system-stencil/p-c220733b.entry.js.map +0 -1
  705. package/dist/infineon-design-system-stencil/p-c88876dc.entry.js +0 -2
  706. package/dist/infineon-design-system-stencil/p-c88876dc.entry.js.map +0 -1
  707. package/dist/infineon-design-system-stencil/p-e0978af0.entry.js +0 -2
  708. package/dist/infineon-design-system-stencil/p-e0978af0.entry.js.map +0 -1
  709. package/dist/infineon-design-system-stencil/p-e5018880.entry.js +0 -2
  710. package/dist/infineon-design-system-stencil/p-e5018880.entry.js.map +0 -1
  711. package/dist/infineon-design-system-stencil/p-ed869b07.entry.js +0 -2
  712. package/dist/infineon-design-system-stencil/p-ed869b07.entry.js.map +0 -1
  713. package/dist/infineon-design-system-stencil/p-eeb59f76.entry.js +0 -2
  714. package/dist/infineon-design-system-stencil/p-eeb59f76.entry.js.map +0 -1
  715. package/dist/infineon-design-system-stencil/p-f3f8d603.entry.js +0 -2
  716. package/dist/infineon-design-system-stencil/p-f3f8d603.entry.js.map +0 -1
  717. package/dist/infineon-design-system-stencil/p-fb6a813b.entry.js +0 -2
  718. package/dist/infineon-design-system-stencil/p-fb6a813b.entry.js.map +0 -1
  719. package/dist/infineon-design-system-stencil/p-fe22fc31.entry.js +0 -2
  720. package/dist/infineon-design-system-stencil/p-fe22fc31.entry.js.map +0 -1
  721. package/dist/types/global/utils/dom-utils.d.ts +0 -1
  722. package/dist/types/global/utils/tracking.d.ts +0 -9
  723. /package/dist/infineon-design-system-stencil/{p-f2bea855.entry.js.map → p-04d8ea38.entry.js.map} +0 -0
  724. /package/dist/infineon-design-system-stencil/{p-87fbd617.entry.js.map → p-0c1c831c.entry.js.map} +0 -0
  725. /package/dist/infineon-design-system-stencil/{p-a9cfb70d.entry.js.map → p-36dcebde.entry.js.map} +0 -0
  726. /package/dist/infineon-design-system-stencil/{p-0f096cf1.entry.js.map → p-3d037fa4.entry.js.map} +0 -0
  727. /package/dist/infineon-design-system-stencil/{p-babf3f2d.entry.js.map → p-6c2698a3.entry.js.map} +0 -0
  728. /package/dist/infineon-design-system-stencil/{p-6d99d01d.entry.js.map → p-7adee2dd.entry.js.map} +0 -0
  729. /package/dist/infineon-design-system-stencil/{p-65e57b85.entry.js.map → p-a2a44fbe.entry.js.map} +0 -0
  730. /package/dist/infineon-design-system-stencil/{p-7b7ac7fa.entry.js.map → p-c7e86c7c.entry.js.map} +0 -0
  731. /package/dist/infineon-design-system-stencil/{p-34738a10.entry.js.map → p-e571c002.entry.js.map} +0 -0
@@ -1,7 +1,4 @@
1
1
  import { h } from "@stencil/core";
2
- import { trackComponent } from "../../../global/utils/tracking";
3
- import { isNestedInIfxComponent } from "../../../global/utils/dom-utils";
4
- // Debounce function
5
2
  function debounce(func, wait) {
6
3
  let timeout;
7
4
  return function executedFunction(...args) {
@@ -13,128 +10,159 @@ function debounce(func, wait) {
13
10
  timeout = setTimeout(later, wait);
14
11
  };
15
12
  }
16
- ;
17
13
  export class Multiselect {
18
14
  constructor() {
19
- this.batchSize = 50;
20
- this.size = 'medium (40px)';
21
15
  this.disabled = false;
22
16
  this.error = false;
23
- this.internalError = false;
24
17
  this.errorMessage = "Error";
25
18
  this.label = "";
26
- this.persistentSelectedOptions = [];
27
19
  this.placeholder = "";
28
- this.dropdownOpen = false;
29
- this.currentIndex = 0; //needed for option selection using keyboard
30
- this.isLoading = false;
31
- this.loadedOptions = [];
32
- this.filteredOptions = [];
33
20
  this.showSearch = true;
34
21
  this.showSelectAll = true;
35
22
  this.showClearButton = true;
36
- this.optionCount = 0; // number of all options (leaves of the tree)
37
- this.optionsProcessed = false; // flag whether options have already been counted, intial selections saved
23
+ this.showExpandCollapse = true;
24
+ this.noResultsMessage = "No results found.";
25
+ this.showNoResultsMessage = true;
26
+ this.searchPlaceholder = "Search";
27
+ this.selectAllLabel = "Select all";
28
+ this.expandLabel = "Expand";
29
+ this.collapseLabel = "Collapse";
30
+ this.ariaLabel = "Multi-select dropdown";
31
+ this.ariaLabelledBy = "";
32
+ this.ariaDescribedBy = "";
33
+ this.ariaSearchLabel = "Search options";
34
+ this.ariaClearLabel = "Clear all selections";
35
+ this.ariaToggleLabel = "Toggle dropdown";
36
+ this.ariaSelectAllLabel = "Select all options";
37
+ this.ariaExpandAllLabel = "Expand all categories";
38
+ this.ariaCollapseAllLabel = "Collapse all categories";
39
+ this.internalError = false;
40
+ this.persistentSelectedOptions = [];
41
+ this.dropdownOpen = false;
42
+ this.searchTerm = '';
38
43
  this.handleSearch = debounce((targetElement) => {
39
44
  const searchTerm = targetElement.value.toLowerCase();
40
- if (searchTerm === '') {
41
- this.filteredOptions = this.loadedOptions;
45
+ const isSearchActive = searchTerm !== '';
46
+ this.searchTerm = searchTerm;
47
+ const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');
48
+ if (wrapper) {
49
+ if (isSearchActive) {
50
+ wrapper.classList.remove('active');
51
+ }
52
+ else {
53
+ const searchField = this.el.shadowRoot.querySelector('ifx-search-field');
54
+ const searchFieldHasFocus = searchField && searchField.matches(':focus-within');
55
+ if (!searchFieldHasFocus) {
56
+ wrapper.classList.add('active');
57
+ }
58
+ }
42
59
  }
43
- else {
44
- this.filteredOptions = this.loadedOptions.filter(option => {
45
- const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);
46
- if (option.children) {
47
- const childrenMatch = option.children.some(child => {
48
- return child.label.toLowerCase().includes(searchTerm);
60
+ const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');
61
+ if (optionsContainer) {
62
+ if (isSearchActive) {
63
+ optionsContainer.classList.add('has-search-filter');
64
+ }
65
+ else {
66
+ optionsContainer.classList.remove('has-search-filter');
67
+ }
68
+ }
69
+ requestAnimationFrame(() => {
70
+ const allOptions = this.el.querySelectorAll('ifx-multiselect-option');
71
+ allOptions.forEach(option => {
72
+ const searchEvent = new CustomEvent('ifx-search-filter', {
73
+ detail: { searchTerm, isActive: isSearchActive }
74
+ });
75
+ option.dispatchEvent(searchEvent);
76
+ });
77
+ if (isSearchActive) {
78
+ setTimeout(() => {
79
+ const allOptions = this.el.querySelectorAll('ifx-multiselect-option');
80
+ let visibleCount = 0;
81
+ allOptions.forEach(option => {
82
+ const style = window.getComputedStyle(option);
83
+ const rect = option.getBoundingClientRect();
84
+ if (style.display !== 'none' &&
85
+ style.visibility !== 'hidden' &&
86
+ style.opacity !== '0' &&
87
+ rect.height > 0) {
88
+ visibleCount++;
89
+ }
49
90
  });
50
- return matchesSearchTerm || childrenMatch;
91
+ const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');
92
+ if (optionsContainer) {
93
+ if (visibleCount === 0) {
94
+ optionsContainer.classList.add('show-no-results');
95
+ }
96
+ else {
97
+ optionsContainer.classList.remove('show-no-results');
98
+ }
99
+ }
100
+ }, 200);
101
+ }
102
+ else {
103
+ const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');
104
+ if (optionsContainer) {
105
+ optionsContainer.classList.remove('show-no-results');
51
106
  }
52
- return matchesSearchTerm;
53
- });
54
- }
55
- }, 300);
107
+ }
108
+ });
109
+ }, 150);
56
110
  this.handleDocumentClick = (event) => {
57
111
  const path = event.composedPath();
58
112
  if (!path.includes(this.dropdownElement)) {
59
113
  this.dropdownOpen = false;
60
114
  document.removeEventListener('click', this.handleDocumentClick);
61
- this.filteredOptions = this.loadedOptions;
62
- // Dispatch the ifxMultiselectIsOpen event
115
+ this.resetSearch();
63
116
  this.ifxOpen.emit(this.dropdownOpen);
64
117
  }
65
118
  };
66
119
  }
67
- updateOptions() {
68
- this.loadedOptions = [];
69
- this.filteredOptions = [];
70
- this.optionCount = 0;
71
- this.optionsProcessed = false;
72
- this.persistentSelectedOptions = [];
73
- this.loadInitialOptions();
120
+ parseChildOptions() {
121
+ const options = [];
122
+ const childElements = Array.from(this.el.children);
123
+ childElements.forEach((child, index) => {
124
+ if (child.tagName === 'IFX-MULTISELECT-OPTION') {
125
+ const option = this.parseOptionElement(child, index);
126
+ if (option) {
127
+ options.push(option);
128
+ }
129
+ }
130
+ });
131
+ return options;
132
+ }
133
+ parseOptionElement(element, index) {
134
+ const value = element.getAttribute('value') || `option-${index}`;
135
+ const selected = element.hasAttribute('selected');
136
+ const disabled = element.hasAttribute('disabled');
137
+ const indeterminate = element.hasAttribute('indeterminate');
138
+ const option = {
139
+ value,
140
+ selected,
141
+ disabled,
142
+ indeterminate
143
+ };
144
+ const nestedOptions = Array.from(element.children)
145
+ .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION')
146
+ .map((child, childIndex) => this.parseOptionElement(child, childIndex))
147
+ .filter(opt => opt !== null);
148
+ if (nestedOptions.length > 0) {
149
+ option.children = nestedOptions;
150
+ }
151
+ return option;
74
152
  }
75
- async loadInitialOptions() {
76
- this.isLoading = true;
153
+ loadInitialOptions() {
77
154
  this.internalError = this.error;
78
155
  this.internalErrorMessage = this.errorMessage;
79
- // Load the first batch of options (e.g., first 20)
80
- this.loadedOptions = await this.fetchOptions(0, this.batchSize);
81
- this.isLoading = false;
82
- }
83
- async fetchMoreOptions() {
84
- this.isLoading = true;
85
- const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);
86
- this.loadedOptions = [...this.loadedOptions, ...moreOptions];
87
- this.isLoading = false;
88
- }
89
- handleScroll(event) {
90
- const element = event.target;
91
- const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list
92
- if (element.scrollTop >= halfwayPoint) {
93
- this.fetchMoreOptions();
94
- }
156
+ const allOptions = this.parseChildOptions();
157
+ const initiallySelected = this.collectSelectedOptions(allOptions);
158
+ const initiallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));
159
+ this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initiallySelectedNotInState];
95
160
  }
96
- async fetchOptions(startIndex, count) {
97
- let allOptions = [];
98
- // Parse options if it's a string, or use directly if it's an array
99
- if (typeof this.options === 'string') {
100
- try {
101
- allOptions = JSON.parse(this.options);
102
- }
103
- catch (err) {
104
- console.error('Failed to parse options:', err);
105
- }
106
- }
107
- else if (Array.isArray(this.options)) {
108
- allOptions = this.options;
109
- }
110
- else {
111
- console.error('Unexpected value for options:', this.options);
112
- }
113
- if (!this.optionsProcessed) {
114
- this.optionCount = this.countOptions(allOptions);
115
- const initiallySelected = this.collectSelectedOptions(allOptions);
116
- const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));
117
- this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];
118
- this.optionsProcessed = true;
119
- }
120
- // Slice the options array based on startIndex and count
121
- const slicedOptions = allOptions.slice(startIndex, startIndex + count);
122
- return slicedOptions;
123
- }
124
- /**
125
- * Collects and returns all options that are selected.
126
- * When the parent is selected, then the value of the children will be overriden with selected as well.
127
- * It will only collect the leaves of the tree.
128
- *
129
- * @param options A list of options.
130
- * @returns A list with all selected options
131
- */
132
161
  collectSelectedOptions(options) {
133
162
  let selectedOptions = [];
134
163
  for (const option of options) {
135
164
  if (option.selected) {
136
165
  if (option.children && option.children.length > 0) {
137
- // if parent is selected, then select all child options
138
166
  selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));
139
167
  }
140
168
  else {
@@ -151,11 +179,6 @@ export class Multiselect {
151
179
  }
152
180
  return selectedOptions;
153
181
  }
154
- /**
155
- * Collects all leaf children options.
156
- *
157
- * @param option A list with all leaf-children.
158
- */
159
182
  collectLeafOptions(children) {
160
183
  let leafOptions = [];
161
184
  for (const child of children) {
@@ -168,33 +191,100 @@ export class Multiselect {
168
191
  }
169
192
  return leafOptions;
170
193
  }
171
- /**
172
- * Count the number of options. Only counts the leaves of the options tree.
173
- */
174
- countOptions(options) {
175
- let count = 0;
176
- for (const option of options) {
177
- if (option.children && option.children.length >= 0) {
178
- count += this.countOptions(option.children);
194
+ handleSearchFocus(hasFocus) {
195
+ const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');
196
+ if (wrapper) {
197
+ if (hasFocus || this.searchTerm !== '') {
198
+ wrapper.classList.remove('active');
179
199
  }
180
200
  else {
181
- count++;
201
+ wrapper.classList.add('active');
202
+ }
203
+ }
204
+ }
205
+ positionDropdown() {
206
+ var _a;
207
+ const wrapperRect = (_a = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
208
+ const spaceBelow = window.innerHeight - wrapperRect.bottom;
209
+ const spaceAbove = wrapperRect.top;
210
+ if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {
211
+ this.dropdownFlipped = true;
212
+ }
213
+ else {
214
+ this.dropdownFlipped = false;
215
+ }
216
+ }
217
+ updateSlotBasedSelections(emitEvent = false) {
218
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
219
+ const selectedLeafOptions = [];
220
+ allOptionElements.forEach((optionEl) => {
221
+ const instance = optionEl['__stencil_instance'];
222
+ if (instance && instance.selected && !instance.hasChildren) {
223
+ selectedLeafOptions.push({
224
+ value: instance.value,
225
+ selected: true,
226
+ disabled: instance.disabled
227
+ });
228
+ }
229
+ });
230
+ this.persistentSelectedOptions = selectedLeafOptions;
231
+ if (emitEvent) {
232
+ this.ifxSelect.emit(this.persistentSelectedOptions);
233
+ }
234
+ }
235
+ updateInitialParentStates() {
236
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
237
+ const optionsByDepth = Array.from(allOptionElements)
238
+ .map(el => ({
239
+ element: el,
240
+ instance: el['__stencil_instance'],
241
+ depth: parseInt(el.getAttribute('data-level') || '0')
242
+ }))
243
+ .filter(item => item.instance)
244
+ .sort((a, b) => b.depth - a.depth);
245
+ optionsByDepth.forEach(({ instance }) => {
246
+ if (instance.hasChildren) {
247
+ this.updateParentState(instance);
182
248
  }
249
+ });
250
+ }
251
+ updateParentState(parentInstance) {
252
+ const directChildren = Array.from(parentInstance.el.children)
253
+ .filter((child) => child.tagName === 'IFX-MULTISELECT-OPTION')
254
+ .map(child => child['__stencil_instance'])
255
+ .filter(instance => instance !== null);
256
+ const selectedCount = directChildren.filter(child => child.selected).length;
257
+ const indeterminateCount = directChildren.filter(child => child.indeterminate).length;
258
+ const totalCount = directChildren.length;
259
+ if (selectedCount === totalCount && indeterminateCount === 0) {
260
+ parentInstance.selected = true;
261
+ parentInstance.indeterminate = false;
262
+ }
263
+ else if (selectedCount === 0 && indeterminateCount === 0) {
264
+ parentInstance.selected = false;
265
+ parentInstance.indeterminate = false;
266
+ }
267
+ else {
268
+ parentInstance.selected = false;
269
+ parentInstance.indeterminate = true;
183
270
  }
184
- return count;
185
271
  }
186
272
  componentDidLoad() {
187
273
  setTimeout(() => {
188
274
  this.positionDropdown();
189
275
  }, 500);
190
- // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)
276
+ this.el.addEventListener('ifx-option-changed', () => {
277
+ requestAnimationFrame(() => {
278
+ this.updateSlotBasedSelections(true);
279
+ });
280
+ });
281
+ setTimeout(() => {
282
+ this.updateSlotBasedSelections(false);
283
+ this.updateInitialParentStates();
284
+ }, 100);
191
285
  }
192
286
  componentWillLoad() {
193
- if (!isNestedInIfxComponent(this.el)) {
194
- trackComponent('ifx-multiselect');
195
- }
196
287
  this.loadInitialOptions();
197
- this.filteredOptions = [...this.loadedOptions];
198
288
  }
199
289
  updateInternalError() {
200
290
  this.internalError = this.error;
@@ -202,109 +292,66 @@ export class Multiselect {
202
292
  updateInternalErrorMessage() {
203
293
  this.internalErrorMessage = this.errorMessage;
204
294
  }
205
- loadedOptionsChanged() {
206
- this.filteredOptions = [...this.loadedOptions];
207
- }
208
295
  onSelectionChange(newValue, _) {
209
296
  const formData = new FormData();
210
297
  newValue.forEach(option => formData.append(this.name, option.value));
211
298
  this.internals.setFormValue(formData);
212
299
  }
213
- handleOptionClick(option) {
214
- this.internalError = false;
215
- if (!option.selected && this.isSelectionLimitReached(option)) {
216
- option.checkboxRef.toggleCheckedState(false);
217
- this.internalError = true;
218
- this.internalErrorMessage = "Please consider the maximum number of items to choose from";
219
- return;
220
- }
221
- this.updateSelection(option);
222
- this.ifxSelect.emit(this.persistentSelectedOptions);
223
- }
224
- isSelectionLimitReached(option) {
225
- let newOptionsLength = option.children ? option.children.length : 1;
226
- return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&
227
- !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);
228
- }
229
- updateSelection(option) {
230
- const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);
231
- if (option.children && option.children.length > 0) {
232
- this.handleParentOptionClick(option);
233
- }
234
- else {
235
- this.handleChildOptionClick(option, wasSelected);
236
- }
237
- }
238
- async selectAll() {
239
- const allOptions = await this.fetchOptions(0, this.optionCount);
240
- this.selectAllRecursive(allOptions);
241
- this.ifxSelect.emit(this.persistentSelectedOptions);
242
- }
243
- selectAllRecursive(options) {
244
- for (const opt of options) {
245
- if (opt.children && opt.children.length > 0) {
246
- this.selectAllRecursive(opt.children);
300
+ collapseAll() {
301
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
302
+ allOptionElements.forEach((optionEl) => {
303
+ const instance = optionEl['__stencil_instance'];
304
+ if (instance && instance.hasChildren) {
305
+ instance.isExpanded = false;
247
306
  }
248
- else {
249
- if (!this.persistentSelectedOptions.some((some) => some.value === opt.value)) {
250
- opt.selected = true;
251
- this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];
252
- this.optionCount = this.countOptions(this.persistentSelectedOptions);
253
- }
254
- }
255
- }
256
- }
257
- handleParentOptionClick(option) {
258
- const allChildrenSelected = option.children.every(child => this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value));
259
- if (allChildrenSelected) {
260
- this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => !option.children.some(child => child.value === selectedOption.value))];
261
- option.selected = false;
262
- option.children.forEach(child => {
263
- child.selected = false;
264
- });
265
- }
266
- else {
267
- const newChildren = [...option.children.filter(childOption => !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value))];
268
- option.selected = true;
269
- option.children.forEach(child => {
270
- child.selected = true;
271
- });
272
- this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];
273
- }
307
+ });
274
308
  }
275
- handleChildOptionClick(option, wasSelected) {
276
- if (wasSelected) {
277
- this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];
278
- option.selected = false;
279
- }
280
- else {
281
- this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];
282
- option.selected = true;
283
- }
284
- this.updateParentSelectedState();
309
+ expandAll() {
310
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
311
+ allOptionElements.forEach((optionEl) => {
312
+ const instance = optionEl['__stencil_instance'];
313
+ if (instance && instance.hasChildren) {
314
+ instance.isExpanded = true;
315
+ }
316
+ });
285
317
  }
286
- updateParentSelectedState() {
287
- this.loadedOptions.forEach(option => {
288
- var _a;
289
- if (((_a = option.children) === null || _a === void 0 ? void 0 : _a.length) > 0) {
290
- if (option.children.every(child => child.selected === true))
291
- option.selected = true;
318
+ selectAll() {
319
+ this.resetSearch();
320
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
321
+ allOptionElements.forEach((optionEl) => {
322
+ const instance = optionEl['__stencil_instance'];
323
+ if (instance) {
324
+ if (instance.hasChildren) {
325
+ instance.isExpanded = true;
326
+ }
292
327
  else {
293
- option.selected = false;
294
- if (this.isOptionIndeterminate(option)) {
295
- option.indeterminate = true;
296
- }
297
- else {
298
- option.indeterminate = false;
299
- }
328
+ instance.selected = true;
300
329
  }
301
330
  }
302
331
  });
332
+ setTimeout(() => {
333
+ this.updateInitialParentStates();
334
+ this.updateSlotBasedSelections(false);
335
+ this.ifxSelect.emit(this.persistentSelectedOptions);
336
+ }, 0);
303
337
  }
304
- getSizeClass() {
305
- return `${this.size}` === "s"
306
- ? "small-select"
307
- : "medium-select";
338
+ async clearSelection() {
339
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
340
+ allOptionElements.forEach((optionEl) => {
341
+ const instance = optionEl['__stencil_instance'];
342
+ if (instance) {
343
+ instance.selected = false;
344
+ instance.indeterminate = false;
345
+ if (instance.hasChildren) {
346
+ instance.isExpanded = false;
347
+ }
348
+ }
349
+ });
350
+ this.persistentSelectedOptions = [];
351
+ setTimeout(() => {
352
+ this.updateSlotBasedSelections(false);
353
+ this.ifxSelect.emit(this.persistentSelectedOptions);
354
+ }, 0);
308
355
  }
309
356
  toggleDropdown() {
310
357
  this.dropdownOpen = !this.dropdownOpen;
@@ -312,207 +359,154 @@ export class Multiselect {
312
359
  if (this.dropdownOpen) {
313
360
  document.addEventListener('click', this.handleDocumentClick);
314
361
  }
315
- // Dispatch the ifxOpen event
362
+ else {
363
+ this.resetSearch();
364
+ }
316
365
  this.ifxOpen.emit(this.dropdownOpen);
317
366
  }, 0);
318
367
  }
319
- waitForElement(querySelectorFunc, callback, maxTries = 50) {
320
- let tries = 0;
321
- function request() {
322
- requestAnimationFrame(() => {
323
- const elements = querySelectorFunc();
324
- if (elements.length > 0 || tries > maxTries) {
325
- callback(elements);
326
- }
327
- else {
328
- tries++;
329
- request();
330
- }
368
+ resetSearch() {
369
+ this.searchTerm = '';
370
+ const searchField = this.el.shadowRoot.querySelector('ifx-search-field');
371
+ if (searchField) {
372
+ searchField.value = '';
373
+ }
374
+ const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');
375
+ if (optionsContainer) {
376
+ optionsContainer.classList.remove('has-search-filter');
377
+ }
378
+ const allOptions = this.el.querySelectorAll('ifx-multiselect-option');
379
+ allOptions.forEach(option => {
380
+ const searchEvent = new CustomEvent('ifx-search-filter', {
381
+ detail: { searchTerm: '', isActive: false }
331
382
  });
383
+ option.dispatchEvent(searchEvent);
384
+ });
385
+ }
386
+ handleWrapperClick(event) {
387
+ this.positionDropdown();
388
+ if (event.currentTarget === event.target) {
389
+ this.toggleDropdown();
332
390
  }
333
- request();
334
391
  }
335
392
  handleKeyDown(event) {
336
393
  if (this.disabled)
337
- return; // If it's disabled, don't do anything.
338
- const options = this.dropdownElement.querySelectorAll('.option');
394
+ return;
395
+ // If dropdown is closed, only allow opening
396
+ if (!this.dropdownOpen) {
397
+ switch (event.code) {
398
+ case 'Enter':
399
+ case 'Space':
400
+ case 'ArrowDown':
401
+ event.preventDefault();
402
+ this.toggleDropdown();
403
+ break;
404
+ }
405
+ return;
406
+ }
407
+ // Dropdown is open - handle navigation and controls
339
408
  switch (event.code) {
340
- case 'Enter':
409
+ case 'Escape':
410
+ event.preventDefault();
341
411
  this.toggleDropdown();
342
- // Wait a bit for the dropdown to finish rendering
343
- this.waitForElement(() => {
344
- return this.dropdownElement.querySelectorAll('.option');
345
- }, (options) => {
346
- this.updateHighlightedOption(options);
347
- });
348
412
  break;
413
+ case 'Enter':
349
414
  case 'Space':
350
- this.toggleDropdown();
351
- // Wait a bit for the dropdown to finish rendering
352
- this.waitForElement(() => {
353
- return this.dropdownElement.querySelectorAll('.option');
354
- }, (options) => {
355
- this.updateHighlightedOption(options);
356
- });
357
- break;
358
- case 'ArrowDown':
359
- this.handleArrowDown(options);
360
- if (this.dropdownOpen) {
361
- this.updateHighlightedOption(options);
415
+ // Don't close dropdown when pressing space/enter in controls area
416
+ const target = event.target;
417
+ if (!target.closest('.ifx-multiselect-dropdown-functions')) {
418
+ event.preventDefault();
419
+ this.toggleDropdown();
362
420
  }
363
421
  break;
422
+ case 'ArrowDown':
364
423
  case 'ArrowUp':
365
- this.handleArrowUp(options);
366
- if (this.dropdownOpen) {
367
- this.updateHighlightedOption(options);
368
- }
424
+ // Focus first/last option for navigation
425
+ event.preventDefault();
426
+ this.focusFirstOption();
369
427
  break;
370
428
  }
371
429
  }
372
- handleWrapperClick(event) {
373
- // This is your existing logic for positioning the dropdown
374
- this.positionDropdown();
375
- // Check if the event target is the wrapper itself and not a child element.
376
- if (event.currentTarget === event.target) {
377
- this.toggleDropdown();
378
- }
379
- }
380
- clearSelection() {
381
- this.persistentSelectedOptions = [];
382
- this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing
383
- }
384
- positionDropdown() {
385
- var _a;
386
- const wrapperRect = (_a = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
387
- const spaceBelow = window.innerHeight - wrapperRect.bottom;
388
- const spaceAbove = wrapperRect.top;
389
- // If there's more space above than below the trigger and the dropdown doesn't fit below
390
- if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {
391
- this.dropdownFlipped = true;
392
- }
393
- else {
394
- this.dropdownFlipped = false;
395
- }
396
- }
397
- // Helper function to update highlighted option based on currentIndex
398
- updateHighlightedOption(options) {
399
- // Clear all highlights
400
- options.forEach((option) => option.classList.remove('is-highlighted'));
401
- // Apply highlight to the current option
402
- if (this.currentIndex >= 0 && this.currentIndex < options.length) {
403
- options[this.currentIndex].classList.add('is-highlighted');
404
- options[this.currentIndex].focus();
405
- }
406
- }
407
- // Helper function to handle arrow down navigation
408
- handleArrowDown(options) {
409
- if (this.currentIndex < options.length - 1) {
410
- this.currentIndex++;
411
- }
412
- else {
413
- this.currentIndex = 0; // Wrap to the beginning.
414
- }
415
- }
416
- // Helper function to handle arrow up navigation
417
- handleArrowUp(options) {
418
- if (this.currentIndex > 0) {
419
- this.currentIndex--;
420
- }
421
- else {
422
- this.currentIndex = options.length - 1; // Wrap to the end.
423
- }
424
- }
425
- handleOptionKeyDown(e, option) {
426
- if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown')
427
- e.stopPropagation();
428
- if (e.key === 'Enter' || e.key === ' ') {
429
- this.handleOptionClick(option);
430
- }
431
- }
432
- renderOption(option, index) {
430
+ focusFirstOption() {
433
431
  var _a;
434
- const isIndeterminate = this.isOptionIndeterminate(option);
435
- const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);
436
- const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;
437
- const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index
438
- return (h("div", { class: "option-wrapper" }, h("div", { class: `option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''}
439
- ${this.getSizeClass()}`, "data-value": option.value, onKeyDown: (e) => !disableCheckbox && this.handleOptionKeyDown(e, option), onClick: () => !disableCheckbox && this.handleOptionClick(option), tabindex: "0", role: `${((_a = option.children) === null || _a === void 0 ? void 0 : _a.length) > 0 ? "treeitem" : "option"}` }, h("ifx-checkbox", { tabIndex: -1, ref: (el) => option.checkboxRef = el, id: uniqueId, size: "s", checked: isIndeterminate ? false : isSelected, indeterminate: isIndeterminate, disabled: disableCheckbox }), h("label", { htmlFor: uniqueId, onClick: (e) => e.stopPropagation() }, option.label)), option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))));
440
- }
441
- isOptionSelected(option) {
442
- if (!option.children)
443
- return false;
444
- return option.children.every(child => this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value));
445
- }
446
- isOptionIndeterminate(option) {
447
- if (!option.children)
448
- return false;
449
- const selectedChildren = option.children.filter(child => this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)).length;
450
- return selectedChildren > 0 && selectedChildren < option.children.length;
451
- }
452
- findInOptions(options, searchTerm) {
453
- for (const option of options) {
454
- if (option.value === searchTerm) {
455
- return option;
456
- }
457
- if (option.children) {
458
- const foundInChildren = this.findInOptions(option.children, searchTerm);
459
- if (foundInChildren) {
460
- return foundInChildren;
461
- }
462
- }
432
+ const firstOption = this.el.querySelector('ifx-multiselect-option:not(.search-hidden)');
433
+ if (firstOption) {
434
+ const labelElement = (_a = firstOption.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.option-label');
435
+ labelElement === null || labelElement === void 0 ? void 0 : labelElement.focus();
463
436
  }
464
- return null;
465
- }
466
- renderSubOption(option, index) {
467
- var _a;
468
- const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);
469
- const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;
470
- const uniqueId = `checkbox-${option.value}-${index}`;
471
- return (h("div", { class: `option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`, "data-value": option.value, role: `${((_a = option.children) === null || _a === void 0 ? void 0 : _a.length) > 0 ? "option" : "treeitem"}`, onKeyDown: (e) => !disableCheckbox && this.handleOptionKeyDown(e, option), onClick: () => !disableCheckbox && this.handleOptionClick(option), tabindex: "0" }, h("ifx-checkbox", { tabIndex: -1, ref: (el) => option.checkboxRef = el, id: uniqueId, size: "s", checked: isSelected, disabled: disableCheckbox }), h("label", { htmlFor: uniqueId, onClick: (e) => e.stopPropagation() }, option.label)));
472
437
  }
473
438
  renderSelectAll() {
474
- const allSelected = this.persistentSelectedOptions.length === this.optionCount;
475
- const noneSelected = this.persistentSelectedOptions.length === 0;
476
- const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;
477
- const that = this;
478
- function toggleSelectAll() {
439
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
440
+ const leafOptions = Array.from(allOptionElements).filter((el) => !el.hasChildren);
441
+ const selectedLeafOptions = Array.from(allOptionElements).filter((el) => !el.hasChildren && el.selected);
442
+ const allSelected = leafOptions.length > 0 && selectedLeafOptions.length === leafOptions.length;
443
+ const toggleSelectAll = (event) => {
444
+ if (event) {
445
+ event.preventDefault();
446
+ event.stopPropagation();
447
+ }
479
448
  if (allSelected) {
480
- that.clearSelection();
449
+ this.clearSelection();
481
450
  }
482
451
  else {
483
- that.selectAll();
452
+ this.selectAll();
484
453
  }
485
- }
486
- function handleSelectAllKeydown(e) {
487
- if (e.key !== 'ArrowUp' && e.key !== 'ArrowDown')
488
- e.stopPropagation();
489
- if (e.key === 'Enter' || e.key === ' ') {
490
- toggleSelectAll();
491
- }
492
- }
493
- return h("div", { class: "select-all-wrapper" }, h("div", { class: `option ${this.getSizeClass()}`, tabindex: '0', onKeyDown: (e) => handleSelectAllKeydown(e), onClick: toggleSelectAll }, h("ifx-checkbox", { tabIndex: -1, id: 'selectAll', checked: allSelected, indeterminate: indeterminate, size: "s" }), h("label", { htmlFor: 'selectAll' }, "Select all")), h("ifx-dropdown-separator", null));
454
+ };
455
+ return (h("div", { class: "select-all-wrapper" }, h("ifx-checkbox", { id: 'selectAll', checked: allSelected, size: "s", "aria-label": this.ariaSelectAllLabel, onClick: toggleSelectAll, onKeyDown: (e) => {
456
+ if (e.key === 'Enter' || e.key === ' ') {
457
+ e.preventDefault();
458
+ e.stopPropagation();
459
+ toggleSelectAll(e);
460
+ }
461
+ } }, this.selectAllLabel)));
462
+ }
463
+ renderNoResultsMessage() {
464
+ return (h("div", { class: "ifx-multiselect-no-results" }, h("div", { class: "no-results-content" }, h("span", { class: "no-results-text" }, this.noResultsMessage))));
494
465
  }
495
466
  render() {
496
- // Create a label for the selected options
497
467
  const selectedOptionsLabels = this.persistentSelectedOptions
498
- .filter(option => {
499
- // check if option is a child and its parent is selected
500
- const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption => parentOption.children &&
501
- parentOption.children.some(child => child.value === option.value) &&
502
- parentOption.selected);
503
- return !isChildSelectedWithParent;
468
+ .map((option) => {
469
+ var _a;
470
+ const optionElement = this.el.querySelector(`ifx-multiselect-option[value="${option.value}"]`);
471
+ return ((_a = optionElement === null || optionElement === void 0 ? void 0 : optionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || option.value;
504
472
  })
505
- .map(option => option.label)
506
473
  .join(', ');
474
+ const hasSelections = this.persistentSelectedOptions.length > 0;
475
+ let isFlatMultiselect = false;
476
+ const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');
477
+ if (allOptionElements.length > 0) {
478
+ isFlatMultiselect = Array.from(allOptionElements).every(option => option.children.length === 0);
479
+ }
507
480
  return (h("div", { class: `ifx-multiselect-container`, ref: el => this.dropdownElement = el }, this.label ?
508
- h("div", { class: "ifx-label-wrapper" }, h("span", null, this.label)) : null, h("div", { class: `ifx-multiselect-wrapper
509
- ${this.getSizeClass()}
510
- ${this.dropdownOpen ? 'active' : ''}
481
+ h("div", { class: "ifx-label-wrapper" }, h("span", null, this.label)) : null, h("div", { class: `ifx-multiselect-wrapper
482
+ ${this.dropdownOpen ? 'active' : ''}
511
483
  ${this.dropdownFlipped ? 'is-flipped' : ''}
512
484
  ${this.internalError ? 'error' : ""}
513
- ${this.disabled ? 'disabled' : ""}`, tabindex: "0", onClick: this.disabled ? undefined : (event) => this.handleWrapperClick(event), onKeyDown: this.disabled ? undefined : (event) => this.handleKeyDown(event) }, h("div", { class: `ifx-multiselect-input
514
- ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : ""}
515
- `, onClick: this.disabled ? undefined : () => this.toggleDropdown() }, this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder), this.dropdownOpen && (h("div", { class: "ifx-multiselect-dropdown-menu", onScroll: (event) => this.handleScroll(event) }, this.showSearch && h("input", { type: "text", role: "textbox", class: "search-input", onKeyDown: (e) => { e.stopPropagation(); }, onInput: (event) => this.handleSearch(event.target), placeholder: "Search..." }), this.showSelectAll && this.renderSelectAll(), this.filteredOptions.map((option, index) => this.renderOption(option, index)), this.isLoading && h("div", null, "Loading more options..."))), h("div", { class: 'ifx-multiselect-icon-container' }, this.persistentSelectedOptions.length > 0 && (h("div", { class: `ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`, onClick: this.disabled ? undefined : () => this.clearSelection() }, h("ifx-icon", { icon: "cRemove16" }))), h("div", { class: "icon-wrapper-up", onClick: this.disabled ? undefined : () => this.toggleDropdown() }, h("ifx-icon", { key: 'icon-up', icon: 'chevron-up-16' })), h("div", { class: "icon-wrapper-down", onClick: this.disabled ? undefined : () => this.toggleDropdown() }, h("ifx-icon", { key: 'icon-down', icon: 'chevron-down-16' })))), this.internalError ?
485
+ ${this.disabled ? 'disabled' : ""}`, role: "combobox", "aria-label": this.ariaLabel, "aria-labelledby": this.ariaLabelledBy || undefined, "aria-describedby": this.ariaDescribedBy || undefined, "aria-expanded": this.dropdownOpen, "aria-haspopup": "listbox", "aria-disabled": this.disabled, tabindex: "0", onClick: this.disabled ? undefined : (event) => this.handleWrapperClick(event), onKeyDown: this.disabled ? undefined : (event) => this.handleKeyDown(event) }, h("div", { class: `ifx-multiselect-input
486
+ ${hasSelections ? '' : 'placeholder'}
487
+ `, onClick: this.disabled ? undefined : () => this.toggleDropdown() }, hasSelections ? selectedOptionsLabels : this.placeholder), this.dropdownOpen && (h("div", { class: "ifx-multiselect-dropdown-menu" }, (this.showSearch || this.showSelectAll || (this.showExpandCollapse && !isFlatMultiselect)) && (h("div", { class: "ifx-multiselect-dropdown-functions", onClick: (e) => e.stopPropagation() }, this.showSearch && (h("div", { class: "ifx-multiselect-dropdown-search" }, h("ifx-search-field", { class: "search-input", placeholder: this.searchPlaceholder, size: "s", "show-delete-icon": "true", "aria-label": this.ariaSearchLabel, onKeyDown: (e) => { e.stopPropagation(); }, onIfxInput: (event) => this.handleSearch(event.target), onFocus: () => this.handleSearchFocus(true), onBlur: () => this.handleSearchFocus(false) }))), h("div", { class: "ifx-multiselect-dropdown-controls" }, this.showSelectAll && this.renderSelectAll(), this.showExpandCollapse && !isFlatMultiselect && (h("div", { class: "expand-collapse-controls" }, h("span", { class: "control-item", role: "button", tabIndex: 0, "aria-label": this.ariaExpandAllLabel, onClick: (e) => { e.stopPropagation(); this.expandAll(); }, onKeyDown: (e) => {
488
+ if (e.key === 'Enter' || e.key === ' ') {
489
+ e.preventDefault();
490
+ e.stopPropagation();
491
+ this.expandAll();
492
+ }
493
+ } }, this.expandLabel), h("span", { class: "control-item", role: "button", tabIndex: 0, "aria-label": this.ariaCollapseAllLabel, onClick: (e) => { e.stopPropagation(); this.collapseAll(); }, onKeyDown: (e) => {
494
+ if (e.key === 'Enter' || e.key === ' ') {
495
+ e.preventDefault();
496
+ e.stopPropagation();
497
+ this.collapseAll();
498
+ }
499
+ } }, this.collapseLabel)))))), h("div", { class: "ifx-multiselect-options", role: "listbox", "aria-multiselectable": "true" }, h("slot", null), this.searchTerm && this.showNoResultsMessage && this.renderNoResultsMessage()))), h("div", { class: 'ifx-multiselect-icon-container' }, hasSelections && (h("div", { class: `ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`, "aria-label": this.ariaClearLabel, role: "button", tabIndex: 0, onClick: this.disabled ? undefined : (e) => { e.stopPropagation(); this.clearSelection(); }, onKeyDown: this.disabled ? undefined : (e) => {
500
+ if (e.key === 'Enter' || e.key === ' ') {
501
+ e.stopPropagation();
502
+ this.clearSelection();
503
+ }
504
+ } }, h("ifx-icon", { icon: "c-remove-16", key: "clear-icon" }))), h("div", { class: `icon-wrapper ${this.dropdownOpen ? 'icon-wrapper--open' : 'icon-wrapper--closed'}`, "aria-label": this.ariaToggleLabel, role: "button", tabIndex: 0, onClick: this.disabled ? undefined : (e) => { e.stopPropagation(); this.toggleDropdown(); }, onKeyDown: this.disabled ? undefined : (e) => {
505
+ if (e.key === 'Enter' || e.key === ' ') {
506
+ e.stopPropagation();
507
+ this.toggleDropdown();
508
+ }
509
+ } }, h("ifx-icon", { icon: 'chevron-down-16', key: "chevron-icon" })))), this.internalError ?
516
510
  h("div", { class: "ifx-error-message-wrapper" }, h("span", null, this.internalErrorMessage)) : null));
517
511
  }
518
512
  static get is() { return "ifx-multiselect"; }
@@ -549,12 +543,52 @@ export class Multiselect {
549
543
  "attribute": "name",
550
544
  "reflect": false
551
545
  },
552
- "options": {
546
+ "disabled": {
547
+ "type": "boolean",
548
+ "mutable": false,
549
+ "complexType": {
550
+ "original": "boolean",
551
+ "resolved": "boolean",
552
+ "references": {}
553
+ },
554
+ "required": false,
555
+ "optional": false,
556
+ "docs": {
557
+ "tags": [],
558
+ "text": ""
559
+ },
560
+ "getter": false,
561
+ "setter": false,
562
+ "attribute": "disabled",
563
+ "reflect": false,
564
+ "defaultValue": "false"
565
+ },
566
+ "error": {
567
+ "type": "boolean",
568
+ "mutable": false,
569
+ "complexType": {
570
+ "original": "boolean",
571
+ "resolved": "boolean",
572
+ "references": {}
573
+ },
574
+ "required": false,
575
+ "optional": false,
576
+ "docs": {
577
+ "tags": [],
578
+ "text": ""
579
+ },
580
+ "getter": false,
581
+ "setter": false,
582
+ "attribute": "error",
583
+ "reflect": false,
584
+ "defaultValue": "false"
585
+ },
586
+ "errorMessage": {
553
587
  "type": "string",
554
588
  "mutable": false,
555
589
  "complexType": {
556
- "original": "any[] | string",
557
- "resolved": "any[] | string",
590
+ "original": "string",
591
+ "resolved": "string",
558
592
  "references": {}
559
593
  },
560
594
  "required": false,
@@ -565,15 +599,16 @@ export class Multiselect {
565
599
  },
566
600
  "getter": false,
567
601
  "setter": false,
568
- "attribute": "options",
569
- "reflect": false
602
+ "attribute": "error-message",
603
+ "reflect": false,
604
+ "defaultValue": "\"Error\""
570
605
  },
571
- "batchSize": {
572
- "type": "number",
606
+ "label": {
607
+ "type": "string",
573
608
  "mutable": false,
574
609
  "complexType": {
575
- "original": "number",
576
- "resolved": "number",
610
+ "original": "string",
611
+ "resolved": "string",
577
612
  "references": {}
578
613
  },
579
614
  "required": false,
@@ -584,11 +619,11 @@ export class Multiselect {
584
619
  },
585
620
  "getter": false,
586
621
  "setter": false,
587
- "attribute": "batch-size",
622
+ "attribute": "label",
588
623
  "reflect": false,
589
- "defaultValue": "50"
624
+ "defaultValue": "\"\""
590
625
  },
591
- "size": {
626
+ "placeholder": {
592
627
  "type": "string",
593
628
  "mutable": false,
594
629
  "complexType": {
@@ -604,11 +639,11 @@ export class Multiselect {
604
639
  },
605
640
  "getter": false,
606
641
  "setter": false,
607
- "attribute": "size",
642
+ "attribute": "placeholder",
608
643
  "reflect": false,
609
- "defaultValue": "'medium (40px)'"
644
+ "defaultValue": "\"\""
610
645
  },
611
- "disabled": {
646
+ "showSearch": {
612
647
  "type": "boolean",
613
648
  "mutable": false,
614
649
  "complexType": {
@@ -624,11 +659,11 @@ export class Multiselect {
624
659
  },
625
660
  "getter": false,
626
661
  "setter": false,
627
- "attribute": "disabled",
662
+ "attribute": "show-search",
628
663
  "reflect": false,
629
- "defaultValue": "false"
664
+ "defaultValue": "true"
630
665
  },
631
- "error": {
666
+ "showSelectAll": {
632
667
  "type": "boolean",
633
668
  "mutable": false,
634
669
  "complexType": {
@@ -644,11 +679,51 @@ export class Multiselect {
644
679
  },
645
680
  "getter": false,
646
681
  "setter": false,
647
- "attribute": "error",
682
+ "attribute": "show-select-all",
648
683
  "reflect": false,
649
- "defaultValue": "false"
684
+ "defaultValue": "true"
650
685
  },
651
- "errorMessage": {
686
+ "showClearButton": {
687
+ "type": "boolean",
688
+ "mutable": false,
689
+ "complexType": {
690
+ "original": "boolean",
691
+ "resolved": "boolean",
692
+ "references": {}
693
+ },
694
+ "required": false,
695
+ "optional": false,
696
+ "docs": {
697
+ "tags": [],
698
+ "text": ""
699
+ },
700
+ "getter": false,
701
+ "setter": false,
702
+ "attribute": "show-clear-button",
703
+ "reflect": false,
704
+ "defaultValue": "true"
705
+ },
706
+ "showExpandCollapse": {
707
+ "type": "boolean",
708
+ "mutable": false,
709
+ "complexType": {
710
+ "original": "boolean",
711
+ "resolved": "boolean",
712
+ "references": {}
713
+ },
714
+ "required": false,
715
+ "optional": false,
716
+ "docs": {
717
+ "tags": [],
718
+ "text": ""
719
+ },
720
+ "getter": false,
721
+ "setter": false,
722
+ "attribute": "show-expand-collapse",
723
+ "reflect": false,
724
+ "defaultValue": "true"
725
+ },
726
+ "noResultsMessage": {
652
727
  "type": "string",
653
728
  "mutable": false,
654
729
  "complexType": {
@@ -664,11 +739,31 @@ export class Multiselect {
664
739
  },
665
740
  "getter": false,
666
741
  "setter": false,
667
- "attribute": "error-message",
742
+ "attribute": "no-results-message",
668
743
  "reflect": false,
669
- "defaultValue": "\"Error\""
744
+ "defaultValue": "\"No results found.\""
670
745
  },
671
- "label": {
746
+ "showNoResultsMessage": {
747
+ "type": "boolean",
748
+ "mutable": false,
749
+ "complexType": {
750
+ "original": "boolean",
751
+ "resolved": "boolean",
752
+ "references": {}
753
+ },
754
+ "required": false,
755
+ "optional": false,
756
+ "docs": {
757
+ "tags": [],
758
+ "text": ""
759
+ },
760
+ "getter": false,
761
+ "setter": false,
762
+ "attribute": "show-no-results-message",
763
+ "reflect": false,
764
+ "defaultValue": "true"
765
+ },
766
+ "searchPlaceholder": {
672
767
  "type": "string",
673
768
  "mutable": false,
674
769
  "complexType": {
@@ -684,11 +779,111 @@ export class Multiselect {
684
779
  },
685
780
  "getter": false,
686
781
  "setter": false,
687
- "attribute": "label",
782
+ "attribute": "search-placeholder",
783
+ "reflect": false,
784
+ "defaultValue": "\"Search\""
785
+ },
786
+ "selectAllLabel": {
787
+ "type": "string",
788
+ "mutable": false,
789
+ "complexType": {
790
+ "original": "string",
791
+ "resolved": "string",
792
+ "references": {}
793
+ },
794
+ "required": false,
795
+ "optional": false,
796
+ "docs": {
797
+ "tags": [],
798
+ "text": ""
799
+ },
800
+ "getter": false,
801
+ "setter": false,
802
+ "attribute": "select-all-label",
803
+ "reflect": false,
804
+ "defaultValue": "\"Select all\""
805
+ },
806
+ "expandLabel": {
807
+ "type": "string",
808
+ "mutable": false,
809
+ "complexType": {
810
+ "original": "string",
811
+ "resolved": "string",
812
+ "references": {}
813
+ },
814
+ "required": false,
815
+ "optional": false,
816
+ "docs": {
817
+ "tags": [],
818
+ "text": ""
819
+ },
820
+ "getter": false,
821
+ "setter": false,
822
+ "attribute": "expand-label",
823
+ "reflect": false,
824
+ "defaultValue": "\"Expand\""
825
+ },
826
+ "collapseLabel": {
827
+ "type": "string",
828
+ "mutable": false,
829
+ "complexType": {
830
+ "original": "string",
831
+ "resolved": "string",
832
+ "references": {}
833
+ },
834
+ "required": false,
835
+ "optional": false,
836
+ "docs": {
837
+ "tags": [],
838
+ "text": ""
839
+ },
840
+ "getter": false,
841
+ "setter": false,
842
+ "attribute": "collapse-label",
843
+ "reflect": false,
844
+ "defaultValue": "\"Collapse\""
845
+ },
846
+ "ariaLabel": {
847
+ "type": "string",
848
+ "mutable": false,
849
+ "complexType": {
850
+ "original": "string",
851
+ "resolved": "string",
852
+ "references": {}
853
+ },
854
+ "required": false,
855
+ "optional": false,
856
+ "docs": {
857
+ "tags": [],
858
+ "text": ""
859
+ },
860
+ "getter": false,
861
+ "setter": false,
862
+ "attribute": "aria-label",
863
+ "reflect": false,
864
+ "defaultValue": "\"Multi-select dropdown\""
865
+ },
866
+ "ariaLabelledBy": {
867
+ "type": "string",
868
+ "mutable": false,
869
+ "complexType": {
870
+ "original": "string",
871
+ "resolved": "string",
872
+ "references": {}
873
+ },
874
+ "required": false,
875
+ "optional": false,
876
+ "docs": {
877
+ "tags": [],
878
+ "text": ""
879
+ },
880
+ "getter": false,
881
+ "setter": false,
882
+ "attribute": "aria-labelled-by",
688
883
  "reflect": false,
689
884
  "defaultValue": "\"\""
690
885
  },
691
- "placeholder": {
886
+ "ariaDescribedBy": {
692
887
  "type": "string",
693
888
  "mutable": false,
694
889
  "complexType": {
@@ -704,16 +899,16 @@ export class Multiselect {
704
899
  },
705
900
  "getter": false,
706
901
  "setter": false,
707
- "attribute": "placeholder",
902
+ "attribute": "aria-described-by",
708
903
  "reflect": false,
709
904
  "defaultValue": "\"\""
710
905
  },
711
- "maxItemCount": {
712
- "type": "number",
906
+ "ariaSearchLabel": {
907
+ "type": "string",
713
908
  "mutable": false,
714
909
  "complexType": {
715
- "original": "number",
716
- "resolved": "number",
910
+ "original": "string",
911
+ "resolved": "string",
717
912
  "references": {}
718
913
  },
719
914
  "required": false,
@@ -724,15 +919,16 @@ export class Multiselect {
724
919
  },
725
920
  "getter": false,
726
921
  "setter": false,
727
- "attribute": "max-item-count",
728
- "reflect": false
922
+ "attribute": "aria-search-label",
923
+ "reflect": false,
924
+ "defaultValue": "\"Search options\""
729
925
  },
730
- "showSearch": {
731
- "type": "boolean",
926
+ "ariaClearLabel": {
927
+ "type": "string",
732
928
  "mutable": false,
733
929
  "complexType": {
734
- "original": "boolean",
735
- "resolved": "boolean",
930
+ "original": "string",
931
+ "resolved": "string",
736
932
  "references": {}
737
933
  },
738
934
  "required": false,
@@ -743,16 +939,16 @@ export class Multiselect {
743
939
  },
744
940
  "getter": false,
745
941
  "setter": false,
746
- "attribute": "show-search",
942
+ "attribute": "aria-clear-label",
747
943
  "reflect": false,
748
- "defaultValue": "true"
944
+ "defaultValue": "\"Clear all selections\""
749
945
  },
750
- "showSelectAll": {
751
- "type": "boolean",
946
+ "ariaToggleLabel": {
947
+ "type": "string",
752
948
  "mutable": false,
753
949
  "complexType": {
754
- "original": "boolean",
755
- "resolved": "boolean",
950
+ "original": "string",
951
+ "resolved": "string",
756
952
  "references": {}
757
953
  },
758
954
  "required": false,
@@ -763,16 +959,16 @@ export class Multiselect {
763
959
  },
764
960
  "getter": false,
765
961
  "setter": false,
766
- "attribute": "show-select-all",
962
+ "attribute": "aria-toggle-label",
767
963
  "reflect": false,
768
- "defaultValue": "true"
964
+ "defaultValue": "\"Toggle dropdown\""
769
965
  },
770
- "showClearButton": {
771
- "type": "boolean",
966
+ "ariaSelectAllLabel": {
967
+ "type": "string",
772
968
  "mutable": false,
773
969
  "complexType": {
774
- "original": "boolean",
775
- "resolved": "boolean",
970
+ "original": "string",
971
+ "resolved": "string",
776
972
  "references": {}
777
973
  },
778
974
  "required": false,
@@ -783,9 +979,49 @@ export class Multiselect {
783
979
  },
784
980
  "getter": false,
785
981
  "setter": false,
786
- "attribute": "show-clear-button",
982
+ "attribute": "aria-select-all-label",
787
983
  "reflect": false,
788
- "defaultValue": "true"
984
+ "defaultValue": "\"Select all options\""
985
+ },
986
+ "ariaExpandAllLabel": {
987
+ "type": "string",
988
+ "mutable": false,
989
+ "complexType": {
990
+ "original": "string",
991
+ "resolved": "string",
992
+ "references": {}
993
+ },
994
+ "required": false,
995
+ "optional": false,
996
+ "docs": {
997
+ "tags": [],
998
+ "text": ""
999
+ },
1000
+ "getter": false,
1001
+ "setter": false,
1002
+ "attribute": "aria-expand-all-label",
1003
+ "reflect": false,
1004
+ "defaultValue": "\"Expand all categories\""
1005
+ },
1006
+ "ariaCollapseAllLabel": {
1007
+ "type": "string",
1008
+ "mutable": false,
1009
+ "complexType": {
1010
+ "original": "string",
1011
+ "resolved": "string",
1012
+ "references": {}
1013
+ },
1014
+ "required": false,
1015
+ "optional": false,
1016
+ "docs": {
1017
+ "tags": [],
1018
+ "text": ""
1019
+ },
1020
+ "getter": false,
1021
+ "setter": false,
1022
+ "attribute": "aria-collapse-all-label",
1023
+ "reflect": false,
1024
+ "defaultValue": "\"Collapse all categories\""
789
1025
  }
790
1026
  };
791
1027
  }
@@ -796,11 +1032,7 @@ export class Multiselect {
796
1032
  "persistentSelectedOptions": {},
797
1033
  "dropdownOpen": {},
798
1034
  "dropdownFlipped": {},
799
- "isLoading": {},
800
- "loadedOptions": {},
801
- "filteredOptions": {},
802
- "optionCount": {},
803
- "optionsProcessed": {}
1035
+ "searchTerm": {}
804
1036
  };
805
1037
  }
806
1038
  static get events() {
@@ -836,20 +1068,35 @@ export class Multiselect {
836
1068
  }
837
1069
  }];
838
1070
  }
1071
+ static get methods() {
1072
+ return {
1073
+ "clearSelection": {
1074
+ "complexType": {
1075
+ "signature": "() => Promise<void>",
1076
+ "parameters": [],
1077
+ "references": {
1078
+ "Promise": {
1079
+ "location": "global",
1080
+ "id": "global::Promise"
1081
+ }
1082
+ },
1083
+ "return": "Promise<void>"
1084
+ },
1085
+ "docs": {
1086
+ "text": "",
1087
+ "tags": []
1088
+ }
1089
+ }
1090
+ };
1091
+ }
839
1092
  static get elementRef() { return "el"; }
840
1093
  static get watchers() {
841
1094
  return [{
842
- "propName": "options",
843
- "methodName": "updateOptions"
844
- }, {
845
1095
  "propName": "error",
846
1096
  "methodName": "updateInternalError"
847
1097
  }, {
848
1098
  "propName": "errorMessage",
849
1099
  "methodName": "updateInternalErrorMessage"
850
- }, {
851
- "propName": "loadedOptions",
852
- "methodName": "loadedOptionsChanged"
853
1100
  }, {
854
1101
  "propName": "persistentSelectedOptions",
855
1102
  "methodName": "onSelectionChange"
@@ -857,5 +1104,4 @@ export class Multiselect {
857
1104
  }
858
1105
  static get attachInternalsMemberName() { return "internals"; }
859
1106
  }
860
- Multiselect.globalZIndex = 1000; // This will be shared among all instances of the component.
861
1107
  //# sourceMappingURL=multiselect.js.map