@infineon/infineon-design-system-stencil 33.2.0 → 33.2.1--canary.1845.ee4ba88c8b50426d4974caf2175d29cea069a0da.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 (514) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +2 -2
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -1
  4. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-badge.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
  8. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +1 -1
  10. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +1 -1
  12. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-button.cjs.entry.js +1 -1
  16. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-card-headline.cjs.entry.js +1 -1
  18. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-card-links.cjs.entry.js +1 -1
  20. package/dist/cjs/ifx-card-links.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-card-overline.cjs.entry.js +1 -1
  22. package/dist/cjs/ifx-card-overline.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-card-text.cjs.entry.js +1 -1
  24. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-card.cjs.entry.js +1 -1
  26. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ifx-chip_3.cjs.entry.js +3 -3
  30. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +1 -1
  32. package/dist/cjs/ifx-dropdown-header.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +1 -1
  34. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
  36. package/dist/cjs/ifx-footer-column.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ifx-footer.cjs.entry.js +1 -1
  38. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ifx-link.cjs.entry.js +1 -1
  40. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ifx-modal.cjs.entry.js +1 -1
  42. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-multiselect.cjs.entry.js +1 -1
  44. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ifx-navbar.cjs.entry.js +1 -1
  46. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ifx-notification.cjs.entry.js +1 -1
  48. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ifx-number-indicator.cjs.entry.js +1 -1
  50. package/dist/cjs/ifx-number-indicator.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
  52. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -1
  54. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ifx-radio-button.cjs.entry.js +1 -1
  56. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
  58. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -1
  60. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  62. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ifx-segmented-control.cjs.entry.js +1 -1
  64. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-select.cjs.entry.js +1 -1
  66. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +1 -1
  68. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
  70. package/dist/cjs/ifx-sidebar-title.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-sidebar.cjs.entry.js +1 -1
  72. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ifx-slider.cjs.entry.js +1 -1
  74. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ifx-spinner_2.cjs.entry.js +1 -1
  76. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  78. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-step.cjs.entry.js +1 -1
  80. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-stepper.cjs.entry.js +1 -1
  82. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
  84. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ifx-table.cjs.entry.js +1 -1
  86. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ifx-tabs.cjs.entry.js +1 -1
  88. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  90. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ifx-textarea.cjs.entry.js +1 -1
  92. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ifx-tooltip.cjs.entry.js +1 -1
  94. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  95. package/dist/collection/components/accordion/accordion.css +2 -2
  96. package/dist/collection/components/accordion/accordionItem.css +2 -2
  97. package/dist/collection/components/alert/alert.css +1 -1
  98. package/dist/collection/components/badge/badge.css +1 -1
  99. package/dist/collection/components/breadcrumb/breadcrumb-item-label.css +1 -1
  100. package/dist/collection/components/breadcrumb/breadcrumb-item.css +1 -1
  101. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  102. package/dist/collection/components/button/button.css +1 -1
  103. package/dist/collection/components/card/card-headline/card-headline.css +1 -1
  104. package/dist/collection/components/card/card-links/card-links.css +1 -1
  105. package/dist/collection/components/card/card-overline/card-overline.css +1 -1
  106. package/dist/collection/components/card/card-text/card-text.css +1 -1
  107. package/dist/collection/components/card/card.css +1 -1
  108. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  109. package/dist/collection/components/chip/chip-item/chip-item.css +1 -1
  110. package/dist/collection/components/chip/chip.css +1 -1
  111. package/dist/collection/components/dropdown/dropdown-header/dropdown-header.css +1 -1
  112. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.css +1 -1
  113. package/dist/collection/components/footer/footer-column.css +1 -1
  114. package/dist/collection/components/footer/footer.css +1 -1
  115. package/dist/collection/components/link/link.css +1 -1
  116. package/dist/collection/components/modal/modal.css +1 -1
  117. package/dist/collection/components/navigation/navbar/navbar.css +1 -1
  118. package/dist/collection/components/navigation/sidebar/sidebar-item.css +1 -1
  119. package/dist/collection/components/navigation/sidebar/sidebar-title.css +1 -1
  120. package/dist/collection/components/navigation/sidebar/sidebar.css +1 -1
  121. package/dist/collection/components/notification/notification.css +1 -1
  122. package/dist/collection/components/number-indicator/number-indicator.css +1 -1
  123. package/dist/collection/components/pagination/pagination.css +1 -1
  124. package/dist/collection/components/progress-bar/progress-bar.css +1 -1
  125. package/dist/collection/components/radio-button/radio-button.css +1 -1
  126. package/dist/collection/components/radio-button-group/radio-button-group.css +1 -1
  127. package/dist/collection/components/search-bar/search-bar.css +1 -1
  128. package/dist/collection/components/search-field/search-field.css +1 -1
  129. package/dist/collection/components/segmented-control/segment/segment.css +1 -1
  130. package/dist/collection/components/segmented-control/segmented-control.css +1 -1
  131. package/dist/collection/components/select/multi-select/multiselect.css +1 -1
  132. package/dist/collection/components/select/single-select/select.css +1 -1
  133. package/dist/collection/components/slider/slider.css +1 -1
  134. package/dist/collection/components/status/status.css +1 -1
  135. package/dist/collection/components/stepper/step/step.css +1 -1
  136. package/dist/collection/components/stepper/stepper.css +1 -1
  137. package/dist/collection/components/switch/switch.css +1 -1
  138. package/dist/collection/components/table-advanced-version/table.css +1 -1
  139. package/dist/collection/components/table-basic-version/table.css +1 -1
  140. package/dist/collection/components/tabs/tabs.css +1 -1
  141. package/dist/collection/components/tag/tag.css +1 -1
  142. package/dist/collection/components/text-field/text-field.css +1 -1
  143. package/dist/collection/components/textarea/textarea.css +1 -1
  144. package/dist/collection/components/tooltip/tooltip.css +1 -1
  145. package/dist/components/ifx-accordion-item.js +1 -1
  146. package/dist/components/ifx-accordion.js +1 -1
  147. package/dist/components/ifx-alert.js +1 -1
  148. package/dist/components/ifx-badge.js +1 -1
  149. package/dist/components/ifx-badge.js.map +1 -1
  150. package/dist/components/ifx-basic-table.js +1 -1
  151. package/dist/components/ifx-basic-table.js.map +1 -1
  152. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  153. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  154. package/dist/components/ifx-breadcrumb-item.js +1 -1
  155. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  156. package/dist/components/ifx-breadcrumb.js +1 -1
  157. package/dist/components/ifx-breadcrumb.js.map +1 -1
  158. package/dist/components/ifx-button.js +1 -1
  159. package/dist/components/ifx-card-headline.js +1 -1
  160. package/dist/components/ifx-card-headline.js.map +1 -1
  161. package/dist/components/ifx-card-links.js +1 -1
  162. package/dist/components/ifx-card-links.js.map +1 -1
  163. package/dist/components/ifx-card-overline.js +1 -1
  164. package/dist/components/ifx-card-overline.js.map +1 -1
  165. package/dist/components/ifx-card-text.js +1 -1
  166. package/dist/components/ifx-card-text.js.map +1 -1
  167. package/dist/components/ifx-card.js +1 -1
  168. package/dist/components/ifx-card.js.map +1 -1
  169. package/dist/components/ifx-checkbox-group.js +1 -1
  170. package/dist/components/ifx-checkbox-group.js.map +1 -1
  171. package/dist/components/ifx-chip-item.js +1 -1
  172. package/dist/components/ifx-chip.js +1 -1
  173. package/dist/components/ifx-download.js +1 -1
  174. package/dist/components/ifx-dropdown-header.js +1 -1
  175. package/dist/components/ifx-dropdown-header.js.map +1 -1
  176. package/dist/components/ifx-dropdown-item.js +1 -1
  177. package/dist/components/ifx-dropdown-item.js.map +1 -1
  178. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  179. package/dist/components/ifx-faq.js +2 -2
  180. package/dist/components/ifx-filter-accordion.js +1 -1
  181. package/dist/components/ifx-filter-bar.js +1 -1
  182. package/dist/components/ifx-filter-search.js +1 -1
  183. package/dist/components/ifx-footer-column.js +1 -1
  184. package/dist/components/ifx-footer-column.js.map +1 -1
  185. package/dist/components/ifx-footer.js +1 -1
  186. package/dist/components/ifx-footer.js.map +1 -1
  187. package/dist/components/ifx-icons-preview.js +2 -2
  188. package/dist/components/ifx-link.js +1 -1
  189. package/dist/components/ifx-list-entry.js +1 -1
  190. package/dist/components/ifx-list.js +1 -1
  191. package/dist/components/ifx-modal.js +1 -1
  192. package/dist/components/ifx-modal.js.map +1 -1
  193. package/dist/components/ifx-multiselect.js +1 -1
  194. package/dist/components/ifx-navbar-item.js +1 -1
  195. package/dist/components/ifx-navbar.js +1 -1
  196. package/dist/components/ifx-navbar.js.map +1 -1
  197. package/dist/components/ifx-notification.js +1 -1
  198. package/dist/components/ifx-number-indicator.js +1 -1
  199. package/dist/components/ifx-overview-table.js +2 -2
  200. package/dist/components/ifx-pagination.js +1 -1
  201. package/dist/components/ifx-progress-bar.js +1 -1
  202. package/dist/components/ifx-progress-bar.js.map +1 -1
  203. package/dist/components/ifx-radio-button-group.js +1 -1
  204. package/dist/components/ifx-radio-button-group.js.map +1 -1
  205. package/dist/components/ifx-radio-button.js +1 -1
  206. package/dist/components/ifx-search-bar.js +2 -2
  207. package/dist/components/ifx-search-bar.js.map +1 -1
  208. package/dist/components/ifx-search-field.js +1 -1
  209. package/dist/components/ifx-segment.js +1 -1
  210. package/dist/components/ifx-segment.js.map +1 -1
  211. package/dist/components/ifx-segmented-control.js +1 -1
  212. package/dist/components/ifx-segmented-control.js.map +1 -1
  213. package/dist/components/ifx-select.js +1 -1
  214. package/dist/components/ifx-set-filter.js +3 -3
  215. package/dist/components/ifx-sidebar-item.js +2 -2
  216. package/dist/components/ifx-sidebar-item.js.map +1 -1
  217. package/dist/components/ifx-sidebar-title.js +1 -1
  218. package/dist/components/ifx-sidebar-title.js.map +1 -1
  219. package/dist/components/ifx-sidebar.js +1 -1
  220. package/dist/components/ifx-sidebar.js.map +1 -1
  221. package/dist/components/ifx-slider.js +1 -1
  222. package/dist/components/ifx-slider.js.map +1 -1
  223. package/dist/components/ifx-status.js +1 -1
  224. package/dist/components/ifx-status.js.map +1 -1
  225. package/dist/components/ifx-step.js +1 -1
  226. package/dist/components/ifx-step.js.map +1 -1
  227. package/dist/components/ifx-stepper.js +1 -1
  228. package/dist/components/ifx-stepper.js.map +1 -1
  229. package/dist/components/ifx-switch.js +1 -1
  230. package/dist/components/ifx-switch.js.map +1 -1
  231. package/dist/components/ifx-table.js +7 -7
  232. package/dist/components/ifx-table.js.map +1 -1
  233. package/dist/components/ifx-tabs.js +1 -1
  234. package/dist/components/ifx-tabs.js.map +1 -1
  235. package/dist/components/ifx-tag.js +1 -1
  236. package/dist/components/ifx-tag.js.map +1 -1
  237. package/dist/components/ifx-template.js +1 -1
  238. package/dist/components/ifx-templates-ui.js +5 -5
  239. package/dist/components/ifx-text-field.js +1 -1
  240. package/dist/components/ifx-textarea.js +1 -1
  241. package/dist/components/ifx-textarea.js.map +1 -1
  242. package/dist/components/ifx-tooltip.js +1 -1
  243. package/dist/components/ifx-tooltip.js.map +1 -1
  244. package/dist/components/{p-79352b7c.js → p-00e48fa3.js} +4 -4
  245. package/dist/components/{p-79352b7c.js.map → p-00e48fa3.js.map} +1 -1
  246. package/dist/components/{p-f36effad.js → p-27bf5536.js} +2 -2
  247. package/dist/components/{p-f36effad.js.map → p-27bf5536.js.map} +1 -1
  248. package/dist/components/{p-7b38ddd5.js → p-4cec756d.js} +2 -2
  249. package/dist/components/{p-7b38ddd5.js.map → p-4cec756d.js.map} +1 -1
  250. package/dist/components/{p-04a697ad.js → p-6fe92ab0.js} +2 -2
  251. package/dist/components/{p-04a697ad.js.map → p-6fe92ab0.js.map} +1 -1
  252. package/dist/components/{p-5b5399c2.js → p-838db47a.js} +2 -2
  253. package/dist/components/p-838db47a.js.map +1 -0
  254. package/dist/components/{p-1d737cf7.js → p-8704ba3b.js} +2 -2
  255. package/dist/components/{p-1d737cf7.js.map → p-8704ba3b.js.map} +1 -1
  256. package/dist/components/{p-b4e91450.js → p-93fee9f5.js} +2 -2
  257. package/dist/components/{p-b4e91450.js.map → p-93fee9f5.js.map} +1 -1
  258. package/dist/components/{p-ee5532fd.js → p-a88d8e93.js} +3 -3
  259. package/dist/components/{p-ee5532fd.js.map → p-a88d8e93.js.map} +1 -1
  260. package/dist/components/{p-26e62031.js → p-b5808951.js} +2 -2
  261. package/dist/components/{p-26e62031.js.map → p-b5808951.js.map} +1 -1
  262. package/dist/components/p-c1c258ab.js +164 -0
  263. package/dist/components/{p-cc9cb040.js.map → p-c1c258ab.js.map} +1 -1
  264. package/dist/components/{p-7c7a5393.js → p-c6a9add9.js} +2 -2
  265. package/dist/components/p-c6a9add9.js.map +1 -0
  266. package/dist/components/{p-59110a4e.js → p-d3a6b575.js} +2 -2
  267. package/dist/components/{p-59110a4e.js.map → p-d3a6b575.js.map} +1 -1
  268. package/dist/components/{p-327af560.js → p-e6f47e76.js} +2 -2
  269. package/dist/components/{p-327af560.js.map → p-e6f47e76.js.map} +1 -1
  270. package/dist/components/{p-23757cfd.js → p-f6fa6d6f.js} +2 -2
  271. package/dist/components/{p-23757cfd.js.map → p-f6fa6d6f.js.map} +1 -1
  272. package/dist/components/{p-88691420.js → p-f9e79aa1.js} +3 -3
  273. package/dist/components/{p-88691420.js.map → p-f9e79aa1.js.map} +1 -1
  274. package/dist/components/{p-0ccba8b1.js → p-fd07fd11.js} +3 -3
  275. package/dist/components/{p-0ccba8b1.js.map → p-fd07fd11.js.map} +1 -1
  276. package/dist/esm/ifx-accordion_2.entry.js +2 -2
  277. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  278. package/dist/esm/ifx-alert_2.entry.js +1 -1
  279. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  280. package/dist/esm/ifx-badge.entry.js +1 -1
  281. package/dist/esm/ifx-badge.entry.js.map +1 -1
  282. package/dist/esm/ifx-basic-table.entry.js +1 -1
  283. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  284. package/dist/esm/ifx-breadcrumb-item-label.entry.js +1 -1
  285. package/dist/esm/ifx-breadcrumb-item-label.entry.js.map +1 -1
  286. package/dist/esm/ifx-breadcrumb-item.entry.js +1 -1
  287. package/dist/esm/ifx-breadcrumb-item.entry.js.map +1 -1
  288. package/dist/esm/ifx-breadcrumb.entry.js +1 -1
  289. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  290. package/dist/esm/ifx-button.entry.js +1 -1
  291. package/dist/esm/ifx-button.entry.js.map +1 -1
  292. package/dist/esm/ifx-card-headline.entry.js +1 -1
  293. package/dist/esm/ifx-card-headline.entry.js.map +1 -1
  294. package/dist/esm/ifx-card-links.entry.js +1 -1
  295. package/dist/esm/ifx-card-links.entry.js.map +1 -1
  296. package/dist/esm/ifx-card-overline.entry.js +1 -1
  297. package/dist/esm/ifx-card-overline.entry.js.map +1 -1
  298. package/dist/esm/ifx-card-text.entry.js +1 -1
  299. package/dist/esm/ifx-card-text.entry.js.map +1 -1
  300. package/dist/esm/ifx-card.entry.js +1 -1
  301. package/dist/esm/ifx-card.entry.js.map +1 -1
  302. package/dist/esm/ifx-checkbox-group.entry.js +1 -1
  303. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  304. package/dist/esm/ifx-chip_3.entry.js +3 -3
  305. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  306. package/dist/esm/ifx-dropdown-header.entry.js +1 -1
  307. package/dist/esm/ifx-dropdown-header.entry.js.map +1 -1
  308. package/dist/esm/ifx-dropdown-item.entry.js +1 -1
  309. package/dist/esm/ifx-dropdown-item.entry.js.map +1 -1
  310. package/dist/esm/ifx-footer-column.entry.js +1 -1
  311. package/dist/esm/ifx-footer-column.entry.js.map +1 -1
  312. package/dist/esm/ifx-footer.entry.js +1 -1
  313. package/dist/esm/ifx-footer.entry.js.map +1 -1
  314. package/dist/esm/ifx-link.entry.js +1 -1
  315. package/dist/esm/ifx-link.entry.js.map +1 -1
  316. package/dist/esm/ifx-modal.entry.js +1 -1
  317. package/dist/esm/ifx-modal.entry.js.map +1 -1
  318. package/dist/esm/ifx-multiselect.entry.js +1 -1
  319. package/dist/esm/ifx-multiselect.entry.js.map +1 -1
  320. package/dist/esm/ifx-navbar.entry.js +1 -1
  321. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  322. package/dist/esm/ifx-notification.entry.js +1 -1
  323. package/dist/esm/ifx-notification.entry.js.map +1 -1
  324. package/dist/esm/ifx-number-indicator.entry.js +1 -1
  325. package/dist/esm/ifx-number-indicator.entry.js.map +1 -1
  326. package/dist/esm/ifx-progress-bar.entry.js +1 -1
  327. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  328. package/dist/esm/ifx-radio-button-group.entry.js +1 -1
  329. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  330. package/dist/esm/ifx-radio-button.entry.js +1 -1
  331. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  332. package/dist/esm/ifx-search-bar.entry.js +1 -1
  333. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  334. package/dist/esm/ifx-search-field.entry.js +1 -1
  335. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  336. package/dist/esm/ifx-segment.entry.js +1 -1
  337. package/dist/esm/ifx-segment.entry.js.map +1 -1
  338. package/dist/esm/ifx-segmented-control.entry.js +1 -1
  339. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  340. package/dist/esm/ifx-select.entry.js +1 -1
  341. package/dist/esm/ifx-select.entry.js.map +1 -1
  342. package/dist/esm/ifx-sidebar-item.entry.js +1 -1
  343. package/dist/esm/ifx-sidebar-item.entry.js.map +1 -1
  344. package/dist/esm/ifx-sidebar-title.entry.js +1 -1
  345. package/dist/esm/ifx-sidebar-title.entry.js.map +1 -1
  346. package/dist/esm/ifx-sidebar.entry.js +1 -1
  347. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  348. package/dist/esm/ifx-slider.entry.js +1 -1
  349. package/dist/esm/ifx-slider.entry.js.map +1 -1
  350. package/dist/esm/ifx-spinner_2.entry.js +1 -1
  351. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  352. package/dist/esm/ifx-status.entry.js +1 -1
  353. package/dist/esm/ifx-status.entry.js.map +1 -1
  354. package/dist/esm/ifx-step.entry.js +1 -1
  355. package/dist/esm/ifx-step.entry.js.map +1 -1
  356. package/dist/esm/ifx-stepper.entry.js +1 -1
  357. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  358. package/dist/esm/ifx-switch.entry.js +1 -1
  359. package/dist/esm/ifx-switch.entry.js.map +1 -1
  360. package/dist/esm/ifx-table.entry.js +1 -1
  361. package/dist/esm/ifx-table.entry.js.map +1 -1
  362. package/dist/esm/ifx-tabs.entry.js +1 -1
  363. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  364. package/dist/esm/ifx-tag.entry.js +1 -1
  365. package/dist/esm/ifx-tag.entry.js.map +1 -1
  366. package/dist/esm/ifx-textarea.entry.js +1 -1
  367. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  368. package/dist/esm/ifx-tooltip.entry.js +1 -1
  369. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  370. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.css +1 -1
  371. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  372. package/dist/infineon-design-system-stencil/p-0ea7bcc4.entry.js +2 -0
  373. package/dist/infineon-design-system-stencil/{p-6a8bfce7.entry.js.map → p-0ea7bcc4.entry.js.map} +1 -1
  374. package/dist/infineon-design-system-stencil/p-130a348e.entry.js +2 -0
  375. package/dist/infineon-design-system-stencil/{p-b84588f9.entry.js.map → p-130a348e.entry.js.map} +1 -1
  376. package/dist/infineon-design-system-stencil/p-17c4f291.entry.js +2 -0
  377. package/dist/infineon-design-system-stencil/{p-7de29aa8.entry.js.map → p-17c4f291.entry.js.map} +1 -1
  378. package/dist/infineon-design-system-stencil/p-196a54c7.entry.js +2 -0
  379. package/dist/infineon-design-system-stencil/{p-dba0c2d2.entry.js.map → p-196a54c7.entry.js.map} +1 -1
  380. package/dist/infineon-design-system-stencil/p-19e5328b.entry.js +2 -0
  381. package/dist/infineon-design-system-stencil/{p-c183f92b.entry.js.map → p-19e5328b.entry.js.map} +1 -1
  382. package/dist/infineon-design-system-stencil/p-1efeb8d3.entry.js +2 -0
  383. package/dist/infineon-design-system-stencil/{p-602a1ada.entry.js.map → p-1efeb8d3.entry.js.map} +1 -1
  384. package/dist/infineon-design-system-stencil/p-22d170ec.entry.js +2 -0
  385. package/dist/infineon-design-system-stencil/{p-50793991.entry.js.map → p-22d170ec.entry.js.map} +1 -1
  386. package/dist/infineon-design-system-stencil/p-2868a1c3.entry.js +2 -0
  387. package/dist/infineon-design-system-stencil/{p-76e2c9c5.entry.js.map → p-2868a1c3.entry.js.map} +1 -1
  388. package/dist/infineon-design-system-stencil/p-2d10e50f.entry.js +2 -0
  389. package/dist/infineon-design-system-stencil/{p-dc5ff11a.entry.js.map → p-2d10e50f.entry.js.map} +1 -1
  390. package/dist/infineon-design-system-stencil/p-2fcbe7c5.entry.js +2 -0
  391. package/dist/infineon-design-system-stencil/{p-47893f7e.entry.js.map → p-2fcbe7c5.entry.js.map} +1 -1
  392. package/dist/infineon-design-system-stencil/p-30c93be2.entry.js +2 -0
  393. package/dist/infineon-design-system-stencil/{p-fc455450.entry.js.map → p-30c93be2.entry.js.map} +1 -1
  394. package/dist/infineon-design-system-stencil/p-31ffdf1f.entry.js +2 -0
  395. package/dist/infineon-design-system-stencil/{p-96ba5e8c.entry.js.map → p-31ffdf1f.entry.js.map} +1 -1
  396. package/dist/infineon-design-system-stencil/p-37b651ad.entry.js +2 -0
  397. package/dist/infineon-design-system-stencil/{p-0a69604b.entry.js.map → p-37b651ad.entry.js.map} +1 -1
  398. package/dist/infineon-design-system-stencil/p-3a47beeb.entry.js +2 -0
  399. package/dist/infineon-design-system-stencil/{p-f88b928c.entry.js.map → p-3a47beeb.entry.js.map} +1 -1
  400. package/dist/infineon-design-system-stencil/p-3d6b1437.entry.js +2 -0
  401. package/dist/infineon-design-system-stencil/{p-b1c2e67a.entry.js.map → p-3d6b1437.entry.js.map} +1 -1
  402. package/dist/infineon-design-system-stencil/{p-8531337f.entry.js → p-3ef9babe.entry.js} +2 -2
  403. package/dist/infineon-design-system-stencil/{p-8531337f.entry.js.map → p-3ef9babe.entry.js.map} +1 -1
  404. package/dist/infineon-design-system-stencil/p-50690841.entry.js +2 -0
  405. package/dist/infineon-design-system-stencil/{p-e93396ed.entry.js.map → p-50690841.entry.js.map} +1 -1
  406. package/dist/infineon-design-system-stencil/p-54178158.entry.js +2 -0
  407. package/dist/infineon-design-system-stencil/{p-485ba923.entry.js.map → p-54178158.entry.js.map} +1 -1
  408. package/dist/infineon-design-system-stencil/{p-63679298.entry.js → p-5694467b.entry.js} +2 -2
  409. package/dist/infineon-design-system-stencil/{p-63679298.entry.js.map → p-5694467b.entry.js.map} +1 -1
  410. package/dist/infineon-design-system-stencil/p-59c083f0.entry.js +2 -0
  411. package/dist/infineon-design-system-stencil/{p-69799784.entry.js.map → p-59c083f0.entry.js.map} +1 -1
  412. package/dist/infineon-design-system-stencil/p-628cc5fa.entry.js +2 -0
  413. package/dist/infineon-design-system-stencil/{p-aac226ce.entry.js.map → p-628cc5fa.entry.js.map} +1 -1
  414. package/dist/infineon-design-system-stencil/p-67bef9b1.entry.js +2 -0
  415. package/dist/infineon-design-system-stencil/{p-2f87fada.entry.js.map → p-67bef9b1.entry.js.map} +1 -1
  416. package/dist/infineon-design-system-stencil/p-69c40ca9.entry.js +2 -0
  417. package/dist/infineon-design-system-stencil/{p-0d11b881.entry.js.map → p-69c40ca9.entry.js.map} +1 -1
  418. package/dist/infineon-design-system-stencil/p-6c155e72.entry.js +2 -0
  419. package/dist/infineon-design-system-stencil/{p-1d47cfa5.entry.js.map → p-6c155e72.entry.js.map} +1 -1
  420. package/dist/infineon-design-system-stencil/p-762b334b.entry.js +2 -0
  421. package/dist/infineon-design-system-stencil/{p-4ddb3e72.entry.js.map → p-762b334b.entry.js.map} +1 -1
  422. package/dist/infineon-design-system-stencil/p-7b8d2d00.entry.js +2 -0
  423. package/dist/infineon-design-system-stencil/{p-1f745731.entry.js.map → p-7b8d2d00.entry.js.map} +1 -1
  424. package/dist/infineon-design-system-stencil/p-7cd22218.entry.js +2 -0
  425. package/dist/infineon-design-system-stencil/{p-080456bc.entry.js.map → p-7cd22218.entry.js.map} +1 -1
  426. package/dist/infineon-design-system-stencil/p-7d478daf.entry.js +2 -0
  427. package/dist/infineon-design-system-stencil/{p-fe55dfcd.entry.js.map → p-7d478daf.entry.js.map} +1 -1
  428. package/dist/infineon-design-system-stencil/p-826bac97.entry.js +2 -0
  429. package/dist/infineon-design-system-stencil/{p-33f48cf1.entry.js.map → p-826bac97.entry.js.map} +1 -1
  430. package/dist/infineon-design-system-stencil/p-86bc917e.entry.js +2 -0
  431. package/dist/infineon-design-system-stencil/{p-74fd43e9.entry.js.map → p-86bc917e.entry.js.map} +1 -1
  432. package/dist/infineon-design-system-stencil/p-8d2e1ccb.entry.js +2 -0
  433. package/dist/infineon-design-system-stencil/{p-dd27040f.entry.js.map → p-8d2e1ccb.entry.js.map} +1 -1
  434. package/dist/infineon-design-system-stencil/p-96b3d6ad.entry.js +2 -0
  435. package/dist/infineon-design-system-stencil/{p-6c3c5b20.entry.js.map → p-96b3d6ad.entry.js.map} +1 -1
  436. package/dist/infineon-design-system-stencil/p-9f8b7e50.entry.js +2 -0
  437. package/dist/infineon-design-system-stencil/{p-a1bb909f.entry.js.map → p-9f8b7e50.entry.js.map} +1 -1
  438. package/dist/infineon-design-system-stencil/p-9fc6780e.entry.js +2 -0
  439. package/dist/infineon-design-system-stencil/{p-05d332bd.entry.js.map → p-9fc6780e.entry.js.map} +1 -1
  440. package/dist/infineon-design-system-stencil/p-a56778a3.entry.js +2 -0
  441. package/dist/infineon-design-system-stencil/{p-332313b0.entry.js.map → p-a56778a3.entry.js.map} +1 -1
  442. package/dist/infineon-design-system-stencil/p-a76c8195.entry.js +2 -0
  443. package/dist/infineon-design-system-stencil/p-a76c8195.entry.js.map +1 -0
  444. package/dist/infineon-design-system-stencil/p-a860954b.entry.js +2 -0
  445. package/dist/infineon-design-system-stencil/{p-41316712.entry.js.map → p-a860954b.entry.js.map} +1 -1
  446. package/dist/infineon-design-system-stencil/p-ae1f14b9.entry.js +2 -0
  447. package/dist/infineon-design-system-stencil/{p-db9bdd7d.entry.js.map → p-ae1f14b9.entry.js.map} +1 -1
  448. package/dist/infineon-design-system-stencil/{p-5d486e15.entry.js → p-b55121f0.entry.js} +2 -2
  449. package/dist/infineon-design-system-stencil/{p-5d486e15.entry.js.map → p-b55121f0.entry.js.map} +1 -1
  450. package/dist/infineon-design-system-stencil/p-c128a27c.entry.js +2 -0
  451. package/dist/infineon-design-system-stencil/{p-61010cd5.entry.js.map → p-c128a27c.entry.js.map} +1 -1
  452. package/dist/infineon-design-system-stencil/p-da7c406c.entry.js +2 -0
  453. package/dist/infineon-design-system-stencil/{p-661a7c0b.entry.js.map → p-da7c406c.entry.js.map} +1 -1
  454. package/dist/infineon-design-system-stencil/p-dba9ba64.entry.js +2 -0
  455. package/dist/infineon-design-system-stencil/{p-427b82a8.entry.js.map → p-dba9ba64.entry.js.map} +1 -1
  456. package/dist/infineon-design-system-stencil/p-dd6d8c6f.entry.js +2 -0
  457. package/dist/infineon-design-system-stencil/{p-b6d2073e.entry.js.map → p-dd6d8c6f.entry.js.map} +1 -1
  458. package/dist/infineon-design-system-stencil/p-e3ac60fd.entry.js +2 -0
  459. package/dist/infineon-design-system-stencil/{p-c4eac5cd.entry.js.map → p-e3ac60fd.entry.js.map} +1 -1
  460. package/dist/infineon-design-system-stencil/p-edf6d637.entry.js +2 -0
  461. package/dist/infineon-design-system-stencil/{p-d9f7f285.entry.js.map → p-edf6d637.entry.js.map} +1 -1
  462. package/dist/infineon-design-system-stencil/p-ef59a9f9.entry.js +2 -0
  463. package/dist/infineon-design-system-stencil/{p-0333c09a.entry.js.map → p-ef59a9f9.entry.js.map} +1 -1
  464. package/dist/infineon-design-system-stencil/p-f5fadcec.entry.js +2 -0
  465. package/dist/infineon-design-system-stencil/{p-b6bdc0a5.entry.js.map → p-f5fadcec.entry.js.map} +1 -1
  466. package/package.json +1 -1
  467. package/dist/components/p-5b5399c2.js.map +0 -1
  468. package/dist/components/p-7c7a5393.js.map +0 -1
  469. package/dist/components/p-cc9cb040.js +0 -164
  470. package/dist/infineon-design-system-stencil/p-0333c09a.entry.js +0 -2
  471. package/dist/infineon-design-system-stencil/p-05d332bd.entry.js +0 -2
  472. package/dist/infineon-design-system-stencil/p-080456bc.entry.js +0 -2
  473. package/dist/infineon-design-system-stencil/p-0a69604b.entry.js +0 -2
  474. package/dist/infineon-design-system-stencil/p-0d11b881.entry.js +0 -2
  475. package/dist/infineon-design-system-stencil/p-1d47cfa5.entry.js +0 -2
  476. package/dist/infineon-design-system-stencil/p-1f745731.entry.js +0 -2
  477. package/dist/infineon-design-system-stencil/p-2f87fada.entry.js +0 -2
  478. package/dist/infineon-design-system-stencil/p-332313b0.entry.js +0 -2
  479. package/dist/infineon-design-system-stencil/p-33f48cf1.entry.js +0 -2
  480. package/dist/infineon-design-system-stencil/p-41316712.entry.js +0 -2
  481. package/dist/infineon-design-system-stencil/p-427b82a8.entry.js +0 -2
  482. package/dist/infineon-design-system-stencil/p-47893f7e.entry.js +0 -2
  483. package/dist/infineon-design-system-stencil/p-485ba923.entry.js +0 -2
  484. package/dist/infineon-design-system-stencil/p-4ddb3e72.entry.js +0 -2
  485. package/dist/infineon-design-system-stencil/p-50793991.entry.js +0 -2
  486. package/dist/infineon-design-system-stencil/p-602a1ada.entry.js +0 -2
  487. package/dist/infineon-design-system-stencil/p-61010cd5.entry.js +0 -2
  488. package/dist/infineon-design-system-stencil/p-661a7c0b.entry.js +0 -2
  489. package/dist/infineon-design-system-stencil/p-69799784.entry.js +0 -2
  490. package/dist/infineon-design-system-stencil/p-6a8bfce7.entry.js +0 -2
  491. package/dist/infineon-design-system-stencil/p-6c3c5b20.entry.js +0 -2
  492. package/dist/infineon-design-system-stencil/p-74fd43e9.entry.js +0 -2
  493. package/dist/infineon-design-system-stencil/p-76e2c9c5.entry.js +0 -2
  494. package/dist/infineon-design-system-stencil/p-7de29aa8.entry.js +0 -2
  495. package/dist/infineon-design-system-stencil/p-96ba5e8c.entry.js +0 -2
  496. package/dist/infineon-design-system-stencil/p-a1bb909f.entry.js +0 -2
  497. package/dist/infineon-design-system-stencil/p-aac226ce.entry.js +0 -2
  498. package/dist/infineon-design-system-stencil/p-b1c2e67a.entry.js +0 -2
  499. package/dist/infineon-design-system-stencil/p-b39303be.entry.js +0 -2
  500. package/dist/infineon-design-system-stencil/p-b39303be.entry.js.map +0 -1
  501. package/dist/infineon-design-system-stencil/p-b6bdc0a5.entry.js +0 -2
  502. package/dist/infineon-design-system-stencil/p-b6d2073e.entry.js +0 -2
  503. package/dist/infineon-design-system-stencil/p-b84588f9.entry.js +0 -2
  504. package/dist/infineon-design-system-stencil/p-c183f92b.entry.js +0 -2
  505. package/dist/infineon-design-system-stencil/p-c4eac5cd.entry.js +0 -2
  506. package/dist/infineon-design-system-stencil/p-d9f7f285.entry.js +0 -2
  507. package/dist/infineon-design-system-stencil/p-db9bdd7d.entry.js +0 -2
  508. package/dist/infineon-design-system-stencil/p-dba0c2d2.entry.js +0 -2
  509. package/dist/infineon-design-system-stencil/p-dc5ff11a.entry.js +0 -2
  510. package/dist/infineon-design-system-stencil/p-dd27040f.entry.js +0 -2
  511. package/dist/infineon-design-system-stencil/p-e93396ed.entry.js +0 -2
  512. package/dist/infineon-design-system-stencil/p-f88b928c.entry.js +0 -2
  513. package/dist/infineon-design-system-stencil/p-fc455450.entry.js +0 -2
  514. package/dist/infineon-design-system-stencil/p-fe55dfcd.entry.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","batchSize","size","disabled","error","internalError","errorMessage","label","persistentSelectedOptions","placeholder","dropdownOpen","currentIndex","isLoading","loadedOptions","filteredOptions","showSearch","showSelectAll","showClearButton","optionCount","optionsProcessed","handleSearch","targetElement","searchTerm","value","toLowerCase","filter","option","matchesSearchTerm","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","document","removeEventListener","ifxOpen","emit","updateOptions","loadInitialOptions","internalErrorMessage","fetchOptions","fetchMoreOptions","moreOptions","length","handleScroll","element","target","halfwayPoint","Math","floor","scrollHeight","clientHeight","scrollTop","startIndex","count","allOptions","options","JSON","parse","err","console","Array","isArray","countOptions","initiallySelected","collectSelectedOptions","initallySelectedNotInState","init","opt","slicedOptions","slice","selectedOptions","selected","concat","collectLeafOptions","existingOption","push","leafOptions","componentDidLoad","positionDropdown","componentWillLoad","updateInternalError","updateInternalErrorMessage","loadedOptionsChanged","onSelectionChange","newValue","_","formData","FormData","forEach","append","name","internals","setFormValue","handleOptionClick","isSelectionLimitReached","checkboxRef","toggleCheckedState","updateSelection","ifxSelect","newOptionsLength","maxItemCount","selectedOption","wasSelected","handleParentOptionClick","handleChildOptionClick","selectAll","selectAllRecursive","allChildrenSelected","every","newChildren","childOption","updateParentSelectedState","_a","isOptionIndeterminate","indeterminate","getSizeClass","toggleDropdown","addEventListener","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","querySelectorAll","code","updateHighlightedOption","handleArrowDown","handleArrowUp","handleWrapperClick","currentTarget","clearSelection","wrapperRect","el","shadowRoot","querySelector","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","top","height","dropdownFlipped","classList","remove","add","focus","handleOptionKeyDown","e","key","stopPropagation","renderOption","index","isIndeterminate","isSelected","isOptionSelected","disableCheckbox","uniqueId","h","class","onKeyDown","onClick","tabindex","role","tabIndex","ref","id","checked","htmlFor","map","childIndex","renderSubOption","persistentOption","selectedChildren","findInOptions","foundInChildren","renderSelectAll","allSelected","noneSelected","that","toggleSelectAll","handleSelectAllKeydown","render","selectedOptionsLabels","isChildSelectedWithParent","parentOption","join","undefined","onScroll","type","onInput","icon","globalZIndex"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.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: tokens.$ifxFontFamilyBody;\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\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 position: relative;\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\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\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 align-items: center;\n display: flex;\n }\n\n .ifx-clear-button {\n display: flex;\n &.hide { \n display: none;\n }\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: 1000; \n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { Option } from './interfaces';\n\n// Debounce function\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\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n static globalZIndex = 1000; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\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 // if parent is selected, then select all child options\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 /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\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 /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => {\n const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);\n if (option.children) {\n const childrenMatch = option.children.some(child => {\n return child.label.toLowerCase().includes(searchTerm);\n });\n return matchesSearchTerm || childrenMatch;\n }\n return matchesSearchTerm;\n });\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\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('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\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\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n this.optionCount = this.countOptions( this.persistentSelectedOptions)\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\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.filteredOptions = this.loadedOptions;\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\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 there's more space above than below the trigger and the dropdown doesn't fit below\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\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n \n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\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.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? '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 ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</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='chevronup-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\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","batchSize","size","disabled","error","internalError","errorMessage","label","persistentSelectedOptions","placeholder","dropdownOpen","currentIndex","isLoading","loadedOptions","filteredOptions","showSearch","showSelectAll","showClearButton","optionCount","optionsProcessed","handleSearch","targetElement","searchTerm","value","toLowerCase","filter","option","matchesSearchTerm","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","document","removeEventListener","ifxOpen","emit","updateOptions","loadInitialOptions","internalErrorMessage","fetchOptions","fetchMoreOptions","moreOptions","length","handleScroll","element","target","halfwayPoint","Math","floor","scrollHeight","clientHeight","scrollTop","startIndex","count","allOptions","options","JSON","parse","err","console","Array","isArray","countOptions","initiallySelected","collectSelectedOptions","initallySelectedNotInState","init","opt","slicedOptions","slice","selectedOptions","selected","concat","collectLeafOptions","existingOption","push","leafOptions","componentDidLoad","positionDropdown","componentWillLoad","updateInternalError","updateInternalErrorMessage","loadedOptionsChanged","onSelectionChange","newValue","_","formData","FormData","forEach","append","name","internals","setFormValue","handleOptionClick","isSelectionLimitReached","checkboxRef","toggleCheckedState","updateSelection","ifxSelect","newOptionsLength","maxItemCount","selectedOption","wasSelected","handleParentOptionClick","handleChildOptionClick","selectAll","selectAllRecursive","allChildrenSelected","every","newChildren","childOption","updateParentSelectedState","_a","isOptionIndeterminate","indeterminate","getSizeClass","toggleDropdown","addEventListener","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","querySelectorAll","code","updateHighlightedOption","handleArrowDown","handleArrowUp","handleWrapperClick","currentTarget","clearSelection","wrapperRect","el","shadowRoot","querySelector","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","top","height","dropdownFlipped","classList","remove","add","focus","handleOptionKeyDown","e","key","stopPropagation","renderOption","index","isIndeterminate","isSelected","isOptionSelected","disableCheckbox","uniqueId","h","class","onKeyDown","onClick","tabindex","role","tabIndex","ref","id","checked","htmlFor","map","childIndex","renderSubOption","persistentOption","selectedChildren","findInOptions","foundInChildren","renderSelectAll","allSelected","noneSelected","that","toggleSelectAll","handleSelectAllKeydown","render","selectedOptionsLabels","isChildSelectedWithParent","parentOption","join","undefined","onScroll","type","onInput","icon","globalZIndex"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.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: tokens.$ifxFontFamilyBody;\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\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 position: relative;\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\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\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 align-items: center;\n display: flex;\n }\n\n .ifx-clear-button {\n display: flex;\n &.hide { \n display: none;\n }\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: 1000; \n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { Option } from './interfaces';\n\n// Debounce function\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\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n static globalZIndex = 1000; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\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 // if parent is selected, then select all child options\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 /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\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 /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => {\n const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);\n if (option.children) {\n const childrenMatch = option.children.some(child => {\n return child.label.toLowerCase().includes(searchTerm);\n });\n return matchesSearchTerm || childrenMatch;\n }\n return matchesSearchTerm;\n });\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\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('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\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\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n this.optionCount = this.countOptions( this.persistentSelectedOptions)\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\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.filteredOptions = this.loadedOptions;\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\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 there's more space above than below the trigger and the dropdown doesn't fit below\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\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n \n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\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.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? '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 ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</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='chevronup-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\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,h as n}from"./p-e6edf72d.js";const o=':root{--ifx-font-family:Source Sans 3, "Arial, sans-serif"}:host{display:inline-flex}.badge__container{display:inline-flex;justify-content:center;align-items:center;padding:4px 8px;gap:8px;border:1px solid #EEEDED;background-color:#EEEDED;border-radius:100px;font-family:"Source Sans 3";font-size:0.875rem;line-height:1.25rem;font-weight:400;color:#1D1D1D}';const r=o;const a=class{constructor(n){e(this,n)}render(){return n("div",{key:"eaa5be7836515fc284e17ed7fb6acfdcc6ce11f1",class:"badge__container"},n("slot",{key:"f00f0415cb6cdfa25ce8e7b0df798f8a98eb2373"}))}};a.style=r;export{a as ifx_badge};
2
+ //# sourceMappingURL=p-3a47beeb.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["badgeCss","IfxBadgeStyle0","Badge","render","h","key","class"],"sources":["src/components/badge/badge.scss?tag=ifx-badge&encapsulation=shadow","src/components/badge/badge.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.badge__container {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n padding: 4px 8px;\n gap: tokens.$ifxSpace100;\n border: 1px solid tokens.$ifxColorEngineering200;\n background-color: tokens.$ifxColorEngineering200;\n border-radius: 100px;\n font-family: tokens.$ifxFontFamilyBody;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n font-weight: 400;\n color: tokens.$ifxColorBaseBlack;\n}","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'ifx-badge',\n styleUrl: 'badge.scss',\n shadow: true\n})\nexport class Badge {\n\n\n\n render() {\n return (\n <div class=\"badge__container\">\n <slot />\n </div>\n );\n }\n}"],"mappings":"2CAAA,MAAMA,EAAW,0VACjB,MAAAC,EAAeD,E,MCMFE,EAAK,M,yBAIhB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,oBACTF,EAAA,QAAAC,IAAA,6C","ignoreList":[]}
1
+ {"version":3,"names":["badgeCss","IfxBadgeStyle0","Badge","render","h","key","class"],"sources":["src/components/badge/badge.scss?tag=ifx-badge&encapsulation=shadow","src/components/badge/badge.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.badge__container {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n padding: 4px 8px;\n gap: tokens.$ifxSpace100;\n border: 1px solid tokens.$ifxColorEngineering200;\n background-color: tokens.$ifxColorEngineering200;\n border-radius: 100px;\n font-family: tokens.$ifxFontFamilyBody;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n font-weight: 400;\n color: tokens.$ifxColorBaseBlack;\n}","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'ifx-badge',\n styleUrl: 'badge.scss',\n shadow: true\n})\nexport class Badge {\n\n\n\n render() {\n return (\n <div class=\"badge__container\">\n <slot />\n </div>\n );\n }\n}"],"mappings":"2CAAA,MAAMA,EAAW,uWACjB,MAAAC,EAAeD,E,MCMFE,EAAK,M,yBAIhB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,oBACTF,EAAA,QAAAC,IAAA,6C","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as s,h as a,g as r}from"./p-e6edf72d.js";const i=':root{--ifx-font-family:Source Sans 3, "Arial, sans-serif"}:host{width:100%;display:flex}.search-bar{box-sizing:border-box;height:40px;background-color:#FFFFFF;display:flex;flex-direction:row;align-items:center;width:100%;font-family:"Source Sans 3"}.search-bar.closed{display:flex;width:auto;justify-content:flex-start}.search-bar .search-bar-wrapper{display:flex;align-items:center;gap:16px;width:100%}.search-bar .search-bar-wrapper a{text-decoration:none;font-size:1rem;font-style:normal;font-weight:600;line-height:1.5rem;color:#0A8276;cursor:pointer}.search-bar .search-bar-wrapper ifx-search-field{width:100%}.search-bar .search-bar__icon-wrapper{display:none;flex-direction:row;align-items:center}.search-bar .search-bar__icon-wrapper ifx-icon:hover{cursor:pointer}.search-bar.closed .search-bar__icon-wrapper{display:flex}.search-bar.closed .search-bar-wrapper{display:none}';const t=i;const h=class{constructor(a){e(this,a);this.ifxInput=s(this,"ifxInput",7);this.ifxOpen=s(this,"ifxOpen",7);this.isOpen=true;this.disabled=false;this.autocomplete="on";this.handleCloseButton=()=>{this.internalState=!this.internalState;this.ifxOpen.emit(this.internalState)};this.handleFocus=()=>{this.internalState=true}}async onNavbarMobile(){this.ifxOpen.emit(false);this.internalState=false}handlePropChange(){this.internalState=this.isOpen}setInitialState(){this.internalState=this.isOpen}componentWillLoad(){this.setInitialState();this.ifxOpen.emit(this.internalState)}handleInput(e){this.value=e.detail}render(){return a("div",{key:"c902f46ef9efab55d05e5f0c5bf24204e364f9f7","aria-label":"a search bar","aria-disabled":this.disabled,class:`search-bar ${this.internalState?"open":"closed"}`},this.internalState?a("div",{class:"search-bar-wrapper"},a("ifx-search-field",{autocomplete:this.autocomplete,disabled:this.disabled,value:this.value,maxlength:this.maxlength,onIfxInput:this.handleInput.bind(this)},a("ifx-icon",{icon:"search-16",slot:"search-icon"})),a("a",{tabindex:"-1",href:"javascript:void(0)",onClick:this.handleCloseButton},"Close")):a("div",{class:"search-bar__icon-wrapper",onClick:this.handleCloseButton},a("ifx-icon",{icon:"search-16"})))}get el(){return r(this)}static get watchers(){return{isOpen:["handlePropChange"]}}};h.style=t;export{h as ifx_search_bar};
2
+ //# sourceMappingURL=p-3d6b1437.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["searchBarCss","IfxSearchBarStyle0","SearchBar","constructor","hostRef","this","isOpen","disabled","autocomplete","handleCloseButton","internalState","ifxOpen","emit","handleFocus","onNavbarMobile","handlePropChange","setInitialState","componentWillLoad","handleInput","event","value","detail","render","h","key","class","maxlength","onIfxInput","bind","icon","slot","tabindex","href","onClick"],"sources":["src/components/search-bar/search-bar.scss?tag=ifx-search-bar&encapsulation=shadow","src/components/search-bar/search-bar.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n width: 100%; //revert\n display: flex;\n}\n\n.search-bar {\n box-sizing: border-box;\n height: tokens.$ifxSize500;\n background-color: tokens.$ifxColorBaseWhite;\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n font-family: tokens.$ifxFontFamilyBody;\n\n &.closed {\n display: flex;\n width: auto;\n justify-content: flex-start;\n }\n\n & .search-bar-wrapper {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace200;\n width: 100%;\n\n & a {\n text-decoration: none;\n font-size: tokens.$ifxFontSizeM;\n font-style: normal;\n font-weight: tokens.$ifxFontWeightSemibold;\n line-height: tokens.$ifxLineHeightM;\n color: tokens.$ifxColorOcean500;\n cursor: pointer;\n }\n\n & ifx-search-field {\n width: 100%;\n }\n }\n\n .search-bar__icon-wrapper {\n display: none;\n flex-direction: row;\n align-items: center;\n\n & ifx-icon:hover {\n cursor: pointer;\n }\n }\n\n &.closed {\n .search-bar__icon-wrapper {\n display: flex;\n }\n\n .search-bar-wrapper {\n display: none;\n }\n }\n}","import { Component, h, Prop, Event, EventEmitter, State, Watch, Element, Method } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-search-bar',\n styleUrl: 'search-bar.scss',\n shadow: true,\n})\nexport class SearchBar {\n @Prop() isOpen: boolean = true;\n @Prop() disabled: boolean = false;\n @State() internalState: boolean;\n @Prop({ mutable: true }) value: string;\n @Prop() maxlength?: number;\n @Event() ifxInput: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n @Prop() autocomplete: string = \"on\";\n @Element() el;\n\n @Method()\n async onNavbarMobile() {\n this.ifxOpen.emit(false)\n this.internalState = false;\n }\n\n @Watch('isOpen')\n handlePropChange() {\n this.internalState = this.isOpen;\n }\n\n handleCloseButton = () => {\n this.internalState = !this.internalState;\n this.ifxOpen.emit(this.internalState)\n }\n\n setInitialState() {\n this.internalState = this.isOpen;\n }\n\n \n\n componentWillLoad() {\n this.setInitialState();\n this.ifxOpen.emit(this.internalState)\n }\n\n\n handleInput(event: CustomEvent) {\n this.value = event.detail;\n }\n\n handleFocus = () => {\n this.internalState = true;\n }\n\n\n render() {\n return (\n <div aria-label='a search bar' aria-disabled={this.disabled} class={`search-bar ${this.internalState ? 'open' : 'closed'}`}>\n {this.internalState ? (\n <div class=\"search-bar-wrapper\">\n <ifx-search-field autocomplete={this.autocomplete} disabled={this.disabled} value={this.value} maxlength={this.maxlength} onIfxInput={this.handleInput.bind(this)}>\n <ifx-icon icon=\"search-16\" slot=\"search-icon\"></ifx-icon>\n </ifx-search-field>\n\n <a tabindex=\"-1\" href='javascript:void(0)' onClick={this.handleCloseButton}>Close</a>\n </div>\n ) : (\n <div class=\"search-bar__icon-wrapper\" onClick={this.handleCloseButton}>\n <ifx-icon icon=\"search-16\"></ifx-icon>\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAe,y2BACrB,MAAAC,EAAeD,E,MCOFE,EAAS,MALtB,WAAAC,CAAAC,G,8EAMUC,KAAAC,OAAkB,KAClBD,KAAAE,SAAoB,MAMnBF,KAAAG,aAAuB,KAchCH,KAAAI,kBAAoB,KAClBJ,KAAKK,eAAiBL,KAAKK,cAC3BL,KAAKM,QAAQC,KAAKP,KAAKK,cAAc,EAmBvCL,KAAAQ,YAAc,KACZR,KAAKK,cAAgB,IAAI,C,CAhC3B,oBAAMI,GACJT,KAAKM,QAAQC,KAAK,OAClBP,KAAKK,cAAgB,K,CAIvB,gBAAAK,GACEV,KAAKK,cAAgBL,KAAKC,M,CAQ5B,eAAAU,GACEX,KAAKK,cAAgBL,KAAKC,M,CAK5B,iBAAAW,GACEZ,KAAKW,kBACLX,KAAKM,QAAQC,KAAKP,KAAKK,c,CAIzB,WAAAQ,CAAYC,GACVd,KAAKe,MAAQD,EAAME,M,CAQrB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,eAAc,gBAAgBnB,KAAKE,SAAUkB,MAAO,cAAcpB,KAAKK,cAAgB,OAAS,YAC7GL,KAAKK,cACJa,EAAA,OAAKE,MAAM,sBACTF,EAAA,oBAAkBf,aAAcH,KAAKG,aAAcD,SAAUF,KAAKE,SAAUa,MAAOf,KAAKe,MAAOM,UAAWrB,KAAKqB,UAAWC,WAAYtB,KAAKa,YAAYU,KAAKvB,OAC1JkB,EAAA,YAAUM,KAAK,YAAYC,KAAK,iBAGlCP,EAAA,KAAGQ,SAAS,KAAKC,KAAK,qBAAqBC,QAAS5B,KAAKI,mBAAiB,UAG5Ec,EAAA,OAAKE,MAAM,2BAA2BQ,QAAS5B,KAAKI,mBAClDc,EAAA,YAAUM,KAAK,e","ignoreList":[]}
1
+ {"version":3,"names":["searchBarCss","IfxSearchBarStyle0","SearchBar","constructor","hostRef","this","isOpen","disabled","autocomplete","handleCloseButton","internalState","ifxOpen","emit","handleFocus","onNavbarMobile","handlePropChange","setInitialState","componentWillLoad","handleInput","event","value","detail","render","h","key","class","maxlength","onIfxInput","bind","icon","slot","tabindex","href","onClick"],"sources":["src/components/search-bar/search-bar.scss?tag=ifx-search-bar&encapsulation=shadow","src/components/search-bar/search-bar.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n width: 100%; //revert\n display: flex;\n}\n\n.search-bar {\n box-sizing: border-box;\n height: tokens.$ifxSize500;\n background-color: tokens.$ifxColorBaseWhite;\n display: flex;\n flex-direction: row;\n align-items: center;\n width: 100%;\n font-family: tokens.$ifxFontFamilyBody;\n\n &.closed {\n display: flex;\n width: auto;\n justify-content: flex-start;\n }\n\n & .search-bar-wrapper {\n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace200;\n width: 100%;\n\n & a {\n text-decoration: none;\n font-size: tokens.$ifxFontSizeM;\n font-style: normal;\n font-weight: tokens.$ifxFontWeightSemibold;\n line-height: tokens.$ifxLineHeightM;\n color: tokens.$ifxColorOcean500;\n cursor: pointer;\n }\n\n & ifx-search-field {\n width: 100%;\n }\n }\n\n .search-bar__icon-wrapper {\n display: none;\n flex-direction: row;\n align-items: center;\n\n & ifx-icon:hover {\n cursor: pointer;\n }\n }\n\n &.closed {\n .search-bar__icon-wrapper {\n display: flex;\n }\n\n .search-bar-wrapper {\n display: none;\n }\n }\n}","import { Component, h, Prop, Event, EventEmitter, State, Watch, Element, Method } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-search-bar',\n styleUrl: 'search-bar.scss',\n shadow: true,\n})\nexport class SearchBar {\n @Prop() isOpen: boolean = true;\n @Prop() disabled: boolean = false;\n @State() internalState: boolean;\n @Prop({ mutable: true }) value: string;\n @Prop() maxlength?: number;\n @Event() ifxInput: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n @Prop() autocomplete: string = \"on\";\n @Element() el;\n\n @Method()\n async onNavbarMobile() {\n this.ifxOpen.emit(false)\n this.internalState = false;\n }\n\n @Watch('isOpen')\n handlePropChange() {\n this.internalState = this.isOpen;\n }\n\n handleCloseButton = () => {\n this.internalState = !this.internalState;\n this.ifxOpen.emit(this.internalState)\n }\n\n setInitialState() {\n this.internalState = this.isOpen;\n }\n\n \n\n componentWillLoad() {\n this.setInitialState();\n this.ifxOpen.emit(this.internalState)\n }\n\n\n handleInput(event: CustomEvent) {\n this.value = event.detail;\n }\n\n handleFocus = () => {\n this.internalState = true;\n }\n\n\n render() {\n return (\n <div aria-label='a search bar' aria-disabled={this.disabled} class={`search-bar ${this.internalState ? 'open' : 'closed'}`}>\n {this.internalState ? (\n <div class=\"search-bar-wrapper\">\n <ifx-search-field autocomplete={this.autocomplete} disabled={this.disabled} value={this.value} maxlength={this.maxlength} onIfxInput={this.handleInput.bind(this)}>\n <ifx-icon icon=\"search-16\" slot=\"search-icon\"></ifx-icon>\n </ifx-search-field>\n\n <a tabindex=\"-1\" href='javascript:void(0)' onClick={this.handleCloseButton}>Close</a>\n </div>\n ) : (\n <div class=\"search-bar__icon-wrapper\" onClick={this.handleCloseButton}>\n <ifx-icon icon=\"search-16\"></ifx-icon>\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAe,s3BACrB,MAAAC,EAAeD,E,MCOFE,EAAS,MALtB,WAAAC,CAAAC,G,8EAMUC,KAAAC,OAAkB,KAClBD,KAAAE,SAAoB,MAMnBF,KAAAG,aAAuB,KAchCH,KAAAI,kBAAoB,KAClBJ,KAAKK,eAAiBL,KAAKK,cAC3BL,KAAKM,QAAQC,KAAKP,KAAKK,cAAc,EAmBvCL,KAAAQ,YAAc,KACZR,KAAKK,cAAgB,IAAI,C,CAhC3B,oBAAMI,GACJT,KAAKM,QAAQC,KAAK,OAClBP,KAAKK,cAAgB,K,CAIvB,gBAAAK,GACEV,KAAKK,cAAgBL,KAAKC,M,CAQ5B,eAAAU,GACEX,KAAKK,cAAgBL,KAAKC,M,CAK5B,iBAAAW,GACEZ,KAAKW,kBACLX,KAAKM,QAAQC,KAAKP,KAAKK,c,CAIzB,WAAAQ,CAAYC,GACVd,KAAKe,MAAQD,EAAME,M,CAQrB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,eAAc,gBAAgBnB,KAAKE,SAAUkB,MAAO,cAAcpB,KAAKK,cAAgB,OAAS,YAC7GL,KAAKK,cACJa,EAAA,OAAKE,MAAM,sBACTF,EAAA,oBAAkBf,aAAcH,KAAKG,aAAcD,SAAUF,KAAKE,SAAUa,MAAOf,KAAKe,MAAOM,UAAWrB,KAAKqB,UAAWC,WAAYtB,KAAKa,YAAYU,KAAKvB,OAC1JkB,EAAA,YAAUM,KAAK,YAAYC,KAAK,iBAGlCP,EAAA,KAAGQ,SAAS,KAAKC,KAAK,qBAAqBC,QAAS5B,KAAKI,mBAAiB,UAG5Ec,EAAA,OAAKE,MAAM,2BAA2BQ,QAAS5B,KAAKI,mBAClDc,EAAA,YAAUM,KAAK,e","ignoreList":[]}