@infineon/infineon-design-system-stencil 30.10.0--canary.1683.fe45f72105a11f62b600b213cc47953ca6da983c.0 → 30.10.0--canary.1690.ba52af7b19132ac2e9ab07b1d097d3a0d007941e.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 (823) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +1 -2
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ifx-alert.cjs.entry.js +4 -6
  4. package/dist/cjs/ifx-alert.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-badge.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-basic-table.cjs.entry.js +3 -7
  7. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +1 -3
  9. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +1 -2
  11. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -1
  13. package/dist/cjs/ifx-button.cjs.entry.js +8 -11
  14. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-card-headline.cjs.entry.js +1 -3
  16. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-card-image.cjs.entry.js +1 -4
  18. package/dist/cjs/ifx-card-image.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-card-links.cjs.entry.js +1 -1
  20. package/dist/cjs/ifx-card-overline.cjs.entry.js +1 -1
  21. package/dist/cjs/ifx-card-text.cjs.entry.js +1 -2
  22. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-card.cjs.entry.js +1 -5
  24. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-checkbox.cjs.entry.js +1 -4
  26. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-chip_3.cjs.entry.js +6 -7
  28. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +1 -2
  30. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ifx-content-switcher.cjs.entry.js +2 -3
  32. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-date-picker.cjs.entry.js +1 -7
  34. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +1 -1
  36. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +1 -2
  37. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +1 -1
  39. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +1 -1
  41. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +1 -3
  42. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +1 -1
  44. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ifx-dropdown.cjs.entry.js +4 -4
  46. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ifx-faq.cjs.entry.js +2 -2
  48. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +7 -8
  49. package/dist/cjs/ifx-filter-accordion.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ifx-filter-bar.cjs.entry.js +6 -7
  51. package/dist/cjs/ifx-filter-bar.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ifx-filter-search.cjs.entry.js +3 -7
  53. package/dist/cjs/ifx-filter-search.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +3 -3
  55. package/dist/cjs/ifx-filter-type-group.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
  57. package/dist/cjs/ifx-footer.cjs.entry.js +3 -3
  58. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -6
  60. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ifx-icon.cjs.entry.js +1 -2
  62. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -2
  64. package/dist/cjs/ifx-icons-preview.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-link.cjs.entry.js +1 -2
  66. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-list-entry.cjs.entry.js +2 -5
  68. package/dist/cjs/ifx-list-entry.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-list.cjs.entry.js +9 -10
  70. package/dist/cjs/ifx-list.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-modal.cjs.entry.js +12 -12
  72. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +24 -39
  74. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ifx-navbar-item.cjs.entry.js +17 -5
  76. package/dist/cjs/ifx-navbar-item.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +9 -9
  78. package/dist/cjs/ifx-navbar-profile.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-navbar.cjs.entry.js +4 -5
  80. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-notification.cjs.entry.js +3 -6
  82. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ifx-number-indicator.cjs.entry.js +2 -2
  84. package/dist/cjs/ifx-number-indicator.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ifx-overview-table.cjs.entry.js +2 -2
  86. package/dist/cjs/ifx-progress-bar.cjs.entry.js +2 -4
  87. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ifx-radio-button.cjs.entry.js +3 -7
  89. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ifx-search-bar.cjs.entry.js +4 -7
  91. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ifx-search-field.cjs.entry.js +11 -11
  93. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ifx-segment.cjs.entry.js +2 -5
  95. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ifx-segmented-control.cjs.entry.js +4 -4
  97. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ifx-select.cjs.entry.js +5 -47
  99. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ifx-set-filter.cjs.entry.js +1 -5
  101. package/dist/cjs/ifx-set-filter.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +8 -10
  103. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +2 -2
  105. package/dist/cjs/ifx-sidebar.cjs.entry.js +6 -6
  106. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ifx-slider.cjs.entry.js +3 -10
  108. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ifx-spinner.cjs.entry.js +3 -5
  110. package/dist/cjs/ifx-spinner.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ifx-status.cjs.entry.js +2 -3
  112. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ifx-step.cjs.entry.js +5 -6
  114. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ifx-stepper.cjs.entry.js +3 -4
  116. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ifx-switch.cjs.entry.js +2 -3
  118. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  119. package/dist/cjs/ifx-tab.cjs.entry.js +2 -4
  120. package/dist/cjs/ifx-tab.cjs.entry.js.map +1 -1
  121. package/dist/cjs/ifx-table.cjs.entry.js +6 -10
  122. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  123. package/dist/cjs/ifx-tabs.cjs.entry.js +3 -4
  124. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  125. package/dist/cjs/ifx-tag.cjs.entry.js +2 -3
  126. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  127. package/dist/cjs/ifx-textarea.cjs.entry.js +3 -11
  128. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  129. package/dist/cjs/ifx-tooltip.cjs.entry.js +11 -12
  130. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  131. package/dist/cjs/{index-af3b4f6c.js → index-e489135e.js} +379 -335
  132. package/dist/cjs/index-e489135e.js.map +1 -0
  133. package/dist/cjs/infineon-design-system-stencil.cjs.js +3 -3
  134. package/dist/cjs/infineon-design-system-stencil.cjs.js.map +1 -1
  135. package/dist/cjs/loader.cjs.js +2 -2
  136. package/dist/collection/collection-manifest.json +1 -1
  137. package/dist/collection/components/accordion/accordion.js.map +1 -1
  138. package/dist/collection/components/accordion/accordionItem.js +0 -1
  139. package/dist/collection/components/accordion/accordionItem.js.map +1 -1
  140. package/dist/collection/components/alert/alert.js +3 -5
  141. package/dist/collection/components/alert/alert.js.map +1 -1
  142. package/dist/collection/components/breadcrumb/breadcrumb-item-label.js +0 -2
  143. package/dist/collection/components/breadcrumb/breadcrumb-item-label.js.map +1 -1
  144. package/dist/collection/components/breadcrumb/breadcrumb-item.js +0 -1
  145. package/dist/collection/components/breadcrumb/breadcrumb-item.js.map +1 -1
  146. package/dist/collection/components/button/button.js +7 -10
  147. package/dist/collection/components/button/button.js.map +1 -1
  148. package/dist/collection/components/card/card-headline/card-headline.js +0 -4
  149. package/dist/collection/components/card/card-headline/card-headline.js.map +1 -1
  150. package/dist/collection/components/card/card-image/card-image.js +0 -5
  151. package/dist/collection/components/card/card-image/card-image.js.map +1 -1
  152. package/dist/collection/components/card/card-text/card-text.js +0 -3
  153. package/dist/collection/components/card/card-text/card-text.js.map +1 -1
  154. package/dist/collection/components/card/card.js +0 -4
  155. package/dist/collection/components/card/card.js.map +1 -1
  156. package/dist/collection/components/checkbox/checkbox.js +0 -3
  157. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  158. package/dist/collection/components/chip/chip-item/chip-item.js.map +1 -1
  159. package/dist/collection/components/chip/chip.js +0 -1
  160. package/dist/collection/components/chip/chip.js.map +1 -1
  161. package/dist/collection/components/content-switcher/content-switcher-item.js +0 -1
  162. package/dist/collection/components/content-switcher/content-switcher-item.js.map +1 -1
  163. package/dist/collection/components/content-switcher/content-switcher.js +1 -2
  164. package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
  165. package/dist/collection/components/date-picker/date-picker.js +0 -6
  166. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  167. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.js +0 -1
  168. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.js.map +1 -1
  169. package/dist/collection/components/dropdown/dropdown-menu/dropdown-menu.js.map +1 -1
  170. package/dist/collection/components/dropdown/dropdown-trigger/dropdown-trigger.js.map +1 -1
  171. package/dist/collection/components/dropdown/dropdown-trigger-button/dropdown-trigger-button.js +0 -2
  172. package/dist/collection/components/dropdown/dropdown-trigger-button/dropdown-trigger-button.js.map +1 -1
  173. package/dist/collection/components/dropdown/dropdown.js +3 -3
  174. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  175. package/dist/collection/components/footer/footer.js +2 -2
  176. package/dist/collection/components/footer/footer.js.map +1 -1
  177. package/dist/collection/components/icon/infineonIconStencil.js +0 -1
  178. package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
  179. package/dist/collection/components/icon-button/icon-button.js +0 -5
  180. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  181. package/dist/collection/components/icons-preview/icons-preview.js +0 -1
  182. package/dist/collection/components/icons-preview/icons-preview.js.map +1 -1
  183. package/dist/collection/components/link/link.js +0 -1
  184. package/dist/collection/components/link/link.js.map +1 -1
  185. package/dist/collection/components/modal/modal.js +11 -11
  186. package/dist/collection/components/modal/modal.js.map +1 -1
  187. package/dist/collection/components/navigation/navbar/navbar-item.css +5 -0
  188. package/dist/collection/components/navigation/navbar/navbar-item.js +34 -3
  189. package/dist/collection/components/navigation/navbar/navbar-item.js.map +1 -1
  190. package/dist/collection/components/navigation/navbar/navbar-profile.js +7 -7
  191. package/dist/collection/components/navigation/navbar/navbar-profile.js.map +1 -1
  192. package/dist/collection/components/navigation/navbar/navbar.js +3 -4
  193. package/dist/collection/components/navigation/navbar/navbar.js.map +1 -1
  194. package/dist/collection/components/navigation/sidebar/sidebar-item.js +7 -9
  195. package/dist/collection/components/navigation/sidebar/sidebar-item.js.map +1 -1
  196. package/dist/collection/components/navigation/sidebar/sidebar-title.js +1 -1
  197. package/dist/collection/components/navigation/sidebar/sidebar.js +5 -5
  198. package/dist/collection/components/navigation/sidebar/sidebar.js.map +1 -1
  199. package/dist/collection/components/notification/notification.js +2 -5
  200. package/dist/collection/components/notification/notification.js.map +1 -1
  201. package/dist/collection/components/number-indicator/number-indicator.js +1 -1
  202. package/dist/collection/components/number-indicator/number-indicator.js.map +1 -1
  203. package/dist/collection/components/overview-table/overview-table.js +1 -1
  204. package/dist/collection/components/pagination/pagination.js +5 -5
  205. package/dist/collection/components/pagination/pagination.js.map +1 -1
  206. package/dist/collection/components/progress-bar/progress-bar.js +1 -3
  207. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  208. package/dist/collection/components/radio-button/radio-button.js +2 -6
  209. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  210. package/dist/collection/components/search-bar/search-bar.js +3 -6
  211. package/dist/collection/components/search-bar/search-bar.js.map +1 -1
  212. package/dist/collection/components/search-field/search-field.js +10 -10
  213. package/dist/collection/components/search-field/search-field.js.map +1 -1
  214. package/dist/collection/components/segmented-control/segment/segment.js +1 -4
  215. package/dist/collection/components/segmented-control/segment/segment.js.map +1 -1
  216. package/dist/collection/components/segmented-control/segmented-control.js +3 -3
  217. package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
  218. package/dist/collection/components/select/multi-select/multiselect.js +19 -33
  219. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  220. package/dist/collection/components/select/single-select/select.js +4 -46
  221. package/dist/collection/components/select/single-select/select.js.map +1 -1
  222. package/dist/collection/components/slider/slider.js +2 -9
  223. package/dist/collection/components/slider/slider.js.map +1 -1
  224. package/dist/collection/components/spinner/spinner.js +2 -4
  225. package/dist/collection/components/spinner/spinner.js.map +1 -1
  226. package/dist/collection/components/status/status.js +1 -2
  227. package/dist/collection/components/status/status.js.map +1 -1
  228. package/dist/collection/components/stepper/step/step.js +4 -5
  229. package/dist/collection/components/stepper/step/step.js.map +1 -1
  230. package/dist/collection/components/stepper/stepper.js +2 -3
  231. package/dist/collection/components/stepper/stepper.js.map +1 -1
  232. package/dist/collection/components/switch/switch.js +1 -2
  233. package/dist/collection/components/switch/switch.js.map +1 -1
  234. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +5 -6
  235. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js.map +1 -1
  236. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +6 -7
  237. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js.map +1 -1
  238. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +2 -6
  239. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js.map +1 -1
  240. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js +2 -2
  241. package/dist/collection/components/table-advanced-version/filter-type-group/filter-type-group.js.map +1 -1
  242. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +1 -6
  243. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js.map +1 -1
  244. package/dist/collection/components/table-advanced-version/list/list.js +8 -9
  245. package/dist/collection/components/table-advanced-version/list/list.js.map +1 -1
  246. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js +0 -4
  247. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js.map +1 -1
  248. package/dist/collection/components/table-advanced-version/table.js +5 -9
  249. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  250. package/dist/collection/components/table-basic-version/table.js +2 -6
  251. package/dist/collection/components/table-basic-version/table.js.map +1 -1
  252. package/dist/collection/components/tabs/tab.js +1 -3
  253. package/dist/collection/components/tabs/tab.js.map +1 -1
  254. package/dist/collection/components/tabs/tabs.js +2 -3
  255. package/dist/collection/components/tabs/tabs.js.map +1 -1
  256. package/dist/collection/components/tag/tag.js +1 -4
  257. package/dist/collection/components/tag/tag.js.map +1 -1
  258. package/dist/collection/components/text-field/text-field.js +4 -5
  259. package/dist/collection/components/text-field/text-field.js.map +1 -1
  260. package/dist/collection/components/textarea/textarea.js +2 -10
  261. package/dist/collection/components/textarea/textarea.js.map +1 -1
  262. package/dist/collection/components/tooltip/tooltip.js +10 -11
  263. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  264. package/dist/collection/stories/setup-and-installation/faq/faq.js +1 -1
  265. package/dist/components/ifx-accordion-item.js +1 -1
  266. package/dist/components/ifx-accordion.js +1 -1
  267. package/dist/components/ifx-alert.js +5 -7
  268. package/dist/components/ifx-alert.js.map +1 -1
  269. package/dist/components/ifx-badge.js +1 -1
  270. package/dist/components/ifx-basic-table.js +3 -7
  271. package/dist/components/ifx-basic-table.js.map +1 -1
  272. package/dist/components/ifx-breadcrumb-item-label.js +2 -4
  273. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  274. package/dist/components/ifx-breadcrumb-item.js +1 -2
  275. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  276. package/dist/components/ifx-breadcrumb.js +1 -1
  277. package/dist/components/ifx-button.js +1 -1
  278. package/dist/components/ifx-card-headline.js +1 -3
  279. package/dist/components/ifx-card-headline.js.map +1 -1
  280. package/dist/components/ifx-card-image.js +1 -4
  281. package/dist/components/ifx-card-image.js.map +1 -1
  282. package/dist/components/ifx-card-links.js +1 -1
  283. package/dist/components/ifx-card-overline.js +1 -1
  284. package/dist/components/ifx-card-text.js +1 -2
  285. package/dist/components/ifx-card-text.js.map +1 -1
  286. package/dist/components/ifx-card.js +1 -5
  287. package/dist/components/ifx-card.js.map +1 -1
  288. package/dist/components/ifx-checkbox.js +1 -1
  289. package/dist/components/ifx-chip-item.js +1 -1
  290. package/dist/components/ifx-chip.js +1 -1
  291. package/dist/components/ifx-content-switcher-item.js +1 -2
  292. package/dist/components/ifx-content-switcher-item.js.map +1 -1
  293. package/dist/components/ifx-content-switcher.js +2 -3
  294. package/dist/components/ifx-content-switcher.js.map +1 -1
  295. package/dist/components/ifx-date-picker.js +2 -8
  296. package/dist/components/ifx-date-picker.js.map +1 -1
  297. package/dist/components/ifx-dropdown-header.js +1 -1
  298. package/dist/components/ifx-dropdown-item.js +2 -3
  299. package/dist/components/ifx-dropdown-item.js.map +1 -1
  300. package/dist/components/ifx-dropdown-menu.js +1 -1
  301. package/dist/components/ifx-dropdown-menu.js.map +1 -1
  302. package/dist/components/ifx-dropdown-separator.js +1 -1
  303. package/dist/components/ifx-dropdown-trigger-button.js +3 -5
  304. package/dist/components/ifx-dropdown-trigger-button.js.map +1 -1
  305. package/dist/components/ifx-dropdown-trigger.js +1 -1
  306. package/dist/components/ifx-dropdown-trigger.js.map +1 -1
  307. package/dist/components/ifx-dropdown.js +4 -4
  308. package/dist/components/ifx-dropdown.js.map +1 -1
  309. package/dist/components/ifx-faq.js +5 -5
  310. package/dist/components/ifx-filter-accordion.js +9 -10
  311. package/dist/components/ifx-filter-accordion.js.map +1 -1
  312. package/dist/components/ifx-filter-bar.js +8 -9
  313. package/dist/components/ifx-filter-bar.js.map +1 -1
  314. package/dist/components/ifx-filter-search.js +5 -9
  315. package/dist/components/ifx-filter-search.js.map +1 -1
  316. package/dist/components/ifx-filter-type-group.js +3 -3
  317. package/dist/components/ifx-filter-type-group.js.map +1 -1
  318. package/dist/components/ifx-footer-column.js +1 -1
  319. package/dist/components/ifx-footer.js +3 -3
  320. package/dist/components/ifx-footer.js.map +1 -1
  321. package/dist/components/ifx-icon-button.js +1 -1
  322. package/dist/components/ifx-icon.js +1 -1
  323. package/dist/components/ifx-icons-preview.js +2 -3
  324. package/dist/components/ifx-icons-preview.js.map +1 -1
  325. package/dist/components/ifx-link.js +1 -1
  326. package/dist/components/ifx-list-entry.js +5 -8
  327. package/dist/components/ifx-list-entry.js.map +1 -1
  328. package/dist/components/ifx-list.js +11 -12
  329. package/dist/components/ifx-list.js.map +1 -1
  330. package/dist/components/ifx-modal.js +14 -14
  331. package/dist/components/ifx-modal.js.map +1 -1
  332. package/dist/components/ifx-multiselect.js +1 -1
  333. package/dist/components/ifx-navbar-item.js +26 -7
  334. package/dist/components/ifx-navbar-item.js.map +1 -1
  335. package/dist/components/ifx-navbar-profile.js +9 -9
  336. package/dist/components/ifx-navbar-profile.js.map +1 -1
  337. package/dist/components/ifx-navbar.js +5 -6
  338. package/dist/components/ifx-navbar.js.map +1 -1
  339. package/dist/components/ifx-notification.js +5 -8
  340. package/dist/components/ifx-notification.js.map +1 -1
  341. package/dist/components/ifx-number-indicator.js +1 -1
  342. package/dist/components/ifx-overview-table.js +5 -5
  343. package/dist/components/ifx-pagination.js +1 -1
  344. package/dist/components/ifx-progress-bar.js +2 -4
  345. package/dist/components/ifx-progress-bar.js.map +1 -1
  346. package/dist/components/ifx-radio-button.js +1 -1
  347. package/dist/components/ifx-search-bar.js +6 -9
  348. package/dist/components/ifx-search-bar.js.map +1 -1
  349. package/dist/components/ifx-search-field.js +1 -1
  350. package/dist/components/ifx-segment.js +3 -6
  351. package/dist/components/ifx-segment.js.map +1 -1
  352. package/dist/components/ifx-segmented-control.js +5 -5
  353. package/dist/components/ifx-segmented-control.js.map +1 -1
  354. package/dist/components/ifx-select.js +1 -1
  355. package/dist/components/ifx-set-filter.js +7 -11
  356. package/dist/components/ifx-set-filter.js.map +1 -1
  357. package/dist/components/ifx-sidebar-item.js +10 -12
  358. package/dist/components/ifx-sidebar-item.js.map +1 -1
  359. package/dist/components/ifx-sidebar-title.js +2 -2
  360. package/dist/components/ifx-sidebar.js +6 -6
  361. package/dist/components/ifx-sidebar.js.map +1 -1
  362. package/dist/components/ifx-slider.js +4 -11
  363. package/dist/components/ifx-slider.js.map +1 -1
  364. package/dist/components/ifx-spinner.js +3 -5
  365. package/dist/components/ifx-spinner.js.map +1 -1
  366. package/dist/components/ifx-status.js +2 -3
  367. package/dist/components/ifx-status.js.map +1 -1
  368. package/dist/components/ifx-step.js +6 -7
  369. package/dist/components/ifx-step.js.map +1 -1
  370. package/dist/components/ifx-stepper.js +3 -4
  371. package/dist/components/ifx-stepper.js.map +1 -1
  372. package/dist/components/ifx-switch.js +2 -3
  373. package/dist/components/ifx-switch.js.map +1 -1
  374. package/dist/components/ifx-tab.js +2 -4
  375. package/dist/components/ifx-tab.js.map +1 -1
  376. package/dist/components/ifx-table.js +15 -19
  377. package/dist/components/ifx-table.js.map +1 -1
  378. package/dist/components/ifx-tabs.js +4 -5
  379. package/dist/components/ifx-tabs.js.map +1 -1
  380. package/dist/components/ifx-tag.js +3 -4
  381. package/dist/components/ifx-tag.js.map +1 -1
  382. package/dist/components/ifx-text-field.js +1 -1
  383. package/dist/components/ifx-textarea.js +3 -11
  384. package/dist/components/ifx-textarea.js.map +1 -1
  385. package/dist/components/ifx-tooltip.js +12 -13
  386. package/dist/components/ifx-tooltip.js.map +1 -1
  387. package/dist/components/index.js +1 -1
  388. package/dist/components/{p-cfb87c4d.js → p-17926343.js} +2 -3
  389. package/dist/components/p-17926343.js.map +1 -0
  390. package/dist/components/{p-b2439194.js → p-1ab9570f.js} +3 -4
  391. package/dist/components/p-1ab9570f.js.map +1 -0
  392. package/dist/components/{p-68d90201.js → p-35713bcf.js} +347 -317
  393. package/dist/components/p-35713bcf.js.map +1 -0
  394. package/dist/components/{p-7bbdeac1.js → p-3c385a21.js} +4 -8
  395. package/dist/components/p-3c385a21.js.map +1 -0
  396. package/dist/components/{p-8eed2f39.js → p-3eb62a9b.js} +3 -8
  397. package/dist/components/p-3eb62a9b.js.map +1 -0
  398. package/dist/components/{p-23cdd5a7.js → p-529e994b.js} +4 -4
  399. package/dist/components/p-529e994b.js.map +1 -0
  400. package/dist/components/{p-2f1e7628.js → p-5d412a3d.js} +10 -10
  401. package/dist/components/p-5d412a3d.js.map +1 -0
  402. package/dist/components/{p-d57db1c4.js → p-743afd44.js} +13 -13
  403. package/dist/components/p-743afd44.js.map +1 -0
  404. package/dist/components/{p-11922b8b.js → p-7ffb8d15.js} +7 -49
  405. package/dist/components/p-7ffb8d15.js.map +1 -0
  406. package/dist/components/{p-4b3befbf.js → p-920ceb71.js} +2 -2
  407. package/dist/components/{p-4b3befbf.js.map → p-920ceb71.js.map} +1 -1
  408. package/dist/components/{p-9ee4ea24.js → p-9bb5a60b.js} +3 -3
  409. package/dist/components/p-9bb5a60b.js.map +1 -0
  410. package/dist/components/{p-d0a26bd5.js → p-af1f8464.js} +9 -12
  411. package/dist/components/p-af1f8464.js.map +1 -0
  412. package/dist/components/{p-a6c2cb8b.js → p-b901072e.js} +24 -38
  413. package/dist/components/p-b901072e.js.map +1 -0
  414. package/dist/components/{p-094bb435.js → p-c194f64d.js} +2 -2
  415. package/dist/components/p-c194f64d.js.map +1 -0
  416. package/dist/components/{p-12e02e47.js → p-cdde9de5.js} +7 -8
  417. package/dist/components/p-cdde9de5.js.map +1 -0
  418. package/dist/components/{p-c1f3a68c.js → p-d2a01d2b.js} +4 -5
  419. package/dist/components/p-d2a01d2b.js.map +1 -0
  420. package/dist/components/{p-f0f583d5.js → p-eab00c46.js} +3 -6
  421. package/dist/components/p-eab00c46.js.map +1 -0
  422. package/dist/components/{p-7e430b83.js → p-eee401ca.js} +2 -3
  423. package/dist/components/p-eee401ca.js.map +1 -0
  424. package/dist/esm/ifx-accordion_2.entry.js +1 -2
  425. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  426. package/dist/esm/ifx-alert.entry.js +4 -6
  427. package/dist/esm/ifx-alert.entry.js.map +1 -1
  428. package/dist/esm/ifx-badge.entry.js +1 -1
  429. package/dist/esm/ifx-basic-table.entry.js +3 -7
  430. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  431. package/dist/esm/ifx-breadcrumb-item-label.entry.js +1 -3
  432. package/dist/esm/ifx-breadcrumb-item-label.entry.js.map +1 -1
  433. package/dist/esm/ifx-breadcrumb-item.entry.js +1 -2
  434. package/dist/esm/ifx-breadcrumb-item.entry.js.map +1 -1
  435. package/dist/esm/ifx-breadcrumb.entry.js +1 -1
  436. package/dist/esm/ifx-button.entry.js +8 -11
  437. package/dist/esm/ifx-button.entry.js.map +1 -1
  438. package/dist/esm/ifx-card-headline.entry.js +1 -3
  439. package/dist/esm/ifx-card-headline.entry.js.map +1 -1
  440. package/dist/esm/ifx-card-image.entry.js +1 -4
  441. package/dist/esm/ifx-card-image.entry.js.map +1 -1
  442. package/dist/esm/ifx-card-links.entry.js +1 -1
  443. package/dist/esm/ifx-card-overline.entry.js +1 -1
  444. package/dist/esm/ifx-card-text.entry.js +1 -2
  445. package/dist/esm/ifx-card-text.entry.js.map +1 -1
  446. package/dist/esm/ifx-card.entry.js +1 -5
  447. package/dist/esm/ifx-card.entry.js.map +1 -1
  448. package/dist/esm/ifx-checkbox.entry.js +1 -4
  449. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  450. package/dist/esm/ifx-chip_3.entry.js +6 -7
  451. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  452. package/dist/esm/ifx-content-switcher-item.entry.js +1 -2
  453. package/dist/esm/ifx-content-switcher-item.entry.js.map +1 -1
  454. package/dist/esm/ifx-content-switcher.entry.js +2 -3
  455. package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
  456. package/dist/esm/ifx-date-picker.entry.js +1 -7
  457. package/dist/esm/ifx-date-picker.entry.js.map +1 -1
  458. package/dist/esm/ifx-dropdown-header.entry.js +1 -1
  459. package/dist/esm/ifx-dropdown-item.entry.js +1 -2
  460. package/dist/esm/ifx-dropdown-item.entry.js.map +1 -1
  461. package/dist/esm/ifx-dropdown-menu.entry.js +1 -1
  462. package/dist/esm/ifx-dropdown-menu.entry.js.map +1 -1
  463. package/dist/esm/ifx-dropdown-separator.entry.js +1 -1
  464. package/dist/esm/ifx-dropdown-trigger-button.entry.js +1 -3
  465. package/dist/esm/ifx-dropdown-trigger-button.entry.js.map +1 -1
  466. package/dist/esm/ifx-dropdown-trigger.entry.js +1 -1
  467. package/dist/esm/ifx-dropdown-trigger.entry.js.map +1 -1
  468. package/dist/esm/ifx-dropdown.entry.js +4 -4
  469. package/dist/esm/ifx-dropdown.entry.js.map +1 -1
  470. package/dist/esm/ifx-faq.entry.js +2 -2
  471. package/dist/esm/ifx-filter-accordion.entry.js +7 -8
  472. package/dist/esm/ifx-filter-accordion.entry.js.map +1 -1
  473. package/dist/esm/ifx-filter-bar.entry.js +6 -7
  474. package/dist/esm/ifx-filter-bar.entry.js.map +1 -1
  475. package/dist/esm/ifx-filter-search.entry.js +3 -7
  476. package/dist/esm/ifx-filter-search.entry.js.map +1 -1
  477. package/dist/esm/ifx-filter-type-group.entry.js +3 -3
  478. package/dist/esm/ifx-filter-type-group.entry.js.map +1 -1
  479. package/dist/esm/ifx-footer-column.entry.js +1 -1
  480. package/dist/esm/ifx-footer.entry.js +3 -3
  481. package/dist/esm/ifx-footer.entry.js.map +1 -1
  482. package/dist/esm/ifx-icon-button.entry.js +1 -6
  483. package/dist/esm/ifx-icon-button.entry.js.map +1 -1
  484. package/dist/esm/ifx-icon.entry.js +1 -2
  485. package/dist/esm/ifx-icon.entry.js.map +1 -1
  486. package/dist/esm/ifx-icons-preview.entry.js +1 -2
  487. package/dist/esm/ifx-icons-preview.entry.js.map +1 -1
  488. package/dist/esm/ifx-link.entry.js +1 -2
  489. package/dist/esm/ifx-link.entry.js.map +1 -1
  490. package/dist/esm/ifx-list-entry.entry.js +2 -5
  491. package/dist/esm/ifx-list-entry.entry.js.map +1 -1
  492. package/dist/esm/ifx-list.entry.js +9 -10
  493. package/dist/esm/ifx-list.entry.js.map +1 -1
  494. package/dist/esm/ifx-modal.entry.js +12 -12
  495. package/dist/esm/ifx-modal.entry.js.map +1 -1
  496. package/dist/esm/ifx-multiselect_2.entry.js +24 -39
  497. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -1
  498. package/dist/esm/ifx-navbar-item.entry.js +17 -5
  499. package/dist/esm/ifx-navbar-item.entry.js.map +1 -1
  500. package/dist/esm/ifx-navbar-profile.entry.js +9 -9
  501. package/dist/esm/ifx-navbar-profile.entry.js.map +1 -1
  502. package/dist/esm/ifx-navbar.entry.js +4 -5
  503. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  504. package/dist/esm/ifx-notification.entry.js +3 -6
  505. package/dist/esm/ifx-notification.entry.js.map +1 -1
  506. package/dist/esm/ifx-number-indicator.entry.js +2 -2
  507. package/dist/esm/ifx-number-indicator.entry.js.map +1 -1
  508. package/dist/esm/ifx-overview-table.entry.js +2 -2
  509. package/dist/esm/ifx-progress-bar.entry.js +2 -4
  510. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  511. package/dist/esm/ifx-radio-button.entry.js +3 -7
  512. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  513. package/dist/esm/ifx-search-bar.entry.js +4 -7
  514. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  515. package/dist/esm/ifx-search-field.entry.js +11 -11
  516. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  517. package/dist/esm/ifx-segment.entry.js +2 -5
  518. package/dist/esm/ifx-segment.entry.js.map +1 -1
  519. package/dist/esm/ifx-segmented-control.entry.js +4 -4
  520. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  521. package/dist/esm/ifx-select.entry.js +5 -47
  522. package/dist/esm/ifx-select.entry.js.map +1 -1
  523. package/dist/esm/ifx-set-filter.entry.js +1 -5
  524. package/dist/esm/ifx-set-filter.entry.js.map +1 -1
  525. package/dist/esm/ifx-sidebar-item.entry.js +8 -10
  526. package/dist/esm/ifx-sidebar-item.entry.js.map +1 -1
  527. package/dist/esm/ifx-sidebar-title.entry.js +2 -2
  528. package/dist/esm/ifx-sidebar.entry.js +6 -6
  529. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  530. package/dist/esm/ifx-slider.entry.js +3 -10
  531. package/dist/esm/ifx-slider.entry.js.map +1 -1
  532. package/dist/esm/ifx-spinner.entry.js +3 -5
  533. package/dist/esm/ifx-spinner.entry.js.map +1 -1
  534. package/dist/esm/ifx-status.entry.js +2 -3
  535. package/dist/esm/ifx-status.entry.js.map +1 -1
  536. package/dist/esm/ifx-step.entry.js +5 -6
  537. package/dist/esm/ifx-step.entry.js.map +1 -1
  538. package/dist/esm/ifx-stepper.entry.js +3 -4
  539. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  540. package/dist/esm/ifx-switch.entry.js +2 -3
  541. package/dist/esm/ifx-switch.entry.js.map +1 -1
  542. package/dist/esm/ifx-tab.entry.js +2 -4
  543. package/dist/esm/ifx-tab.entry.js.map +1 -1
  544. package/dist/esm/ifx-table.entry.js +6 -10
  545. package/dist/esm/ifx-table.entry.js.map +1 -1
  546. package/dist/esm/ifx-tabs.entry.js +3 -4
  547. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  548. package/dist/esm/ifx-tag.entry.js +2 -3
  549. package/dist/esm/ifx-tag.entry.js.map +1 -1
  550. package/dist/esm/ifx-textarea.entry.js +3 -11
  551. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  552. package/dist/esm/ifx-tooltip.entry.js +11 -12
  553. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  554. package/dist/esm/{index-dc4139fb.js → index-12dad3f6.js} +379 -335
  555. package/dist/esm/index-12dad3f6.js.map +1 -0
  556. package/dist/esm/infineon-design-system-stencil.js +4 -4
  557. package/dist/esm/infineon-design-system-stencil.js.map +1 -1
  558. package/dist/esm/loader.js +3 -3
  559. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  560. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  561. package/dist/infineon-design-system-stencil/p-017646bb.entry.js +2 -0
  562. package/dist/infineon-design-system-stencil/p-017646bb.entry.js.map +1 -0
  563. package/dist/infineon-design-system-stencil/{p-ce413596.entry.js → p-0179cb3c.entry.js} +2 -2
  564. package/dist/infineon-design-system-stencil/p-0179cb3c.entry.js.map +1 -0
  565. package/dist/infineon-design-system-stencil/p-04cb8ce1.entry.js +2 -0
  566. package/dist/infineon-design-system-stencil/{p-4b21c0e6.entry.js → p-095df841.entry.js} +2 -2
  567. package/dist/infineon-design-system-stencil/p-095df841.entry.js.map +1 -0
  568. package/dist/infineon-design-system-stencil/p-0acaa8e4.entry.js +2 -0
  569. package/dist/infineon-design-system-stencil/p-0acaa8e4.entry.js.map +1 -0
  570. package/dist/infineon-design-system-stencil/p-0dbb987b.entry.js +2 -0
  571. package/dist/infineon-design-system-stencil/p-0dbb987b.entry.js.map +1 -0
  572. package/dist/infineon-design-system-stencil/{p-f8d7bbe2.entry.js → p-0df2cba0.entry.js} +2 -2
  573. package/dist/infineon-design-system-stencil/p-0df2cba0.entry.js.map +1 -0
  574. package/dist/infineon-design-system-stencil/{p-51980b19.entry.js → p-11580775.entry.js} +2 -2
  575. package/dist/infineon-design-system-stencil/{p-584149bd.entry.js → p-16390b05.entry.js} +2 -2
  576. package/dist/infineon-design-system-stencil/p-16390b05.entry.js.map +1 -0
  577. package/dist/infineon-design-system-stencil/p-1c30b34d.entry.js +2 -0
  578. package/dist/infineon-design-system-stencil/p-1c30b34d.entry.js.map +1 -0
  579. package/dist/infineon-design-system-stencil/p-1ce3acf6.entry.js +2 -0
  580. package/dist/infineon-design-system-stencil/p-1ce3acf6.entry.js.map +1 -0
  581. package/dist/infineon-design-system-stencil/p-1d2f0317.entry.js +2 -0
  582. package/dist/infineon-design-system-stencil/p-1d2f0317.entry.js.map +1 -0
  583. package/dist/infineon-design-system-stencil/p-200783c7.entry.js +2 -0
  584. package/dist/infineon-design-system-stencil/p-200783c7.entry.js.map +1 -0
  585. package/dist/infineon-design-system-stencil/p-23c0b40c.entry.js +2 -0
  586. package/dist/infineon-design-system-stencil/p-23c0b40c.entry.js.map +1 -0
  587. package/dist/infineon-design-system-stencil/p-2bae45cd.entry.js +2 -0
  588. package/dist/infineon-design-system-stencil/p-2bae45cd.entry.js.map +1 -0
  589. package/dist/infineon-design-system-stencil/{p-c5daebfa.entry.js → p-2fda77a8.entry.js} +2 -2
  590. package/dist/infineon-design-system-stencil/p-2fda77a8.entry.js.map +1 -0
  591. package/dist/infineon-design-system-stencil/{p-8a497a15.entry.js → p-343b4066.entry.js} +2 -2
  592. package/dist/infineon-design-system-stencil/{p-00d6e46e.entry.js → p-347e0acb.entry.js} +2 -2
  593. package/dist/infineon-design-system-stencil/p-347e0acb.entry.js.map +1 -0
  594. package/dist/infineon-design-system-stencil/p-385a8dea.entry.js +2 -0
  595. package/dist/infineon-design-system-stencil/p-385a8dea.entry.js.map +1 -0
  596. package/dist/infineon-design-system-stencil/{p-5c6d5571.entry.js → p-3a9bfb8e.entry.js} +2 -2
  597. package/dist/infineon-design-system-stencil/p-3a9bfb8e.entry.js.map +1 -0
  598. package/dist/infineon-design-system-stencil/p-3c8282e0.entry.js +2 -0
  599. package/dist/infineon-design-system-stencil/p-3c8282e0.entry.js.map +1 -0
  600. package/dist/infineon-design-system-stencil/p-3db8a83d.entry.js +2 -0
  601. package/dist/infineon-design-system-stencil/p-3db8a83d.entry.js.map +1 -0
  602. package/dist/infineon-design-system-stencil/p-3e18845b.entry.js +2 -0
  603. package/dist/infineon-design-system-stencil/{p-91f91586.entry.js → p-3f85ba19.entry.js} +2 -2
  604. package/dist/infineon-design-system-stencil/p-3f85ba19.entry.js.map +1 -0
  605. package/dist/infineon-design-system-stencil/{p-a8ccf376.entry.js → p-452b2e42.entry.js} +2 -2
  606. package/dist/infineon-design-system-stencil/{p-bc8a4226.entry.js → p-49939261.entry.js} +2 -2
  607. package/dist/infineon-design-system-stencil/p-49939261.entry.js.map +1 -0
  608. package/dist/infineon-design-system-stencil/p-4baf201d.entry.js +2 -0
  609. package/dist/infineon-design-system-stencil/{p-51c4e760.entry.js.map → p-4baf201d.entry.js.map} +1 -1
  610. package/dist/infineon-design-system-stencil/{p-6fdc1a34.entry.js → p-4d7cdf87.entry.js} +2 -2
  611. package/dist/infineon-design-system-stencil/p-4d7cdf87.entry.js.map +1 -0
  612. package/dist/infineon-design-system-stencil/{p-db09429f.entry.js → p-52b61a69.entry.js} +2 -2
  613. package/dist/infineon-design-system-stencil/p-52b61a69.entry.js.map +1 -0
  614. package/dist/infineon-design-system-stencil/{p-8969f1e4.entry.js → p-58a4d36f.entry.js} +2 -2
  615. package/dist/infineon-design-system-stencil/p-58a4d36f.entry.js.map +1 -0
  616. package/dist/infineon-design-system-stencil/p-5916cb5c.entry.js +2 -0
  617. package/dist/infineon-design-system-stencil/p-5916cb5c.entry.js.map +1 -0
  618. package/dist/infineon-design-system-stencil/{p-6c5f0f7b.entry.js → p-5c757132.entry.js} +2 -2
  619. package/dist/infineon-design-system-stencil/{p-6c5f0f7b.entry.js.map → p-5c757132.entry.js.map} +1 -1
  620. package/dist/infineon-design-system-stencil/p-5d41cdc8.entry.js +2 -0
  621. package/dist/infineon-design-system-stencil/p-5d41cdc8.entry.js.map +1 -0
  622. package/dist/infineon-design-system-stencil/p-63f09820.entry.js +2 -0
  623. package/dist/infineon-design-system-stencil/p-63f09820.entry.js.map +1 -0
  624. package/dist/infineon-design-system-stencil/p-6777690c.entry.js +2 -0
  625. package/dist/infineon-design-system-stencil/{p-f0052c72.entry.js.map → p-6777690c.entry.js.map} +1 -1
  626. package/dist/infineon-design-system-stencil/p-6d55468a.entry.js +2 -0
  627. package/dist/infineon-design-system-stencil/p-6d55468a.entry.js.map +1 -0
  628. package/dist/infineon-design-system-stencil/p-6e812f43.entry.js +2 -0
  629. package/dist/infineon-design-system-stencil/p-6e812f43.entry.js.map +1 -0
  630. package/dist/infineon-design-system-stencil/p-716277e2.entry.js +2 -0
  631. package/dist/infineon-design-system-stencil/p-716277e2.entry.js.map +1 -0
  632. package/dist/infineon-design-system-stencil/{p-ee39e4ce.entry.js → p-77fbff19.entry.js} +2 -2
  633. package/dist/infineon-design-system-stencil/p-7a85d6bb.entry.js +2 -0
  634. package/dist/infineon-design-system-stencil/p-7a85d6bb.entry.js.map +1 -0
  635. package/dist/infineon-design-system-stencil/p-7e8ac88d.entry.js +2 -0
  636. package/dist/infineon-design-system-stencil/p-7e8ac88d.entry.js.map +1 -0
  637. package/dist/infineon-design-system-stencil/p-82992baa.entry.js +2 -0
  638. package/dist/infineon-design-system-stencil/p-82992baa.entry.js.map +1 -0
  639. package/dist/infineon-design-system-stencil/p-84a944d8.entry.js +2 -0
  640. package/dist/infineon-design-system-stencil/p-84a944d8.entry.js.map +1 -0
  641. package/dist/infineon-design-system-stencil/p-85b61d98.entry.js +2 -0
  642. package/dist/infineon-design-system-stencil/{p-58966086.entry.js.map → p-85b61d98.entry.js.map} +1 -1
  643. package/dist/infineon-design-system-stencil/{p-499dba27.entry.js → p-86d7654e.entry.js} +2 -2
  644. package/dist/infineon-design-system-stencil/p-86d7654e.entry.js.map +1 -0
  645. package/dist/infineon-design-system-stencil/p-8c4f7852.entry.js +2 -0
  646. package/dist/infineon-design-system-stencil/p-8c4f7852.entry.js.map +1 -0
  647. package/dist/infineon-design-system-stencil/p-904b3572.entry.js +2 -0
  648. package/dist/infineon-design-system-stencil/p-904b3572.entry.js.map +1 -0
  649. package/dist/infineon-design-system-stencil/p-998b0c29.entry.js +2 -0
  650. package/dist/infineon-design-system-stencil/p-998b0c29.entry.js.map +1 -0
  651. package/dist/infineon-design-system-stencil/{p-c82d6a95.entry.js → p-9adea907.entry.js} +2 -2
  652. package/dist/infineon-design-system-stencil/p-9adea907.entry.js.map +1 -0
  653. package/dist/infineon-design-system-stencil/p-9d56250f.entry.js +2 -0
  654. package/dist/infineon-design-system-stencil/p-9d56250f.entry.js.map +1 -0
  655. package/dist/infineon-design-system-stencil/p-9d99d0f2.entry.js +2 -0
  656. package/dist/infineon-design-system-stencil/p-9d99d0f2.entry.js.map +1 -0
  657. package/dist/infineon-design-system-stencil/p-a0f78ebd.entry.js +2 -0
  658. package/dist/infineon-design-system-stencil/p-a0f78ebd.entry.js.map +1 -0
  659. package/dist/infineon-design-system-stencil/{p-34fb9dca.entry.js → p-a9c13b65.entry.js} +2 -2
  660. package/dist/infineon-design-system-stencil/p-b1b1fa88.entry.js +2 -0
  661. package/dist/infineon-design-system-stencil/{p-53f2ab7f.entry.js.map → p-b1b1fa88.entry.js.map} +1 -1
  662. package/dist/infineon-design-system-stencil/p-b27a47fe.entry.js +2 -0
  663. package/dist/infineon-design-system-stencil/p-b27a47fe.entry.js.map +1 -0
  664. package/dist/infineon-design-system-stencil/p-b4543681.entry.js +2 -0
  665. package/dist/infineon-design-system-stencil/p-b4543681.entry.js.map +1 -0
  666. package/dist/infineon-design-system-stencil/{p-366148e2.entry.js → p-b9ee57be.entry.js} +2 -2
  667. package/dist/infineon-design-system-stencil/p-b9ee57be.entry.js.map +1 -0
  668. package/dist/infineon-design-system-stencil/{p-a116e0d2.entry.js → p-bd7932cc.entry.js} +2 -2
  669. package/dist/infineon-design-system-stencil/p-bd7932cc.entry.js.map +1 -0
  670. package/dist/infineon-design-system-stencil/p-bdbb7e20.entry.js +2 -0
  671. package/dist/infineon-design-system-stencil/p-bdbb7e20.entry.js.map +1 -0
  672. package/dist/infineon-design-system-stencil/p-c2f13236.entry.js +2 -0
  673. package/dist/infineon-design-system-stencil/p-c2f13236.entry.js.map +1 -0
  674. package/dist/infineon-design-system-stencil/p-c63974da.js +3 -0
  675. package/dist/infineon-design-system-stencil/p-c63974da.js.map +1 -0
  676. package/dist/infineon-design-system-stencil/{p-680f8e2c.entry.js → p-cb2bfd10.entry.js} +2 -2
  677. package/dist/infineon-design-system-stencil/p-cde478c3.entry.js +2 -0
  678. package/dist/infineon-design-system-stencil/p-cde478c3.entry.js.map +1 -0
  679. package/dist/infineon-design-system-stencil/{p-3c5a8615.entry.js → p-d46b8d55.entry.js} +2 -2
  680. package/dist/infineon-design-system-stencil/p-d46b8d55.entry.js.map +1 -0
  681. package/dist/infineon-design-system-stencil/{p-6ae18c50.entry.js → p-d93f128c.entry.js} +2 -2
  682. package/dist/infineon-design-system-stencil/p-d93f128c.entry.js.map +1 -0
  683. package/dist/infineon-design-system-stencil/{p-28fb795b.entry.js → p-da6efe6b.entry.js} +2 -2
  684. package/dist/infineon-design-system-stencil/{p-85f4399b.entry.js → p-e9f5f2b8.entry.js} +3 -3
  685. package/dist/infineon-design-system-stencil/p-e9f5f2b8.entry.js.map +1 -0
  686. package/dist/infineon-design-system-stencil/p-f36a94fd.entry.js +2 -0
  687. package/dist/infineon-design-system-stencil/p-f3c7cb47.entry.js +2 -0
  688. package/dist/infineon-design-system-stencil/p-f3c7cb47.entry.js.map +1 -0
  689. package/dist/infineon-design-system-stencil/{p-c1b1b593.entry.js → p-f4d00e57.entry.js} +2 -2
  690. package/dist/infineon-design-system-stencil/p-f4d00e57.entry.js.map +1 -0
  691. package/dist/infineon-design-system-stencil/p-fbbed2f5.entry.js +2 -0
  692. package/dist/infineon-design-system-stencil/p-fbbed2f5.entry.js.map +1 -0
  693. package/dist/types/components/navigation/navbar/navbar-item.d.ts +2 -0
  694. package/dist/types/components.d.ts +2 -0
  695. package/package.json +1 -1
  696. package/dist/cjs/index-af3b4f6c.js.map +0 -1
  697. package/dist/components/p-094bb435.js.map +0 -1
  698. package/dist/components/p-11922b8b.js.map +0 -1
  699. package/dist/components/p-12e02e47.js.map +0 -1
  700. package/dist/components/p-23cdd5a7.js.map +0 -1
  701. package/dist/components/p-2f1e7628.js.map +0 -1
  702. package/dist/components/p-68d90201.js.map +0 -1
  703. package/dist/components/p-7bbdeac1.js.map +0 -1
  704. package/dist/components/p-7e430b83.js.map +0 -1
  705. package/dist/components/p-8eed2f39.js.map +0 -1
  706. package/dist/components/p-9ee4ea24.js.map +0 -1
  707. package/dist/components/p-a6c2cb8b.js.map +0 -1
  708. package/dist/components/p-b2439194.js.map +0 -1
  709. package/dist/components/p-c1f3a68c.js.map +0 -1
  710. package/dist/components/p-cfb87c4d.js.map +0 -1
  711. package/dist/components/p-d0a26bd5.js.map +0 -1
  712. package/dist/components/p-d57db1c4.js.map +0 -1
  713. package/dist/components/p-f0f583d5.js.map +0 -1
  714. package/dist/esm/index-dc4139fb.js.map +0 -1
  715. package/dist/infineon-design-system-stencil/p-00d6e46e.entry.js.map +0 -1
  716. package/dist/infineon-design-system-stencil/p-030a5b46.entry.js +0 -2
  717. package/dist/infineon-design-system-stencil/p-030a5b46.entry.js.map +0 -1
  718. package/dist/infineon-design-system-stencil/p-0a011c63.entry.js +0 -2
  719. package/dist/infineon-design-system-stencil/p-0a011c63.entry.js.map +0 -1
  720. package/dist/infineon-design-system-stencil/p-0c4276df.entry.js +0 -2
  721. package/dist/infineon-design-system-stencil/p-0c4276df.entry.js.map +0 -1
  722. package/dist/infineon-design-system-stencil/p-189c89c3.entry.js +0 -2
  723. package/dist/infineon-design-system-stencil/p-189c89c3.entry.js.map +0 -1
  724. package/dist/infineon-design-system-stencil/p-18f5a5e3.entry.js +0 -2
  725. package/dist/infineon-design-system-stencil/p-1aed7d45.entry.js +0 -2
  726. package/dist/infineon-design-system-stencil/p-1aed7d45.entry.js.map +0 -1
  727. package/dist/infineon-design-system-stencil/p-222c1af9.entry.js +0 -2
  728. package/dist/infineon-design-system-stencil/p-222c1af9.entry.js.map +0 -1
  729. package/dist/infineon-design-system-stencil/p-27a52d0b.entry.js +0 -2
  730. package/dist/infineon-design-system-stencil/p-27a52d0b.entry.js.map +0 -1
  731. package/dist/infineon-design-system-stencil/p-32510d11.entry.js +0 -2
  732. package/dist/infineon-design-system-stencil/p-32510d11.entry.js.map +0 -1
  733. package/dist/infineon-design-system-stencil/p-32fc3ce3.entry.js +0 -2
  734. package/dist/infineon-design-system-stencil/p-35d0daa5.entry.js +0 -2
  735. package/dist/infineon-design-system-stencil/p-35d0daa5.entry.js.map +0 -1
  736. package/dist/infineon-design-system-stencil/p-366148e2.entry.js.map +0 -1
  737. package/dist/infineon-design-system-stencil/p-379a2090.entry.js +0 -2
  738. package/dist/infineon-design-system-stencil/p-379a2090.entry.js.map +0 -1
  739. package/dist/infineon-design-system-stencil/p-3b99fb06.entry.js +0 -2
  740. package/dist/infineon-design-system-stencil/p-3b99fb06.entry.js.map +0 -1
  741. package/dist/infineon-design-system-stencil/p-3c5a8615.entry.js.map +0 -1
  742. package/dist/infineon-design-system-stencil/p-436babb8.entry.js +0 -2
  743. package/dist/infineon-design-system-stencil/p-436babb8.entry.js.map +0 -1
  744. package/dist/infineon-design-system-stencil/p-44b2cbe1.entry.js +0 -2
  745. package/dist/infineon-design-system-stencil/p-44b2cbe1.entry.js.map +0 -1
  746. package/dist/infineon-design-system-stencil/p-466fea81.entry.js +0 -2
  747. package/dist/infineon-design-system-stencil/p-466fea81.entry.js.map +0 -1
  748. package/dist/infineon-design-system-stencil/p-499dba27.entry.js.map +0 -1
  749. package/dist/infineon-design-system-stencil/p-4b21c0e6.entry.js.map +0 -1
  750. package/dist/infineon-design-system-stencil/p-4fab3a1e.entry.js +0 -2
  751. package/dist/infineon-design-system-stencil/p-4fab3a1e.entry.js.map +0 -1
  752. package/dist/infineon-design-system-stencil/p-51c4e760.entry.js +0 -2
  753. package/dist/infineon-design-system-stencil/p-53f2ab7f.entry.js +0 -2
  754. package/dist/infineon-design-system-stencil/p-584149bd.entry.js.map +0 -1
  755. package/dist/infineon-design-system-stencil/p-58966086.entry.js +0 -2
  756. package/dist/infineon-design-system-stencil/p-5c6d5571.entry.js.map +0 -1
  757. package/dist/infineon-design-system-stencil/p-6389a7b8.entry.js +0 -2
  758. package/dist/infineon-design-system-stencil/p-6389a7b8.entry.js.map +0 -1
  759. package/dist/infineon-design-system-stencil/p-6ae18c50.entry.js.map +0 -1
  760. package/dist/infineon-design-system-stencil/p-6b122987.js +0 -3
  761. package/dist/infineon-design-system-stencil/p-6b122987.js.map +0 -1
  762. package/dist/infineon-design-system-stencil/p-6fdc1a34.entry.js.map +0 -1
  763. package/dist/infineon-design-system-stencil/p-775d187b.entry.js +0 -2
  764. package/dist/infineon-design-system-stencil/p-775d187b.entry.js.map +0 -1
  765. package/dist/infineon-design-system-stencil/p-7bef9272.entry.js +0 -2
  766. package/dist/infineon-design-system-stencil/p-7bef9272.entry.js.map +0 -1
  767. package/dist/infineon-design-system-stencil/p-7f59e05a.entry.js +0 -2
  768. package/dist/infineon-design-system-stencil/p-7f59e05a.entry.js.map +0 -1
  769. package/dist/infineon-design-system-stencil/p-7fa8ccd3.entry.js +0 -2
  770. package/dist/infineon-design-system-stencil/p-7fa8ccd3.entry.js.map +0 -1
  771. package/dist/infineon-design-system-stencil/p-85f4399b.entry.js.map +0 -1
  772. package/dist/infineon-design-system-stencil/p-8969f1e4.entry.js.map +0 -1
  773. package/dist/infineon-design-system-stencil/p-89c7209f.entry.js +0 -2
  774. package/dist/infineon-design-system-stencil/p-89c7209f.entry.js.map +0 -1
  775. package/dist/infineon-design-system-stencil/p-91f91586.entry.js.map +0 -1
  776. package/dist/infineon-design-system-stencil/p-9481adc8.entry.js +0 -2
  777. package/dist/infineon-design-system-stencil/p-9481adc8.entry.js.map +0 -1
  778. package/dist/infineon-design-system-stencil/p-9ee328a5.entry.js +0 -2
  779. package/dist/infineon-design-system-stencil/p-9ee328a5.entry.js.map +0 -1
  780. package/dist/infineon-design-system-stencil/p-a116e0d2.entry.js.map +0 -1
  781. package/dist/infineon-design-system-stencil/p-a2d7c880.entry.js +0 -2
  782. package/dist/infineon-design-system-stencil/p-a2d7c880.entry.js.map +0 -1
  783. package/dist/infineon-design-system-stencil/p-ad3db607.entry.js +0 -2
  784. package/dist/infineon-design-system-stencil/p-ad3db607.entry.js.map +0 -1
  785. package/dist/infineon-design-system-stencil/p-b5a3fad1.entry.js +0 -2
  786. package/dist/infineon-design-system-stencil/p-bc8a4226.entry.js.map +0 -1
  787. package/dist/infineon-design-system-stencil/p-bddc382a.entry.js +0 -2
  788. package/dist/infineon-design-system-stencil/p-bddc382a.entry.js.map +0 -1
  789. package/dist/infineon-design-system-stencil/p-c1b1b593.entry.js.map +0 -1
  790. package/dist/infineon-design-system-stencil/p-c34f5517.entry.js +0 -2
  791. package/dist/infineon-design-system-stencil/p-c34f5517.entry.js.map +0 -1
  792. package/dist/infineon-design-system-stencil/p-c5daebfa.entry.js.map +0 -1
  793. package/dist/infineon-design-system-stencil/p-c80f9282.entry.js +0 -2
  794. package/dist/infineon-design-system-stencil/p-c80f9282.entry.js.map +0 -1
  795. package/dist/infineon-design-system-stencil/p-c82d6a95.entry.js.map +0 -1
  796. package/dist/infineon-design-system-stencil/p-c8f66bf5.entry.js +0 -2
  797. package/dist/infineon-design-system-stencil/p-c8f66bf5.entry.js.map +0 -1
  798. package/dist/infineon-design-system-stencil/p-caff080b.entry.js +0 -2
  799. package/dist/infineon-design-system-stencil/p-caff080b.entry.js.map +0 -1
  800. package/dist/infineon-design-system-stencil/p-ce413596.entry.js.map +0 -1
  801. package/dist/infineon-design-system-stencil/p-d101e5a0.entry.js +0 -2
  802. package/dist/infineon-design-system-stencil/p-d101e5a0.entry.js.map +0 -1
  803. package/dist/infineon-design-system-stencil/p-d52e5250.entry.js +0 -2
  804. package/dist/infineon-design-system-stencil/p-d52e5250.entry.js.map +0 -1
  805. package/dist/infineon-design-system-stencil/p-db09429f.entry.js.map +0 -1
  806. package/dist/infineon-design-system-stencil/p-e66c33ea.entry.js +0 -2
  807. package/dist/infineon-design-system-stencil/p-e66c33ea.entry.js.map +0 -1
  808. package/dist/infineon-design-system-stencil/p-eb8ba37f.entry.js +0 -2
  809. package/dist/infineon-design-system-stencil/p-eb8ba37f.entry.js.map +0 -1
  810. package/dist/infineon-design-system-stencil/p-f0052c72.entry.js +0 -2
  811. package/dist/infineon-design-system-stencil/p-f8d7bbe2.entry.js.map +0 -1
  812. package/dist/infineon-design-system-stencil/p-fbd9e58e.entry.js +0 -2
  813. package/dist/infineon-design-system-stencil/p-fbd9e58e.entry.js.map +0 -1
  814. /package/dist/infineon-design-system-stencil/{p-32fc3ce3.entry.js.map → p-04cb8ce1.entry.js.map} +0 -0
  815. /package/dist/infineon-design-system-stencil/{p-51980b19.entry.js.map → p-11580775.entry.js.map} +0 -0
  816. /package/dist/infineon-design-system-stencil/{p-8a497a15.entry.js.map → p-343b4066.entry.js.map} +0 -0
  817. /package/dist/infineon-design-system-stencil/{p-b5a3fad1.entry.js.map → p-3e18845b.entry.js.map} +0 -0
  818. /package/dist/infineon-design-system-stencil/{p-a8ccf376.entry.js.map → p-452b2e42.entry.js.map} +0 -0
  819. /package/dist/infineon-design-system-stencil/{p-ee39e4ce.entry.js.map → p-77fbff19.entry.js.map} +0 -0
  820. /package/dist/infineon-design-system-stencil/{p-34fb9dca.entry.js.map → p-a9c13b65.entry.js.map} +0 -0
  821. /package/dist/infineon-design-system-stencil/{p-680f8e2c.entry.js.map → p-cb2bfd10.entry.js.map} +0 -0
  822. /package/dist/infineon-design-system-stencil/{p-28fb795b.entry.js.map → p-da6efe6b.entry.js.map} +0 -0
  823. /package/dist/infineon-design-system-stencil/{p-18f5a5e3.entry.js.map → p-f36a94fd.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["queryShadowRoot","root","skipNode","isMatch","maxDepth","depth","matches","traverseSlot","$slot","assignedNodes","filter","node","nodeType","length","$slotParent","parentElement","children","Array","from","$child","push","shadowRoot","tagName","isHidden","$elem","hasAttribute","getAttribute","style","display","opacity","visibility","isDisabled","isFocusable","HTMLAnchorElement","HTMLAreaElement","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLIFrameElement","animationTo","element","keyframes","options","animated","animate","Object","assign","fill","addEventListener","commitStyles","cancel","keyframeDefaults","easing","KEYFRAMES","fadeIn","offset","fadeOut","modalCss","IfxModalStyle0","IfxModal","this","focusableElements","handleTopFocus","attemptFocus","getLastFocusableElement","handleBottomFocus","getFirstFocusableElement","handleKeypress","event","showModal","key","doBeforeClose","opened","componentDidLoad","hostElement","el","setTimeout","closeButton","focus","open","anim","modalContainer","duration","_a","_b","blur","ifxModalOpen","emit","err","close","ifxModalClose","removeEventListener","trigger","triggers","prevented","some","defaultPrevented","openedChanged","newValue","handleOverlayClick","closeOnOverlayClick","handleButtonsSlotChange","e","currentTarget","assignedElements","childElementCount","slotButtonsPresent","render","isAlertVariant","variant","h","Host","ref","class","onClick","onFocus","tabindex","size","role","caption","alertIcon","icon","showCloseButton","name","onSlotchange"],"sources":["src/global/utils/focus-trap.ts","src/global/utils/animation.ts","src/components/modal/modal.scss?tag=ifx-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["/**\n * Copy/pasted from https://github.com/andreasbm/focus-trap\n */\n\n/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * We need to traverse each child-depth one at a time because if an element should be skipped\n * (for example because it is hidden) we need to skip all of it's children. If we use querySelectorAll(\"*\")\n * the information of whether the children is within a hidden parent is lost.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(\n root: ShadowRoot | HTMLElement,\n skipNode: ($elem: HTMLElement) => boolean,\n isMatch: ($elem: HTMLElement) => boolean,\n maxDepth: number = 20,\n depth: number = 0\n): HTMLElement[] {\n const matches: HTMLElement[] = [];\n\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return matches;\n }\n\n // Traverses a slot element\n const traverseSlot = ($slot: HTMLSlotElement) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot\n .assignedNodes()\n .filter((node) => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n const $slotParent = assignedNodes[0].parentElement!;\n return queryShadowRoot(\n $slotParent,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n );\n }\n\n return [];\n };\n\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []) as HTMLElement[];\n for (const $child of children) {\n // Check if the element and its descendants should be skipped\n if (skipNode($child)) {\n // console.log('-- SKIP', $child);\n continue;\n }\n\n // console.log('$child', $child);\n\n // If the element matches we always add it\n if (isMatch($child)) {\n matches.push($child);\n }\n\n if ($child.shadowRoot != null) {\n // If the element has a shadow root we need to traverse it\n matches.push(\n ...queryShadowRoot(\n $child.shadowRoot,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n )\n );\n } else if ($child.tagName === 'SLOT') {\n // If the child is a slot we need to traverse each assigned node\n matches.push(...traverseSlot($child as HTMLSlotElement));\n } else {\n // Traverse the children of the element\n matches.push(\n ...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1)\n );\n }\n }\n\n return matches;\n}\n\n/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('hidden') ||\n ($elem.hasAttribute('aria-hidden') &&\n $elem.getAttribute('aria-hidden') !== 'false') ||\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n $elem.style.display === `none` ||\n $elem.style.opacity === `0` ||\n $elem.style.visibility === `hidden` ||\n $elem.style.visibility === `collapse`\n );\n\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n // || $elem.offsetParent == null;\n}\n\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('disabled') ||\n ($elem.hasAttribute('aria-disabled') &&\n $elem.getAttribute('aria-disabled') !== 'false')\n );\n}\n\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem: HTMLElement): boolean {\n // Discard elements that are removed from the tab order.\n if (\n $elem.getAttribute('tabindex') === '-1' ||\n isHidden($elem) ||\n isDisabled($elem)\n ) {\n return false;\n }\n\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute('tabindex') ||\n // Anchor tags or area tags with a href set\n (($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) &&\n $elem.hasAttribute('href')) ||\n // Form elements which are not disabled\n $elem instanceof HTMLButtonElement ||\n $elem instanceof HTMLInputElement ||\n $elem instanceof HTMLTextAreaElement ||\n $elem instanceof HTMLSelectElement ||\n // IFrames\n $elem instanceof HTMLIFrameElement\n );\n}","export function animationTo(\n element: HTMLElement,\n keyframes: Keyframe | Keyframe[],\n options?: KeyframeAnimationOptions\n) {\n const animated = element.animate(keyframes, { ...options, fill: 'both' });\n animated.addEventListener('finish', () => {\n // @ts-ignore\n animated.commitStyles();\n animated.cancel();\n });\n\n return animated;\n}\n\nconst keyframeDefaults = {\n easing: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n};\n\nexport const KEYFRAMES = {\n fadeIn: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 0,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 1,\n },\n ],\n fadeOut: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 1,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 0,\n },\n ],\n};","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: block;\n}\n\n.modal-container {\n display: none;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1060;\n overflow-y: auto;\n font-family: var(--ifx-font-family);\n\n}\n\n.modal-container.open {\n display: flex;\n}\n\n.modal-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: tokens.$ifxColorBaseBlack;\n opacity: 0.5;\n z-index: 0;\n}\n\n.modal-content-container {\n position: absolute;\n display: flex;\n justify-content: center;\n width: 90%;\n min-height: 218px;\n background-color: #fff;\n border-radius: tokens.$ifxBorderRadiusNone;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n overflow: hidden;\n box-sizing: border-box;\n align-items: stretch;\n}\n\n/* Add desktop size here */\n@media screen and (min-width: 768px) {\n .modal-content-container {\n width: 540px;\n min-height: 132px;\n\n &.m,\n &.l,\n &.s {\n width: 90%;\n }\n }\n}\n\n@media screen and (min-width: 1024px) {\n .modal-content-container {\n\n &.s {\n width: 47vw;\n }\n\n &.m {\n width: 63vw;\n }\n\n &.l {\n width: 80%;\n }\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: 90vh;\n}\n\n.modal-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n background-color: tokens.$ifxColorOcean500;\n align-self: stretch;\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n & ifx-icon {\n color: tokens.$ifxColorBaseWhite;\n }\n}\n\n.modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n min-height: 76px;\n max-height: 105px;\n box-sizing: border-box;\n border-radius: 1px 1px 0px 0px;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.modal-caption {\n max-height: 56px;\n display: -webkit-box;\n overflow: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; \n}\n\n.modal-header h2 {\n margin: 0;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n}\n\n.modal-header button {\n background: none;\n border: none;\n font-size: 1.5em;\n padding: 0;\n cursor: pointer;\n}\n\n.modal-close-button {\n align-self: flex-start;\n margin-right: -8px;\n}\n\n.modal-body {\n padding: 16px 24px;\n min-height: 56px;\n box-sizing: border-box;\n flex: 1;\n overflow-y: auto;\n}\n\n.modal-footer.buttons-present ::slotted(*){\n display: flex;\n justify-content: flex-end;\n gap: 16px;\n padding: 16px 24px 32px 16px\n}\n\n.modal-border {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n font-size: 1.5em;\n flex-grow: 1;\n\n &.primary {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.secondary {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.success {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.warning {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.orange {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.ocean {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.grey {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.grey-200 {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.red {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.green {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.berry {\n background-color: tokens.$ifxColorBerry500;\n }\n}","import { Component, Prop, Element, State, Event, Host, EventEmitter, h, Watch } from '@stencil/core';\nimport { queryShadowRoot, isHidden, isFocusable } from '../../global/utils/focus-trap';\nimport { animationTo, KEYFRAMES } from '../../global/utils/animation';\n \n\ntype CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP';\n\nexport interface BeforeCloseEventDetail {\n trigger: CloseEventTrigger;\n}\n@Component({\n tag: 'ifx-modal',\n styleUrl: 'modal.scss',\n shadow: true\n})\nexport class IfxModal {\n @Prop({ reflect: true, mutable: true }) opened?: boolean = false;\n @State() showModal: boolean = this.opened || false;\n\n @Prop() caption: string = 'Modal Title';\n @Prop() closeOnOverlayClick: boolean = true;\n\n @Event() ifxModalOpen: EventEmitter;\n @Event() ifxModalClose: EventEmitter;\n\n @Prop() variant: 'default' | 'alert-brand' | 'alert-danger' = 'default';\n \n @Prop() size: 's' | 'm' | 'l' = 's';\n\n @Prop() alertIcon: string = '';\n @Prop() okButtonLabel: string = 'OK';\n @Prop() cancelButtonLabel: string = 'Cancel';\n @Element() hostElement: HTMLElement;\n\n @State() slotButtonsPresent: boolean = false;\n\n @Prop() showCloseButton: boolean = true;\n\n private modalContainer: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n private closeButton: HTMLButtonElement | HTMLIfxIconButtonElement;\n\n componentDidLoad() {\n // Query all focusable elements and store them in `focusableElements`.\n // Needed for the \"focus trap\" functionality.\n this.focusableElements = queryShadowRoot(\n this.hostElement.shadowRoot,\n (el) => isHidden(el) || el.matches('[data-focus-trap-edge]'),\n isFocusable\n );\n\n }\n\n getFirstFocusableElement(): HTMLElement | null {\n return this.focusableElements[0];\n }\n\n getLastFocusableElement(): HTMLElement | null {\n return this.focusableElements[this.focusableElements.length - 1];\n }\n\n handleTopFocus = () => {\n this.attemptFocus(this.getLastFocusableElement());\n };\n\n handleBottomFocus = () => {\n this.attemptFocus(this.getFirstFocusableElement());\n };\n\n\n attemptFocus(element: HTMLElement | null) {\n if (element == null) {\n setTimeout(() => { //wait until DOM is fully loaded\n this.closeButton.focus();\n },);\n return;\n }\n\n setTimeout(() => { //wait until DOM is fully loaded\n element.focus();\n }, 0);\n }\n\n\n open() {\n this.showModal = true;\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeIn, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n // Setting focus on last item and removing immediately\n // so, on tab press first element is focused\n setTimeout(() => {\n this.getLastFocusableElement()?.focus();\n this.getLastFocusableElement()?.blur();\n }, 0);\n\n this.ifxModalOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxModalOpen.emit();\n\n }\n\n\n }\n\n close() {\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeOut, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n this.showModal = false;\n this.ifxModalClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxModalClose.emit();\n }\n }\n\n handleKeypress = (event: KeyboardEvent) => {\n if (!this.showModal) {\n return;\n }\n if (event.key === 'Escape') {\n this.doBeforeClose('ESCAPE_KEY');\n }\n };\n\n\n doBeforeClose(trigger: CloseEventTrigger) {\n const triggers = [];\n triggers.push(trigger);\n const prevented = triggers.some((event) => event.defaultPrevented);\n if (!prevented) {\n this.opened = false;\n }\n }\n\n\n\n @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n\n handleButtonsSlotChange(e) {\n if(e.currentTarget.assignedElements()[0]?.childElementCount > 0) {\n this.slotButtonsPresent = true;\n }else{\n this.slotButtonsPresent = false;\n }\n }\n\n\n render() {\n const isAlertVariant = this.variant !== 'default';\n return (\n <Host>\n <div\n ref={(el) => (this.modalContainer = el)}\n class={`modal-container ${this.showModal ? 'open' : ''}`}\n >\n <div\n class=\"modal-overlay\"\n onClick={() => this.handleOverlayClick()}\n ></div>\n <div\n data-focus-trap-edge\n onFocus={this.handleTopFocus}\n tabindex=\"0\"\n ></div>\n <div\n class={`modal-content-container ${this.size}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.caption}>\n {isAlertVariant ? (\n <div class={`modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}`}>\n {this.alertIcon ? <ifx-icon icon={this.alertIcon} /> : null}\n </div>\n ) : null}\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-caption\">{this.caption}</h2>\n { \n this.showCloseButton && \n <ifx-icon-button class = 'modal-close-button' ref={(el) => (this.closeButton = el)} icon=\"cross-24\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON') }>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" /*onSlotchange={() => console.log('slots children modified')}*/ />\n </div>\n <div class={`modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}`}>\n <slot name=\"buttons\" onSlotchange={(e)=>this.handleButtonsSlotChange(e)}>\n </slot>\n </div>\n </div>\n </div>\n <div\n data-focus-trap-edge\n onFocus={this.handleBottomFocus}\n tabindex=\"0\"\n ></div>\n </div>\n </Host>\n\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,a as s,g as h}from"./p-6b122987.js";const n=".ifx-content-switcher{background-color:#FFFFFF;border:1px solid #BFBBBB;border-radius:9999px;height:36px;width:fit-content;box-sizing:border-box;display:flex;flex-direction:row;align-items:center}.ifx-content-switcher ::slotted(ifx-content-switcher-item){position:relative}.ifx-content-switcher ::slotted(ifx-content-switcher-item:first-child){left:-1px;margin-right:-1px}.ifx-content-switcher ::slotted(ifx-content-switcher-item:last-child){right:-1px;margin-left:-1px}.ifx-content-switcher ::slotted(.ifx-content-switcher-divider){width:1px;height:20px;background-color:#8D8786;margin:0px 1px;visibility:visible}.ifx-content-switcher ::slotted(.ifx-content-switcher-divider.hidden){visibility:hidden}";const r=n;const c=class{constructor(e){t(this,e);this.ifxChange=i(this,"ifxChange",7);this.eventHandlers=new Map;this.items=undefined;this.activeIndex=-1;this.hoverIndex=-1;this.focusIndex=-1;this.dividers=Array()}componentWillLoad(){this.items=Array.from(this.el.children);this.initializeDividers();this.addEventListeners();this.ensureSingleSelectedItem()}disconnectedCallback(){this.removeEventListeners()}initializeDividers(){this.items.forEach(((t,i)=>{if(i<this.items.length-1){const i=document.createElement("div");i.classList.add("ifx-content-switcher-divider");t.after(i);this.dividers.push(i)}}))}addEventListeners(){this.items.forEach(((t,i)=>{const e={click:()=>this.selectItem(i),mouseenter:()=>this.handleHover(i,true),mouseleave:()=>this.handleHover(i,false),focus:()=>this.handleFocus(i,true),blur:()=>this.handleFocus(i,false)};Object.keys(e).forEach((i=>{t.addEventListener(i,e[i])}));this.eventHandlers.set(t,e)}))}removeEventListeners(){this.eventHandlers.forEach(((t,i)=>{Object.keys(t).forEach((e=>{i.removeEventListener(e,t[e])}))}));this.eventHandlers.clear()}ensureSingleSelectedItem(){this.items.forEach(((t,i)=>{if(t.hasAttribute("selected")){if(this.activeIndex<0){this.selectItem(i)}else{t.removeAttribute("selected")}}}))}handleHover(t,i){this.hoverIndex=i?t:-1;this.updateDividersOfItem(t)}handleFocus(t,i){this.focusIndex=i?t:-1;this.updateDividersOfItem(t)}updateDividersOfItem(t){if(t<this.items.length-1){this.updateDividerVisibility(t)}if(t>0){this.updateDividerVisibility(t-1)}}updateDividerVisibility(t){const i=new Set([this.activeIndex,this.activeIndex-1,this.hoverIndex,this.hoverIndex-1,this.focusIndex,this.focusIndex-1]);this.setDividerVisibility(t,i.has(t))}setDividerVisibility(t,i){if(this.dividers[t]){this.dividers[t].classList.toggle("hidden",i)}}selectItem(t){if(t===this.activeIndex)return;const i=this.activeIndex;if(i>=0){this.items[i].removeAttribute("selected")}this.activeIndex=t;this.items[t].setAttribute("selected","true");this.ifxChange.emit({oldValue:this.getValueOfItem(i),newValue:this.getValueOfItem(t)});this.updateDividersOfItem(i);this.updateDividersOfItem(t)}getValueOfItem(t){if(this.items[t]==null)return t.toLocaleString();return this.items[t].getAttribute("value")||t.toLocaleString()}render(){return e(s,{key:"0c50e18a9ac86fb7be75a049c82bb73bbad834ec"},e("div",{key:"6b17a332e6be8a261d7e70143dd60bc51bf637df",class:"ifx-content-switcher",role:"group"},e("slot",{key:"23a9d14ad25b16d4b3f6411199765b74ef1b9d62"})))}get el(){return h(this)}};c.style=r;export{c as ifx_content_switcher};
2
- //# sourceMappingURL=p-bddc382a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["contentSwitcherCss","IfxContentSwitcherStyle0","ContentSwitcher","this","eventHandlers","Map","Array","componentWillLoad","items","from","el","children","initializeDividers","addEventListeners","ensureSingleSelectedItem","disconnectedCallback","removeEventListeners","forEach","item","index","length","divider","document","createElement","classList","add","after","dividers","push","handlers","click","selectItem","mouseenter","handleHover","mouseleave","focus","handleFocus","blur","Object","keys","event","addEventListener","set","removeEventListener","clear","hasAttribute","activeIndex","removeAttribute","isActive","hoverIndex","updateDividersOfItem","focusIndex","itemIndex","updateDividerVisibility","dividerIndex","hiddenDividers","Set","setDividerVisibility","has","hidden","toggle","oldIndex","setAttribute","ifxChange","emit","oldValue","getValueOfItem","newValue","toLocaleString","getAttribute","render","h","Host","key","class","role"],"sources":["src/components/content-switcher/content-switcher.scss?tag=ifx-content-switcher&encapsulation=shadow","src/components/content-switcher/content-switcher.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n.ifx-content-switcher {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n border-radius: tokens.$ifxBorderRadiusRound;\n height: tokens.$ifxSize450;\n width: fit-content;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n\n & ::slotted(ifx-content-switcher-item) {\n position: relative;\n // top: -1px;\n }\n\n & ::slotted(ifx-content-switcher-item:first-child) {\n left: -1px;\n margin-right: -1px;\n }\n\n & ::slotted(ifx-content-switcher-item:last-child) {\n right: -1px;\n margin-left: -1px;\n }\n\n // Dividers\n & ::slotted(.ifx-content-switcher-divider) {\n width: tokens.$ifxSize12;\n height: tokens.$ifxSize250;\n background-color: tokens.$ifxColorEngineering400;\n margin: 0px 1px;\n visibility: visible;\n }\n\n & ::slotted(.ifx-content-switcher-divider.hidden) {\n visibility: hidden;\n }\n}","import { Component, h, Element, Event, EventEmitter, Host, State } from '@stencil/core';\n\nexport type ChangeEvent = { oldValue: string; newValue: string };\n\n@Component({\n tag: 'ifx-content-switcher',\n styleUrl: './content-switcher.scss',\n shadow: true,\n})\nexport class ContentSwitcher {\n @Element() el: HTMLElement;\n\n @State() items: Element[];\n @State() activeIndex = -1;\n @State() hoverIndex: number = -1;\n @State() focusIndex: number = -1;\n\n @State() dividers: Element[] = Array();\n\n @Event() ifxChange: EventEmitter<ChangeEvent>;\n\n private eventHandlers: Map<Element, { [key: string]: EventListener }> = new Map();\n\n componentWillLoad() {\n this.items = Array.from(this.el.children);\n this.initializeDividers();\n this.addEventListeners();\n this.ensureSingleSelectedItem();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n /**\n * Initialize the dividers between items.\n */\n initializeDividers() {\n this.items.forEach((item, index) => {\n if (index < this.items.length - 1) {\n const divider = document.createElement('div');\n divider.classList.add('ifx-content-switcher-divider');\n item.after(divider);\n this.dividers.push(divider);\n }\n });\n }\n\n /**\n * Add event listeners for each item.\n */\n addEventListeners() {\n this.items.forEach((item, index) => {\n const handlers = {\n click: () => this.selectItem(index),\n mouseenter: () => this.handleHover(index, true),\n mouseleave: () => this.handleHover(index, false),\n focus: () => this.handleFocus(index, true),\n blur: () => this.handleFocus(index, false),\n };\n\n Object.keys(handlers).forEach(event => {\n item.addEventListener(event, handlers[event]);\n });\n\n this.eventHandlers.set(item, handlers);\n });\n }\n\n /**\n * Remove all event listeners.\n */\n removeEventListeners() {\n this.eventHandlers.forEach((handlers, item) => {\n Object.keys(handlers).forEach(event => {\n item.removeEventListener(event, handlers[event]);\n });\n });\n this.eventHandlers.clear();\n }\n\n /**\n * Ensure that only one item is selected at a time.\n */\n ensureSingleSelectedItem() {\n this.items.forEach((item, index) => {\n if (item.hasAttribute('selected')) {\n if (this.activeIndex < 0) {\n this.selectItem(index);\n } else {\n item.removeAttribute('selected');\n }\n }\n });\n }\n\n /**\n * Handle hover events on an item.\n * @param index - Index of the item.\n * @param isActive - Whether the item is hovered.\n */\n handleHover(index: number, isActive: boolean) {\n this.hoverIndex = isActive ? index : -1;\n this.updateDividersOfItem(index);\n }\n\n /**\n * Handle hover events on an item.\n * @param index - Index of the item.\n * @param isActive - Whether the item is focused.\n */\n handleFocus(index: number, isActive: boolean) {\n this.focusIndex = isActive ? index : -1;\n this.updateDividersOfItem(index);\n }\n\n /**\n * Update visibility of dividers adjacent to a specific item.\n * @param itemIndex - Index of the item.\n */\n updateDividersOfItem(itemIndex: number) {\n if (itemIndex < this.items.length - 1) {\n this.updateDividerVisibility(itemIndex);\n }\n if (itemIndex > 0) {\n this.updateDividerVisibility(itemIndex - 1);\n }\n }\n\n /**\n * Update visibility of a specific divider.\n * @param dividerIndex - Index of the divider.\n */\n updateDividerVisibility(dividerIndex: number) {\n const hiddenDividers = new Set([this.activeIndex, this.activeIndex - 1, this.hoverIndex, this.hoverIndex - 1, this.focusIndex, this.focusIndex - 1]);\n this.setDividerVisibility(dividerIndex, hiddenDividers.has(dividerIndex));\n }\n\n /**\n * Set the visibility of a specific divider.\n * @param dividerIndex - Index of the divider.\n * @param hidden - Whether the divider should be hidden.\n */\n setDividerVisibility(dividerIndex: number, hidden: boolean) {\n if (this.dividers[dividerIndex]) {\n this.dividers[dividerIndex].classList.toggle('hidden', hidden);\n }\n }\n\n /**\n * Select a specific item.\n * @param itemIndex - Index of the item to be selected.\n */\n selectItem(itemIndex: number) {\n if (itemIndex === this.activeIndex) return;\n const oldIndex = this.activeIndex;\n if (oldIndex >= 0) {\n this.items[oldIndex].removeAttribute('selected');\n }\n\n this.activeIndex = itemIndex;\n this.items[itemIndex].setAttribute('selected', 'true');\n\n this.ifxChange.emit({ oldValue: this.getValueOfItem(oldIndex), newValue: this.getValueOfItem(itemIndex) });\n this.updateDividersOfItem(oldIndex);\n this.updateDividersOfItem(itemIndex);\n }\n\n /**\n * Get the value property of the item at a specific index.\n * Falls back to the index if no value is set.\n * \n * @param index - Index of the item. \n * @returns The value of the item.\n */\n getValueOfItem(index: number): string {\n if (this.items[index] == null) return index.toLocaleString();\n return this.items[index].getAttribute('value') || index.toLocaleString();\n }\n\n render() {\n return (\n <Host>\n <div class=\"ifx-content-switcher\" role=\"group\">\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["iconButtonCss","IfxIconButtonStyle0","IconButton","handleClick","event","this","disabled","stopImmediatePropagation","setFocus","focusableElement","focus","componentWillLoad","shape","render","h","Host","key","href","ref","el","class","getClassNames","undefined","target","rel","icon","type","getVariantClass","variant","getSizeClass","size","classNames"],"sources":["src/components/icon-button/icon-button.scss?tag=ifx-icon-button&encapsulation=shadow","src/components/icon-button/icon-button.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-flex;\n}\n\n.btn {\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: tokens.$ifxSize500;\n padding: 8px;\n gap: tokens.$ifxSpace100;\n color: tokens.$ifxColorBaseWhite;\n flex-direction: row;\n font-weight: tokens.$ifxFontWeightSemibold;\n border-radius: tokens.$ifxBorderRadius12;\n line-height: tokens.$ifxLineHeightM;\n outline: none;\n font-family: var(--ifx-font-family);\n text-decoration: none;\n user-select: none;\n border: 1px solid rgba(0, 0, 0, 0);\n font-size: tokens.$ifxFontSizeM;\n transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;\n}\n\n.btn:not(.disabled) {\n cursor: pointer;\n}\n\n.btn-primary {\n color: tokens.$ifxColorBaseWhite;\n background-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorBaseWhite;\n pointer-events: none;\n\n }\n}\n\n\n.btn-secondary {\n color: tokens.$ifxColorOcean500;\n background-color: tokens.$ifxColorBaseWhite;\n border-color: tokens.$ifxColorOcean500;\n\n &:disabled,\n &.disabled {\n background-color: tokens.$ifxColorBaseWhite;\n border: 1px solid tokens.$ifxColorEngineering300;\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n\n }\n}\n\n.btn-tertiary {\n background-color: transparent;\n color: tokens.$ifxColorBaseBlack;\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n pointer-events: none;\n }\n}\n\n\n.btn {\n\n &.icon-button {\n min-width: initial;\n min-height: initial;\n width: tokens.$ifxSize500;\n height: tokens.$ifxSize500;\n padding: 0;\n justify-content: center;\n\n &.btn-round {\n border-radius: 100px;\n }\n\n &.btn-square {\n border-radius: tokens.$ifxBorderRadius12;\n }\n\n &.btn-s {\n width: tokens.$ifxSize400;\n height: tokens.$ifxSize400;\n padding: 8px;\n }\n\n\n &.btn-l {\n width: tokens.$ifxSize600;\n height: tokens.$ifxSize600;\n padding: 8px;\n }\n }\n\n &.btn-primary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n\n &.btn-secondary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n background-color: tokens.$ifxColorOcean600;\n border-color: tokens.$ifxColorOcean600;\n color: tokens.$ifxColorBaseWhite;\n }\n\n &:active,\n &.active {\n background-color: tokens.$ifxColorOcean700;\n border-color: tokens.$ifxColorOcean700;\n }\n }\n\n &.btn-tertiary:not(:disabled, .disabled) {\n &:focus:not(:active, .active) {\n outline: none;\n color: tokens.$ifxColorBaseBlack;\n box-shadow: 0 0 0 0px tokens.$ifxColorBaseWhite, 0 0 0 2px tokens.$ifxColorOcean500;\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active,\n &.active {\n color: tokens.$ifxColorOcean600;\n }\n }\n}","import { Component, Prop, h, Host, Method, Element, Listen } from '@stencil/core';\nimport classNames from 'classnames';\n \n\n@Component({\n tag: 'ifx-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\n\nexport class IconButton {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary';\n @Prop() size: string;\n @Prop() disabled: boolean;\n @Prop() icon: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() shape: string = 'round';\n @Element() el;\n\n private focusableElement: HTMLElement;\n\n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n componentWillLoad() {\n if (this.shape === '') {\n this.shape = 'round';\n }\n }\n\n render() {\n return (\n <Host>\n {this.href ? (\n <a\n aria-disabled={this.disabled}\n aria-label='a clickable icon button'\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.href : undefined}\n target={this.target}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n >\n <ifx-icon icon={this.icon}></ifx-icon>\n </a>\n ) : (\n <button\n class={this.getClassNames()}\n type=\"button\"\n >\n <ifx-icon icon={this.icon}></ifx-icon>\n </button>\n )}\n </Host>\n );\n }\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary`\n : `${this.variant}` === 'tertiary'\n ? `tertiary`\n : `primary`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn icon-button',\n `btn-${this.shape}`,\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}"],"mappings":"6FAAA,MAAMA,EAAgB,y4EACtB,MAAAC,EAAeD,E,MCSFE,EAAU,M,gJAMI,Q,WACD,O,CAMxB,WAAAC,CAAYC,GACV,GAAIC,KAAKC,SAAU,CACjBF,EAAMG,0B,EAKV,cAAMC,GACJH,KAAKI,iBAAiBC,O,CAGxB,iBAAAC,GACE,GAAIN,KAAKO,QAAU,GAAI,CACrBP,KAAKO,MAAQ,O,EAIjB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACFX,KAAKY,KACJH,EAAA,qBACiBT,KAAKC,SAAQ,aACjB,0BACXY,IAAMC,GAAQd,KAAKI,iBAAmBU,EACtCC,MAAOf,KAAKgB,gBACZJ,MAAOZ,KAAKC,SAAWD,KAAKY,KAAOK,UACnCC,OAAQlB,KAAKkB,OACbC,IAAKnB,KAAKkB,SAAW,SAAW,sBAAwBD,WAExDR,EAAA,YAAUW,KAAMpB,KAAKoB,QAGvBX,EAAA,UACEM,MAAOf,KAAKgB,gBACZK,KAAK,UAELZ,EAAA,YAAUW,KAAMpB,KAAKoB,Q,CAO/B,eAAAE,GACE,MAAO,GAAGtB,KAAKuB,YAAc,YACzB,YACA,GAAGvB,KAAKuB,YAAc,WACpB,WACA,S,CAGR,YAAAC,GACE,GAAI,GAAGxB,KAAKyB,SAAW,KAAM,CAC3B,MAAO,I,MAEJ,GAAI,GAAGzB,KAAKyB,SAAW,IAAK,CAC/B,MAAO,G,MAEJ,GAAI,GAAGzB,KAAKyB,SAAW,IAAK,CAC/B,MAAO,G,MAEJ,MAAO,E,CAGd,aAAAT,GACE,OAAOU,EACL,kBACA,OAAO1B,KAAKO,QACZP,KAAKyB,MAAQ,OAAOzB,KAAKwB,iBACzB,OAAOxB,KAAKsB,oBACZtB,KAAKC,SAAW,WAAa,G","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as s,h as e}from"./p-6b122987.js";const t=':root{--ifx-font-family:"Source Sans 3";font-family:var(--ifx-font-family, sans-serif)}:host{display:flex;width:100%}.progress-bar{height:16px;bottom:0;right:0;top:0;left:0;display:flex;height:20px;border-radius:1px;width:100%;overflow:hidden;background-color:#EEEDED;font-family:var(--ifx-font-family, sans-serif)}.progress-bar.s{height:4px}.progress-bar .label{font-style:normal;font-size:0.875rem;font-weight:400;line-height:1.25rem;color:#FFFFFF}.progress-bar .progress{display:flex;align-items:center;justify-content:center;min-width:fit-content;height:100%;background-color:#0A8276;transition:width 0.2s ease}';const i=t;const r=class{constructor(e){s(this,e);this.value=0;this.size=undefined;this.showLabel=false;this.internalValue=undefined}valueChanged(s,e){if(s!==e){this.internalValue=s}}componentWillLoad(){this.internalValue=this.value}render(){return e("div",{key:"9357496a783f4b3e1b044ab4d706ee83e443dd58","aria-label":"a progress bar","aria-value":this.value,class:`progress-bar ${this.size}`},e("div",{key:"29fd4c791396b927456b4fc514fdbada0d03bc7f",class:"progress",style:{width:`${this.internalValue}%`}},this.showLabel&&this.size!=="s"&&this.internalValue!==0&&e("span",{key:"945e380d7991c53930f1b3ebc396cfec1bc06d31",class:"label"},`${this.internalValue}%`)))}static get watchers(){return{value:["valueChanged"]}}};r.style=i;export{r as ifx_progress_bar};
2
- //# sourceMappingURL=p-c34f5517.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["progressBarCss","IfxProgressBarStyle0","ProgressBar","valueChanged","newValue","oldValue","this","internalValue","componentWillLoad","value","render","h","key","class","size","style","width","showLabel"],"sources":["src/components/progress-bar/progress-bar.scss?tag=ifx-progress-bar&encapsulation=shadow","src/components/progress-bar/progress-bar.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: flex;\n width: 100%;\n}\n\n.progress-bar {\n height: tokens.$ifxSize200;\n bottom: 0;\n right: 0;\n top: 0;\n left: 0;\n display: flex;\n height: tokens.$ifxSize250;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%; // Ensure the bar itself can grow up to 100% width\n overflow: hidden; // Ensures that the inner progress bar doesn't exceed the width of the outer progress bar\n background-color: tokens.$ifxColorEngineering200;\n font-family: var(--ifx-font-family, sans-serif);\n \n &.s {\n height: 4px;\n }\n\n .label {\n font-style: normal;\n font-size: tokens.$ifxFontSizeS;\n font-weight: 400;\n line-height: tokens.$ifxLineHeightS;\n color: tokens.$ifxColorBaseWhite;\n }\n \n .progress {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: fit-content;\n height: 100%;\n background-color: #0A8276;\n transition: width 0.2s ease;\n }\n}","import { Component, Prop, h, State, Watch } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-progress-bar',\n styleUrl: 'progress-bar.scss',\n shadow: true\n})\nexport class ProgressBar {\n @Prop() value: number = 0;\n @Prop() size: string;\n @Prop() showLabel: boolean = false;\n\n @State() internalValue: number;\n\n @Watch('value')\n valueChanged(newValue: number, oldValue: number) {\n if (newValue !== oldValue) {\n this.internalValue = newValue;\n }\n }\n\n \n componentWillLoad() {\n this.internalValue = this.value;\n }\n\n\n\n render() {\n return (\n <div aria-label='a progress bar' aria-value={this.value} class={`progress-bar ${this.size}`}>\n <div class=\"progress\" style={{ width: `${this.internalValue}%` }}>\n {this.showLabel && this.size !== \"s\" && this.internalValue !== 0 && <span class=\"label\">{`${this.internalValue}%`}</span>}\n </div>\n </div>\n );\n }\n}\n"],"mappings":"2CAAA,MAAMA,EAAiB,0mBACvB,MAAAC,EAAeD,E,MCOFE,EAAW,M,oCACE,E,mCAEK,M,6BAK7B,YAAAC,CAAaC,EAAkBC,GAC7B,GAAID,IAAaC,EAAU,CACzBC,KAAKC,cAAgBH,C,EAKzB,iBAAAI,GACEF,KAAKC,cAAgBD,KAAKG,K,CAK5B,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,iBAAgB,aAAaN,KAAKG,MAAQI,MAAO,gBAAgBP,KAAKQ,QACpFH,EAAA,OAAAC,IAAA,2CAAKC,MAAM,WAAWE,MAAO,CAAEC,MAAO,GAAGV,KAAKC,mBAC3CD,KAAKW,WAAaX,KAAKQ,OAAS,KAAOR,KAAKC,gBAAkB,GAAKI,EAAA,QAAAC,IAAA,2CAAMC,MAAM,SAAS,GAAGP,KAAKC,mB","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["stepCss","IfxStepStyle0","Step","activeStep","showStepNumber","variant","indicatorPosition","onStepChange","event","previousActiveStep","detail","this","stepId","error","clickable","updateCurrentStep","newStepperState","active","updateErrorState","handleStepClick","disabled","stepperState","complete","setActiveStep","handleStepKeyDown","key","stopOnClickPropogation","stopPropagation","render","h","onClick","e","class","lastStep","icon","tabIndex","onKeyDown"],"sources":["src/components/stepper/step/step.scss?tag=ifx-step&encapsulation=shadow","src/components/stepper/step/step.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.step-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n gap: tokens.$ifxSize100;\n font: tokens.$ifxBodyBody03;\n\n &.vertical {\n flex-direction: row;\n gap: tokens.$ifxSize150;\n width: unset;\n height: 100%;\n \n .step-icon-wrapper {\n flex-direction: column;\n width: unset;\n height: 100%;\n }\n }\n \n &.compact {\n gap: 0;\n max-width: 100%;\n .step-label{\n max-width: 100%;\n cursor: auto;\n align-self: flex-start;\n }\n \n &.indicator-left {\n align-items: flex-end;\n text-align: right;\n }\n \n &.indicator-right {\n align-items: flex-start;\n }\n }\n\n .step-label {\n max-width: 90%;\n color: tokens.$ifxColorEngineering400; \n word-wrap: break-word;\n &.curr-label{\n font: tokens.$ifxHeadingHeadingCompact04; \n }\n &.next-label{\n font: tokens.$ifxBodyBody05;\n }\n :hover{\n color: tokens.$ifxColorEngineering400;\n }\n }\n\n \n &.first-step {\n .step-connector-l{\n height: 0px;\n }\n }\n \n &.last-step{\n .step-connector-r{\n height: 0px;\n }\n }\n\n &.vertical {\n &.first-step .step-connector-l,\n &.last-step .step-connector-r {\n width: 0px;\n }\n }\n\n &.complete{\n .step-connector-l, .step-connector-r, .step-icon {\n background: tokens.$ifxColorOcean500;\n &.active, &.error {\n background: tokens.$ifxColorEngineering400;\n }\n }\n &:not(.disabled) {\n .step-label{\n cursor: pointer;\n color: tokens.$ifxColorBaseBlack;\n :hover {\n color: tokens.$ifxColorOcean600;\n }\n }\n }\n } \n \n &.disabled{\n .step-connector-l, \n .step-connector-r, \n .step-icon {\n background-color: tokens.$ifxColorEngineering400;\n }\n .step-label, \n .step-label :hover{\n color: tokens.$ifxColorEngineering400;\n }\n }\n \n &.active{\n .step-connector-l, \n .step-connector-r, \n .step-icon {\n background: tokens.$ifxColorOcean500;\n &.active, \n &.error {\n background: tokens.$ifxColorEngineering400;\n }\n }\n .step-label, \n .step-label :hover{\n color: tokens.$ifxColorBaseBlack;\n }\n &.complete .step-label { \n cursor: auto;\n }\n } \n\n &.clickable:not(.active) .step-label{\n cursor: pointer;\n }\n\n &.error:not(.active){\n color: tokens.$ifxColorRed500;\n .step-label{\n color: tokens.$ifxColorRed500;\n :hover{\n color: tokens.$ifxColorOcean500;\n }\n }\n }\n\n &.disabled{\n .step-label{\n cursor: auto;\n }\n }\n\n &:hover{\n &.complete:not(.disabled):not(.active){\n .step-connector-l, \n .step-connector-r, \n .step-icon {\n background: tokens.$ifxColorOcean600;\n &.active, \n &.error {\n background: tokens.$ifxColorEngineering400;\n }\n } \n .step-label {\n color: tokens.$ifxColorOcean600;\n }\n }\n }\n \n}\n\n.active-indic {\n width: tokens.$ifxSize200;\n height: tokens.$ifxSize200;\n border-radius: tokens.$ifxBorderRadiusRound;\n background: white;\n}\n\n.step-icon-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n width: 100%;\n}\n\n.step-icon {\n width: tokens.$ifxSize300;\n height: tokens.$ifxSize300;\n background-color: tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadiusRound;\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n}\n\n.step-connector-r, \n.step-connector-l {\n height: 2px;\n min-width: tokens.$ifxSize500;\n flex-grow: 1;\n background-color: tokens.$ifxColorEngineering400;\n}\n\n.vertical {\n .step-connector-r, \n .step-connector-l {\n height: unset;\n min-width: unset;\n width: 2px;\n min-height: tokens.$ifxSize500;\n }\n}","import { h, \n Component, \n Listen, \n Prop, \n State, \n Watch } from \"@stencil/core\";\nimport { StepperState } from \"../interfaces\";\n\n@Component({\n tag: 'ifx-step',\n styleUrl: 'step.scss',\n shadow: true\n})\n\nexport class Step {\n @Prop() complete?: boolean = false;\n @Prop() disabled?: boolean = false;\n @Prop({ mutable: true }) error?: boolean = false;\n @Prop({ reflect: false }) lastStep: boolean = false;\n @Prop() stepId: number = 1;\n @Prop({ reflect: false }) stepperState: StepperState = { activeStep: 1, \n showStepNumber: false, \n variant: 'default', \n indicatorPosition: 'left' };\n\n @State() active: boolean;\n @State() clickable: boolean = false;\n\n @Listen('ifxChange', { target: 'document' })\n onStepChange(event: CustomEvent) {\n const previousActiveStep = event.detail.previousActiveStep;\n if (previousActiveStep === this.stepId && this.error) {\n this.clickable = true;\n }\n } \n\n @Watch('stepperState')\n updateCurrentStep(newStepperState) {\n this.active = (newStepperState.activeStep === this.stepId)\n }\n\n @Watch('active')\n updateErrorState(){\n if (this.active) {\n this.error = false;\n }\n }\n\n\n handleStepClick() {\n if (!this.disabled && this.stepperState.variant !== 'compact' && (this.clickable || this.complete)) {\n this.stepperState.setActiveStep(this.stepId, true)\n } \n }\n \n handleStepKeyDown(event: KeyboardEvent) {\n if (!this.disabled && this.stepperState.variant !== 'compact' && (this.clickable || this.complete) && event.key === 'Enter') {\n this.stepperState.setActiveStep(this.stepId, true)\n } \n }\n \n stopOnClickPropogation(event: Event) {\n if (this.disabled) {\n event.stopPropagation();\n }\n }\n\n render() {\n return (\n <div aria-current = {this.active ? 'step': false}\n aria-disabled = {this.active || this.complete ? false : true}\n onClick={ (e) => this.stopOnClickPropogation(e) }\n class = {`step-wrapper ${this.stepId === 1 ? 'first-step': ''} \n ${this.error ? 'error': ''}\n ${this.stepperState.variant}\n ${this.complete ? 'complete': ''}\n ${this.lastStep ? 'last-step': ''}\n indicator-${this.stepperState.indicatorPosition}\n ${this.active ? 'active' : ''}\n ${this.clickable ? 'clickable' : ''}\n ${this.disabled ? 'disabled': ''}`}>\n\n <div class = 'step-icon-wrapper'>\n {/* Left connector */}\n {this.stepperState.variant !== 'compact' && <span class = 'step-connector-l'/>}\n\n {\n (this.stepperState.variant !== 'compact' && (!this.error || (this.error && this.active))) && \n <div class = 'step-icon'>\n {(this.stepperState.showStepNumber && !this.complete && !this.active) ? this.stepId : ''}\n {(this.complete && !this.active) && <ifx-icon icon='check16'></ifx-icon>}\n {this.active && <span class = 'active-indic'></span>}\n </div>\n }\n\n {(this.stepperState.variant !=='compact' && this.error && !this.active) && <ifx-icon icon='warningf24'></ifx-icon>}\n \n {/* Right connector */}\n {this.stepperState.variant !== 'compact' && <span class = {`step-connector-r ${this.active ? 'active' : ''}`}/>}\n </div>\n\n {\n /* Step labels */\n (this.stepperState.variant !== 'compact' || (this.stepperState.variant === 'compact' && (this.active || this.stepId === this.stepperState.activeStep+1))) && \n <div tabIndex={!this.disabled && this.complete && !this.active ? 0 : -1} \n class = {`step-label ${this.stepperState.variant === 'compact' ? (this.active ? 'curr-label' : 'next-label') : ''}`} \n onClick={() => { this.handleStepClick() }} \n onKeyDown={(e) => { this.handleStepKeyDown(e) }}>\n\n {(this.stepperState.variant !== 'compact') && <slot/>}\n\n {this.stepperState.variant === 'compact' && !this.active ? 'Next: ' : ''}\n {this.stepperState.variant === 'compact' && <slot/>}\n </div>\n }\n\n </div>\n );\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,a as s,g as a}from"./p-6b122987.js";const l=":host{display:block;width:100%}.search-container{display:flex;width:calc(100% - 48px);padding-left:24px;padding-right:24px;flex-direction:row;align-items:flex-start;margin-bottom:16px}.components-container{display:flex;width:calc(100% - 48px);padding-left:24px;padding-right:24px;flex-direction:row;align-items:flex-end;align-content:flex-end;flex-wrap:wrap;gap:16px}.filter-slot-wrapper{flex-grow:1;flex-basis:100%;max-width:100%}@media (max-width: 1024px){.more-filters-wrapper{order:3;width:100%;display:flex;justify-content:center;padding-top:16px;}}@media (min-width: 720px) and (max-width: 1024px){.filter-slot-wrapper{flex-basis:calc((100% - 16px) / 2);max-width:calc((100% - 16px) / 2)}}@media (min-width: 1025px){.filter-slot-wrapper{flex-basis:auto;max-width:200px}::slotted([slot=filter-search]){max-width:828px}}::slotted([slot=filter-search]){flex-grow:1;flex-basis:100%;width:100%}";const r=l;const n=class{constructor(i){t(this,i);this.ifxTopbarFilterChange=e(this,"ifxTopbarFilterChange",7);this.handleMoreFiltersClick=()=>{this.showAllFilters=true;this.updateVisibleSlots()};this.handleResetEvent=()=>{var t;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector('slot[name="filter-search"]');if(e instanceof HTMLSlotElement){const t=e.assignedElements({flatten:true});t.forEach((t=>{const e=t.querySelector("ifx-filter-search");const i=e.shadowRoot.querySelectorAll("ifx-search-field");if(i.length>0){i.forEach((t=>{t.value=""}))}}))}this.selectedOptions=[];this.ifxTopbarFilterChange.emit(this.selectedOptions)};this.handleSearchChange=t=>{this.handleTopbarFilterChange(t)};this.handleFilterSelect=t=>{this.handleTopbarFilterChange(t)};this.handleTopbarFilterChange=t=>{const e=[...this.selectedOptions];if(t.type==="ifxFilterSearchChange"){const{filterName:i,filterValue:s}=t.detail;const a=e.findIndex((t=>t.filterName===i));if(a!==-1){e[a].filterValues=[s]}else{e.push({filterName:i,filterValues:[s],type:"text"})}}else if(t.type==="ifxFilterSelect"){const{filterName:i,filterValues:s,type:a}=t.detail;const l=e.findIndex((t=>t.filterName===i));if(l!==-1){e[l].filterValues=s;e[l].type=a}else{e.push({filterName:i,filterValues:s,type:a})}}this.selectedOptions=e;this.ifxTopbarFilterChange.emit(this.selectedOptions)};this.selectedOptions=[];this.showAllFilters=false;this.maxShownFilters=4;this.visibleSlots=undefined;this.showMoreFiltersButton=true}connectedCallback(){this.el.addEventListener("ifxFilterSelect",this.handleTopbarFilterChange);this.el.addEventListener("ifxFilterSearchChange",this.handleSearchChange);window.addEventListener("ifxResetFiltersEvent",this.handleResetEvent)}componentWillUnload(){this.el.removeEventListener("ifxFilterSelect",this.handleTopbarFilterChange);this.el.removeEventListener("ifxFilterSearchChange",this.handleSearchChange);window.removeEventListener("ifxResetFiltersEvent",this.handleResetEvent)}componentDidLoad(){this.updateVisibleSlots()}updateVisibleSlots(){this.visibleSlots=this.showAllFilters?Number.MAX_SAFE_INTEGER:this.maxShownFilters}render(){const t=Math.max(0,this.visibleSlots);const e=this.el.querySelectorAll("ifx-set-filter").length;const a=Math.min(t,e,Number.MAX_SAFE_INTEGER);const l=Array.from({length:a},((t,e)=>i("div",{class:"filter-slot-wrapper"},i("slot",{name:`filter-component-${e+1}`}))));return i(s,{key:"8ffcbb0968bdd83b7d7f2e43ed48f42d39977732"},i("div",{key:"7cb3a8a4d5f0ad7b0f2610ea27f0a805328e8eb7",class:"search-container"},i("slot",{key:"4d9ea4aea490bf15c98011366594e6334e5cd2f1",name:"filter-search"})," "),i("div",{key:"42c5b558e0095e81dea5440765c34e38c9658564",class:"components-container"},l.length>0?l:i("slot",{name:"filter-component"}),this.showMoreFiltersButton&&!this.showAllFilters&&i("div",{key:"d202e60944d15b73281705ab9da10b0182881e38",class:"more-filters-wrapper",onClick:this.handleMoreFiltersClick},i("ifx-button",{key:"ab0fcaa64cdc33211cb184f8797acade0874d95a",type:"button",disabled:false,variant:"tertiary",size:"m",target:"_blank",theme:"default","full-width":"false"},i("ifx-icon",{key:"f8258f0e65e87c38ed0a4b5355e17c76c083aca0",icon:"filter-16"}),"More filters"))))}get el(){return a(this)}};n.style=r;export{n as ifx_filter_bar};
2
- //# sourceMappingURL=p-c80f9282.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["filterBarCss","IfxFilterBarStyle0","FilterBar","this","handleMoreFiltersClick","showAllFilters","updateVisibleSlots","handleResetEvent","filterSearchSlot","_a","el","shadowRoot","querySelector","HTMLSlotElement","filterSearchSlottedElements","assignedElements","flatten","forEach","filterSearchWrapper","filterSearch","searchField","querySelectorAll","length","searchFieldElement","value","selectedOptions","ifxTopbarFilterChange","emit","handleSearchChange","event","handleTopbarFilterChange","handleFilterSelect","newSelectedOptions","type","filterName","filterValue","detail","existingOptionIndex","findIndex","option","filterValues","push","connectedCallback","addEventListener","window","componentWillUnload","removeEventListener","componentDidLoad","visibleSlots","Number","MAX_SAFE_INTEGER","maxShownFilters","render","safeVisibleSlots","Math","max","actualNumberOfComponents","slotsToShow","min","slots","Array","from","_","i","h","class","name","Host","key","showMoreFiltersButton","onClick","disabled","variant","size","target","theme","icon"],"sources":["src/components/table-advanced-version/filter-bar/filter-bar.scss?tag=ifx-filter-bar&encapsulation=shadow","src/components/table-advanced-version/filter-bar/filter-bar.tsx"],"sourcesContent":["/* filter-bar.scss */\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: block;\n width: 100%;\n}\n\n.search-container {\n display: flex;\n width: calc(100% - 48px); /* Adjust width to account for padding */\n padding-left: 24px;\n padding-right: 24px; flex-direction: row;\n align-items: flex-start;\n margin-bottom: tokens.$ifxSpace200;\n}\n\n.components-container {\n display: flex;\n width: calc(100% - 48px); /* Adjust width to account for padding */\n padding-left: 24px;\n padding-right: 24px; flex-direction: row;\n align-items: flex-end;\n align-content:flex-end;\n flex-wrap: wrap;\n gap: tokens.$ifxSpace200;\n}\n\n.filter-slot-wrapper {\n flex-grow: 1;\n flex-basis: 100%; \n max-width: 100%; \n }\n\n@media (max-width: 1024px) { /* Adjust based on your breakpoints for mid/small screens */\n .more-filters-wrapper {\n order: 3; /* Keeps the button at the end/new row */\n width: 100%; /* Takes full width to allow centering */\n display: flex; /* Enables flexbox properties */\n justify-content: center; /* Centers the button horizontally */\n padding-top: tokens.$ifxSpace200; /* Adds space above the button, adjust as needed */\n }\n }\n\n\n @media (min-width: 720px) and (max-width: 1024px) {\n .filter-slot-wrapper {\n flex-basis: calc((100% - tokens.$ifxSpace200) / 2);\n max-width: calc((100% - tokens.$ifxSpace200) / 2);\n }\n \n\n}\n\n @media (min-width: 1025px) {\n .filter-slot-wrapper {\n flex-basis: auto; \n max-width: 200px; \n }\n\n ::slotted([slot=\"filter-search\"]) {\n max-width: 828px;\n }\n }\n \n ::slotted([slot=\"filter-search\"]) {\n flex-grow: 1;\n flex-basis: 100%;\n width: 100%; \n }","// FilterBar.tsx\nimport { Component, h, Host, Element, Event, EventEmitter, State, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ifx-filter-bar',\n styleUrl: 'filter-bar.scss',\n shadow: true\n})\nexport class FilterBar {\n @Element() el: HTMLElement;\n @State() selectedOptions: Array<{ filterName: string, filterValues: [string], type: string }> = [];\n @Event() ifxTopbarFilterChange: EventEmitter;\n @State() showAllFilters: boolean = false;\n @Prop() maxShownFilters: number = 4; // Default to 4, can be overridden by parent component\n @State() visibleSlots: number;\n@Prop() showMoreFiltersButton: boolean = true;\n\n /* If the component is ever removed and then reattached to the DOM, \nconnectedCallback ensures that the event listeners are properly set up again */\n connectedCallback() {\n this.el.addEventListener('ifxFilterSelect', this.handleTopbarFilterChange);\n this.el.addEventListener('ifxFilterSearchChange', this.handleSearchChange);\n window.addEventListener('ifxResetFiltersEvent', this.handleResetEvent);\n }\n\n componentWillUnload() {\n this.el.removeEventListener('ifxFilterSelect', this.handleTopbarFilterChange);\n this.el.removeEventListener('ifxFilterSearchChange', this.handleSearchChange);\n window.removeEventListener('ifxResetFiltersEvent', this.handleResetEvent);\n }\n\n \n componentDidLoad() {\n this.updateVisibleSlots();\n }\n\n// Modify updateVisibleSlots to use showAllFilters to determine the number of slots\nupdateVisibleSlots() {\n this.visibleSlots = this.showAllFilters ? Number.MAX_SAFE_INTEGER : this.maxShownFilters;\n }\n\n handleMoreFiltersClick = () => {\n this.showAllFilters = true;\n this.updateVisibleSlots(); // Recalculate visible slots based on the new state\n }\n\n handleResetEvent = () => {\n const filterSearchSlot = this.el.shadowRoot?.querySelector('slot[name=\"filter-search\"]');\n if (filterSearchSlot instanceof HTMLSlotElement) { // Ensure it's treated as HTMLSlotElement\n const filterSearchSlottedElements = filterSearchSlot.assignedElements({ flatten: true });\n \n filterSearchSlottedElements.forEach((filterSearchWrapper: HTMLElement) => {\n const filterSearch = filterSearchWrapper.querySelector('ifx-filter-search');\n\n const searchField = filterSearch.shadowRoot.querySelectorAll('ifx-search-field')\n\n if (searchField.length > 0) {\n searchField.forEach((searchFieldElement: any) => {\n searchFieldElement.value = '';\n });\n }\n });\n }\n\n this.selectedOptions = [];\n\n // Emit the change to inform any parent components that the filters have been reset\n this.ifxTopbarFilterChange.emit(this.selectedOptions);\n }\n\n\n handleSearchChange = (event: CustomEvent) => {\n this.handleTopbarFilterChange(event);\n }\n\n handleFilterSelect = (event: CustomEvent) => {\n this.handleTopbarFilterChange(event);\n }\n\n handleTopbarFilterChange = (event: CustomEvent) => {\n const newSelectedOptions = [...this.selectedOptions];\n\n if (event.type === 'ifxFilterSearchChange') {\n const { filterName, filterValue } = event.detail;\n const existingOptionIndex = newSelectedOptions.findIndex(option => option.filterName === filterName);\n\n if (existingOptionIndex !== -1) {\n // If an existing filter is found, update its value\n newSelectedOptions[existingOptionIndex].filterValues = [filterValue];\n } else {\n newSelectedOptions.push({ filterName: filterName, filterValues: [filterValue], type: 'text' });\n }\n } else if (event.type === 'ifxFilterSelect') {\n const { filterName, filterValues, type } = event.detail;\n const existingOptionIndex = newSelectedOptions.findIndex(option => option.filterName === filterName);\n\n if (existingOptionIndex !== -1) {\n newSelectedOptions[existingOptionIndex].filterValues = filterValues;\n newSelectedOptions[existingOptionIndex].type = type; // Update type based on the number of selected items\n } else {\n newSelectedOptions.push({ filterName: filterName, filterValues: filterValues, type: type });\n }\n }\n\n this.selectedOptions = newSelectedOptions;\n this.ifxTopbarFilterChange.emit(this.selectedOptions);\n }\n\n render() {\n const safeVisibleSlots = Math.max(0, this.visibleSlots);\n\n const actualNumberOfComponents = this.el.querySelectorAll('ifx-set-filter').length; \n // Calculate slotsToShow safely\n const slotsToShow = Math.min(safeVisibleSlots, actualNumberOfComponents, Number.MAX_SAFE_INTEGER);\n\n const slots = Array.from({ length: slotsToShow }, (_, i) => (\n <div class=\"filter-slot-wrapper\">\n <slot name={`filter-component-${i + 1}`}></slot>\n </div>\n ));\n\n return (\n <Host>\n <div class=\"search-container\">\n <slot name=\"filter-search\"></slot> {/* Directly place the search slot here */}\n </div>\n <div class=\"components-container\">\n {slots.length > 0 ? slots : <slot name=\"filter-component\"></slot>}\n {this.showMoreFiltersButton && !this.showAllFilters && (\n <div class=\"more-filters-wrapper\" onClick={this.handleMoreFiltersClick}>\n <ifx-button type=\"button\" disabled={false} variant=\"tertiary\" size=\"m\" target=\"_blank\" theme=\"default\" full-width=\"false\">\n <ifx-icon icon=\"filter-16\"></ifx-icon>More filters\n </ifx-button>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["datePickerCss","IfxDatePickerStyle0","DatePicker","this","inputId","datePickerId","getDate","e","inputValue","target","value","selectedDate","Date","day","month","getMonth","year","getFullYear","internals","setFormValue","ifxDate","emit","input","el","shadowRoot","querySelector","classList","add","toISOString","substring","handleInputFocusOnIconClick","focus","getBrowser","navigator","userAgent","indexOf","setFireFoxClasses","browser","contains","remove","componentDidLoad","formResetCallback","render","h","key","class","error","disabled","htmlFor","_a","label","trim","size","type","success","undefined","AriaLabel","max","min","required","onChange","role","onClick","icon","_b","caption"],"sources":["src/components/date-picker/date-picker.scss?tag=ifx-date-picker&encapsulation=shadow","src/components/date-picker/date-picker.tsx"],"sourcesContent":["@use '~@infineon/design-system-tokens/dist/tokens';\n\n.date__picker-container {\n display: flex;\n flex-direction: column;\n\n & .label__wrapper {\n color: tokens.$ifxColorBaseBlack;\n font: tokens.$ifxBodyBody03;\n }\n\n &.disabled {\n .label__wrapper {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n &.error {\n .caption__wrapper {\n color: tokens.$ifxColorRed500;\n }\n }\n\n &.disabled {\n .caption__wrapper {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n & .caption__wrapper {\n margin-top: tokens.$ifxSpace50;\n color: tokens.$ifxColorBaseBlack;\n font: tokens.$ifxBodyBody05;\n }\n}\n\n.date__picker-input {\n font-family: 'Source Sans 3';\n outline: none;\n width: 100%;\n cursor: pointer;\n border-radius: 1px;\n border: 1px solid tokens.$ifxColorEngineering400;\n height: 100%;\n\n &.firefox__classes {\n padding: 8px 16px;\n color: tokens.$ifxColorEngineering400;\n font-size: 16px;\n text-transform: uppercase;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n cursor: pointer;\n }\n\n &:focus:not(.error, .success) {\n border-color: tokens.$ifxColorOcean500;\n }\n\n &:hover:not(:disabled, :focus, .error, .success) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &:disabled {\n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.error {\n border-color: tokens.$ifxColorRed500;\n }\n\n &.success:not(.error) {\n border-color: tokens.$ifxColorGreen500;\n }\n\n &::-webkit-datetime-edit-text {\n color: tokens.$ifxColorEngineering400;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n\n &.has-value::-webkit-datetime-edit-text {\n color: tokens.$ifxColorBaseBlack;\n }\n\n &.has-value::-webkit-datetime-edit {\n color: tokens.$ifxColorBaseBlack;\n }\n}\n\n::-webkit-datetime-edit {\n color: tokens.$ifxColorEngineering400;\n font-size: 16px;\n text-transform: uppercase;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 8px 16px;\n padding-bottom: 9px;\n transform: translateY(1px);\n}\n\n::-webkit-inner-spin-button {\n display: none;\n}\n\n::-webkit-calendar-picker-indicator {\n position: absolute;\n right: 15px;\n font-size: 19px;\n cursor: pointer;\n border-radius: 1px;\n &:focus-within {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n}\n\n.input__wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n background: tokens.$ifxColorBaseWhite;\n position: relative;\n &.large {\n height: 40px;\n }\n\n &.small {\n height: 36px;\n }\n\n &.disabled {\n & .icon__wrapper {\n background-color: tokens.$ifxColorEngineering200;\n }\n }\n}\n\n.icon__wrapper {\n position: absolute;\n right: 17px;\n padding: 2px;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n pointer-events: none;\n z-index: 100;\n background-color: tokens.$ifxColorBaseWhite;\n line-height: 16px;\n\n & ifx-icon {\n vertical-align: middle;\n }\n}\n","import { AttachInternals } from '@stencil/core';\nimport { Component, Prop, h, Element, Event, EventEmitter } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-date-picker',\n styleUrl: 'date-picker.scss',\n shadow: true,\n formAssociated: true,\n})\n\nexport class DatePicker {\n private inputId: string = `ifx-date-picker-${++datePickerId}`;\n\n @Element() el: HTMLElement;\n @Prop() size: string = 's';\n @Prop() error: boolean = false;\n @Prop() success: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() AriaLabel: string;\n @Prop() value: string;\n @Prop() max: string;\n @Prop() min: string;\n @Prop() required: boolean = false;\n @Prop() label: string;\n @Prop() caption: string;\n\n @AttachInternals() internals: ElementInternals;\n\n @Event() ifxDate: EventEmitter;\n\n getDate(e) { \n const inputValue = e.target.value;\n const selectedDate = new Date(inputValue);\n const day = selectedDate.getDate();\n const month = selectedDate.getMonth() + 1; \n const year = selectedDate.getFullYear();\n \n if (!inputValue) {\n this.internals.setFormValue(null);\n this.ifxDate.emit({day, month, year});\n return;\n }\n\n const input = this.el.shadowRoot.querySelector('.date__picker-input') as HTMLInputElement;\n input.classList.add('has-value');\n\n this.internals.setFormValue(selectedDate.toISOString().substring(0,10))\n this.ifxDate.emit({day, month, year})\n }\n\n handleInputFocusOnIconClick() { \n const input = this.el.shadowRoot.querySelector('.date__picker-input') as HTMLInputElement;\n if(input) { \n input.focus()\n }\n }\n\n getBrowser() {\n if( navigator.userAgent.indexOf(\"Chrome\") != -1 ) {\n return \"Chrome\";\n } else if( navigator.userAgent.indexOf(\"Opera\") != -1 ) {\n return \"Opera\";\n } else if( navigator.userAgent.indexOf(\"MSIE\") != -1 ) {\n return \"IE\";\n } else if( navigator.userAgent.indexOf(\"Firefox\") != -1 ) {\n return \"Firefox\";\n } else {\n return \"unknown\";\n }\n }\n\n setFireFoxClasses() { \n const browser = this.getBrowser()\n const input = this.el.shadowRoot.querySelector('.date__picker-input');\n\n if(browser === 'Firefox') { \n input.classList.add('firefox__classes')\n } else if(input.classList.contains('firefox__classes')) { \n input.classList.remove('firefox__classes')\n }\n }\n\n componentDidLoad() { \n this.setFireFoxClasses()\n if (this.value) {\n this.getDate({ target: { value: this.value } });\n }\n }\n\n formResetCallback() {\n this.internals.setFormValue(null);\n }\n\n render() {\n return (\n <div class={`date__picker-container ${this.error ? 'error' : ''} ${this.disabled ? 'disabled': ''}`}>\n\n <label class='label__wrapper' htmlFor={ this.inputId }>\n { this.label?.trim() }\n </label>\n\n <div class={`input__wrapper ${this.size === 'l' ? 'large' : 'small'} ${this.disabled ? 'disabled' : ''}`}>\n <input\n type=\"date\"\n class={`date__picker-input ${this.error ? 'error' : \"\"} ${this.success ? \"success\" : \"\"}`}\n disabled={this.disabled ? true : undefined}\n aria-invalid={this.error ? true : undefined}\n aria-label={this.AriaLabel}\n max={this.max}\n min={this.min}\n value={this.value}\n required={this.required}\n onChange={(e) => this.getDate(e)} />\n <div class=\"icon__wrapper\" role=\"button\" onClick={() => this.handleInputFocusOnIconClick()}>\n <ifx-icon icon='calendar16' aria-hidden=\"true\"></ifx-icon>\n </div>\n </div>\n\n { this.caption?.trim() && (\n <div class='caption__wrapper'>\n { this.caption.trim() }\n </div> \n )}\n </div>\n )\n }\n}\n\nlet datePickerId = 0;"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,g as s}from"./p-6b122987.js";const n=':root{--ifx-font-family:"Source Sans 3";font-family:var(--ifx-font-family, sans-serif)}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:var(--ifx-font-family)}.ifx-multiselect-container.small-select{height:36px}.ifx-multiselect-container.medium-select{height:40px}.ifx-multiselect-container:hover{cursor:pointer}.ifx-multiselect-container .ifx-label-wrapper{font-size:1rem;line-height:1.5rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-error-message-wrapper{color:#CD002F;font-size:0.75rem;line-height:1rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-multiselect-wrapper{background-color:#FFFFFF;box-sizing:border-box;position:relative;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;width:100%;font-weight:400;font-style:normal}.ifx-multiselect-container .ifx-multiselect-wrapper.small-select{height:36px;padding:8px 12px;font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .ifx-multiselect-wrapper.medium-select{height:40px;padding:8px 16px;font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible{outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active){outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active)::before{content:"";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:50%;left:50%;transform:translate(-50%, -50%);border:2px solid #0A8276;border-radius:2px}.ifx-multiselect-container .ifx-multiselect-wrapper.disabled{background:#EEEDED;color:#575352;border-color:#575352;cursor:default;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ifx-multiselect-container .ifx-multiselect-wrapper.error{border-color:#CD002F}.ifx-multiselect-container .ifx-multiselect-wrapper:hover:not(.focus,:focus){border-color:#575352}.ifx-multiselect-container .ifx-multiselect-wrapper.active{border-color:#0A8276 !important}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-up{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-down{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-up{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-down{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.is-flipped .ifx-multiselect-dropdown-menu{top:auto;bottom:100%}.ifx-multiselect-container .ifx-multiselect-input{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ifx-multiselect-container .ifx-multiselect-input.placeholder{opacity:0.5}.ifx-multiselect-container .ifx-multiselect-icon-container{margin-left:auto;align-items:center;display:flex}.ifx-multiselect-container .ifx-clear-button{display:flex}.ifx-multiselect-container .ifx-multiselect-dropdown-menu{position:absolute;top:100%;left:0;width:100%;margin-top:2px;background-color:#fff;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1);max-height:300px;overflow-y:auto;z-index:var(--dynamic-z-index, 1)}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input{position:sticky;top:0;left:0;z-index:1;width:100%;padding:8px 16px;font-size:1rem;line-height:1.5rem;font-style:normal;font-weight:400;box-sizing:border-box;background-color:#FFFFFF;border:none;border-bottom:1px solid #8D8786}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input:focus{outline:none;border:1px solid #0A8276}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input::placeholder{color:#999}.ifx-multiselect-container .option{position:relative;padding:8px 16px;gap:8px;align-items:center;display:flex;font-style:normal;font-weight:400}.ifx-multiselect-container .option.small-select{font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .option.medium-select{font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .option:hover{background-color:#EEEDED}.ifx-multiselect-container .option:focus:not(.disabled){background-color:#BFBBBB;outline:none}.ifx-multiselect-container .option.is-highlighted{background-color:#EEEDED}.ifx-multiselect-container .option.sub-option{padding-left:30px;}.ifx-multiselect-container .option.disabled:hover{cursor:default}.ifx-multiselect-container .option label{cursor:inherit}.select-all-wrapper{padding-top:8px}';const o=n;function r(t,e){let i;return function s(...n){const o=()=>{clearTimeout(i);t(...n)};clearTimeout(i);i=setTimeout(o,e)}}const l=class{constructor(i){t(this,i);this.ifxSelect=e(this,"ifxSelect",7);this.ifxMultiselectIsOpen=e(this,"ifxMultiselectIsOpen",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.currentIndex=0;this.handleSearch=r((t=>{const e=t.value.toLowerCase();if(e===""){this.filteredOptions=this.loadedOptions}else{this.filteredOptions=this.loadedOptions.filter((t=>{const i=t.label.toLowerCase().includes(e);if(t.children){const s=t.children.some((t=>t.label.toLowerCase().includes(e)));return i||s}return i}))}}),300);this.handleDocumentClick=t=>{const e=t.composedPath();if(!e.includes(this.dropdownElement)){this.dropdownOpen=false;document.removeEventListener("click",this.handleDocumentClick);this.ifxMultiselectIsOpen.emit(this.dropdownOpen)}};this.name=undefined;this.options=undefined;this.batchSize=50;this.size="medium (40px)";this.disabled=false;this.error=false;this.internalError=false;this.errorMessage="Error";this.internalErrorMessage=undefined;this.label="";this.persistentSelectedOptions=[];this.placeholder="";this.dropdownOpen=false;this.dropdownFlipped=undefined;this.maxItemCount=undefined;this.zIndex=1;this.isLoading=false;this.loadedOptions=[];this.filteredOptions=[];this.showSearch=true;this.showSelectAll=true;this.optionCount=0;this.optionsProcessed=false}updateOptions(){this.loadedOptions=[];this.filteredOptions=[];this.optionCount=0;this.optionsProcessed=false;this.persistentSelectedOptions=[];this.loadInitialOptions()}async loadInitialOptions(){this.isLoading=true;this.internalError=this.error;this.internalErrorMessage=this.errorMessage;this.loadedOptions=await this.fetchOptions(0,this.batchSize);this.isLoading=false}async fetchMoreOptions(){this.isLoading=true;const t=await this.fetchOptions(this.loadedOptions.length,this.batchSize);this.loadedOptions=[...this.loadedOptions,...t];this.isLoading=false}handleScroll(t){const e=t.target;const i=Math.floor((e.scrollHeight-e.clientHeight)/2);if(e.scrollTop>=i){this.fetchMoreOptions()}}async fetchOptions(t,e){let i=[];if(typeof this.options==="string"){try{i=JSON.parse(this.options)}catch(t){console.error("Failed to parse options:",t)}}else if(Array.isArray(this.options)){i=this.options}else{console.error("Unexpected value for options:",this.options)}if(!this.optionsProcessed){this.optionCount=this.countOptions(i);const t=this.collectSelectedOptions(i);const e=t.filter((t=>!this.persistentSelectedOptions.some((e=>e.value==t.value))));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...e];this.optionsProcessed=true}const s=i.slice(t,t+e);return s}collectSelectedOptions(t){let e=[];for(const i of t){if(i.selected){if(i.children&&i.children.length>0){e=e.concat(this.collectLeafOptions(i.children))}else{e.push(i)}}else{if(i.children&&i.children.length>0){e=e.concat(this.collectSelectedOptions(i.children))}}}return e}collectLeafOptions(t){let e=[];for(const i of t){if(i.children&&i.children.length>0){e=e.concat(this.collectLeafOptions(i.children))}else{e.push(i)}}return e}countOptions(t){let e=0;for(const i of t){if(i.children&&i.children.length>=0){e+=this.countOptions(i.children)}else{e++}}return e}componentDidLoad(){setTimeout((()=>{this.positionDropdown()}),500)}componentWillLoad(){this.loadInitialOptions();this.filteredOptions=[...this.loadedOptions]}updateInternalError(){this.internalError=this.error}updateInternalErrorMessage(){this.internalErrorMessage=this.errorMessage}loadedOptionsChanged(){this.filteredOptions=[...this.loadedOptions]}onSelectionChange(t,e){const i=new FormData;t.forEach((t=>i.append(this.name,t.value)));this.internals.setFormValue(i)}handleOptionClick(t){this.internalError=false;if(!t.selected&&this.isSelectionLimitReached(t)){t.checkboxRef.toggleCheckedState(false);this.internalError=true;this.internalErrorMessage="Please consider the maximum number of items to choose from";return}this.updateSelection(t);this.ifxSelect.emit(this.persistentSelectedOptions)}isSelectionLimitReached(t){let e=t.children?t.children.length:1;return this.maxItemCount&&this.persistentSelectedOptions.length+e>this.maxItemCount&&!this.persistentSelectedOptions.some((e=>e.value===t.value))}updateSelection(t){const e=this.persistentSelectedOptions.some((e=>e.value===t.value));if(t.children&&t.children.length>0){this.handleParentOptionClick(t)}else{this.handleChildOptionClick(t,e)}}async selectAll(){const t=await this.fetchOptions(0,this.optionCount);this.selectAllRecursive(t);this.ifxSelect.emit(this.persistentSelectedOptions)}selectAllRecursive(t){for(const e of t){if(e.children&&e.children.length>0){this.selectAllRecursive(e.children)}else{if(!this.persistentSelectedOptions.some((t=>t.value===e.value))){e.selected=true;this.persistentSelectedOptions=[...this.persistentSelectedOptions,e]}}}}handleParentOptionClick(t){const e=t.children.every((t=>this.persistentSelectedOptions.some((e=>e.value===t.value))));if(e){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((e=>!t.children.some((t=>t.value===e.value))))];t.selected=false;t.children.forEach((t=>{t.selected=false}))}else{const e=[...t.children.filter((t=>!this.persistentSelectedOptions.some((e=>e.value===t.value))))];t.selected=true;t.children.forEach((t=>{t.selected=true}));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...e]}}handleChildOptionClick(t,e){if(e){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((e=>e.value!==t.value))];t.selected=false}else{this.persistentSelectedOptions=[...this.persistentSelectedOptions,t];t.selected=true}this.updateParentSelectedState()}updateParentSelectedState(){this.loadedOptions.forEach((t=>{var e;if(((e=t.children)===null||e===void 0?void 0:e.length)>0){if(t.children.every((t=>t.selected===true)))t.selected=true;else{t.selected=false;if(this.isOptionIndeterminate(t)){t.indeterminate=true}else{t.indeterminate=false}}}}))}getSizeClass(){return`${this.size}`==="s"?"small-select":"medium-select"}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;setTimeout((()=>{if(this.dropdownOpen){document.addEventListener("click",this.handleDocumentClick)}this.ifxMultiselectIsOpen.emit(this.dropdownOpen)}),0);this.zIndex=l.globalZIndex++}waitForElement(t,e,i=50){let s=0;function n(){requestAnimationFrame((()=>{const o=t();if(o.length>0||s>i){e(o)}else{s++;n()}}))}n()}handleKeyDown(t){if(this.disabled)return;const e=this.dropdownElement.querySelectorAll(".option");switch(t.code){case"Enter":this.toggleDropdown();this.waitForElement((()=>this.dropdownElement.querySelectorAll(".option")),(t=>{this.updateHighlightedOption(t)}));break;case"Space":this.toggleDropdown();this.waitForElement((()=>this.dropdownElement.querySelectorAll(".option")),(t=>{this.updateHighlightedOption(t)}));break;case"ArrowDown":this.handleArrowDown(e);if(this.dropdownOpen){this.updateHighlightedOption(e)}break;case"ArrowUp":this.handleArrowUp(e);if(this.dropdownOpen){this.updateHighlightedOption(e)}break}}handleWrapperClick(t){this.positionDropdown();if(t.currentTarget===t.target){this.toggleDropdown()}}clearSelection(){this.persistentSelectedOptions=[];this.ifxSelect.emit(this.persistentSelectedOptions)}positionDropdown(){var t;const e=(t=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper"))===null||t===void 0?void 0:t.getBoundingClientRect();const i=window.innerHeight-e.bottom;const s=e.top;if(s>i&&e.height>i||e.bottom>window.innerHeight){this.dropdownFlipped=true}else{this.dropdownFlipped=false}}updateHighlightedOption(t){t.forEach((t=>t.classList.remove("is-highlighted")));if(this.currentIndex>=0&&this.currentIndex<t.length){t[this.currentIndex].classList.add("is-highlighted");t[this.currentIndex].focus()}}handleArrowDown(t){if(this.currentIndex<t.length-1){this.currentIndex++}else{this.currentIndex=0}}handleArrowUp(t){if(this.currentIndex>0){this.currentIndex--}else{this.currentIndex=t.length-1}}handleOptionKeyDown(t,e){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){this.handleOptionClick(e)}}renderOption(t,e){var s;const n=this.isOptionIndeterminate(t);const o=t.children?n||this.isOptionSelected(t):this.persistentSelectedOptions.some((e=>e.value===t.value));const r=!o&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const l=`checkbox-${t.value}-${e}`;return i("div",{class:"option-wrapper"},i("div",{class:`option ${o?"selected":""} ${r?"disabled":""} \n ${this.getSizeClass()}`,"data-value":t.value,onKeyDown:e=>!r&&this.handleOptionKeyDown(e,t),onClick:()=>!r&&this.handleOptionClick(t),tabindex:"0",role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"treeitem":"option"}`},i("ifx-checkbox",{tabIndex:-1,ref:e=>t.checkboxRef=e,id:l,size:"s",checked:n?false:o,indeterminate:n,disabled:r}),i("label",{htmlFor:l,onClick:t=>t.stopPropagation()},t.label)),t.children&&t.children.map(((t,i)=>this.renderSubOption(t,`${e}-${i}`))))}isOptionSelected(t){if(!t.children)return false;return t.children.every((t=>this.persistentSelectedOptions.some((e=>e.value===t.value))))}isOptionIndeterminate(t){if(!t.children)return false;const e=t.children.filter((t=>this.persistentSelectedOptions.some((e=>e.value===t.value)))).length;return e>0&&e<t.children.length}findInOptions(t,e){for(const i of t){if(i.value===e){return i}if(i.children){const t=this.findInOptions(i.children,e);if(t){return t}}}return null}renderSubOption(t,e){var s;const n=this.persistentSelectedOptions.some((e=>e.value===t.value));const o=!n&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const r=`checkbox-${t.value}-${e}`;return i("div",{class:`option sub-option ${n?"selected":""} ${this.getSizeClass()} ${o?"disabled":""}`,"data-value":t.value,role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"option":"treeitem"}`,onKeyDown:e=>!o&&this.handleOptionKeyDown(e,t),onClick:()=>!o&&this.handleOptionClick(t),tabindex:"0"},i("ifx-checkbox",{tabIndex:-1,ref:e=>t.checkboxRef=e,id:r,size:"s",checked:n,disabled:o}),i("label",{htmlFor:r,onClick:t=>t.stopPropagation()},t.label))}renderSelectAll(){const t=this.persistentSelectedOptions.length===this.optionCount;const e=this.persistentSelectedOptions.length===0;const s=this.optionCount>0&&!e&&!t;const n=this;function o(){if(t){n.clearSelection()}else{n.selectAll()}}function r(t){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){o()}}return i("div",{class:"select-all-wrapper"},i("div",{class:`option ${this.getSizeClass()}`,tabindex:"0",onKeyDown:t=>r(t),onClick:o},i("ifx-checkbox",{tabIndex:-1,id:"selectAll",checked:t,indeterminate:s,size:"s"}),i("label",{htmlFor:"selectAll"},"Select all")),i("ifx-dropdown-separator",null))}render(){const t=this.persistentSelectedOptions.filter((t=>{const e=this.persistentSelectedOptions.some((e=>e.children&&e.children.some((e=>e.value===t.value))&&e.selected));return!e})).map((t=>t.label)).join(", ");return i("div",{class:`ifx-multiselect-container`,ref:t=>this.dropdownElement=t},this.label?i("div",{class:"ifx-label-wrapper"},i("span",null,this.label)):null,i("div",{class:`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen?"active":""} \n ${this.dropdownFlipped?"is-flipped":""}\n ${this.internalError?"error":""}\n ${this.disabled?"disabled":""}`,tabindex:"0",onClick:this.disabled?undefined:t=>this.handleWrapperClick(t),onKeyDown:this.disabled?undefined:t=>this.handleKeyDown(t)},i("div",{class:`ifx-multiselect-input \n ${this.persistentSelectedOptions.length===0?"placeholder":""}\n `,onClick:this.disabled?undefined:()=>this.toggleDropdown()},this.persistentSelectedOptions.length>0?t:this.placeholder),this.dropdownOpen&&i("div",{class:"ifx-multiselect-dropdown-menu",onScroll:t=>this.handleScroll(t),style:{"--dynamic-z-index":this.zIndex.toString()}},this.showSearch&&i("input",{type:"text",role:"textbox",class:"search-input",onKeyDown:t=>{t.stopPropagation()},onInput:t=>this.handleSearch(t.target),placeholder:"Search..."}),this.showSelectAll&&this.renderSelectAll(),this.filteredOptions.map(((t,e)=>this.renderOption(t,e))),this.isLoading&&i("div",null,"Loading more options...")),i("div",{class:"ifx-multiselect-icon-container"},this.persistentSelectedOptions.length>0&&i("div",{class:"ifx-clear-button",onClick:this.disabled?undefined:()=>this.clearSelection()},i("ifx-icon",{icon:"cremove16"})),i("div",{class:"icon-wrapper-up",onClick:this.disabled?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-up",icon:"chevronup-16"})),i("div",{class:"icon-wrapper-down",onClick:this.disabled?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-down",icon:"chevron-down-16"})))),this.internalError?i("div",{class:"ifx-error-message-wrapper"},i("span",null,this.internalErrorMessage)):null)}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{options:["updateOptions"],error:["updateInternalError"],errorMessage:["updateInternalErrorMessage"],loadedOptions:["loadedOptionsChanged"],persistentSelectedOptions:["onSelectionChange"]}}};l.globalZIndex=1;l.style=o;const a=':root{--ifx-font-family:"Source Sans 3";font-family:var(--ifx-font-family, sans-serif)}:host{display:flex}.textInput__container{display:flex;flex-direction:column;align-items:flex-start;padding:0px;width:100%;flex:none;order:0;align-self:stretch;flex-grow:0;font-family:var(--ifx-font-family)}.textInput__container.disabled .textInput__top-wrapper label{color:#575352}.textInput__container.disabled .textInput__bottom-wrapper input{border:1px solid #575352;background-color:#EEEDED}.textInput__container.disabled .textInput__bottom-wrapper input::placeholder{font-size:0.875rem;color:#575352}.textInput__container .textInput__top-wrapper{display:flex;flex-direction:row;align-items:flex-start;padding:0px;gap:4px;flex:none;order:0;align-self:stretch;flex-grow:0}.textInput__container .textInput__top-wrapper label{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;display:flex;align-items:center;color:#1D1D1D;flex:none;order:0;flex-grow:0}.textInput__container .textInput__top-wrapper label .optional-required{margin-left:4px}.textInput__container .textInput__top-wrapper label .optional{margin-left:4px}.textInput__container .textInput__top-wrapper label .required{margin-left:4px}.textInput__container .textInput__top-wrapper label .required.error{color:#CD002F}.textInput__container .input-container{position:relative;display:flex;align-items:center;width:100%}.textInput__container .textInput__bottom-wrapper{flex-grow:1;position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:0px;gap:4px;flex:none;order:1;align-self:stretch;flex-grow:0}.textInput__container .textInput__bottom-wrapper input{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;padding:8px 16px;gap:8px;height:40px;background-color:#FFFFFF;color:#1D1D1D;font-family:"Source Sans 3";font-size:1rem;line-height:1.5rem;border:1px solid #8D8786;border-radius:1px;flex:none;order:0;align-self:stretch;flex-grow:0;text-overflow:ellipsis}.textInput__container .textInput__bottom-wrapper input.input-s{height:36px;font-size:0.875rem;line-height:1.25rem}.textInput__container .textInput__bottom-wrapper input.input-s::placeholder{font-size:0.875rem;line-height:1.25rem}.textInput__container .textInput__bottom-wrapper input.icon{padding-left:40px}.textInput__container .textInput__bottom-wrapper input.error{border:1px solid #CD002F}.textInput__container .textInput__bottom-wrapper input.error:focus{outline:none}.textInput__container .textInput__bottom-wrapper input.success{border:1px solid #4CA460}.textInput__container .textInput__bottom-wrapper input.success:focus{outline:none}.textInput__container .textInput__bottom-wrapper input:focus:not(.error,.success){outline:none;border:1px solid #0A8276}.textInput__container .textInput__bottom-wrapper input:hover:not(:disabled,:focus,.error,.success){border:1px solid #575352}.textInput__container .textInput__bottom-wrapper input::placeholder{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;color:#8D8786;flex:none;order:1;flex-grow:1}.textInput__container .textInput__bottom-wrapper .input-icon{position:absolute;top:50%;transform:translateY(-50%);left:16px;transition:0.3s;color:#8D8786}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption{font-style:normal;font-weight:400;font-size:0.75rem;line-height:1rem;letter-spacing:0.2px;color:#1D1D1D;flex:none;order:1;align-self:stretch;flex-grow:0}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.error{color:#CD002F}.textInput__container .textInput__bottom-wrapper .textInput__bottom-wrapper-caption.disabled{color:#575352}.textInput__container .delete-icon{position:absolute;right:16px}.textInput__container .delete-icon :hover{cursor:pointer}';const c=a;const p=class{constructor(i){t(this,i);this.ifxInput=e(this,"ifxInput",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.placeholder="Placeholder";this.value="";this.error=false;this.label="";this.icon="";this.caption="";this.size="m";this.required=false;this.optional=false;this.success=false;this.disabled=false;this.maxlength=undefined;this.showDeleteIcon=false}valueWatcher(t){if(t!==this.inputElement.value){this.inputElement.value=t}}async reset(){this.value="";this.inputElement.value=""}handleDeleteContent(){this.reset();this.ifxInput.emit(this.value)}handleInput(){const t=this.inputElement.value;this.value=t;this.internals.setFormValue(t);this.ifxInput.emit(this.value)}formResetCallback(){this.internals.setValidity({});this.internals.setFormValue("")}render(){return i("div",{key:"8d742d3a60998d4648040fab5d5d50853b12c7b4","aria-label":"a text field for user input","aria-value":this.value,"aria-disabled":this.disabled,class:`textInput__container ${this.disabled?"disabled":""}`},i("div",{key:"4965d888690874e8775bfc83602340b6b83d3e5e",class:"textInput__top-wrapper"},i("label",{key:"d5224921d5c26fc62d551bf10dd1207d8ff5e67f",htmlFor:"text-field"},i("slot",{key:"eb5758011376ace0664b074fd4e755b1920fa7f4"}),this.optional&&this.required?i("span",{class:"optional-required"},"(optional) *"):this.optional?i("span",{class:"optional"},"(optional)"):this.required?i("span",{class:`required ${this.error?"error":""}`},"*"):null)),i("div",{key:"ec295037f306f2cd6ee6c3ba3310dc858c4a74f6",class:"textInput__bottom-wrapper"},i("div",{key:"bfb3f3e2c47c6f57f29f3fb16cc5e5b50a5e11f4",class:"input-container"},this.icon&&i("ifx-icon",{key:"e94e39b0426900264b834b79e9b7667563311b3c",class:"input-icon",icon:this.icon}),i("input",{key:"08ba76dbe8ac6ab62ffbcb4d0aa44437f8c6b057",ref:t=>this.inputElement=t,disabled:this.disabled,type:"text",id:"text-field",value:this.value,onInput:()=>this.handleInput(),placeholder:this.placeholder,maxlength:this.maxlength,class:`${this.icon?"icon":""}\n ${this.error?"error":""} \n ${this.size==="s"?"input-s":""}\n ${this.success?"success":""}`}),this.showDeleteIcon&&this.value&&i("ifx-icon",{key:"f0df7c42fe70e05928e2db93017db15d1f8c659c",class:"delete-icon",icon:"cremove16",onClick:()=>this.handleDeleteContent()})),this.caption&&!this.error&&i("div",{key:"ac6811a80b1728eb7ecea350a2821990d3e49b40",class:`textInput__bottom-wrapper-caption ${this.disabled} ? disabled : ""`},this.caption),this.error&&i("div",{key:"deba470325e740fc058a67bfcf056af34ab4d8ef",class:"textInput__bottom-wrapper-caption error"},this.caption)))}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{value:["valueWatcher"]}}};p.style=c;export{l as ifx_multiselect,p as ifx_text_field};
2
- //# sourceMappingURL=p-c8f66bf5.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","this","currentIndex","handleSearch","targetElement","searchTerm","value","toLowerCase","filteredOptions","loadedOptions","filter","option","matchesSearchTerm","label","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","dropdownOpen","document","removeEventListener","ifxMultiselectIsOpen","emit","updateOptions","optionCount","optionsProcessed","persistentSelectedOptions","loadInitialOptions","isLoading","internalError","error","internalErrorMessage","errorMessage","fetchOptions","batchSize","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","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","size","toggleDropdown","addEventListener","zIndex","globalZIndex","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","disabled","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","placeholder","onScroll","style","toString","showSearch","type","onInput","showSelectAll","icon","textFieldCss","IfxTextFieldStyle0","TextField","valueWatcher","inputElement","reset","handleDeleteContent","ifxInput","handleInput","query","formResetCallback","setValidity","optional","required","maxlength","success","showDeleteIcon","caption"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx","src/components/text-field/text-field.scss?tag=ifx-text-field&encapsulation=shadow","src/components/text-field/text-field.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: var(--ifx-font-family);\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\n .ifx-clear-button {\n display: flex;\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: var(--dynamic-z-index, 1); // Fallback to 1\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 &.selected {\n // color: #0A8276;\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 @State() zIndex: number = 1; // default z-index value\n static globalZIndex = 1; // 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 @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() ifxMultiselectIsOpen: 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 \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 selectedOptions.push(option);\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\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 }\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\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxMultiselectIsOpen.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 ifxMultiselectIsOpen event\n this.ifxMultiselectIsOpen.emit(this.dropdownOpen);\n }, 0);\n this.zIndex = Multiselect.globalZIndex++;\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 style={{ '--dynamic-z-index': this.zIndex.toString() }}>\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\" 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","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: flex;\n}\n\n.textInput__container {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n width: 100%;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n font-family: var(--ifx-font-family);\n\n\n &.disabled {\n & .textInput__top-wrapper {\n & label {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n & .textInput__bottom-wrapper {\n input {\n border: 1px solid tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering200;\n\n &::placeholder {\n font-size: tokens.$ifxFontSizeS;\n color: tokens.$ifxColorEngineering500;\n }\n }\n }\n }\n\n & .textInput__top-wrapper {\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n\n & label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .optional-required {\n margin-left: 4px;\n }\n\n & .optional {\n margin-left: 4px;\n }\n\n & .required {\n margin-left: 4px;\n \n &.error {\n color: #CD002F;\n }\n }\n }\n }\n\n .input-container {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n }\n\n\n & .textInput__bottom-wrapper {\n flex-grow: 1;\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n & input {\n width: 100%;\n box-sizing: border-box;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n gap: tokens.$ifxSpace100;\n height: tokens.$ifxSize500;\n background-color: tokens.$ifxColorBaseWhite;\n color: tokens.$ifxColorBaseBlack;\n font-family: tokens.$ifxFontFamilyBody;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n text-overflow: ellipsis;\n\n &.input-s {\n height: tokens.$ifxSize450;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n\n &::placeholder {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n }\n\n &.icon {\n padding-left: tokens.$ifxSpace500;\n }\n\n &.error {\n border: 1px solid #CD002F;\n\n &:focus {\n outline: none;\n }\n }\n\n &.success {\n border: 1px solid #4CA460;\n\n &:focus {\n outline: none;\n }\n }\n\n\n &:focus:not(.error, .success) {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n &:hover:not(:disabled, :focus, .error, .success) {\n border: 1px solid tokens.$ifxColorEngineering500;\n }\n\n &::placeholder {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n color: #8D8786;\n flex: none;\n order: 1;\n flex-grow: 1;\n }\n }\n\n & .input-icon {\n // Position the icon within the icon container\n // Adjust the positioning as needed\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: tokens.$ifxSpace200;\n /* Adjust this value to control the icon's left offset */\n transition: .3s;\n color: tokens.$ifxColorEngineering400;\n }\n\n & .textInput__bottom-wrapper-caption {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n letter-spacing: 0.2px;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n align-self: stretch;\n flex-grow: 0;\n\n &.error {\n color: #CD002F;\n\n }\n\n &.disabled {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n \n }\n .delete-icon {\n position: absolute;\n right: tokens.$ifxSpace200;\n\n :hover {\n cursor: pointer;\n }\n }\n}","import { Component, h, Event, Element, Prop, EventEmitter, Watch, Method, AttachInternals } from '@stencil/core';\n \n\n@Component({\n tag: 'ifx-text-field',\n styleUrl: 'text-field.scss',\n shadow: true,\n formAssociated: true\n})\n\nexport class TextField {\n private inputElement: HTMLInputElement;\n @Element() el;\n @Prop() placeholder: string = \"Placeholder\"\n @Prop({ mutable: true }) value: string = '';\n @Prop() error: boolean = false;\n @Prop() label: string = \"\";\n @Prop() icon: string = \"\";\n @Prop() caption: string = \"\";\n @Prop() size: string = 'm';\n @Prop() required: boolean = false;\n @Prop() optional: boolean = false;\n @Prop() success: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() maxlength?: number;\n @Prop() showDeleteIcon: boolean = false;\n @Event() ifxInput: EventEmitter<String>;\n // @Prop({ reflect: true })\n // resetOnSubmit: boolean = false;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('value')\n valueWatcher(newValue: string) {\n if (newValue !== this.inputElement.value) {\n this.inputElement.value = newValue;\n }\n }\n\n @Method()\n async reset() {\n this.value = '';\n this.inputElement.value = '';\n }\n\n handleDeleteContent() {\n this.reset();\n this.ifxInput.emit(this.value);\n }\n\n handleInput() {\n const query = this.inputElement.value;\n this.value = query; // update the value property when input changes\n this.internals.setFormValue(query) // update form value\n this.ifxInput.emit(this.value);\n }\n\n formResetCallback() {\n this.internals.setValidity({});\n this.internals.setFormValue(\"\");\n }\n\n render() {\n return (\n <div aria-label=\"a text field for user input\" aria-value={this.value} aria-disabled={this.disabled} class={`textInput__container ${this.disabled ? 'disabled' : \"\"}`}>\n <div class=\"textInput__top-wrapper\">\n <label htmlFor=\"text-field\">\n <slot></slot>\n {this.optional && this.required ? (\n <span class=\"optional-required\">(optional) *</span>\n ) : this.optional ? (\n <span class=\"optional\">(optional)</span>\n ) : this.required ? (\n <span class={`required ${this.error ? 'error' : \"\"}`}>*</span>\n ) : null}\n </label>\n </div>\n\n <div class=\"textInput__bottom-wrapper\">\n <div class=\"input-container\">\n {this.icon && (\n <ifx-icon class='input-icon' icon={this.icon} />\n )}\n <input\n ref={(el) => (this.inputElement = el)}\n disabled={this.disabled}\n type=\"text\"\n id='text-field'\n value={this.value}\n onInput={() => this.handleInput()}\n placeholder={this.placeholder}\n maxlength={this.maxlength}\n class={\n `${this.icon ? 'icon' : \"\"}\n ${this.error ? 'error' : \"\"} \n ${this.size === \"s\" ? \"input-s\" : \"\"}\n ${this.success ? \"success\" : \"\"}`} />\n\n { (this.showDeleteIcon && this.value) && (\n <ifx-icon class=\"delete-icon\" icon=\"cremove16\" onClick={() => this.handleDeleteContent()}></ifx-icon> \n )}\n </div>\n {this.caption && !this.error &&\n <div class={`textInput__bottom-wrapper-caption ${this.disabled} ? disabled : \"\"`}>\n {this.caption}\n </div>}\n {this.error &&\n <div class=\"textInput__bottom-wrapper-caption error\">\n {this.caption}\n </div>}\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,g as n}from"./p-6b122987.js";const a='.navbar__item{position:relative;display:flex;flex-direction:row;align-items:center;padding:0px 8px;flex:none;order:0;flex-grow:0;font-family:var(--ifx-font-family);text-decoration:none;font-weight:400;font-size:16px;color:#1D1D1D}.navbar__item.hide{display:none}.navbar__item.isParent{gap:8px}.navbar__item .navItemIconWrapper{transition:0.3s}.navbar__item.open .navItemIconWrapper{transform:rotate(-180deg);transition:0.3s}.navbar__item:hover{color:#0A8276;cursor:pointer}.navbar__item:hover .username__tooltip{display:block}.navbar__item:hover .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{cursor:pointer;background-color:#08665C}.navbar__item.remove{display:none}.navbar__item.removeLabel .label__wrapper{display:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:0px;gap:8px;flex:none;order:0;flex-grow:0}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .username__tooltip{display:none;position:absolute;top:35px;right:0;text-wrap:nowrap;padding:1px 5px;font-size:13px;font-family:"Source Sans 3";background-color:black;color:#fff;z-index:99}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper:hover .username__tooltip{display:block}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{display:flex;width:24px;height:24px;justify-content:center;align-items:center;border-radius:100%;background-color:#0A8276}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper .initials{color:#FFF;text-align:center;font-family:"Source Sans 3";font-size:14px;font-style:normal;font-weight:600;line-height:20px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper img{width:24px;height:24px;border-radius:100%}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.removeWrapper{display:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.hide{display:none}.container{position:relative}.container .sub__layer-back-button{display:none}.container .sub__layer-back-button.show{display:flex;justify-content:flex-start}.container .sub__layer-back-button.show .back__button-wrapper{display:flex;align-items:center;gap:8px;padding:8px 0 16px 0;color:#0A8276;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.container .sub__layer-back-button.show .back__button-wrapper span:hover,.container .sub__layer-back-button.show .back__button-wrapper ifx-icon:hover{cursor:pointer}.container.hide{display:none}.container .inner__content-wrapper{display:flex;justify-content:space-between;align-items:center;gap:8px}.container .inner__content-wrapper.no-gap{gap:0px}.navbar-menu{position:absolute;display:none;list-style-type:none;visibility:visible;flex-direction:column;width:224px;min-width:224px;background:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;padding:8px 0px;font-family:var(--ifx-font-family)}.navbar-menu.open:not(.itemInMobileMenu){display:flex}.navbar-menu.itemInMobileMenu{display:none}.navbar-menu.right{left:100%;top:-40%}.navbar-menu.left{top:-40%;right:100%}.navbar-menu.rightSideItemMenu{left:initial;right:0px}.navbar__item.layer__item-parent{color:#1D1D1D;font-size:24px;font-style:normal;font-weight:600;line-height:32px;letter-spacing:-0.24px;cursor:initial}.navbar__item.layer__item-parent .navbar__container-right-content-navigation-item-icon-wrapper ifx-icon svg{width:24px;height:24px}.navbar__item.sidebarMenuItem{justify-content:space-between;padding:0}.navbar__item.menuItem{text-decoration:none;color:#1D1D1D;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:8px;font-family:var(--ifx-font-family)}.navbar__item.menuItem.hide{display:none}.navbar__item.menuItem .label__wrapper{color:#1D1D1D;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.navbar__item.menuItem:hover{cursor:pointer;background-color:#EEEDED}.navbar__item.menuItem:active{background-color:#BFBBBB}.sub__layer-menu{padding:5px;display:none}.sub__layer-menu.remove__margin{margin:0;padding:0}.sub__layer-menu.open{display:block}.navbar__item.hide{display:none}.menuItemRightIconWrapper.hide{display:none}.navItemIconWrapper.hide{display:none}';const s=a;const o=class{constructor(i){e(this,i);this.ifxNavItem=t(this,"ifxNavItem",7);this.showLabel=true;this.icon="";this.href="";this.target="_self";this.hideOnMobile=true;this.internalHref="";this.isMenuItem=false;this.hasChildNavItems=false;this.isSidebarMenuItem=false;this.itemPosition=undefined}handleOutsideClick(e){const t=e.composedPath();const i=this.getItemMenu();if(i){if(i.classList.contains("open")){if(!t.includes(this.el)){this.closeItemMenu()}}}}async hideComponent(){this.el.style.display="none"}async showComponent(){this.el.style.display=""}async toggleChildren(e){const t=this.getItemMenu();const i=this.getChevronDownIconWrapper();if(t){this.handleClassList(i,e,"hide");this.handleClassList(t,e,"itemInMobileMenu")}}async moveChildComponentsIntoSubLayerMenu(){const e=this.getItemMenu();if(e){const t=this.handleClassList(e,"contains","open");if(t){const e=this.getNavBarItem();const t=this.getSubLayerBackButton();this.handleClassList(e,"add","layer__item-parent");this.handleClassList(t,"add","show");this.ifxNavItem.emit({component:this.el,action:"hideFirstLayer"})}}const t=this.el.querySelectorAll('[slot="first__layer"]');this.isSidebarMenuItem=true;for(let e=0;e<t.length;e++){t[e].setAttribute("slot","second__layer");t[e].moveChildComponentsIntoSubLayerMenu()}}getSubLayerBackButton(){const e=this.el.shadowRoot.querySelector(".sub__layer-back-button");return e}async toggleFirstLayerItem(e,t){const i=this.getNavBarItem();const n=this.getSubLayerMenu();const a=this.getSubLayerBackButton();this.handleClassList(a,[e],"show");this.handleClassList(i,[t],"hide");this.handleClassList(n,[t],"remove__margin")}openSubLayerMenu(){if(this.hasChildNavItems){const e=this.getSubLayerBackButton();const t=this.getRightArrowIcon();const i=this.getNavBarItem();const n=this.getSubLayerMenu();const a=this.el.getAttribute("slot");this.handleClassList(e,"add","show");this.handleClassList(t,"add","hide");this.handleClassList(i,"add","layer__item-parent");this.handleClassList(n,"add","open");if(a.toLowerCase()==="second__layer"){this.ifxNavItem.emit({component:this.el,parent:this.el.parentElement,action:"hideSecondLayer"});this.handleClassList(i,"remove","menuItem")}else{this.ifxNavItem.emit({component:this.el,action:"hideFirstLayer"})}}}async addMenuItemClass(){const e=this.getNavBarItem();this.handleClassList(e,"add","menuItem");const t=this.getRightArrowIcon();if(this.hasChildNavItems){this.handleClassList(t,"remove","hide")}}async moveChildComponentsBackIntoNavbar(){const e=this.getSubLayerBackButton();const t=this.getNavBarItem();const i=this.getSubLayerMenu();this.handleClassList(e,"remove","show");this.handleClassList(t,"remove","layer__item-parent");this.handleClassList(i,"remove","remove__margin");this.ifxNavItem.emit({component:this.el,action:"show"});const n=this.el.querySelectorAll('[slot="second__layer"]');this.isSidebarMenuItem=false;this.showComponent();this.handleClassList(t,"remove","hide");for(let e=0;e<n.length;e++){n[e].setAttribute("slot","first__layer");n[e].moveChildComponentsBackIntoNavbar();n[e].addMenuItemClass();n[e].returnToFirstLayer()}}getRightArrowIcon(){const e=this.el.shadowRoot.querySelector(".menuItemRightIconWrapper");return e}getChevronDownIconWrapper(){const e=this.el.shadowRoot.querySelector(".navItemIconWrapper");return e}async returnToFirstLayer(){const e=this.getSubLayerBackButton();const t=this.getNavBarItem();const i=this.getRightArrowIcon();const n=this.getSubLayerMenu();const a=this.el.getAttribute("slot");this.handleClassList(e,"remove","show");this.handleClassList(t,"remove","layer__item-parent");this.handleClassList(n,"remove","open");if(this.hasChildNavItems){this.handleClassList(i,"remove","hide")}if(a.toLowerCase()==="second__layer"){this.ifxNavItem.emit({component:this.el,parent:this.el.parentElement,action:"returnToSecondLayer"});this.handleClassList(t,"add","menuItem")}else{this.ifxNavItem.emit({component:this.el,action:"return"})}}componentWillLoad(){this.setHref();this.checkIfItemIsNested();this.checkIfItemHasChildren()}componentDidLoad(){if(this.hasChildNavItems){const e=this.getNavbarItems();this.relocateItemsToFirstlayer(e)}}componentDidUpdate(){const e=this.getNavBarItem();const t=this.handleClassList(e,"contains","layer__item-parent");if(this.isSidebarMenuItem&&t){const e=this.getRightArrowIcon();this.handleClassList(e,"add","hide")}}async setMenuItemPosition(){if(this.isMenuItem&&this.hasChildNavItems){const e=this.getItemMenuPosition();if(e==="left"){this.itemPosition="left"}else if(e==="right"){this.itemPosition="right"}}}handleClassList(e,t,i){e.classList[t](i);if(t==="contains"){return e.classList.contains(i)}}getNavbarItems(){const e=this.el.querySelectorAll("ifx-navbar-item");return e}getNavBarItem(){const e=this.el.shadowRoot.querySelector(".navbar__item");return e}getSubLayerMenu(){const e=this.el.shadowRoot.querySelector(".sub__layer-menu");return e}relocateItemsToFirstlayer(e){e.forEach((e=>{e.setAttribute("slot","first__layer")}))}setHref(){if(this.href.toLowerCase().trim()===""){this.internalHref=undefined}else this.internalHref=this.href}checkIfItemIsNested(){const e=this.el.parentElement;if(e.tagName.toUpperCase()==="IFX-NAVBAR-ITEM"||e.tagName.toUpperCase()==="IFX-NAVBAR-PROFILE"){this.isMenuItem=true;return}else{this.isMenuItem=false}}checkIfItemHasChildren(){const e=this.getNavbarItems();if(e.length!==0){this.hasChildNavItems=true}else{this.hasChildNavItems=false}}async setItemSideSpecifications(){const e=this.el;const t=this.getItemMenu();const i=e.getAttribute("slot");if(i.toLowerCase().trim()==="right-item"){this.handleClassList(t,"add","rightSideItemMenu")}return true}getItemMenu(){const e=this.el.shadowRoot.querySelector(".navbar-menu");return e}closeItemMenu(){const e=this.getItemMenu();const t=this.getNavBarItem();if(e){this.handleClassList(e,"remove","open");this.handleClassList(t,"remove","open")}}getItemMenuPosition(){let e=this.el;while(e){if(e.tagName==="IFX-NAVBAR-PROFILE"||e.slot==="right-item"){return"left"}e=e.parentElement||e.getRootNode().host}return"right"}toggleItemMenu(){const e=this.el.getAttribute("slot");if(e.toLowerCase()==="mobile-menu-top"||e.toLowerCase()==="second__layer"){this.openSubLayerMenu()}if(!this.internalHref&&e.toLowerCase()!=="mobile-menu-top"&&e.toLowerCase()!=="second__layer"){const e=this.getItemMenu();if(this.hasChildNavItems){const t=this.getNavBarItem();this.handleClassList(e,"toggle","open");this.handleClassList(t,"toggle","open")}}}handleNestedLayerMenu(e){if(this.isMenuItem&&this.hasChildNavItems&&!this.isSidebarMenuItem){const t=this.getItemMenu();const i=this.getItemMenuPosition();if(e.type.toUpperCase()==="MOUSEENTER"){this.handleClassList(t,"add","open");if(i==="left"){this.handleClassList(t,"add","left")}else if(i==="right"){this.handleClassList(t,"add","right")}}if(e.type.toUpperCase()==="MOUSELEAVE"){this.handleClassList(t,"remove","open");if(i==="left"){this.handleClassList(t,"remove","left")}else if(i==="right"){this.handleClassList(t,"remove","right")}}}}render(){return i("div",{key:"6ff7d6a2325d44e4fdbcbdda8fd299890a080237",class:"container",onMouseLeave:e=>this.handleNestedLayerMenu(e),onMouseEnter:e=>this.handleNestedLayerMenu(e)},i("div",{key:"f39e9887ee956d9e35e8c8ea058a769d91355e43",class:"sub__layer-back-button"},i("div",{key:"7a5df0bdee1cc4c3cd6529d4f0acbf7c0bd1b8d9",class:"back__button-wrapper",onClick:()=>this.returnToFirstLayer()},i("ifx-icon",{key:"43f69fe60182744438d49827344e68ff095d92dc",icon:"arrow-left-16"}),i("span",{key:"b6d292fccd3c2e8e539bbf8b37f456732236d847"},"Back"))),i("a",{key:"7f51f40c4bdbfee4738ee87d9b6abb0baee777a0",href:this.internalHref,target:this.target,onClick:()=>this.toggleItemMenu(),class:`navbar__item ${this.isSidebarMenuItem?"sidebarMenuItem":""} ${!this.showLabel?"removeLabel":""} ${this.isMenuItem?"menuItem":""} ${this.hasChildNavItems?"isParent":""}`},i("div",{key:"6cdec578af960350371c7d2ce65512e499cc39cd",class:"inner__content-wrapper"},i("div",{key:"4432784789f1ea5bda62fa4c840f42be8a8c2c74",class:`navbar__container-right-content-navigation-item-icon-wrapper ${!this.icon?"removeWrapper":""}`},this.icon&&i("ifx-icon",{key:"75937d113caa0480e934c0960778c51a82d94eb5",icon:this.icon})),this.itemPosition==="left"&&this.hasChildNavItems&&this.isMenuItem&&i("div",{key:"411a240382cdccc5857bfd3d3232fda11dece2eb",class:"menuItemLeftIconWrapper"},i("ifx-icon",{key:"a3d6fb775527a0d896da3d26577bfa909e97fd57",icon:"chevron-left-12"})),i("span",{key:"fc2307f8e62ae20727b76526ef661839465c4378",class:"label__wrapper"},i("slot",{key:"35fa2c5762cc7676146407f03986b6e65aacf356"}))),i("div",{key:"7bc21e2370abfeb56e2c551b07ac40e7dcf34cd7",class:`navItemIconWrapper ${this.hasChildNavItems&&!this.isMenuItem&&!this.isSidebarMenuItem?"":"hide"}`},i("ifx-icon",{key:"84154f7bebb4fbf3cdf992e3c1e3fb3f898e3479",icon:"chevron-down-12"})),i("div",{key:"872ad6a50578420c5fcfe990e328911df2cec8fa",class:`menuItemRightIconWrapper ${this.itemPosition==="right"&&this.hasChildNavItems&&this.isMenuItem||this.isSidebarMenuItem&&this.hasChildNavItems?"":"hide"}`},i("ifx-icon",{key:"5b1f1bb38a1b7a784c6f90161e923b6055a380b9",icon:"chevron-right-12"}))),this.hasChildNavItems&&!this.isSidebarMenuItem&&i("ul",{key:"f093cbb3bd72ad2062a1f5faca60f3402d582611",class:"navbar-menu"}," ",i("slot",{key:"9f100a38d2e8b1062c6d01263bddf452a0d962c3",name:"first__layer"})," "),this.isSidebarMenuItem&&i("ul",{key:"fa0e103d8b61280dd9d525daa4da1b344f050345",class:"sub__layer-menu"}," ",i("slot",{key:"5d01536bedd1abb83dcc9805935584b01834581e",name:"second__layer"})," "))}get el(){return n(this)}};o.style=s;export{o as ifx_navbar_item};
2
- //# sourceMappingURL=p-caff080b.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["navbarItemCss","IfxNavbarItemStyle0","NavbarItem","handleOutsideClick","event","path","composedPath","itemMenu","this","getItemMenu","classList","contains","includes","el","closeItemMenu","hideComponent","style","display","showComponent","toggleChildren","action","arrowIcon","getChevronDownIconWrapper","handleClassList","moveChildComponentsIntoSubLayerMenu","subLayerMenu","subLayerMenuIsOpened","navbarItem","getNavBarItem","subLayerBackButton","getSubLayerBackButton","ifxNavItem","emit","component","navItems","querySelectorAll","isSidebarMenuItem","i","length","setAttribute","sublayerBackButton","shadowRoot","querySelector","toggleFirstLayerItem","actionOne","actionTwo","secondLayerMenu","getSubLayerMenu","openSubLayerMenu","hasChildNavItems","rightArrowIcon","getRightArrowIcon","slotName","getAttribute","toLowerCase","parent","parentElement","addMenuItemClass","moveChildComponentsBackIntoNavbar","returnToFirstLayer","menuItemRightIconWrapper","componentWillLoad","setHref","checkIfItemIsNested","checkIfItemHasChildren","componentDidLoad","getNavbarItems","relocateItemsToFirstlayer","componentDidUpdate","isLayerItemParent","setMenuItemPosition","isMenuItem","menuPosition","getItemMenuPosition","itemPosition","type","className","navItem","forEach","item","href","trim","internalHref","undefined","tagName","toUpperCase","sidebarItems","setItemSideSpecifications","menuItem","slotValue","menu","slot","getRootNode","host","toggleItemMenu","handleNestedLayerMenu","e","render","h","key","class","onMouseLeave","onMouseEnter","onClick","icon","target","showLabel","name"],"sources":["src/components/navigation/navbar/navbar-item.scss?tag=ifx-navbar-item&encapsulation=shadow","src/components/navigation/navbar/navbar-item.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n\n.navbar__item {\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n flex: none;\n order: 0;\n flex-grow: 0;\n font-family: var(--ifx-font-family);\n text-decoration: none;\n font-weight: 400;\n font-size: 16px;\n color: tokens.$ifxColorBaseBlack;\n\n &.hide { \n display: none;\n }\n\n &.isParent { \n gap: 8px;\n }\n\n & .navItemIconWrapper { \n transition: .3s;\n }\n\n &.open { \n & .navItemIconWrapper { \n transform: rotate(-180deg);\n transition: .3s;\n }\n }\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n cursor: pointer;\n\n & .username__tooltip { \n display: block;\n }\n\n & .navbar__container-right-content-navigation-item-icon-wrapper { \n & .initials__wrapper { \n cursor: pointer;\n background-color: tokens.$ifxColorOcean600;\n }\n }\n }\n\n &.remove {\n display: none;\n }\n\n &.removeLabel {\n & .label__wrapper {\n display: none;\n }\n }\n\n & .navbar__container-right-content-navigation-item-icon-wrapper {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 0px;\n gap: 8px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .username__tooltip { \n display: none;\n position: absolute;\n top: 35px;\n right: 0;\n text-wrap: nowrap;\n padding: 1px 5px;\n font-size: 13px;\n font-family: \"Source Sans 3\";\n background-color: black;\n color: #fff;\n z-index: 99;\n }\n\n &:hover { \n & .username__tooltip { \n display: block;\n }\n }\n\n & .initials__wrapper { \n display: flex;\n width: 24px;\n height: 24px;\n justify-content: center;\n align-items: center;\n border-radius: 100%;\n background-color: tokens.$ifxColorOcean500;\n\n & .initials { \n color: #FFF;\n text-align: center;\n font-family: \"Source Sans 3\";\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px; \n\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n \n }\n }\n\n & img { \n width: 24px; \n height: 24px;\n border-radius: 100%;\n }\n\n &.removeWrapper {\n display: none;\n }\n\n &.hide {\n display: none;\n }\n }\n}\n\n.container { \n position: relative;\n\n & .sub__layer-back-button { \n display: none;\n &.show { \n display: flex;\n justify-content: flex-start;\n\n & .back__button-wrapper { \n display: flex;\n align-items: center;\n gap: tokens.$ifxSpace100;\n padding: tokens.$ifxSpace100 0 tokens.$ifxSpace200 0;\n color: tokens.$ifxColorOcean500;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px;\n\n & span, & ifx-icon { \n &:hover { \n cursor: pointer;\n }\n }\n\n }\n }\n }\n\n &.hide { \n display: none;\n }\n\n & .inner__content-wrapper { \n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n &.no-gap { \n gap: 0px;\n }\n }\n}\n\n.navbar-menu {\n position: absolute;\n display: none;\n list-style-type: none;\n visibility: visible;\n flex-direction: column;\n width: 224px;\n min-width: 224px;\n background: tokens.$ifxColorBaseWhite;\n box-shadow: 0px 6px 9px 0px #1d1d1d1a;\n border: 1px solid tokens.$ifxColorEngineering200;\n padding: 8px 0px;\n font-family: var(--ifx-font-family);\n\n &.open:not(.itemInMobileMenu) {\n display: flex;\n }\n\n &.itemInMobileMenu { \n display: none;\n }\n\n &.right { \n left: 100%;\n top: -40%;\n }\n\n &.left { \n top: -40%;\n right: 100%;\n }\n\n &.rightSideItemMenu { \n left: initial;\n right: 0px;\n }\n}\n\n.navbar__item { \n &.layer__item-parent { \n color: tokens.$ifxColorBaseBlack;\n font-size: 24px;\n font-style: normal;\n font-weight: 600;\n line-height: 32px; \n letter-spacing: -0.24px;\n cursor: initial;\n\n & .navbar__container-right-content-navigation-item-icon-wrapper { \n & ifx-icon { \n & svg { \n width: 24px;\n height: 24px;\n }\n }\n }\n }\n\n\n &.sidebarMenuItem { \n justify-content: space-between;\n padding: 0;\n }\n\n\n &.menuItem {\n text-decoration: none;\n color: tokens.$ifxColorBaseBlack;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 16px;\n gap: 8px;\n font-family: var(--ifx-font-family);\n \n &.hide {\n display: none;\n }\n \n & .label__wrapper {\n color: tokens.$ifxColorBaseBlack;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n \n &:hover {\n cursor: pointer;\n background-color: tokens.$ifxColorEngineering200;\n }\n \n &:active {\n background-color: tokens.$ifxColorEngineering300;\n }\n }\n}\n\n.sub__layer-menu { \n padding: 5px;\n display: none;\n\n &.remove__margin { \n margin: 0;\n padding: 0;\n }\n \n &.open { \n display: block;\n }\n}\n\n.navbar__item { \n &.hide { \n display: none;\n }\n}\n\n.menuItemRightIconWrapper { \n &.hide { \n display: none;\n }\n}\n\n.navItemIconWrapper { \n &.hide { \n display: none;\n }\n}\n\n","import { Component, h, Element, Prop, State, Listen, Method, Event, EventEmitter } from \"@stencil/core\";\n\n@Component({\n tag: 'ifx-navbar-item',\n styleUrl: 'navbar-item.scss',\n shadow: true\n})\n\nexport class NavbarItem {\n\n @Element() el;\n @Prop() showLabel: boolean = true;\n @Prop() icon: string = \"\"\n @Prop() href: string = \"\"\n @Prop() target: string = \"_self\";\n @Prop() hideOnMobile: boolean = true;\n @State() internalHref: string = \"\"\n @State() isMenuItem: boolean = false;\n @State() hasChildNavItems: boolean = false;\n @State() isSidebarMenuItem: boolean = false;\n @State() itemPosition: string;\n @Event() ifxNavItem: EventEmitter;\n \n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const itemMenu = this.getItemMenu()\n if(itemMenu) { \n if(itemMenu.classList.contains('open')) { \n if (!path.includes(this.el)) {\n this.closeItemMenu();\n }\n }\n }\n }\n\n @Method()\n async hideComponent() { \n this.el.style.display = 'none';\n }\n\n @Method()\n async showComponent() { \n this.el.style.display = '';\n }\n\n @Method()\n async toggleChildren(action) { \n const itemMenu = this.getItemMenu()\n const arrowIcon = this.getChevronDownIconWrapper()\n if(itemMenu) { \n this.handleClassList(arrowIcon, action, 'hide')\n this.handleClassList(itemMenu, action, 'itemInMobileMenu')\n }\n }\n\n @Method()\n async moveChildComponentsIntoSubLayerMenu() { \n const subLayerMenu = this.getItemMenu()\n if(subLayerMenu) { \n const subLayerMenuIsOpened = this.handleClassList(subLayerMenu, 'contains', 'open')\n if(subLayerMenuIsOpened) { \n const navbarItem = this.getNavBarItem()\n const subLayerBackButton = this.getSubLayerBackButton()\n this.handleClassList(navbarItem, 'add', 'layer__item-parent')\n this.handleClassList(subLayerBackButton, 'add', 'show')\n this.ifxNavItem.emit({component: this.el, action: 'hideFirstLayer'})\n }\n }\n\n const navItems = this.el.querySelectorAll('[slot=\"first__layer\"]')\n this.isSidebarMenuItem = true;\n\n for(let i = 0; i < navItems.length; i++) { \n navItems[i].setAttribute('slot', 'second__layer')\n navItems[i].moveChildComponentsIntoSubLayerMenu()\n }\n }\n\n getSubLayerBackButton() { \n const sublayerBackButton = this.el.shadowRoot.querySelector('.sub__layer-back-button')\n return sublayerBackButton\n }\n\n @Method()\n async toggleFirstLayerItem(actionOne, actionTwo) { \n const navbarItem = this.getNavBarItem()\n const secondLayerMenu = this.getSubLayerMenu()\n const subLayerBackButton = this.getSubLayerBackButton()\n this.handleClassList(subLayerBackButton, [actionOne], 'show')\n this.handleClassList(navbarItem, [actionTwo], 'hide')\n this.handleClassList(secondLayerMenu, [actionTwo], 'remove__margin')\n }\n\n openSubLayerMenu() { \n if(this.hasChildNavItems) { \n const subLayerBackButton = this.getSubLayerBackButton()\n const rightArrowIcon = this.getRightArrowIcon()\n const navbarItem = this.getNavBarItem()\n const subLayerMenu = this.getSubLayerMenu()\n const slotName = this.el.getAttribute('slot')\n\n this.handleClassList(subLayerBackButton, 'add', 'show')\n this.handleClassList(rightArrowIcon, 'add', 'hide')\n this.handleClassList(navbarItem, 'add', 'layer__item-parent')\n this.handleClassList(subLayerMenu, 'add', 'open')\n \n if(slotName.toLowerCase() === 'second__layer') {\n this.ifxNavItem.emit({component: this.el, parent: this.el.parentElement, action: 'hideSecondLayer'})\n this.handleClassList(navbarItem, 'remove', 'menuItem')\n } else { \n this.ifxNavItem.emit({component: this.el, action: 'hideFirstLayer'})\n }\n }\n }\n\n @Method()\n async addMenuItemClass() { \n const navbarItem = this.getNavBarItem()\n this.handleClassList(navbarItem, 'add', 'menuItem')\n const rightArrowIcon = this.getRightArrowIcon()\n if(this.hasChildNavItems) { \n this.handleClassList(rightArrowIcon, 'remove', 'hide')\n }\n }\n\n @Method()\n async moveChildComponentsBackIntoNavbar() { \n const subLayerBackButton = this.getSubLayerBackButton()\n const navbarItem = this.getNavBarItem()\n const secondLayerMenu = this.getSubLayerMenu()\n\n this.handleClassList(subLayerBackButton, 'remove', 'show')\n this.handleClassList(navbarItem, 'remove', 'layer__item-parent')\n this.handleClassList(secondLayerMenu, 'remove', 'remove__margin')\n\n this.ifxNavItem.emit({component: this.el, action: 'show'})\n\n const navItems = this.el.querySelectorAll('[slot=\"second__layer\"]')\n this.isSidebarMenuItem = false;\n this.showComponent()\n this.handleClassList(navbarItem, 'remove', 'hide')\n\n for(let i = 0; i < navItems.length; i++) { \n navItems[i].setAttribute('slot', 'first__layer')\n navItems[i].moveChildComponentsBackIntoNavbar()\n navItems[i].addMenuItemClass()\n navItems[i].returnToFirstLayer()\n }\n }\n\n getRightArrowIcon() { \n const menuItemRightIconWrapper = this.el.shadowRoot.querySelector('.menuItemRightIconWrapper')\n return menuItemRightIconWrapper;\n }\n\n getChevronDownIconWrapper() { \n const arrowIcon = this.el.shadowRoot.querySelector('.navItemIconWrapper');\n return arrowIcon;\n }\n\n @Method()\n async returnToFirstLayer() { \n const subLayerBackButton = this.getSubLayerBackButton()\n const navbarItem = this.getNavBarItem()\n const rightArrowIcon = this.getRightArrowIcon()\n const subLayerMenu = this.getSubLayerMenu()\n const slotName = this.el.getAttribute('slot')\n\n this.handleClassList(subLayerBackButton, 'remove', 'show')\n this.handleClassList(navbarItem, 'remove', 'layer__item-parent')\n this.handleClassList(subLayerMenu, 'remove', 'open')\n if(this.hasChildNavItems) { \n this.handleClassList(rightArrowIcon, 'remove', 'hide')\n }\n\n if(slotName.toLowerCase() === 'second__layer') {\n this.ifxNavItem.emit({component: this.el, parent: this.el.parentElement, action: 'returnToSecondLayer'})\n this.handleClassList(navbarItem, 'add', 'menuItem')\n } else { \n this.ifxNavItem.emit({component: this.el, action: 'return'})\n }\n }\n\n componentWillLoad() {\n this.setHref()\n this.checkIfItemIsNested()\n this.checkIfItemHasChildren()\n }\n\n componentDidLoad() { \n if(this.hasChildNavItems) { \n const navItems = this.getNavbarItems();\n this.relocateItemsToFirstlayer(navItems)\n }\n }\n\n componentDidUpdate() { \n const navbarItem = this.getNavBarItem()\n const isLayerItemParent = this.handleClassList(navbarItem, 'contains', 'layer__item-parent')\n if(this.isSidebarMenuItem && isLayerItemParent) {\n const rightArrowIcon = this.getRightArrowIcon()\n this.handleClassList(rightArrowIcon, 'add', 'hide')\n }\n }\n \n @Method()\n async setMenuItemPosition() { \n if(this.isMenuItem && this.hasChildNavItems) { \n const menuPosition = this.getItemMenuPosition()\n if(menuPosition === 'left') { \n this.itemPosition = 'left'\n } else if(menuPosition === 'right') { \n this.itemPosition = 'right'\n }\n }\n }\n\n handleClassList(el, type, className) {\n el.classList[type](className)\n if (type === 'contains') {\n return el.classList.contains(className)\n }\n }\n\n getNavbarItems() {\n const navItems = this.el.querySelectorAll('ifx-navbar-item')\n return navItems;\n }\n \n getNavBarItem() { \n const navItem = this.el.shadowRoot.querySelector('.navbar__item')\n return navItem;\n }\n\n getSubLayerMenu() { \n const subLayerMenu = this.el.shadowRoot.querySelector('.sub__layer-menu')\n return subLayerMenu;\n }\n\n relocateItemsToFirstlayer(navItems) { \n navItems.forEach(item => {\n item.setAttribute('slot', 'first__layer')\n })\n }\n\n setHref() {\n if (this.href.toLowerCase().trim() === \"\") {\n this.internalHref = undefined;\n } else this.internalHref = this.href;\n }\n\n checkIfItemIsNested() {\n const parentElement = this.el.parentElement;\n if (parentElement.tagName.toUpperCase() === 'IFX-NAVBAR-ITEM' \n || parentElement.tagName.toUpperCase() === 'IFX-NAVBAR-PROFILE') {\n this.isMenuItem = true;\n return;\n } else {\n this.isMenuItem = false;\n }\n }\n\n checkIfItemHasChildren() { \n const sidebarItems = this.getNavbarItems();\n if (sidebarItems.length !== 0) {\n this.hasChildNavItems = true;\n } else {\n this.hasChildNavItems = false;\n } \n }\n\n @Method()\n async setItemSideSpecifications() { \n const menuItem = this.el;\n const itemMenu = this.getItemMenu()\n const slotValue = menuItem.getAttribute('slot')\n \n if(slotValue.toLowerCase().trim() === \"right-item\") { \n this.handleClassList(itemMenu, 'add', 'rightSideItemMenu')\n }\n\n return true;\n }\n\n getItemMenu() { \n const menu = this.el.shadowRoot.querySelector('.navbar-menu');\n return menu;\n }\n\n closeItemMenu() { \n const itemMenu = this.getItemMenu()\n const menuItem = this.getNavBarItem()\n if(itemMenu) { \n this.handleClassList(itemMenu, 'remove', 'open')\n this.handleClassList(menuItem, 'remove', 'open')\n }\n }\n\n getItemMenuPosition() {\n let parentElement = this.el;\n while(parentElement) {\n if(parentElement.tagName === 'IFX-NAVBAR-PROFILE' || parentElement.slot === 'right-item') {\n return 'left'\n }\n parentElement = parentElement.parentElement || parentElement.getRootNode().host;\n }\n return 'right'\n }\n \n toggleItemMenu() {\n const slotName = this.el.getAttribute('slot')\n\n if(slotName.toLowerCase() === 'mobile-menu-top' || slotName.toLowerCase() === 'second__layer') { \n this.openSubLayerMenu()\n }\n\n if(!this.internalHref && slotName.toLowerCase() !== 'mobile-menu-top' && slotName.toLowerCase() !== 'second__layer' ) { \n const itemMenu = this.getItemMenu()\n \n if(this.hasChildNavItems) { \n const menuItem = this.getNavBarItem()\n this.handleClassList(itemMenu, 'toggle', 'open');\n this.handleClassList(menuItem, 'toggle', 'open');\n } \n }\n }\n\n handleNestedLayerMenu(e) { \n if(this.isMenuItem && this.hasChildNavItems && !this.isSidebarMenuItem) { \n const itemMenu = this.getItemMenu()\n const menuPosition = this.getItemMenuPosition()\n if(e.type.toUpperCase() === 'MOUSEENTER') { \n this.handleClassList(itemMenu, 'add', 'open')\n if(menuPosition === 'left') { \n this.handleClassList(itemMenu, 'add', 'left')\n } else if(menuPosition === 'right') { \n this.handleClassList(itemMenu, 'add', 'right')\n }\n }\n\n if(e.type.toUpperCase() === 'MOUSELEAVE') { \n this.handleClassList(itemMenu, 'remove', 'open')\n if(menuPosition === 'left') { \n this.handleClassList(itemMenu, 'remove', 'left')\n } else if (menuPosition === 'right') { \n this.handleClassList(itemMenu, 'remove', 'right')\n }\n }\n }\n }\n\n render() {\n return (\n <div class=\"container\" onMouseLeave={e => this.handleNestedLayerMenu(e)} onMouseEnter={e => this.handleNestedLayerMenu(e)}>\n <div class=\"sub__layer-back-button\">\n <div class=\"back__button-wrapper\" onClick={() => this.returnToFirstLayer()}>\n <ifx-icon icon=\"arrow-left-16\" />\n <span>Back</span>\n </div>\n </div>\n <a href={this.internalHref} target={this.target} onClick={() => this.toggleItemMenu()} class= {`navbar__item ${this.isSidebarMenuItem ? 'sidebarMenuItem' : \"\"} ${!this.showLabel ? 'removeLabel' : \"\"} ${this.isMenuItem ? 'menuItem' : \"\"} ${this.hasChildNavItems ? 'isParent' : \"\"}`}>\n <div class=\"inner__content-wrapper\">\n <div class={`navbar__container-right-content-navigation-item-icon-wrapper ${!this.icon ? \"removeWrapper\" : \"\"}`}>\n {this.icon && <ifx-icon icon={this.icon}></ifx-icon>}\n </div>\n\n {this.itemPosition === 'left' \n && this.hasChildNavItems \n && this.isMenuItem && \n <div class=\"menuItemLeftIconWrapper\">\n <ifx-icon icon=\"chevron-left-12\" />\n </div>}\n\n <span class=\"label__wrapper\">\n <slot />\n </span>\n </div>\n\n <div class={`navItemIconWrapper ${this.hasChildNavItems && !this.isMenuItem && !this.isSidebarMenuItem ? '' : \"hide\"}`}>\n <ifx-icon icon=\"chevron-down-12\" />\n </div>\n \n {<div class={`menuItemRightIconWrapper ${((this.itemPosition === 'right' && this.hasChildNavItems && this.isMenuItem) || (this.isSidebarMenuItem && this.hasChildNavItems)) ? '' : \"hide\"}`}>\n <ifx-icon icon=\"chevron-right-12\" />\n </div>}\n </a>\n \n {this.hasChildNavItems && !this.isSidebarMenuItem && <ul class='navbar-menu'> <slot name=\"first__layer\" /> </ul>}\n {this.isSidebarMenuItem && <ul class='sub__layer-menu'> <slot name=\"second__layer\" /> </ul>}\n\n </div>\n )\n }\n}"],"mappings":"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","ignoreList":[]}