@infineon/infineon-design-system-stencil 37.14.1--canary.1992.3ba94dbc7ac612d3090f1bba7f29bb3a2701b4f2.0 → 37.14.1--canary.2005.0b8acf50350a42e6e5d4cdfbd4812c690c1c2ced.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 (329) hide show
  1. package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -1
  2. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
  3. package/dist/cjs/ifx-checkbox.cjs.entry.js +6 -17
  4. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-checkbox.entry.cjs.js.map +1 -1
  6. package/dist/cjs/ifx-chip_3.cjs.entry.js +1 -1
  7. package/dist/cjs/ifx-date-picker.cjs.entry.js +7 -7
  8. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-date-picker.entry.cjs.js.map +1 -1
  10. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  11. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +2 -2
  12. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  13. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  14. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  15. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  16. package/dist/cjs/ifx-multiselect.ifx-multiselect-option.entry.cjs.js.map +1 -1
  17. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +5 -5
  18. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
  20. package/dist/cjs/ifx-overview-table.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-overview-table.entry.cjs.js.map +1 -1
  22. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
  23. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -1
  24. package/dist/cjs/ifx-radio-button.cjs.entry.js +5 -15
  25. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ifx-radio-button.entry.cjs.js.map +1 -1
  27. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
  28. package/dist/cjs/ifx-search-field.cjs.entry.js +2 -2
  29. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  30. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
  31. package/dist/cjs/ifx-select.cjs.entry.js +3 -3
  32. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-select.entry.cjs.js.map +1 -1
  34. package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
  35. package/dist/cjs/ifx-spinner.ifx-text-field.entry.cjs.js.map +1 -1
  36. package/dist/cjs/ifx-spinner_2.cjs.entry.js +11 -11
  37. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  39. package/dist/cjs/ifx-step.cjs.entry.js +4 -4
  40. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
  41. package/dist/cjs/ifx-switch.cjs.entry.js +4 -15
  42. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-switch.entry.cjs.js.map +1 -1
  44. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  45. package/dist/cjs/ifx-table.cjs.entry.js +2 -2
  46. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
  47. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  48. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  49. package/dist/cjs/ifx-textarea.cjs.entry.js +9 -9
  50. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ifx-textarea.entry.cjs.js.map +1 -1
  52. package/dist/cjs/ifx-tooltip.cjs.entry.js +4 -4
  53. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +2 -2
  54. package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -1
  55. package/dist/collection/components/checkbox/checkbox.js +9 -9
  56. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  57. package/dist/collection/components/date-picker/date-picker.js +7 -7
  58. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  59. package/dist/collection/components/overview-table/overview-table.js +1 -1
  60. package/dist/collection/components/overview-table/overview-table.js.map +1 -1
  61. package/dist/collection/components/pagination/pagination.js +1 -1
  62. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  63. package/dist/collection/components/radio-button/radio-button.js +6 -7
  64. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  65. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  66. package/dist/collection/components/search-bar/search-bar.js +1 -1
  67. package/dist/collection/components/search-field/search-field.js +2 -2
  68. package/dist/collection/components/segmented-control/segment/segment.js +1 -1
  69. package/dist/collection/components/segmented-control/segmented-control.js +2 -2
  70. package/dist/collection/components/select/multi-select/multiselect-option.js +4 -4
  71. package/dist/collection/components/select/multi-select/multiselect.js +1 -1
  72. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  73. package/dist/collection/components/select/single-select/select.css +17 -9
  74. package/dist/collection/components/select/single-select/select.js +2 -2
  75. package/dist/collection/components/slider/slider.js +2 -2
  76. package/dist/collection/components/spinner/spinner.js +2 -2
  77. package/dist/collection/components/status/status.js +1 -1
  78. package/dist/collection/components/stepper/step/step.js +4 -4
  79. package/dist/collection/components/stepper/stepper.js +2 -2
  80. package/dist/collection/components/switch/switch.js +7 -7
  81. package/dist/collection/components/switch/switch.js.map +1 -1
  82. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +1 -1
  83. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +2 -2
  84. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +1 -1
  85. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +1 -1
  86. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -1
  87. package/dist/collection/components/table-advanced-version/table.js +2 -2
  88. package/dist/collection/components/table-basic-version/table.js +1 -1
  89. package/dist/collection/components/tabs/tab.js +1 -1
  90. package/dist/collection/components/tabs/tabs.js +2 -2
  91. package/dist/collection/components/tag/tag.js +1 -1
  92. package/dist/collection/components/templates/template/template.js +1 -1
  93. package/dist/collection/components/templates/templates-ui/templates-ui.js +1 -1
  94. package/dist/collection/components/text-field/text-field.js +9 -9
  95. package/dist/collection/components/text-field/text-field.js.map +1 -1
  96. package/dist/collection/components/textarea/textarea.js +9 -9
  97. package/dist/collection/components/textarea/textarea.js.map +1 -1
  98. package/dist/collection/components/tooltip/tooltip.js +4 -4
  99. package/dist/collection/components/tree-view/tree-view-item.js +2 -2
  100. package/dist/collection/components/tree-view/tree-view.js +1 -1
  101. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  102. package/dist/collection/test-setup.js +2 -2
  103. package/dist/collection/test-setup.js.map +1 -1
  104. package/dist/components/ifx-basic-table.js +1 -1
  105. package/dist/components/ifx-checkbox.js +1 -1
  106. package/dist/components/ifx-chip-item.js +1 -1
  107. package/dist/components/ifx-date-picker.js +7 -7
  108. package/dist/components/ifx-date-picker.js.map +1 -1
  109. package/dist/components/ifx-faq.js +1 -1
  110. package/dist/components/ifx-file-upload.js +1 -1
  111. package/dist/components/ifx-filter-accordion.js +2 -2
  112. package/dist/components/ifx-filter-bar.js +1 -1
  113. package/dist/components/ifx-filter-search.js +2 -2
  114. package/dist/components/ifx-filter-type-group.js +1 -1
  115. package/dist/components/ifx-icons-preview.js +1 -1
  116. package/dist/components/ifx-list-entry.js +3 -3
  117. package/dist/components/ifx-multiselect-option.js +1 -1
  118. package/dist/components/ifx-multiselect.js +1 -1
  119. package/dist/components/ifx-overview-table.js +1 -1
  120. package/dist/components/ifx-overview-table.js.map +1 -1
  121. package/dist/components/ifx-pagination.js +1 -1
  122. package/dist/components/ifx-progress-bar.js +1 -1
  123. package/dist/components/ifx-radio-button-group.js +1 -1
  124. package/dist/components/ifx-radio-button.js +1 -1
  125. package/dist/components/ifx-search-bar.js +2 -2
  126. package/dist/components/ifx-search-field.js +1 -1
  127. package/dist/components/ifx-segment.js +1 -1
  128. package/dist/components/ifx-segmented-control.js +2 -2
  129. package/dist/components/ifx-select.js +1 -1
  130. package/dist/components/ifx-set-filter.js +6 -6
  131. package/dist/components/ifx-slider.js +2 -2
  132. package/dist/components/ifx-spinner.js +1 -1
  133. package/dist/components/ifx-status.js +1 -1
  134. package/dist/components/ifx-step.js +4 -4
  135. package/dist/components/ifx-stepper.js +2 -2
  136. package/dist/components/ifx-switch.js +4 -15
  137. package/dist/components/ifx-switch.js.map +1 -1
  138. package/dist/components/ifx-tab.js +1 -1
  139. package/dist/components/ifx-table.js +6 -6
  140. package/dist/components/ifx-tabs.js +2 -2
  141. package/dist/components/ifx-tag.js +1 -1
  142. package/dist/components/ifx-template.js +1 -1
  143. package/dist/components/ifx-templates-ui.js +4 -4
  144. package/dist/components/ifx-text-field.js +1 -1
  145. package/dist/components/ifx-textarea.js +9 -9
  146. package/dist/components/ifx-textarea.js.map +1 -1
  147. package/dist/components/ifx-tooltip.js +4 -4
  148. package/dist/components/ifx-tree-view-item.js +3 -3
  149. package/dist/components/ifx-tree-view.js +1 -1
  150. package/dist/components/{p-C7jhiUEX.js → p-AfeIKrPd.js} +4 -4
  151. package/dist/components/{p-C7jhiUEX.js.map → p-AfeIKrPd.js.map} +1 -1
  152. package/dist/components/{p-H7UrXx90.js → p-B1lfea8R.js} +7 -7
  153. package/dist/components/{p-H7UrXx90.js.map → p-B1lfea8R.js.map} +1 -1
  154. package/dist/components/{p-CSpaQFX2.js → p-BK6jtaez.js} +4 -4
  155. package/dist/components/{p-CSpaQFX2.js.map → p-BK6jtaez.js.map} +1 -1
  156. package/dist/components/{p-DL0DaOdR.js → p-BdxNbvkX.js} +8 -19
  157. package/dist/components/p-BdxNbvkX.js.map +1 -0
  158. package/dist/components/{p-D4E8VwPm.js → p-COBB2gby.js} +3 -3
  159. package/dist/components/{p-D4E8VwPm.js.map → p-COBB2gby.js.map} +1 -1
  160. package/dist/components/{p-CW1EYr_B.js → p-D0FTDBJi.js} +7 -17
  161. package/dist/components/p-D0FTDBJi.js.map +1 -0
  162. package/dist/components/{p-Coa3oQEK.js → p-DBHwLTn9.js} +5 -5
  163. package/dist/components/{p-Coa3oQEK.js.map → p-DBHwLTn9.js.map} +1 -1
  164. package/dist/components/{p-BRAYMYpA.js → p-DVfM92xI.js} +5 -5
  165. package/dist/components/{p-BRAYMYpA.js.map → p-DVfM92xI.js.map} +1 -1
  166. package/dist/components/{p-CFMrihYb.js → p-Dt9X9aqI.js} +4 -4
  167. package/dist/components/{p-CFMrihYb.js.map → p-Dt9X9aqI.js.map} +1 -1
  168. package/dist/components/{p-Bsg4XNJ8.js → p-dFnoI9Z9.js} +3 -3
  169. package/dist/components/{p-Bsg4XNJ8.js.map → p-dFnoI9Z9.js.map} +1 -1
  170. package/dist/components/{p-B_2EeLyJ.js → p-jpHS2EcW.js} +11 -11
  171. package/dist/components/p-jpHS2EcW.js.map +1 -0
  172. package/dist/components/{p-BZbKc4N2.js → p-wf80ST1n.js} +5 -5
  173. package/dist/components/p-wf80ST1n.js.map +1 -0
  174. package/dist/esm/ifx-alert_2.entry.js +1 -1
  175. package/dist/esm/ifx-basic-table.entry.js +1 -1
  176. package/dist/esm/ifx-checkbox.entry.js +6 -17
  177. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  178. package/dist/esm/ifx-chip_3.entry.js +1 -1
  179. package/dist/esm/ifx-date-picker.entry.js +7 -7
  180. package/dist/esm/ifx-date-picker.entry.js.map +1 -1
  181. package/dist/esm/ifx-faq.entry.js +1 -1
  182. package/dist/esm/ifx-filter-accordion.entry.js +2 -2
  183. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  184. package/dist/esm/ifx-filter-search.entry.js +1 -1
  185. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  186. package/dist/esm/ifx-list-entry.entry.js +1 -1
  187. package/dist/esm/ifx-multiselect.ifx-multiselect-option.entry.js.map +1 -1
  188. package/dist/esm/ifx-multiselect_2.entry.js +5 -5
  189. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -1
  190. package/dist/esm/ifx-overview-table.entry.js +1 -1
  191. package/dist/esm/ifx-overview-table.entry.js.map +1 -1
  192. package/dist/esm/ifx-progress-bar.entry.js +1 -1
  193. package/dist/esm/ifx-radio-button-group.entry.js +1 -1
  194. package/dist/esm/ifx-radio-button.entry.js +5 -15
  195. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  196. package/dist/esm/ifx-search-bar.entry.js +1 -1
  197. package/dist/esm/ifx-search-field.entry.js +2 -2
  198. package/dist/esm/ifx-segment.entry.js +1 -1
  199. package/dist/esm/ifx-segmented-control.entry.js +2 -2
  200. package/dist/esm/ifx-select.entry.js +3 -3
  201. package/dist/esm/ifx-select.entry.js.map +1 -1
  202. package/dist/esm/ifx-slider.entry.js +2 -2
  203. package/dist/esm/ifx-spinner.ifx-text-field.entry.js.map +1 -1
  204. package/dist/esm/ifx-spinner_2.entry.js +11 -11
  205. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  206. package/dist/esm/ifx-status.entry.js +1 -1
  207. package/dist/esm/ifx-step.entry.js +4 -4
  208. package/dist/esm/ifx-stepper.entry.js +2 -2
  209. package/dist/esm/ifx-switch.entry.js +4 -15
  210. package/dist/esm/ifx-switch.entry.js.map +1 -1
  211. package/dist/esm/ifx-tab.entry.js +1 -1
  212. package/dist/esm/ifx-table.entry.js +2 -2
  213. package/dist/esm/ifx-tabs.entry.js +2 -2
  214. package/dist/esm/ifx-tag.entry.js +1 -1
  215. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  216. package/dist/esm/ifx-textarea.entry.js +9 -9
  217. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  218. package/dist/esm/ifx-tooltip.entry.js +4 -4
  219. package/dist/esm/ifx-tree-view-item.entry.js +2 -2
  220. package/dist/esm/ifx-tree-view.entry.js +1 -1
  221. package/dist/infineon-design-system-stencil/ifx-checkbox.entry.esm.js.map +1 -1
  222. package/dist/infineon-design-system-stencil/ifx-date-picker.entry.esm.js.map +1 -1
  223. package/dist/infineon-design-system-stencil/ifx-multiselect.ifx-multiselect-option.entry.esm.js.map +1 -1
  224. package/dist/infineon-design-system-stencil/ifx-overview-table.entry.esm.js.map +1 -1
  225. package/dist/infineon-design-system-stencil/ifx-radio-button.entry.esm.js.map +1 -1
  226. package/dist/infineon-design-system-stencil/ifx-select.entry.esm.js.map +1 -1
  227. package/dist/infineon-design-system-stencil/ifx-spinner.ifx-text-field.entry.esm.js.map +1 -1
  228. package/dist/infineon-design-system-stencil/ifx-switch.entry.esm.js.map +1 -1
  229. package/dist/infineon-design-system-stencil/ifx-textarea.entry.esm.js.map +1 -1
  230. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  231. package/dist/infineon-design-system-stencil/{p-c082f65d.entry.js → p-022667fd.entry.js} +2 -2
  232. package/dist/infineon-design-system-stencil/{p-9f677df3.entry.js → p-0eaf5a5e.entry.js} +2 -2
  233. package/dist/infineon-design-system-stencil/{p-b3e0da8d.entry.js → p-262afd53.entry.js} +2 -2
  234. package/dist/infineon-design-system-stencil/{p-423fd640.entry.js → p-296c1bd4.entry.js} +2 -2
  235. package/dist/infineon-design-system-stencil/{p-8e721b4b.entry.js → p-34146964.entry.js} +2 -2
  236. package/dist/infineon-design-system-stencil/{p-29bf7f39.entry.js → p-41291d21.entry.js} +2 -2
  237. package/dist/infineon-design-system-stencil/p-50867a1f.entry.js +2 -0
  238. package/dist/infineon-design-system-stencil/{p-d1a40b06.entry.js.map → p-50867a1f.entry.js.map} +1 -1
  239. package/dist/infineon-design-system-stencil/{p-9afbc104.entry.js → p-5c1a8c83.entry.js} +2 -2
  240. package/dist/infineon-design-system-stencil/{p-27d80304.entry.js → p-62b09872.entry.js} +2 -2
  241. package/dist/infineon-design-system-stencil/p-66a4ed41.entry.js +2 -0
  242. package/dist/infineon-design-system-stencil/{p-01f4ac35.entry.js → p-7462fff6.entry.js} +2 -2
  243. package/dist/infineon-design-system-stencil/{p-20185a81.entry.js → p-79399588.entry.js} +2 -2
  244. package/dist/infineon-design-system-stencil/{p-019e01a1.entry.js → p-7b091a06.entry.js} +2 -2
  245. package/dist/infineon-design-system-stencil/{p-29924f68.entry.js → p-7b4b783a.entry.js} +2 -2
  246. package/dist/infineon-design-system-stencil/{p-92b41859.entry.js → p-7c32c3aa.entry.js} +2 -2
  247. package/dist/infineon-design-system-stencil/p-86523f4e.entry.js +2 -0
  248. package/dist/infineon-design-system-stencil/p-86523f4e.entry.js.map +1 -0
  249. package/dist/infineon-design-system-stencil/{p-a3894e45.entry.js → p-92e5b3bd.entry.js} +2 -2
  250. package/dist/infineon-design-system-stencil/{p-afdb48bc.entry.js → p-a405b6f4.entry.js} +2 -2
  251. package/dist/infineon-design-system-stencil/p-a5b15118.entry.js +2 -0
  252. package/dist/infineon-design-system-stencil/p-a5b15118.entry.js.map +1 -0
  253. package/dist/infineon-design-system-stencil/p-acc5ae62.entry.js +2 -0
  254. package/dist/infineon-design-system-stencil/p-acc5ae62.entry.js.map +1 -0
  255. package/dist/infineon-design-system-stencil/{p-c585d41f.entry.js → p-b25c4f18.entry.js} +2 -2
  256. package/dist/infineon-design-system-stencil/{p-c585d41f.entry.js.map → p-b25c4f18.entry.js.map} +1 -1
  257. package/dist/infineon-design-system-stencil/p-b4d19492.entry.js +2 -0
  258. package/dist/infineon-design-system-stencil/p-b4d19492.entry.js.map +1 -0
  259. package/dist/infineon-design-system-stencil/{p-901e400b.entry.js → p-b81d2f37.entry.js} +2 -2
  260. package/dist/infineon-design-system-stencil/p-be04a034.entry.js +2 -0
  261. package/dist/infineon-design-system-stencil/p-be04a034.entry.js.map +1 -0
  262. package/dist/infineon-design-system-stencil/{p-4bfaae7f.entry.js → p-bf480e62.entry.js} +2 -2
  263. package/dist/infineon-design-system-stencil/{p-30e08f40.entry.js → p-c06b0a60.entry.js} +2 -2
  264. package/dist/infineon-design-system-stencil/p-c75784ef.entry.js +2 -0
  265. package/dist/infineon-design-system-stencil/{p-9622982d.entry.js.map → p-c75784ef.entry.js.map} +1 -1
  266. package/dist/infineon-design-system-stencil/{p-ae623793.entry.js → p-c863b508.entry.js} +2 -2
  267. package/dist/infineon-design-system-stencil/{p-a4d53b78.entry.js → p-cc0309cc.entry.js} +2 -2
  268. package/dist/infineon-design-system-stencil/{p-2845216b.entry.js → p-cdbc14e1.entry.js} +2 -2
  269. package/dist/infineon-design-system-stencil/{p-bf51fc38.entry.js → p-d094dc8e.entry.js} +2 -2
  270. package/dist/infineon-design-system-stencil/p-d094dc8e.entry.js.map +1 -0
  271. package/dist/infineon-design-system-stencil/{p-cf4d16d1.entry.js → p-e1b6894c.entry.js} +2 -2
  272. package/dist/infineon-design-system-stencil/p-e1b6894c.entry.js.map +1 -0
  273. package/dist/infineon-design-system-stencil/{p-aae0430e.entry.js → p-e2dd3eef.entry.js} +2 -2
  274. package/dist/infineon-design-system-stencil/{p-c2b28f48.entry.js → p-e54f95d9.entry.js} +2 -2
  275. package/dist/infineon-design-system-stencil/p-e54f95d9.entry.js.map +1 -0
  276. package/dist/infineon-design-system-stencil/{p-c633f9b0.entry.js → p-ea61b79e.entry.js} +2 -2
  277. package/dist/infineon-design-system-stencil/{p-1e99b82a.entry.js → p-f53f7d80.entry.js} +2 -2
  278. package/dist/types/components/checkbox/checkbox.d.ts +0 -1
  279. package/dist/types/components/date-picker/date-picker.d.ts +0 -1
  280. package/dist/types/components/radio-button/radio-button.d.ts +0 -1
  281. package/dist/types/components/switch/switch.d.ts +0 -1
  282. package/dist/types/components/text-field/text-field.d.ts +0 -1
  283. package/dist/types/components/textarea/textarea.d.ts +0 -1
  284. package/package.json +1 -1
  285. package/dist/components/p-BZbKc4N2.js.map +0 -1
  286. package/dist/components/p-B_2EeLyJ.js.map +0 -1
  287. package/dist/components/p-CW1EYr_B.js.map +0 -1
  288. package/dist/components/p-DL0DaOdR.js.map +0 -1
  289. package/dist/infineon-design-system-stencil/p-0468c9a7.entry.js +0 -2
  290. package/dist/infineon-design-system-stencil/p-1783d3c4.entry.js +0 -2
  291. package/dist/infineon-design-system-stencil/p-1783d3c4.entry.js.map +0 -1
  292. package/dist/infineon-design-system-stencil/p-32426d70.entry.js +0 -2
  293. package/dist/infineon-design-system-stencil/p-32426d70.entry.js.map +0 -1
  294. package/dist/infineon-design-system-stencil/p-9622982d.entry.js +0 -2
  295. package/dist/infineon-design-system-stencil/p-a2885d0f.entry.js +0 -2
  296. package/dist/infineon-design-system-stencil/p-a2885d0f.entry.js.map +0 -1
  297. package/dist/infineon-design-system-stencil/p-adc480bb.entry.js +0 -2
  298. package/dist/infineon-design-system-stencil/p-adc480bb.entry.js.map +0 -1
  299. package/dist/infineon-design-system-stencil/p-bf51fc38.entry.js.map +0 -1
  300. package/dist/infineon-design-system-stencil/p-c2b28f48.entry.js.map +0 -1
  301. package/dist/infineon-design-system-stencil/p-cf4d16d1.entry.js.map +0 -1
  302. package/dist/infineon-design-system-stencil/p-d1a40b06.entry.js +0 -2
  303. package/dist/infineon-design-system-stencil/p-d4534780.entry.js +0 -2
  304. package/dist/infineon-design-system-stencil/p-d4534780.entry.js.map +0 -1
  305. /package/dist/infineon-design-system-stencil/{p-c082f65d.entry.js.map → p-022667fd.entry.js.map} +0 -0
  306. /package/dist/infineon-design-system-stencil/{p-9f677df3.entry.js.map → p-0eaf5a5e.entry.js.map} +0 -0
  307. /package/dist/infineon-design-system-stencil/{p-b3e0da8d.entry.js.map → p-262afd53.entry.js.map} +0 -0
  308. /package/dist/infineon-design-system-stencil/{p-423fd640.entry.js.map → p-296c1bd4.entry.js.map} +0 -0
  309. /package/dist/infineon-design-system-stencil/{p-8e721b4b.entry.js.map → p-34146964.entry.js.map} +0 -0
  310. /package/dist/infineon-design-system-stencil/{p-29bf7f39.entry.js.map → p-41291d21.entry.js.map} +0 -0
  311. /package/dist/infineon-design-system-stencil/{p-9afbc104.entry.js.map → p-5c1a8c83.entry.js.map} +0 -0
  312. /package/dist/infineon-design-system-stencil/{p-27d80304.entry.js.map → p-62b09872.entry.js.map} +0 -0
  313. /package/dist/infineon-design-system-stencil/{p-0468c9a7.entry.js.map → p-66a4ed41.entry.js.map} +0 -0
  314. /package/dist/infineon-design-system-stencil/{p-01f4ac35.entry.js.map → p-7462fff6.entry.js.map} +0 -0
  315. /package/dist/infineon-design-system-stencil/{p-20185a81.entry.js.map → p-79399588.entry.js.map} +0 -0
  316. /package/dist/infineon-design-system-stencil/{p-019e01a1.entry.js.map → p-7b091a06.entry.js.map} +0 -0
  317. /package/dist/infineon-design-system-stencil/{p-29924f68.entry.js.map → p-7b4b783a.entry.js.map} +0 -0
  318. /package/dist/infineon-design-system-stencil/{p-92b41859.entry.js.map → p-7c32c3aa.entry.js.map} +0 -0
  319. /package/dist/infineon-design-system-stencil/{p-a3894e45.entry.js.map → p-92e5b3bd.entry.js.map} +0 -0
  320. /package/dist/infineon-design-system-stencil/{p-afdb48bc.entry.js.map → p-a405b6f4.entry.js.map} +0 -0
  321. /package/dist/infineon-design-system-stencil/{p-901e400b.entry.js.map → p-b81d2f37.entry.js.map} +0 -0
  322. /package/dist/infineon-design-system-stencil/{p-4bfaae7f.entry.js.map → p-bf480e62.entry.js.map} +0 -0
  323. /package/dist/infineon-design-system-stencil/{p-30e08f40.entry.js.map → p-c06b0a60.entry.js.map} +0 -0
  324. /package/dist/infineon-design-system-stencil/{p-ae623793.entry.js.map → p-c863b508.entry.js.map} +0 -0
  325. /package/dist/infineon-design-system-stencil/{p-a4d53b78.entry.js.map → p-cc0309cc.entry.js.map} +0 -0
  326. /package/dist/infineon-design-system-stencil/{p-2845216b.entry.js.map → p-cdbc14e1.entry.js.map} +0 -0
  327. /package/dist/infineon-design-system-stencil/{p-aae0430e.entry.js.map → p-e2dd3eef.entry.js.map} +0 -0
  328. /package/dist/infineon-design-system-stencil/{p-c633f9b0.entry.js.map → p-ea61b79e.entry.js.map} +0 -0
  329. /package/dist/infineon-design-system-stencil/{p-1e99b82a.entry.js.map → p-f53f7d80.entry.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{r as t,c as e,h as i,a as s,d as o}from"./p-PqnYwNKt.js";import{d as n,t as l}from"./p-DcmcuUOA.js";import{i as r}from"./p-Bw2fh5LT.js";const c=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:var(--ifx-font-family)}.ifx-multiselect-container:hover{cursor:pointer}.ifx-multiselect-container .ifx-label-wrapper{font-size:1rem;line-height:1.5rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-error-message-wrapper{color:#CD002F;font-size:0.75rem;line-height:1rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-multiselect-wrapper{background-color:#FFFFFF;box-sizing:border-box;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;width:100%;font-weight:400;font-style:normal;height:40px;line-height:24px;padding:8px 16px;font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible{outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active){outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active)::before{content:"";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:50%;left:50%;transform:translate(-50%, -50%);border:2px solid #0A8276;border-radius:2px}.ifx-multiselect-container .ifx-multiselect-wrapper.disabled{background:#EEEDED;color:#575352;border-color:#575352;cursor:default;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ifx-multiselect-container .ifx-multiselect-wrapper.error{border-color:#CD002F}.ifx-multiselect-container .ifx-multiselect-wrapper:hover:not(.focus,:focus){border-color:#575352}.ifx-multiselect-container .ifx-multiselect-wrapper.active{border-color:#0A8276 !important}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-up{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-down{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-up{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-down{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.is-flipped .ifx-multiselect-dropdown-menu{top:auto;bottom:100%}.ifx-multiselect-container .ifx-multiselect-input{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ifx-multiselect-container .ifx-multiselect-input.placeholder{opacity:0.5}.ifx-multiselect-container .ifx-multiselect-icon-container{margin-left:auto;display:flex;align-items:center;gap:8px}.ifx-multiselect-container .ifx-multiselect-icon-container .ifx-multiselect-icon-container{display:flex}.ifx-multiselect-container .ifx-multiselect-icon-container .icon-wrapper{display:flex;align-items:center;transition:transform 0.2s ease-in-out}.ifx-multiselect-container .ifx-multiselect-icon-container .icon-wrapper--open{transform:rotate(180deg)}.ifx-multiselect-container .ifx-clear-button{display:flex;align-items:center}.ifx-multiselect-container .ifx-clear-button.hide{display:none}.ifx-multiselect-container .ifx-multiselect-dropdown-menu{box-sizing:border-box;position:absolute;top:100%;left:0;width:100%;margin-top:4px;border:1px solid #EEEDED;background-color:#fff;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1);max-height:300px;z-index:1000;display:flex;flex-direction:column}.ifx-multiselect-dropdown-functions{padding:12px 16px;border-bottom:1px solid #EEEDED;flex-shrink:0}.ifx-multiselect-dropdown-search{margin-bottom:12px}.ifx-multiselect-dropdown-controls{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.ifx-multiselect-dropdown-controls .select-all-wrapper{display:flex}.ifx-multiselect-dropdown-controls .expand-collapse-controls{display:flex;gap:12px}.ifx-multiselect-dropdown-controls .control-item{font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-dropdown-controls .control-item:hover{color:#0A8276}.ifx-multiselect-dropdown-controls .control-item:active{color:#08665C}.ifx-multiselect-dropdown-controls .control-item:focus{outline:none}.ifx-multiselect-dropdown-controls .control-item:focus-visible{outline:2px solid #0A8276;outline-offset:2px;border-radius:1px}.ifx-multiselect-options{flex:1;overflow-y:auto;padding-top:12px;padding-bottom:12px}.ifx-multiselect-options.show-no-results .ifx-multiselect-no-results{display:block}.ifx-multiselect-no-results{padding-left:16px;padding-right:16px;display:none}';function a(t,e){let i;return function s(...o){const n=()=>{clearTimeout(i);t(...o)};clearTimeout(i);i=setTimeout(n,e)}}const h=class{constructor(i){t(this,i);this.ifxSelect=e(this,"ifxSelect",7);this.ifxOpen=e(this,"ifxOpen",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.disabled=false;this.error=false;this.errorMessage="Error";this.label="";this.placeholder="";this.showSearch=true;this.showSelectAll=true;this.showClearButton=true;this.showExpandCollapse=true;this.noResultsMessage="No results found.";this.showNoResultsMessage=true;this.searchPlaceholder="Search";this.selectAllLabel="Select all";this.expandLabel="Expand";this.collapseLabel="Collapse";this.ariaMultiSelectLabel="Multi-select dropdown";this.ariaMultiSelectLabelledBy="";this.ariaMultiSelectDescribedBy="";this.ariaSearchLabel="Search options";this.ariaClearLabel="Clear all selections";this.ariaToggleLabel="Toggle dropdown";this.ariaSelectAllLabel="Select all options";this.ariaExpandAllLabel="Expand all categories";this.ariaCollapseAllLabel="Collapse all categories";this.internalError=false;this.persistentSelectedOptions=[];this.dropdownOpen=false;this.searchTerm="";this.handleSearch=a((t=>{const e=t.value.toLowerCase();const i=e!=="";this.searchTerm=e;const s=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper");if(s){if(i){s.classList.remove("active")}else{const t=this.el.shadowRoot.querySelector("ifx-search-field");const e=t&&t.matches(":focus-within");if(!e){s.classList.add("active")}}}const o=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(o){if(i){o.classList.add("has-search-filter")}else{o.classList.remove("has-search-filter")}}requestAnimationFrame((()=>{const t=this.el.querySelectorAll("ifx-multiselect-option");t.forEach((t=>{const s=new CustomEvent("ifx-search-filter",{detail:{searchTerm:e,isActive:i}});t.dispatchEvent(s)}));if(i){setTimeout((()=>{const t=this.el.querySelectorAll("ifx-multiselect-option");let e=0;t.forEach((t=>{const i=window.getComputedStyle(t);const s=t.getBoundingClientRect();if(i.display!=="none"&&i.visibility!=="hidden"&&i.opacity!=="0"&&s.height>0){e++}}));const i=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(i){if(e===0){i.classList.add("show-no-results")}else{i.classList.remove("show-no-results")}}}),200)}else{const t=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(t){t.classList.remove("show-no-results")}}}))}),150);this.pendingSelectionUpdate=false;this.handleDocumentClick=t=>{const e=t.composedPath();if(!e.includes(this.dropdownElement)){this.dropdownOpen=false;document.removeEventListener("click",this.handleDocumentClick);this.resetSearch();this.ifxOpen.emit(this.dropdownOpen)}}}parseChildOptions(){const t=[];const e=Array.from(this.el.children);e.forEach(((e,i)=>{if(e.tagName==="IFX-MULTISELECT-OPTION"){const s=this.parseOptionElement(e,i);if(s){t.push(s)}}}));return t}parseOptionElement(t,e){const i=t.getAttribute("value")||`option-${e}`;const s=t.hasAttribute("selected");const o=t.hasAttribute("disabled");const n=t.hasAttribute("indeterminate");const l={value:i,selected:s,disabled:o,indeterminate:n};const r=Array.from(t.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION")).map(((t,e)=>this.parseOptionElement(t,e))).filter((t=>t!==null));if(r.length>0){l.children=r}return l}loadInitialOptions(){this.internalError=this.error;this.internalErrorMessage=this.errorMessage;const t=this.parseChildOptions();const e=this.collectSelectedOptions(t);const i=e.filter((t=>!this.persistentSelectedOptions.some((e=>e.value==t.value))));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...i]}collectSelectedOptions(t){let e=[];for(const i of t){if(i.selected){if(i.children&&i.children.length>0){e=e.concat(this.collectLeafOptions(i.children))}else{if(!e.some((t=>t.value===i.value))){e.push(i)}}}else{if(i.children&&i.children.length>0){e=e.concat(this.collectSelectedOptions(i.children))}}}return e}collectLeafOptions(t){let e=[];for(const i of t){if(i.children&&i.children.length>0){e=e.concat(this.collectLeafOptions(i.children))}else{e.push(i)}}return e}handleSearchFocus(t){const e=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper");if(e){if(t||this.searchTerm!==""){e.classList.remove("active")}else{e.classList.add("active")}}}positionDropdown(){var t;const e=(t=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper"))===null||t===void 0?void 0:t.getBoundingClientRect();const i=window.innerHeight-e.bottom;const s=e.top;if(s>i&&e.height>i||e.bottom>window.innerHeight){this.dropdownFlipped=true}else{this.dropdownFlipped=false}}updateSlotBasedSelections(t=false){const e=this.el.querySelectorAll("ifx-multiselect-option");const i=[];e.forEach((t=>{const e=t["__stencil_instance"];if(e&&e.selected&&!e.hasChildren){i.push({value:e.value,selected:true,disabled:e.disabled})}}));this.persistentSelectedOptions=i;if(t){this.ifxSelect.emit(this.persistentSelectedOptions)}}updateInitialParentStates(){const t=this.el.querySelectorAll("ifx-multiselect-option");const e=Array.from(t).map((t=>({element:t,instance:t["__stencil_instance"],depth:parseInt(t.getAttribute("data-level")||"0")}))).filter((t=>t.instance)).sort(((t,e)=>e.depth-t.depth));e.forEach((({instance:t})=>{if(t.hasChildren){this.updateParentState(t)}}))}updateParentState(t){const e=Array.from(t.el.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION")).map((t=>t["__stencil_instance"])).filter((t=>t!==null));const i=e.filter((t=>t.selected)).length;const s=e.filter((t=>t.indeterminate)).length;const o=e.length;if(i===o&&s===0){t.selected=true;t.indeterminate=false}else if(i===0&&s===0){t.selected=false;t.indeterminate=false}else{t.selected=false;t.indeterminate=true}}async componentDidLoad(){if(!r(this.el)){const t=n();l("ifx-multiselect",await t)}setTimeout((()=>{this.positionDropdown()}),500);this.el.addEventListener("ifx-option-changed",(()=>{if(!this.pendingSelectionUpdate){this.pendingSelectionUpdate=true;requestAnimationFrame((()=>{this.updateSlotBasedSelections(true);setTimeout((()=>{this.pendingSelectionUpdate=false}),0)}))}}));setTimeout((()=>{this.updateSlotBasedSelections(false);this.updateInitialParentStates()}),100)}componentWillLoad(){this.loadInitialOptions()}updateInternalError(){this.internalError=this.error}updateInternalErrorMessage(){this.internalErrorMessage=this.errorMessage}onSelectionChange(t,e){const i=new FormData;t.forEach((t=>i.append(this.name,t.value)))}collapseAll(){const t=this.el.querySelectorAll("ifx-multiselect-option");t.forEach((t=>{const e=t["__stencil_instance"];if(e&&e.hasChildren){e.isExpanded=false}}))}expandAll(){const t=this.el.querySelectorAll("ifx-multiselect-option");t.forEach((t=>{const e=t["__stencil_instance"];if(e&&e.hasChildren){e.isExpanded=true}}))}selectAll(){this.resetSearch();const t=this.el.querySelectorAll("ifx-multiselect-option");t.forEach((t=>{const e=t["__stencil_instance"];if(e){if(e.hasChildren){e.isExpanded=true}else{e.selected=true}}}));setTimeout((()=>{this.updateInitialParentStates();this.updateSlotBasedSelections(false);this.ifxSelect.emit(this.persistentSelectedOptions)}),0)}async clearSelection(){const t=this.el.querySelectorAll("ifx-multiselect-option");t.forEach((t=>{const e=t["__stencil_instance"];if(e){e.selected=false;e.indeterminate=false;if(e.hasChildren){e.isExpanded=false}}}));this.persistentSelectedOptions=[];setTimeout((()=>{this.updateSlotBasedSelections(false);this.ifxSelect.emit(this.persistentSelectedOptions)}),0)}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;setTimeout((()=>{if(this.dropdownOpen){document.addEventListener("click",this.handleDocumentClick)}else{this.resetSearch()}this.ifxOpen.emit(this.dropdownOpen)}),0)}resetSearch(){this.searchTerm="";const t=this.el.shadowRoot.querySelector("ifx-search-field");if(t){t.value=""}const e=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(e){e.classList.remove("has-search-filter")}const i=this.el.querySelectorAll("ifx-multiselect-option");i.forEach((t=>{const e=new CustomEvent("ifx-search-filter",{detail:{searchTerm:"",isActive:false}});t.dispatchEvent(e)}))}handleWrapperClick(t){this.positionDropdown();if(t.currentTarget===t.target){this.toggleDropdown()}}handleKeyDown(t){if(this.disabled)return;if(!this.dropdownOpen){switch(t.code){case"Enter":case"Space":case"ArrowDown":t.preventDefault();this.toggleDropdown();break}return}switch(t.code){case"Escape":t.preventDefault();this.toggleDropdown();break;case"Enter":case"Space":const e=t.target;if(!e.closest(".ifx-multiselect-dropdown-functions")){t.preventDefault();this.toggleDropdown()}break;case"ArrowDown":case"ArrowUp":t.preventDefault();this.focusFirstOption();break}}focusFirstOption(){var t;const e=this.el.querySelector("ifx-multiselect-option:not(.search-hidden)");if(e){const i=(t=e.shadowRoot)===null||t===void 0?void 0:t.querySelector(".option-label");i===null||i===void 0?void 0:i.focus()}}renderSelectAll(){const t=this.el.querySelectorAll("ifx-multiselect-option");const e=Array.from(t).filter((t=>!t.hasChildren));const s=Array.from(t).filter((t=>!t.hasChildren&&t.selected));const o=e.length>0&&s.length===e.length;const n=t=>{if(t){t.preventDefault();t.stopPropagation()}if(o){this.clearSelection()}else{this.selectAll()}};return i("div",{class:"select-all-wrapper"},i("ifx-checkbox",{id:"selectAll",checked:o,size:"s","aria-label":this.ariaSelectAllLabel,onClick:n,onKeyDown:t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();t.stopPropagation();n(t)}}},this.selectAllLabel))}renderNoResultsMessage(){return i("div",{class:"ifx-multiselect-no-results"},i("div",{class:"no-results-content"},i("span",{class:"no-results-text"},this.noResultsMessage)))}render(){const t=this.persistentSelectedOptions.map((t=>{var e;const i=this.el.querySelector(`ifx-multiselect-option[value="${t.value}"]`);return((e=i===null||i===void 0?void 0:i.textContent)===null||e===void 0?void 0:e.trim())||t.value})).join(", ");const e=this.persistentSelectedOptions.length>0;let s=false;const o=this.el.querySelectorAll("ifx-multiselect-option");if(o.length>0){s=Array.from(o).every((t=>t.children.length===0))}return i("div",{class:`ifx-multiselect-container`,ref:t=>this.dropdownElement=t},this.label?i("div",{class:"ifx-label-wrapper"},i("span",null,this.label)):null,i("div",{class:`ifx-multiselect-wrapper\n ${this.dropdownOpen?"active":""}\n ${this.dropdownFlipped?"is-flipped":""}\n ${this.internalError?"error":""}\n ${this.disabled?"disabled":""}`,role:"combobox","aria-label":this.ariaMultiSelectLabel,"aria-labelledby":this.ariaMultiSelectLabelledBy||undefined,"aria-describedby":this.ariaMultiSelectDescribedBy||undefined,"aria-expanded":this.dropdownOpen,"aria-haspopup":"listbox","aria-disabled":this.disabled,tabindex:"0",onClick:this.disabled?undefined:t=>this.handleWrapperClick(t),onKeyDown:this.disabled?undefined:t=>this.handleKeyDown(t)},i("div",{class:`ifx-multiselect-input\n ${e?"":"placeholder"}\n `,onClick:this.disabled?undefined:()=>this.toggleDropdown()},e?t:this.placeholder),this.dropdownOpen&&i("div",{class:"ifx-multiselect-dropdown-menu"},(this.showSearch||this.showSelectAll||this.showExpandCollapse&&!s)&&i("div",{class:"ifx-multiselect-dropdown-functions",onClick:t=>t.stopPropagation()},this.showSearch&&i("div",{class:"ifx-multiselect-dropdown-search"},i("ifx-search-field",{class:"search-input",placeholder:this.searchPlaceholder,size:"s","show-delete-icon":"true","aria-label":this.ariaSearchLabel,onKeyDown:t=>{t.stopPropagation()},onIfxInput:t=>this.handleSearch(t.target),onFocus:()=>this.handleSearchFocus(true),onBlur:()=>this.handleSearchFocus(false)})),i("div",{class:"ifx-multiselect-dropdown-controls"},this.showSelectAll&&this.renderSelectAll(),this.showExpandCollapse&&!s&&i("div",{class:"expand-collapse-controls"},i("span",{class:"control-item",role:"button",tabIndex:0,"aria-label":this.ariaExpandAllLabel,onClick:t=>{t.stopPropagation();this.expandAll()},onKeyDown:t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();t.stopPropagation();this.expandAll()}}},this.expandLabel),i("span",{class:"control-item",role:"button",tabIndex:0,"aria-label":this.ariaCollapseAllLabel,onClick:t=>{t.stopPropagation();this.collapseAll()},onKeyDown:t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();t.stopPropagation();this.collapseAll()}}},this.collapseLabel)))),i("div",{class:"ifx-multiselect-options",role:"listbox","aria-multiselectable":"true"},i("slot",null),this.searchTerm&&this.showNoResultsMessage&&this.renderNoResultsMessage())),i("div",{class:"ifx-multiselect-icon-container"},this.persistentSelectedOptions.length>0&&i("div",{class:`ifx-clear-button ${!this.showClearButton?"hide":""}`,onClick:this.disabled?undefined:()=>this.clearSelection()},i("ifx-icon",{icon:"cRemove16"})),i("div",{class:"icon-wrapper-up",onClick:this.disabled?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-up",icon:"chevron-up-16"})),i("div",{class:"icon-wrapper-down",onClick:this.disabled?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-down",icon:"chevron-down-16"})))),this.internalError?i("div",{class:"ifx-error-message-wrapper"},i("span",null,this.internalErrorMessage)):null)}get el(){return s(this)}static get watchers(){return{error:["updateInternalError"],errorMessage:["updateInternalErrorMessage"],persistentSelectedOptions:["onSelectionChange"]}}};h.style=c;const f=":host{display:block;width:100%}.option{display:flex;flex-direction:column;position:relative;cursor:pointer;list-style:none}.option.option--expanded{position:relative}.option.option--has-children{position:relative}.option.option--has-children .option-item>.chevron-wrapper{display:flex}.option--disabled{cursor:not-allowed;pointer-events:none;color:#BFBBBB}.option.search-hidden{display:none !important}.option.search-match .option-item .option-label .search-highlight{font-weight:bold}.option-item{display:flex;flex-direction:row;align-items:center;white-space:nowrap;min-height:20px;padding:4px 16px;background-color:#FFFFFF;transition:background-color 0.2s ease-in-out}.option-item:hover{background-color:#F7F7F7}.option--disabled .option-item:hover{background-color:transparent}.option-children{display:block}.chevron-wrapper{display:none;align-items:center;justify-content:center;margin-right:8px;width:20px;height:20px;flex-shrink:0}.chevron-wrapper:focus{outline:none}.chevron-wrapper:focus-visible{outline:2px solid #0A8276;outline-offset:2px;border-radius:1px}.option--has-children .chevron-wrapper{display:flex}.chevron-wrapper .chevron{transition:transform 0.2s ease-in-out;color:#3C3A39}.chevron-wrapper .chevron.chevron--expanded{transform:rotate(90deg)}.chevron-wrapper .chevron.chevron--collapsed{transform:rotate(0deg)}.checkbox-wrapper{display:flex;align-items:center;margin-right:8px;flex-shrink:0}.option-label{flex-grow:1;display:flex;align-items:center;cursor:pointer;padding:2px 0;font-size:0.875rem}.option-label:focus{outline:none}.option-label:focus-visible{outline:2px solid #0A8276;outline-offset:2px;border-radius:1px}.option--disabled .option-label{cursor:not-allowed;color:#BFBBBB}";const d=class{constructor(e){t(this,e);this.selected=false;this.disabled=false;this.indeterminate=false;this.isExpanded=false;this.hasChildren=false;this.depth=0;this.searchTerm="";this.isSearchActive=false;this.isSearchDisabled=false;this.handleSearchFilter=t=>{const{searchTerm:e,isActive:i}=t.detail;this.searchTerm=e.toLowerCase();this.isSearchActive=i;requestAnimationFrame((()=>{this.updateSearchClasses()}))};this.handleCheckboxClick=t=>{if(this.disabled||this.isSearchActive&&this.isSearchDisabled)return;t.stopPropagation();let e;if(this.indeterminate){e=true}else{e=!this.selected}this.selected=e;this.indeterminate=false;if(this.hasChildren){this.isExpanded=e;requestAnimationFrame((()=>{this.selectAllChildren(e);this.expandAllChildren(e)}))}this.updateParentStates();this.notifyMultiselect()};this.handleHeaderClick=t=>{t.stopPropagation();if(!this.disabled&&!(this.isSearchActive&&this.isSearchDisabled)){this.handleClick(t)}}}componentWillLoad(){this.hasChildren=this.el.children.length>0;this.depth=this.calculateDepth();this.el.setAttribute("data-level",this.depth.toString());if(this.hasChildren){const t=this.hasAnySelectedChildren();if(t){this.isExpanded=true}}}componentDidLoad(){this.el["__stencil_instance"]=this;this.notifyMultiselect();this.el.addEventListener("ifx-search-filter",this.handleSearchFilter)}disconnectedCallback(){this.el.removeEventListener("ifx-search-filter",this.handleSearchFilter)}updateSearchClasses(){var t;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".option");if(!e)return;if(!this.isSearchActive){e.classList.remove("search-hidden","search-parent","search-match");this.removeHighlighting();this.isSearchDisabled=false;return}const i=this.getTextContent().toLowerCase();const s=i.includes(this.searchTerm);const o=this.hasMatchingParent();requestAnimationFrame((()=>{const t=this.hasMatchingChildren();e.classList.remove("search-hidden","search-parent","search-match");this.isSearchDisabled=false;if(s&&!this.hasChildren){e.classList.add("search-match");this.highlightSearchTerm()}else if(s&&this.hasChildren){e.classList.add("search-match");this.highlightSearchTerm();this.isExpanded=true}else if(!s&&this.hasChildren&&t){e.classList.add("search-parent");this.removeHighlighting();this.isExpanded=true;this.isSearchDisabled=true}else if(o){e.classList.add("search-match");this.removeHighlighting()}else{e.classList.add("search-hidden");this.removeHighlighting()}}))}highlightSearchTerm(){var t;if(!this.searchTerm)return;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".option-label");if(!e)return;const i=e.querySelector("slot");if(!i)return;this.removeHighlighting();const s=this.getTextContent();const o=this.searchTerm.toLowerCase();const n=s.toLowerCase();if(!n.includes(o))return;const l=n.indexOf(o);if(l===-1)return;const r=s.substring(0,l);const c=s.substring(l,l+o.length);const a=s.substring(l+o.length);const h=document.createElement("span");h.className="highlighted-text";if(r){h.appendChild(document.createTextNode(r))}const f=document.createElement("strong");f.className="search-highlight";f.textContent=c;h.appendChild(f);if(a){h.appendChild(document.createTextNode(a))}e.setAttribute("data-original-content","true");i.style.display="none";e.appendChild(h)}removeHighlighting(){var t;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".option-label");if(!e)return;const i=e.querySelector("slot");const s=e.querySelector(".highlighted-text");if(s){e.removeChild(s)}if(i){i.style.display=""}e.removeAttribute("data-original-content")}getTextContent(){let t="";Array.from(this.el.childNodes).forEach((e=>{var i;if(e.nodeType===Node.TEXT_NODE){t+=((i=e.textContent)===null||i===void 0?void 0:i.trim())||""}}));return t||this.value||""}hasMatchingChildren(){if(!this.hasChildren)return false;const t=Array.from(this.el.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION"));return t.some((t=>{const e=t["__stencil_instance"];if(!e)return false;const i=e.getTextContent().toLowerCase();const s=i.includes(this.searchTerm);const o=e.hasMatchingChildren();return s||o}))}hasMatchingParent(){let t=this.el.parentElement;while(t&&t.tagName==="IFX-MULTISELECT-OPTION"){const e=t["__stencil_instance"];if(e){const t=e.getTextContent().toLowerCase();if(t.includes(this.searchTerm)){return true}}t=t.parentElement}return false}calculateDepth(){let t=0;let e=this.el.parentElement;while(e&&e.tagName!=="IFX-MULTISELECT"){if(e.tagName==="IFX-MULTISELECT-OPTION"){t++}e=e.parentElement}return t}handleClick(t){if(this.disabled||this.isSearchActive&&this.isSearchDisabled)return;t.stopPropagation();if(t.type==="click"&&t.target.closest(".chevron-wrapper")){this.toggleExpansion();return}let e;if(this.indeterminate){e=true}else{e=!this.selected}this.selected=e;this.indeterminate=false;if(this.hasChildren){this.isExpanded=e;requestAnimationFrame((()=>{this.selectAllChildren(e);this.expandAllChildren(e)}))}this.updateParentStates();this.notifyMultiselect()}handleKeyDown(t){if(this.disabled||this.isSearchActive&&this.isSearchDisabled)return;const e=t.target;if(e.closest(".chevron-wrapper")||e.closest(".checkbox-wrapper")){return}if(t.key!=="ArrowUp"&&t.key!=="ArrowDown"){t.stopPropagation()}if(t.key==="ArrowRight"&&this.hasChildren){this.isExpanded=true}if(t.key==="ArrowLeft"&&this.hasChildren){this.isExpanded=false}}notifyMultiselect(){const t=new CustomEvent("ifx-option-changed",{bubbles:true,detail:{value:this.value,selected:this.selected,indeterminate:this.indeterminate}});this.el.dispatchEvent(t)}selectAllChildren(t){const e=Array.from(this.el.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION"));e.forEach((e=>{var i;const s=e["__stencil_instance"];if(s){s.selected=t;s.indeterminate=false;if(s.hasChildren){s.isExpanded=t;s.selectAllChildren(t)}(i=s.notifyMultiselect)===null||i===void 0?void 0:i.call(s)}}))}expandAllChildren(t){const e=Array.from(this.el.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION"));e.forEach((e=>{const i=e["__stencil_instance"];if(i&&i.hasChildren){i.isExpanded=t;i.expandAllChildren(t)}}))}updateParentStates(){var t;let e=this.el.parentElement;while(e&&e.tagName==="IFX-MULTISELECT-OPTION"){const i=e["__stencil_instance"];if(!i){e=e.parentElement;continue}const s=Array.from(e.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION")).map((t=>t["__stencil_instance"])).filter((t=>t!==null));const o=s.filter((t=>t.selected)).length;const n=s.filter((t=>t.indeterminate)).length;const l=s.length;if(o===l&&n===0){i.selected=true;i.indeterminate=false}else if(o===0&&n===0){i.selected=false;i.indeterminate=false}else{i.selected=false;i.indeterminate=true}(t=i.notifyMultiselect)===null||t===void 0?void 0:t.call(i);e=e.parentElement}}toggleExpansion(){this.isExpanded=!this.isExpanded}hasAnySelectedChildren(){const t=Array.from(this.el.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION"));return t.some((t=>{const e=t.hasAttribute("selected");const i=this.checkForSelectedDescendants(t);return e||i}))}checkForSelectedDescendants(t){const e=Array.from(t.children).filter((t=>t.tagName==="IFX-MULTISELECT-OPTION"));return e.some((t=>{const e=t.hasAttribute("selected");const i=this.checkForSelectedDescendants(t);return e||i}))}render(){let t=false;const e=this.el.closest("ifx-multiselect");if(e){const i=Array.from(e.querySelectorAll("ifx-multiselect-option"));t=i.every((t=>t.children.length===0))}const s=this.depth*28+16;const n=this.hasChildren?0:28;let l=s+n;const r=t?undefined:{paddingLeft:`${l}px`};return i(o,{key:"53ab714e5bc86c83569b2c1cf6f479405f528880"},i("div",{key:"b5597349b4d3ef268b5826047f414dd7ce0c7854",class:{option:true,"option--has-children":this.hasChildren,"option--expanded":this.isExpanded,"option--disabled":this.disabled,"option--selected":this.selected},role:"option","aria-expanded":this.hasChildren?this.isExpanded?"true":"false":undefined,"aria-selected":this.selected?"true":"false","aria-disabled":this.disabled?"true":"false","data-level":this.depth,"data-value":this.value},i("div",{key:"3052a22b111e61ac0e48ecd64460c35aa2b06fea",class:"option-item",style:r},i("div",{key:"a392db43dbb81f06a4cfd4e5faad7672108bc4bb",class:"chevron-wrapper",tabIndex:this.hasChildren?0:-1,role:this.hasChildren?"button":undefined,"aria-label":this.hasChildren?this.isExpanded?"Collapse":"Expand":undefined,onClick:t=>{t.stopPropagation();this.toggleExpansion()},onKeyDown:t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();t.stopPropagation();this.toggleExpansion()}}},this.hasChildren&&i("ifx-icon",{key:"033471dbc46d73d82f0ab44a07a1dfa5fd9625fb",class:`chevron ${this.isExpanded?"chevron--expanded":"chevron--collapsed"}`,icon:"chevron-right-16"})),i("div",{key:"d6fc07097a390e9e29f8c4dcc55c90f755b10fc9",class:"checkbox-wrapper",onClick:t=>t.stopPropagation()},i("ifx-checkbox",{key:"7d39f30d45c2f917edd924b3b8ce6c22f4146c19",size:"s",checked:this.isSearchActive&&this.isSearchDisabled?false:this.indeterminate?false:this.selected,indeterminate:this.isSearchActive&&this.isSearchDisabled?false:this.indeterminate,onClick:this.handleCheckboxClick,disabled:this.disabled||this.isSearchActive&&this.isSearchDisabled,onKeyDown:t=>{if(t.key==="Enter"||t.key===" "){t.preventDefault();t.stopPropagation();this.handleCheckboxClick(t)}}})),i("div",{key:"e09de6a2559a8334553abb9d45b901c1459a2da7",class:"option-label",onClick:this.handleHeaderClick,tabIndex:-1},i("slot",{key:"941edb6987ef6add787211833e0e1aad0d5b9066"}))),this.isExpanded&&i("div",{key:"b5248d64937e418587f1c807e434874be4952f48",class:"option-children"},i("slot",{key:"8e6e69e5000661632c114279a5afc5c80f361b8e",name:"children"}))))}get el(){return s(this)}};d.style=f;export{h as ifx_multiselect,d as ifx_multiselect_option};
2
+ //# sourceMappingURL=p-b4d19492.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["multiselectCss","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","disabled","error","errorMessage","label","placeholder","showSearch","showSelectAll","showClearButton","showExpandCollapse","noResultsMessage","showNoResultsMessage","searchPlaceholder","selectAllLabel","expandLabel","collapseLabel","ariaMultiSelectLabel","ariaMultiSelectLabelledBy","ariaMultiSelectDescribedBy","ariaSearchLabel","ariaClearLabel","ariaToggleLabel","ariaSelectAllLabel","ariaExpandAllLabel","ariaCollapseAllLabel","internalError","persistentSelectedOptions","dropdownOpen","searchTerm","handleSearch","targetElement","value","toLowerCase","isSearchActive","wrapper","el","shadowRoot","querySelector","classList","remove","searchField","searchFieldHasFocus","matches","add","optionsContainer","requestAnimationFrame","allOptions","querySelectorAll","forEach","option","searchEvent","CustomEvent","detail","isActive","dispatchEvent","visibleCount","style","window","getComputedStyle","rect","getBoundingClientRect","display","visibility","opacity","height","pendingSelectionUpdate","handleDocumentClick","event","path","composedPath","includes","dropdownElement","document","removeEventListener","resetSearch","ifxOpen","emit","parseChildOptions","options","childElements","Array","from","children","child","index","tagName","parseOptionElement","push","element","getAttribute","selected","hasAttribute","indeterminate","nestedOptions","filter","map","childIndex","opt","length","loadInitialOptions","internalErrorMessage","initiallySelected","collectSelectedOptions","initiallySelectedNotInState","init","some","selectedOptions","concat","collectLeafOptions","existingOption","leafOptions","handleSearchFocus","hasFocus","positionDropdown","wrapperRect","_a","spaceBelow","innerHeight","bottom","spaceAbove","top","dropdownFlipped","updateSlotBasedSelections","emitEvent","allOptionElements","selectedLeafOptions","optionEl","instance","hasChildren","ifxSelect","updateInitialParentStates","optionsByDepth","depth","parseInt","item","sort","a","b","updateParentState","parentInstance","directChildren","selectedCount","indeterminateCount","totalCount","componentDidLoad","isNestedInIfxComponent","framework","detectFramework","trackComponent","addEventListener","componentWillLoad","updateInternalError","updateInternalErrorMessage","onSelectionChange","newValue","_","formData","FormData","append","name","collapseAll","isExpanded","expandAll","selectAll","clearSelection","toggleDropdown","handleWrapperClick","currentTarget","target","handleKeyDown","code","preventDefault","closest","focusFirstOption","firstOption","labelElement","focus","renderSelectAll","allSelected","toggleSelectAll","stopPropagation","h","class","id","checked","size","onClick","onKeyDown","e","key","renderNoResultsMessage","render","selectedOptionsLabels","optionElement","textContent","trim","join","hasSelections","isFlatMultiselect","every","ref","role","undefined","tabindex","onIfxInput","onFocus","onBlur","tabIndex","icon","multiselectOptionCss","MultiselectOption","isSearchDisabled","handleSearchFilter","updateSearchClasses","handleCheckboxClick","newSelectedState","selectAllChildren","expandAllChildren","updateParentStates","notifyMultiselect","handleHeaderClick","handleClick","calculateDepth","setAttribute","toString","hasSelectedChildren","hasAnySelectedChildren","disconnectedCallback","optionDiv","removeHighlighting","getTextContent","matchesSearch","hasMatchingParent","hasMatchingChildren","highlightSearchTerm","slotElement","originalText","searchTermLower","originalTextLower","searchIndex","indexOf","beforeMatch","substring","matchText","afterMatch","highlightedContent","createElement","className","appendChild","createTextNode","boldElement","highlightedElement","removeChild","removeAttribute","text","childNodes","node","nodeType","Node","TEXT_NODE","childOptions","childInstance","childText","childMatches","grandChildrenMatch","parent","parentElement","parentText","type","toggleExpansion","updateEvent","bubbles","call","expanded","siblings","sibling","hasSelected","hasSelectedDescendants","checkForSelectedDescendants","nestedChild","isSelected","hasSelectedNested","parentMultiselect","basePadding","additionalPadding","totalPadding","optionItemStyle","paddingLeft","Host"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx","src/components/select/multi-select/multiselect-option.scss?tag=ifx-multiselect-option&encapsulation=shadow","src/components/select/multi-select/multiselect-option.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n &:hover {\n cursor: pointer;\n }\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-error-message-wrapper {\n color: #CD002F;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-multiselect-wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%;\n font-weight: 400;\n font-style: normal;\n height: 40px;\n line-height: 24px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid tokens.$ifxColorOcean500;\n border-radius: 2px;\n\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering200;\n color: #575352;\n border-color: #575352;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n &.error {\n border-color: #CD002F;\n }\n\n &:hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .icon-wrapper-down {\n display: none\n }\n }\n\n\n & .icon-wrapper-up {\n display: none;\n }\n\n & .icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n &.is-flipped {\n .ifx-multiselect-dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n\n .ifx-multiselect-input {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.placeholder {\n opacity: 0.5;\n }\n\n }\n\n\n .ifx-multiselect-icon-container {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace100;\n\n .ifx-multiselect-icon-container {\n display: flex;\n }\n\n .icon-wrapper {\n display: flex;\n align-items: center;\n transition: transform 0.2s ease-in-out;\n }\n\n .icon-wrapper--open {\n transform: rotate(180deg);\n }\n }\n\n .ifx-clear-button {\n display: flex;\n align-items: center;\n\n &.hide {\n display: none;\n }\n }\n\n .ifx-multiselect-dropdown-menu {\n box-sizing: border-box;\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: tokens.$ifxSpace50;\n border: 1px solid tokens.$ifxColorEngineering200;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n z-index: 1000;\n display: flex;\n flex-direction: column;\n }\n}\n\n.ifx-multiselect-dropdown-functions {\n padding: tokens.$ifxSpace150 tokens.$ifxSpace200;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n flex-shrink: 0;\n}\n\n.ifx-multiselect-dropdown-search {\n margin-bottom: tokens.$ifxSpace150;\n}\n\n.ifx-multiselect-dropdown-controls {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n gap: tokens.$ifxSpace100;\n\n .select-all-wrapper {\n display: flex;\n }\n\n .expand-collapse-controls {\n display: flex;\n gap: tokens.$ifxSpace150;\n }\n\n .control-item {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active {\n color: tokens.$ifxColorOcean600;\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n border-radius: tokens.$ifxBorderRadius12;\n }\n }\n}\n\n.ifx-multiselect-options {\n flex: 1;\n overflow-y: auto;\n padding-top: tokens.$ifxSpace150;\n padding-bottom: tokens.$ifxSpace150;\n\n &.show-no-results {\n .ifx-multiselect-no-results {\n display: block;\n }\n }\n}\n\n.ifx-multiselect-no-results {\n padding-left: tokens.$ifxSpace200;\n padding-right: tokens.$ifxSpace200;\n display: none;\n}\n\n","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals, Method } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../../global/utils/dom-utils';\nimport { detectFramework } from '../../../global/utils/framework-detection';\nimport { Option } from './interfaces';\n\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n // formAssociated: true\n})\n\nexport class Multiselect {\n @Prop() name: string;\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @Prop() label: string = \"\";\n @Prop() placeholder: string = \"\";\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @Prop() showExpandCollapse: boolean = true;\n @Prop() noResultsMessage: string = \"No results found.\";\n @Prop() showNoResultsMessage: boolean = true;\n @Prop() searchPlaceholder: string = \"Search\";\n @Prop() selectAllLabel: string = \"Select all\";\n @Prop() expandLabel: string = \"Expand\";\n @Prop() collapseLabel: string = \"Collapse\";\n @Prop() ariaMultiSelectLabel: string = \"Multi-select dropdown\";\n @Prop() ariaMultiSelectLabelledBy: string = \"\";\n @Prop() ariaMultiSelectDescribedBy: string = \"\";\n @Prop() ariaSearchLabel: string = \"Search options\";\n @Prop() ariaClearLabel: string = \"Clear all selections\";\n @Prop() ariaToggleLabel: string = \"Toggle dropdown\";\n @Prop() ariaSelectAllLabel: string = \"Select all options\";\n @Prop() ariaExpandAllLabel: string = \"Expand all categories\";\n @Prop() ariaCollapseAllLabel: string = \"Collapse all categories\";\n\n @State() internalError: boolean = false;\n @State() internalErrorMessage: string;\n @State() persistentSelectedOptions: Option[] = [];\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @State() searchTerm: string = '';\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n private parseChildOptions(): Option[] {\n const options: Option[] = [];\n const childElements = Array.from(this.el.children);\n\n childElements.forEach((child, index) => {\n if (child.tagName === 'IFX-MULTISELECT-OPTION') {\n const option = this.parseOptionElement(child as HTMLElement, index);\n if (option) {\n options.push(option);\n }\n }\n });\n\n return options;\n }\n\n private parseOptionElement(element: HTMLElement, index: number): Option | null {\n const value = element.getAttribute('value') || `option-${index}`;\n const selected = element.hasAttribute('selected');\n const disabled = element.hasAttribute('disabled');\n const indeterminate = element.hasAttribute('indeterminate');\n\n const option: Option = {\n value,\n selected,\n disabled,\n indeterminate\n };\n\n const nestedOptions = Array.from(element.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map((child, childIndex) => this.parseOptionElement(child as HTMLElement, childIndex))\n .filter(opt => opt !== null) as Option[];\n\n if (nestedOptions.length > 0) {\n option.children = nestedOptions;\n }\n\n return option;\n }\n\n loadInitialOptions() {\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n\n const allOptions = this.parseChildOptions();\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initiallySelectedNotInState = initiallySelected.filter(init =>\n !this.persistentSelectedOptions.some(opt => opt.value == init.value)\n );\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initiallySelectedNotInState];\n }\n\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n\n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n\n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n }\n return leafOptions;\n }\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n const isSearchActive = searchTerm !== '';\n\n this.searchTerm = searchTerm;\n\n const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');\n if (wrapper) {\n if (isSearchActive) {\n wrapper.classList.remove('active');\n } else {\n const searchField = this.el.shadowRoot.querySelector('ifx-search-field');\n const searchFieldHasFocus = searchField && searchField.matches(':focus-within');\n if (!searchFieldHasFocus) {\n wrapper.classList.add('active');\n }\n }\n }\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n if (isSearchActive) {\n optionsContainer.classList.add('has-search-filter');\n } else {\n optionsContainer.classList.remove('has-search-filter');\n }\n }\n\n requestAnimationFrame(() => {\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n allOptions.forEach(option => {\n const searchEvent = new CustomEvent('ifx-search-filter', {\n detail: { searchTerm, isActive: isSearchActive }\n });\n option.dispatchEvent(searchEvent);\n });\n\n if (isSearchActive) {\n setTimeout(() => {\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n let visibleCount = 0;\n\n allOptions.forEach(option => {\n const style = window.getComputedStyle(option);\n const rect = option.getBoundingClientRect();\n\n if (style.display !== 'none' &&\n style.visibility !== 'hidden' &&\n style.opacity !== '0' &&\n rect.height > 0) {\n visibleCount++;\n }\n });\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n if (visibleCount === 0) {\n optionsContainer.classList.add('show-no-results');\n } else {\n optionsContainer.classList.remove('show-no-results');\n }\n }\n }, 200);\n } else {\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n optionsContainer.classList.remove('show-no-results');\n }\n }\n });\n }, 150);\n\n private handleSearchFocus(hasFocus: boolean) {\n const wrapper = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper');\n if (wrapper) {\n if (hasFocus || this.searchTerm !== '') {\n wrapper.classList.remove('active');\n } else {\n wrapper.classList.add('active');\n }\n }\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n private pendingSelectionUpdate = false;\n public updateSlotBasedSelections(emitEvent: boolean = false) {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const selectedLeafOptions: Option[] = [];\n\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.selected && !instance.hasChildren) {\n selectedLeafOptions.push({\n value: instance.value,\n selected: true,\n disabled: instance.disabled\n });\n }\n });\n\n this.persistentSelectedOptions = selectedLeafOptions;\n\n if (emitEvent) {\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n }\n\n private updateInitialParentStates() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const optionsByDepth = Array.from(allOptionElements)\n .map(el => ({\n element: el,\n instance: (el as any)['__stencil_instance'],\n depth: parseInt(el.getAttribute('data-level') || '0')\n }))\n .filter(item => item.instance)\n .sort((a, b) => b.depth - a.depth);\n\n optionsByDepth.forEach(({ instance }) => {\n if (instance.hasChildren) {\n this.updateParentState(instance);\n }\n });\n }\n\n private updateParentState(parentInstance: any) {\n const directChildren = Array.from(parentInstance.el.children as HTMLCollection)\n .filter((child: Element) => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map(child => (child as any)['__stencil_instance'])\n .filter(instance => instance !== null);\n\n const selectedCount = directChildren.filter(child => child.selected).length;\n const indeterminateCount = directChildren.filter(child => child.indeterminate).length;\n const totalCount = directChildren.length;\n\n if (selectedCount === totalCount && indeterminateCount === 0) {\n parentInstance.selected = true;\n parentInstance.indeterminate = false;\n } else if (selectedCount === 0 && indeterminateCount === 0) {\n parentInstance.selected = false;\n parentInstance.indeterminate = false;\n } else {\n parentInstance.selected = false;\n parentInstance.indeterminate = true;\n }\n }\n\n async componentDidLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-multiselect', await framework)\n }\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n this.el.addEventListener('ifx-option-changed', () => {\n if (!this.pendingSelectionUpdate) {\n this.pendingSelectionUpdate = true;\n requestAnimationFrame(() => {\n this.updateSlotBasedSelections(true);\n setTimeout(() => {\n this.pendingSelectionUpdate = false;\n }, 0);\n });\n }\n });\n\n setTimeout(() => {\n this.updateSlotBasedSelections(false);\n this.updateInitialParentStates();\n }, 100);\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n //this.internals.setFormValue(formData);\n }\n collapseAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.hasChildren) {\n instance.isExpanded = false;\n }\n });\n }\n\n expandAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance && instance.hasChildren) {\n instance.isExpanded = true;\n }\n });\n }\n\n selectAll() {\n this.resetSearch();\n\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance) {\n if (instance.hasChildren) {\n instance.isExpanded = true;\n } else {\n instance.selected = true;\n }\n }\n });\n\n setTimeout(() => {\n this.updateInitialParentStates();\n this.updateSlotBasedSelections(false);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }, 0);\n }\n\n @Method()\n async clearSelection() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n allOptionElements.forEach((optionEl: any) => {\n const instance = optionEl['__stencil_instance'];\n if (instance) {\n instance.selected = false;\n instance.indeterminate = false;\n if (instance.hasChildren) {\n instance.isExpanded = false;\n }\n }\n });\n\n this.persistentSelectedOptions = [];\n\n setTimeout(() => {\n this.updateSlotBasedSelections(false);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }, 0);\n }\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.resetSearch();\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n } else {\n this.resetSearch();\n }\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n private resetSearch() {\n this.searchTerm = '';\n\n const searchField = this.el.shadowRoot.querySelector('ifx-search-field') as any;\n if (searchField) {\n searchField.value = '';\n }\n\n const optionsContainer = this.el.shadowRoot.querySelector('.ifx-multiselect-options');\n if (optionsContainer) {\n optionsContainer.classList.remove('has-search-filter');\n }\n\n const allOptions = this.el.querySelectorAll('ifx-multiselect-option');\n allOptions.forEach(option => {\n const searchEvent = new CustomEvent('ifx-search-filter', {\n detail: { searchTerm: '', isActive: false }\n });\n option.dispatchEvent(searchEvent);\n });\n }\n\n handleWrapperClick(event: MouseEvent) {\n this.positionDropdown();\n\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n // If dropdown is closed, only allow opening\n if (!this.dropdownOpen) {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n case 'ArrowDown':\n event.preventDefault();\n this.toggleDropdown();\n break;\n }\n return;\n }\n\n // Dropdown is open - handle navigation and controls\n switch (event.code) {\n case 'Escape':\n event.preventDefault();\n this.toggleDropdown();\n break;\n case 'Enter':\n case 'Space':\n // Don't close dropdown when pressing space/enter in controls area\n const target = event.target as HTMLElement;\n if (!target.closest('.ifx-multiselect-dropdown-functions')) {\n event.preventDefault();\n this.toggleDropdown();\n }\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n // Focus first/last option for navigation\n event.preventDefault();\n this.focusFirstOption();\n break;\n }\n }\n\n private focusFirstOption() {\n const firstOption = this.el.querySelector('ifx-multiselect-option:not(.search-hidden)');\n if (firstOption) {\n const labelElement = firstOption.shadowRoot?.querySelector('.option-label') as HTMLElement;\n labelElement?.focus();\n }\n }\n\n private renderSelectAll() {\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n const leafOptions = Array.from(allOptionElements).filter((el: any) => !el.hasChildren);\n const selectedLeafOptions = Array.from(allOptionElements).filter((el: any) => !el.hasChildren && el.selected);\n\n const allSelected = leafOptions.length > 0 && selectedLeafOptions.length === leafOptions.length;\n\n const toggleSelectAll = (event?: Event) => {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (allSelected) {\n this.clearSelection();\n } else {\n this.selectAll();\n }\n };\n\n return (\n <div class=\"select-all-wrapper\">\n <ifx-checkbox\n id='selectAll'\n checked={allSelected}\n size=\"s\"\n aria-label={this.ariaSelectAllLabel}\n onClick={toggleSelectAll}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n toggleSelectAll(e);\n }\n }}\n >\n {this.selectAllLabel}\n </ifx-checkbox>\n </div>\n );\n }\n\n private renderNoResultsMessage() {\n return (\n <div class=\"ifx-multiselect-no-results\">\n <div class=\"no-results-content\">\n <span class=\"no-results-text\">{this.noResultsMessage}</span>\n </div>\n </div>\n );\n }\n\n render() {\n const selectedOptionsLabels = this.persistentSelectedOptions\n .map((option) => {\n const optionElement = this.el.querySelector(`ifx-multiselect-option[value=\"${option.value}\"]`);\n return optionElement?.textContent?.trim() || option.value;\n })\n .join(', ');\n\n const hasSelections = this.persistentSelectedOptions.length > 0;\n\n let isFlatMultiselect = false;\n const allOptionElements = this.el.querySelectorAll('ifx-multiselect-option');\n if (allOptionElements.length > 0) {\n isFlatMultiselect = Array.from(allOptionElements).every(option => option.children.length === 0);\n }\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper\n ${this.dropdownOpen ? 'active' : ''}\n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n role=\"combobox\"\n aria-label={this.ariaMultiSelectLabel}\n aria-labelledby={this.ariaMultiSelectLabelledBy || undefined}\n aria-describedby={this.ariaMultiSelectDescribedBy || undefined}\n aria-expanded={this.dropdownOpen}\n aria-haspopup=\"listbox\"\n aria-disabled={this.disabled}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input\n ${hasSelections ? '' : 'placeholder'}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {hasSelections ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\">\n\n {(this.showSearch || this.showSelectAll || (this.showExpandCollapse && !isFlatMultiselect)) && (\n <div class=\"ifx-multiselect-dropdown-functions\" onClick={(e) => e.stopPropagation()}>\n {this.showSearch && (\n <div class=\"ifx-multiselect-dropdown-search\">\n <ifx-search-field\n class=\"search-input\"\n placeholder={this.searchPlaceholder}\n size=\"s\"\n show-delete-icon=\"true\"\n aria-label={this.ariaSearchLabel}\n onKeyDown={(e) => { e.stopPropagation() }}\n onIfxInput={(event) => this.handleSearch(event.target)}\n onFocus={() => this.handleSearchFocus(true)}\n onBlur={() => this.handleSearchFocus(false)}\n ></ifx-search-field>\n </div>\n )}\n\n <div class=\"ifx-multiselect-dropdown-controls\">\n {this.showSelectAll && this.renderSelectAll()}\n {this.showExpandCollapse && !isFlatMultiselect && (\n <div class=\"expand-collapse-controls\">\n <span\n class=\"control-item\"\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaExpandAllLabel}\n onClick={(e) => { e.stopPropagation(); this.expandAll(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.expandAll();\n }\n }}\n >\n {this.expandLabel}\n </span>\n <span\n class=\"control-item\"\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaCollapseAllLabel}\n onClick={(e) => { e.stopPropagation(); this.collapseAll(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.collapseAll();\n }\n }}\n >\n {this.collapseLabel}\n </span>\n </div>\n )}\n </div>\n </div>\n )}\n\n <div class=\"ifx-multiselect-options\" role=\"listbox\" aria-multiselectable=\"true\">\n <slot />\n {this.searchTerm && this.showNoResultsMessage && this.renderNoResultsMessage()}\n </div>\n </div>\n )}\n <div class='ifx-multiselect-icon-container'>\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && (\n <div class={`ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`} onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cRemove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevron-up-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: block;\n width: 100%;\n}\n\n.option {\n display: flex;\n flex-direction: column;\n position: relative;\n cursor: pointer;\n list-style: none;\n\n &.option--expanded {\n position: relative;\n }\n\n &.option--has-children {\n position: relative;\n\n .option-item > .chevron-wrapper {\n display: flex;\n }\n }\n\n &--disabled {\n cursor: not-allowed;\n pointer-events: none;\n color: tokens.$ifxColorEngineering300;\n }\n\n &--selected {\n // Additional styles for selected state if needed\n // .option-item {\n // background: red;\n // }\n }\n\n &.search-hidden {\n display: none !important;\n }\n\n &.search-match {\n .option-item {\n .option-label {\n .search-highlight {\n font-weight: bold;\n // color: tokens.$ifxColorOcean400;\n }\n }\n }\n }\n}\n\n.option-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n white-space: nowrap;\n min-height: tokens.$ifxSize250;\n padding: tokens.$ifxSize50 tokens.$ifxSpace200;\n background-color: tokens.$ifxColorBaseWhite;\n transition: background-color 0.2s ease-in-out;\n\n &:hover {\n background-color: tokens.$ifxColorEngineering100;\n }\n\n .option--disabled & {\n &:hover {\n background-color: transparent;\n }\n }\n}\n\n.option-children {\n display: block;\n}\n\n.chevron-wrapper {\n display: none;\n align-items: center;\n justify-content: center;\n margin-right: tokens.$ifxSpace100;\n width: tokens.$ifxSize250;\n height: tokens.$ifxSize250;\n flex-shrink: 0;\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n border-radius: tokens.$ifxBorderRadius12;\n }\n\n .option--has-children & {\n display: flex;\n }\n\n .chevron {\n transition: transform 0.2s ease-in-out;\n color: tokens.$ifxColorEngineering600;\n\n &.chevron--expanded {\n transform: rotate(90deg);\n }\n\n &.chevron--collapsed {\n transform: rotate(0deg);\n }\n }\n}\n\n.checkbox-wrapper {\n display: flex;\n align-items: center;\n margin-right: tokens.$ifxSpace100;\n flex-shrink: 0;\n}\n\n.option-label {\n flex-grow: 1;\n display: flex;\n align-items: center;\n cursor: pointer;\n padding: tokens.$ifxSpace25 0;\n font-size: tokens.$ifxFontSizeS;\n\n &:focus {\n outline: none;\n }\n\n &:focus-visible {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n border-radius: tokens.$ifxBorderRadius12;\n }\n\n .option--disabled & {\n cursor: not-allowed;\n color: tokens.$ifxColorEngineering300;\n }\n}\n","import { Component, Prop, Element, h, Host, State, Listen } from '@stencil/core';\n\n@Component({\n tag: 'ifx-multiselect-option',\n styleUrl: 'multiselect-option.scss',\n shadow: true,\n})\nexport class MultiselectOption {\n @Element() el: HTMLElement;\n\n @Prop() value: string;\n @Prop({ reflect: true, mutable: true }) selected: boolean = false;\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n @Prop({ reflect: true, mutable: true }) indeterminate: boolean = false;\n\n @State() private isExpanded: boolean = false;\n @State() private hasChildren: boolean = false;\n @State() private depth: number = 0;\n @State() private searchTerm: string = '';\n @State() private isSearchActive: boolean = false;\n @State() private isSearchDisabled: boolean = false;\n\n componentWillLoad() {\n this.hasChildren = this.el.children.length > 0;\n this.depth = this.calculateDepth();\n\n this.el.setAttribute('data-level', this.depth.toString());\n\n if (this.hasChildren) {\n const hasSelectedChildren = this.hasAnySelectedChildren();\n if (hasSelectedChildren) {\n this.isExpanded = true;\n }\n }\n }\n\n componentDidLoad() {\n (this.el as any)['__stencil_instance'] = this;\n this.notifyMultiselect();\n this.el.addEventListener('ifx-search-filter', this.handleSearchFilter);\n }\n\n disconnectedCallback() {\n this.el.removeEventListener('ifx-search-filter', this.handleSearchFilter);\n }\n\n private handleSearchFilter = (event: CustomEvent) => {\n const { searchTerm, isActive } = event.detail;\n this.searchTerm = searchTerm.toLowerCase();\n this.isSearchActive = isActive;\n\n requestAnimationFrame(() => {\n this.updateSearchClasses();\n });\n }\n\n private updateSearchClasses() {\n const optionDiv = this.el.shadowRoot?.querySelector('.option');\n if (!optionDiv) return;\n\n if (!this.isSearchActive) {\n optionDiv.classList.remove('search-hidden', 'search-parent', 'search-match');\n this.removeHighlighting();\n this.isSearchDisabled = false;\n return;\n }\n\n const textContent = this.getTextContent().toLowerCase();\n const matchesSearch = textContent.includes(this.searchTerm);\n const hasMatchingParent = this.hasMatchingParent();\n\n requestAnimationFrame(() => {\n const hasMatchingChildren = this.hasMatchingChildren();\n\n optionDiv.classList.remove('search-hidden', 'search-parent', 'search-match');\n this.isSearchDisabled = false;\n\n if (matchesSearch && !this.hasChildren) {\n optionDiv.classList.add('search-match');\n this.highlightSearchTerm();\n } else if (matchesSearch && this.hasChildren) {\n optionDiv.classList.add('search-match');\n this.highlightSearchTerm();\n this.isExpanded = true;\n } else if (!matchesSearch && this.hasChildren && hasMatchingChildren) {\n optionDiv.classList.add('search-parent');\n this.removeHighlighting();\n this.isExpanded = true;\n this.isSearchDisabled = true;\n } else if (hasMatchingParent) {\n optionDiv.classList.add('search-match');\n this.removeHighlighting();\n } else {\n optionDiv.classList.add('search-hidden');\n this.removeHighlighting();\n }\n });\n }\n\n private highlightSearchTerm() {\n if (!this.searchTerm) return;\n\n const labelElement = this.el.shadowRoot?.querySelector('.option-label');\n if (!labelElement) return;\n\n const slotElement = labelElement.querySelector('slot');\n if (!slotElement) return;\n\n this.removeHighlighting();\n\n const originalText = this.getTextContent();\n const searchTermLower = this.searchTerm.toLowerCase();\n const originalTextLower = originalText.toLowerCase();\n\n if (!originalTextLower.includes(searchTermLower)) return;\n\n const searchIndex = originalTextLower.indexOf(searchTermLower);\n\n if (searchIndex === -1) return;\n\n const beforeMatch = originalText.substring(0, searchIndex);\n const matchText = originalText.substring(searchIndex, searchIndex + searchTermLower.length);\n const afterMatch = originalText.substring(searchIndex + searchTermLower.length);\n\n const highlightedContent = document.createElement('span');\n highlightedContent.className = 'highlighted-text';\n\n if (beforeMatch) {\n highlightedContent.appendChild(document.createTextNode(beforeMatch));\n }\n\n const boldElement = document.createElement('strong');\n boldElement.className = 'search-highlight';\n boldElement.textContent = matchText;\n highlightedContent.appendChild(boldElement);\n\n if (afterMatch) {\n highlightedContent.appendChild(document.createTextNode(afterMatch));\n }\n\n labelElement.setAttribute('data-original-content', 'true');\n slotElement.style.display = 'none';\n labelElement.appendChild(highlightedContent);\n }\n\n private removeHighlighting() {\n const labelElement = this.el.shadowRoot?.querySelector('.option-label');\n if (!labelElement) return;\n\n const slotElement = labelElement.querySelector('slot');\n const highlightedElement = labelElement.querySelector('.highlighted-text');\n\n if (highlightedElement) {\n labelElement.removeChild(highlightedElement);\n }\n\n if (slotElement) {\n slotElement.style.display = '';\n }\n\n labelElement.removeAttribute('data-original-content');\n }\n\n private getTextContent(): string {\n let text = '';\n Array.from(this.el.childNodes).forEach(node => {\n if (node.nodeType === Node.TEXT_NODE) {\n text += node.textContent?.trim() || '';\n }\n });\n return text || this.value || '';\n }\n\n private hasMatchingChildren(): boolean {\n if (!this.hasChildren) return false;\n\n const childOptions = Array.from(this.el.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION') as HTMLElement[];\n\n return childOptions.some(child => {\n const childInstance = (child as any)['__stencil_instance'];\n if (!childInstance) return false;\n\n const childText = childInstance.getTextContent().toLowerCase();\n const childMatches = childText.includes(this.searchTerm);\n const grandChildrenMatch = childInstance.hasMatchingChildren();\n\n return childMatches || grandChildrenMatch;\n });\n }\n\n private hasMatchingParent(): boolean {\n let parent = this.el.parentElement;\n while (parent && parent.tagName === 'IFX-MULTISELECT-OPTION') {\n const parentInstance = (parent as any)['__stencil_instance'];\n if (parentInstance) {\n const parentText = parentInstance.getTextContent().toLowerCase();\n if (parentText.includes(this.searchTerm)) {\n return true;\n }\n }\n parent = parent.parentElement;\n }\n return false;\n }\n\n private calculateDepth(): number {\n let depth = 0;\n let parent = this.el.parentElement;\n while (parent && parent.tagName !== 'IFX-MULTISELECT') {\n if (parent.tagName === 'IFX-MULTISELECT-OPTION') {\n depth++;\n }\n parent = parent.parentElement;\n }\n return depth;\n }\n\n @Listen('click')\n handleClick(event: Event) {\n if (this.disabled || (this.isSearchActive && this.isSearchDisabled)) return;\n\n event.stopPropagation();\n\n if (event.type === 'click' && (event.target as HTMLElement).closest('.chevron-wrapper')) {\n this.toggleExpansion();\n return;\n }\n\n let newSelectedState: boolean;\n\n if (this.indeterminate) {\n newSelectedState = true;\n } else {\n newSelectedState = !this.selected;\n }\n\n this.selected = newSelectedState;\n this.indeterminate = false;\n\n if (this.hasChildren) {\n this.isExpanded = newSelectedState;\n\n requestAnimationFrame(() => {\n this.selectAllChildren(newSelectedState);\n this.expandAllChildren(newSelectedState);\n });\n }\n\n this.updateParentStates();\n this.notifyMultiselect();\n }\n\n @Listen('keydown')\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled || (this.isSearchActive && this.isSearchDisabled)) return;\n\n const target = event.target as HTMLElement;\n\n if (target.closest('.chevron-wrapper') || target.closest('.checkbox-wrapper')) {\n return;\n }\n\n if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown') {\n event.stopPropagation();\n }\n\n if (event.key === 'ArrowRight' && this.hasChildren) {\n this.isExpanded = true;\n }\n\n if (event.key === 'ArrowLeft' && this.hasChildren) {\n this.isExpanded = false;\n }\n }\n\n private notifyMultiselect() {\n const updateEvent = new CustomEvent('ifx-option-changed', {\n bubbles: true,\n detail: {\n value: this.value,\n selected: this.selected,\n indeterminate: this.indeterminate\n }\n });\n this.el.dispatchEvent(updateEvent);\n }\n\n private selectAllChildren(selected: boolean) {\n const directChildren = Array.from(this.el.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION') as any[];\n\n directChildren.forEach((child: any) => {\n const childInstance = child['__stencil_instance'];\n if (childInstance) {\n childInstance.selected = selected;\n childInstance.indeterminate = false;\n\n if (childInstance.hasChildren) {\n childInstance.isExpanded = selected;\n childInstance.selectAllChildren(selected);\n }\n childInstance.notifyMultiselect?.();\n }\n });\n }\n\n private expandAllChildren(expanded: boolean) {\n const directChildren = Array.from(this.el.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION') as any[];\n\n directChildren.forEach((child: any) => {\n const childInstance = child['__stencil_instance'];\n if (childInstance && childInstance.hasChildren) {\n childInstance.isExpanded = expanded;\n childInstance.expandAllChildren(expanded);\n }\n });\n }\n\n private updateParentStates() {\n let parent = this.el.parentElement;\n while (parent && parent.tagName === 'IFX-MULTISELECT-OPTION') {\n const parentInstance = (parent as any)['__stencil_instance'];\n if (!parentInstance) {\n parent = parent.parentElement;\n continue;\n }\n\n const siblings = Array.from(parent.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION')\n .map(child => (child as any)['__stencil_instance'])\n .filter(instance => instance !== null);\n\n const selectedCount = siblings.filter(sibling => sibling.selected).length;\n const indeterminateCount = siblings.filter(sibling => sibling.indeterminate).length;\n const totalCount = siblings.length;\n\n if (selectedCount === totalCount && indeterminateCount === 0) {\n parentInstance.selected = true;\n parentInstance.indeterminate = false;\n } else if (selectedCount === 0 && indeterminateCount === 0) {\n parentInstance.selected = false;\n parentInstance.indeterminate = false;\n } else {\n parentInstance.selected = false;\n parentInstance.indeterminate = true;\n }\n\n parentInstance.notifyMultiselect?.();\n parent = parent.parentElement;\n }\n }\n\n private toggleExpansion() {\n this.isExpanded = !this.isExpanded;\n }\n\n private handleCheckboxClick = (event: Event) => {\n if (this.disabled || (this.isSearchActive && this.isSearchDisabled)) return;\n\n event.stopPropagation();\n\n let newSelectedState: boolean;\n\n if (this.indeterminate) {\n newSelectedState = true;\n } else {\n newSelectedState = !this.selected;\n }\n\n this.selected = newSelectedState;\n this.indeterminate = false;\n\n if (this.hasChildren) {\n this.isExpanded = newSelectedState;\n\n requestAnimationFrame(() => {\n this.selectAllChildren(newSelectedState);\n this.expandAllChildren(newSelectedState);\n });\n }\n\n this.updateParentStates();\n this.notifyMultiselect();\n }\n\n private handleHeaderClick = (event: Event) => {\n event.stopPropagation();\n if (!this.disabled && !(this.isSearchActive && this.isSearchDisabled)) {\n this.handleClick(event);\n }\n }\n\n private hasAnySelectedChildren(): boolean {\n const childOptions = Array.from(this.el.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION') as HTMLElement[];\n\n return childOptions.some(child => {\n const hasSelected = child.hasAttribute('selected');\n const hasSelectedDescendants = this.checkForSelectedDescendants(child);\n\n return hasSelected || hasSelectedDescendants;\n });\n }\n\n private checkForSelectedDescendants(element: HTMLElement): boolean {\n const nestedOptions = Array.from(element.children)\n .filter(child => child.tagName === 'IFX-MULTISELECT-OPTION') as HTMLElement[];\n\n return nestedOptions.some(nestedChild => {\n const isSelected = nestedChild.hasAttribute('selected');\n const hasSelectedNested = this.checkForSelectedDescendants(nestedChild);\n\n return isSelected || hasSelectedNested;\n });\n }\n\n render() {\n let isFlatMultiselect = false;\n const parentMultiselect = this.el.closest('ifx-multiselect');\n if (parentMultiselect) {\n const allOptions = Array.from(parentMultiselect.querySelectorAll('ifx-multiselect-option'));\n isFlatMultiselect = allOptions.every(option => option.children.length === 0);\n }\n\n const basePadding = this.depth * 28 + 16;\n const additionalPadding = this.hasChildren ? 0 : 28;\n let totalPadding = basePadding + additionalPadding;\n\n const optionItemStyle = isFlatMultiselect ? undefined : { paddingLeft: `${totalPadding}px` };\n\n return (\n <Host>\n <div\n class={{\n 'option': true,\n 'option--has-children': this.hasChildren,\n 'option--expanded': this.isExpanded,\n 'option--disabled': this.disabled,\n 'option--selected': this.selected,\n }}\n role=\"option\"\n aria-expanded={this.hasChildren ? (this.isExpanded ? 'true' : 'false') : undefined}\n aria-selected={this.selected ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n data-level={this.depth}\n data-value={this.value}\n >\n <div\n class=\"option-item\"\n style={optionItemStyle}\n >\n <div\n class=\"chevron-wrapper\"\n tabIndex={this.hasChildren ? 0 : -1}\n role={this.hasChildren ? \"button\" : undefined}\n aria-label={this.hasChildren ? (this.isExpanded ? \"Collapse\" : \"Expand\") : undefined}\n onClick={(e) => { e.stopPropagation(); this.toggleExpansion(); }}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.toggleExpansion();\n }\n }}\n >\n {this.hasChildren && (\n <ifx-icon\n class={`chevron ${this.isExpanded ? 'chevron--expanded' : 'chevron--collapsed'}`}\n icon=\"chevron-right-16\"\n />\n )}\n </div>\n\n <div class=\"checkbox-wrapper\" onClick={(e) => e.stopPropagation()}>\n <ifx-checkbox\n size='s'\n checked={(this.isSearchActive && this.isSearchDisabled) ? false : (this.indeterminate ? false : this.selected)}\n indeterminate={(this.isSearchActive && this.isSearchDisabled) ? false : this.indeterminate}\n onClick={this.handleCheckboxClick}\n disabled={this.disabled || (this.isSearchActive && this.isSearchDisabled)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this.handleCheckboxClick(e);\n }\n }}\n />\n </div>\n\n <div\n class=\"option-label\"\n onClick={this.handleHeaderClick}\n tabIndex={-1}\n >\n <slot/>\n </div>\n </div>\n\n {this.isExpanded && <div class=\"option-children\"><slot name=\"children\"/></div>}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}