@infineon/infineon-design-system-stencil 33.2.1--canary.1845.ee4ba88c8b50426d4974caf2175d29cea069a0da.0 → 33.2.1--canary.1723.b0e0253c13cf7166d5e9a69d5006845c2776873e.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +2 -2
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ifx-alert_2.cjs.entry.js +1 -1
  4. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-badge.cjs.entry.js +1 -1
  6. package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ifx-basic-table.cjs.entry.js +1 -1
  8. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +1 -1
  10. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +1 -1
  12. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-button.cjs.entry.js +1 -1
  16. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-card-headline.cjs.entry.js +1 -1
  18. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-card-links.cjs.entry.js +1 -1
  20. package/dist/cjs/ifx-card-links.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-card-overline.cjs.entry.js +1 -1
  22. package/dist/cjs/ifx-card-overline.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-card-text.cjs.entry.js +1 -1
  24. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-card.cjs.entry.js +1 -1
  26. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ifx-chip_3.cjs.entry.js +3 -3
  30. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +1 -1
  32. package/dist/cjs/ifx-dropdown-header.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +1 -1
  34. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ifx-footer-column.cjs.entry.js +1 -1
  36. package/dist/cjs/ifx-footer-column.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ifx-footer.cjs.entry.js +1 -1
  38. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ifx-link.cjs.entry.js +1 -1
  40. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ifx-modal.cjs.entry.js +1 -1
  42. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-multiselect.cjs.entry.js +1 -1
  44. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ifx-navbar.cjs.entry.js +1 -1
  46. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ifx-notification.cjs.entry.js +1 -1
  48. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ifx-number-indicator.cjs.entry.js +1 -1
  50. package/dist/cjs/ifx-number-indicator.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ifx-progress-bar.cjs.entry.js +1 -1
  52. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +1 -1
  54. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ifx-radio-button.cjs.entry.js +1 -1
  56. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ifx-search-bar.cjs.entry.js +1 -1
  58. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-search-field.cjs.entry.js +1 -1
  60. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ifx-segment.cjs.entry.js +1 -1
  62. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ifx-segmented-control.cjs.entry.js +1 -1
  64. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-select.cjs.entry.js +1 -1
  66. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +1 -1
  68. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +1 -1
  70. package/dist/cjs/ifx-sidebar-title.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-sidebar.cjs.entry.js +1 -1
  72. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ifx-slider.cjs.entry.js +1 -1
  74. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ifx-spinner_2.cjs.entry.js +1 -1
  76. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-status.cjs.entry.js +1 -1
  78. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-step.cjs.entry.js +1 -1
  80. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-stepper.cjs.entry.js +1 -1
  82. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ifx-switch.cjs.entry.js +1 -1
  84. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ifx-table.cjs.entry.js +1 -1
  86. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ifx-tabs.cjs.entry.js +1 -1
  88. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ifx-tag.cjs.entry.js +1 -1
  90. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ifx-textarea.cjs.entry.js +1 -1
  92. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ifx-tooltip.cjs.entry.js +1 -1
  94. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  95. package/dist/collection/components/accordion/accordion.css +2 -2
  96. package/dist/collection/components/accordion/accordionItem.css +2 -2
  97. package/dist/collection/components/alert/alert.css +1 -1
  98. package/dist/collection/components/badge/badge.css +1 -1
  99. package/dist/collection/components/breadcrumb/breadcrumb-item-label.css +1 -1
  100. package/dist/collection/components/breadcrumb/breadcrumb-item.css +1 -1
  101. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  102. package/dist/collection/components/button/button.css +1 -1
  103. package/dist/collection/components/card/card-headline/card-headline.css +1 -1
  104. package/dist/collection/components/card/card-links/card-links.css +1 -1
  105. package/dist/collection/components/card/card-overline/card-overline.css +1 -1
  106. package/dist/collection/components/card/card-text/card-text.css +1 -1
  107. package/dist/collection/components/card/card.css +1 -1
  108. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  109. package/dist/collection/components/chip/chip-item/chip-item.css +1 -1
  110. package/dist/collection/components/chip/chip.css +1 -1
  111. package/dist/collection/components/dropdown/dropdown-header/dropdown-header.css +1 -1
  112. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.css +1 -1
  113. package/dist/collection/components/footer/footer-column.css +1 -1
  114. package/dist/collection/components/footer/footer.css +1 -1
  115. package/dist/collection/components/link/link.css +1 -1
  116. package/dist/collection/components/modal/modal.css +1 -1
  117. package/dist/collection/components/navigation/navbar/navbar.css +1 -1
  118. package/dist/collection/components/navigation/sidebar/sidebar-item.css +1 -1
  119. package/dist/collection/components/navigation/sidebar/sidebar-title.css +1 -1
  120. package/dist/collection/components/navigation/sidebar/sidebar.css +1 -1
  121. package/dist/collection/components/notification/notification.css +1 -1
  122. package/dist/collection/components/number-indicator/number-indicator.css +1 -1
  123. package/dist/collection/components/pagination/pagination.css +1 -1
  124. package/dist/collection/components/progress-bar/progress-bar.css +1 -1
  125. package/dist/collection/components/radio-button/radio-button.css +1 -1
  126. package/dist/collection/components/radio-button-group/radio-button-group.css +1 -1
  127. package/dist/collection/components/search-bar/search-bar.css +1 -1
  128. package/dist/collection/components/search-field/search-field.css +1 -1
  129. package/dist/collection/components/segmented-control/segment/segment.css +1 -1
  130. package/dist/collection/components/segmented-control/segmented-control.css +1 -1
  131. package/dist/collection/components/select/multi-select/multiselect.css +1 -1
  132. package/dist/collection/components/select/single-select/select.css +1 -1
  133. package/dist/collection/components/slider/slider.css +1 -1
  134. package/dist/collection/components/status/status.css +1 -1
  135. package/dist/collection/components/stepper/step/step.css +1 -1
  136. package/dist/collection/components/stepper/stepper.css +1 -1
  137. package/dist/collection/components/switch/switch.css +1 -1
  138. package/dist/collection/components/table-advanced-version/table.css +1 -1
  139. package/dist/collection/components/table-basic-version/table.css +1 -1
  140. package/dist/collection/components/tabs/tabs.css +1 -1
  141. package/dist/collection/components/tag/tag.css +1 -1
  142. package/dist/collection/components/text-field/text-field.css +1 -1
  143. package/dist/collection/components/textarea/textarea.css +1 -1
  144. package/dist/collection/components/tooltip/tooltip.css +1 -1
  145. package/dist/components/ifx-accordion-item.js +1 -1
  146. package/dist/components/ifx-accordion.js +1 -1
  147. package/dist/components/ifx-alert.js +1 -1
  148. package/dist/components/ifx-badge.js +1 -1
  149. package/dist/components/ifx-badge.js.map +1 -1
  150. package/dist/components/ifx-basic-table.js +1 -1
  151. package/dist/components/ifx-basic-table.js.map +1 -1
  152. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  153. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  154. package/dist/components/ifx-breadcrumb-item.js +1 -1
  155. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  156. package/dist/components/ifx-breadcrumb.js +1 -1
  157. package/dist/components/ifx-breadcrumb.js.map +1 -1
  158. package/dist/components/ifx-button.js +1 -1
  159. package/dist/components/ifx-card-headline.js +1 -1
  160. package/dist/components/ifx-card-headline.js.map +1 -1
  161. package/dist/components/ifx-card-links.js +1 -1
  162. package/dist/components/ifx-card-links.js.map +1 -1
  163. package/dist/components/ifx-card-overline.js +1 -1
  164. package/dist/components/ifx-card-overline.js.map +1 -1
  165. package/dist/components/ifx-card-text.js +1 -1
  166. package/dist/components/ifx-card-text.js.map +1 -1
  167. package/dist/components/ifx-card.js +1 -1
  168. package/dist/components/ifx-card.js.map +1 -1
  169. package/dist/components/ifx-checkbox-group.js +1 -1
  170. package/dist/components/ifx-checkbox-group.js.map +1 -1
  171. package/dist/components/ifx-chip-item.js +1 -1
  172. package/dist/components/ifx-chip.js +1 -1
  173. package/dist/components/ifx-download.js +1 -1
  174. package/dist/components/ifx-dropdown-header.js +1 -1
  175. package/dist/components/ifx-dropdown-header.js.map +1 -1
  176. package/dist/components/ifx-dropdown-item.js +1 -1
  177. package/dist/components/ifx-dropdown-item.js.map +1 -1
  178. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  179. package/dist/components/ifx-faq.js +2 -2
  180. package/dist/components/ifx-filter-accordion.js +1 -1
  181. package/dist/components/ifx-filter-bar.js +1 -1
  182. package/dist/components/ifx-filter-search.js +1 -1
  183. package/dist/components/ifx-footer-column.js +1 -1
  184. package/dist/components/ifx-footer-column.js.map +1 -1
  185. package/dist/components/ifx-footer.js +1 -1
  186. package/dist/components/ifx-footer.js.map +1 -1
  187. package/dist/components/ifx-icons-preview.js +2 -2
  188. package/dist/components/ifx-link.js +1 -1
  189. package/dist/components/ifx-list-entry.js +1 -1
  190. package/dist/components/ifx-list.js +1 -1
  191. package/dist/components/ifx-modal.js +1 -1
  192. package/dist/components/ifx-modal.js.map +1 -1
  193. package/dist/components/ifx-multiselect.js +1 -1
  194. package/dist/components/ifx-navbar-item.js +1 -1
  195. package/dist/components/ifx-navbar.js +1 -1
  196. package/dist/components/ifx-navbar.js.map +1 -1
  197. package/dist/components/ifx-notification.js +1 -1
  198. package/dist/components/ifx-number-indicator.js +1 -1
  199. package/dist/components/ifx-overview-table.js +2 -2
  200. package/dist/components/ifx-pagination.js +1 -1
  201. package/dist/components/ifx-progress-bar.js +1 -1
  202. package/dist/components/ifx-progress-bar.js.map +1 -1
  203. package/dist/components/ifx-radio-button-group.js +1 -1
  204. package/dist/components/ifx-radio-button-group.js.map +1 -1
  205. package/dist/components/ifx-radio-button.js +1 -1
  206. package/dist/components/ifx-search-bar.js +2 -2
  207. package/dist/components/ifx-search-bar.js.map +1 -1
  208. package/dist/components/ifx-search-field.js +1 -1
  209. package/dist/components/ifx-segment.js +1 -1
  210. package/dist/components/ifx-segment.js.map +1 -1
  211. package/dist/components/ifx-segmented-control.js +1 -1
  212. package/dist/components/ifx-segmented-control.js.map +1 -1
  213. package/dist/components/ifx-select.js +1 -1
  214. package/dist/components/ifx-set-filter.js +3 -3
  215. package/dist/components/ifx-sidebar-item.js +2 -2
  216. package/dist/components/ifx-sidebar-item.js.map +1 -1
  217. package/dist/components/ifx-sidebar-title.js +1 -1
  218. package/dist/components/ifx-sidebar-title.js.map +1 -1
  219. package/dist/components/ifx-sidebar.js +1 -1
  220. package/dist/components/ifx-sidebar.js.map +1 -1
  221. package/dist/components/ifx-slider.js +1 -1
  222. package/dist/components/ifx-slider.js.map +1 -1
  223. package/dist/components/ifx-status.js +1 -1
  224. package/dist/components/ifx-status.js.map +1 -1
  225. package/dist/components/ifx-step.js +1 -1
  226. package/dist/components/ifx-step.js.map +1 -1
  227. package/dist/components/ifx-stepper.js +1 -1
  228. package/dist/components/ifx-stepper.js.map +1 -1
  229. package/dist/components/ifx-switch.js +1 -1
  230. package/dist/components/ifx-switch.js.map +1 -1
  231. package/dist/components/ifx-table.js +7 -7
  232. package/dist/components/ifx-table.js.map +1 -1
  233. package/dist/components/ifx-tabs.js +1 -1
  234. package/dist/components/ifx-tabs.js.map +1 -1
  235. package/dist/components/ifx-tag.js +1 -1
  236. package/dist/components/ifx-tag.js.map +1 -1
  237. package/dist/components/ifx-template.js +1 -1
  238. package/dist/components/ifx-templates-ui.js +5 -5
  239. package/dist/components/ifx-text-field.js +1 -1
  240. package/dist/components/ifx-textarea.js +1 -1
  241. package/dist/components/ifx-textarea.js.map +1 -1
  242. package/dist/components/ifx-tooltip.js +1 -1
  243. package/dist/components/ifx-tooltip.js.map +1 -1
  244. package/dist/components/{p-6fe92ab0.js → p-04a697ad.js} +2 -2
  245. package/dist/components/{p-6fe92ab0.js.map → p-04a697ad.js.map} +1 -1
  246. package/dist/components/{p-fd07fd11.js → p-0ccba8b1.js} +3 -3
  247. package/dist/components/{p-fd07fd11.js.map → p-0ccba8b1.js.map} +1 -1
  248. package/dist/components/{p-8704ba3b.js → p-1d737cf7.js} +2 -2
  249. package/dist/components/{p-8704ba3b.js.map → p-1d737cf7.js.map} +1 -1
  250. package/dist/components/{p-f6fa6d6f.js → p-23757cfd.js} +2 -2
  251. package/dist/components/{p-f6fa6d6f.js.map → p-23757cfd.js.map} +1 -1
  252. package/dist/components/{p-b5808951.js → p-26e62031.js} +2 -2
  253. package/dist/components/{p-b5808951.js.map → p-26e62031.js.map} +1 -1
  254. package/dist/components/{p-e6f47e76.js → p-327af560.js} +2 -2
  255. package/dist/components/{p-e6f47e76.js.map → p-327af560.js.map} +1 -1
  256. package/dist/components/{p-d3a6b575.js → p-59110a4e.js} +2 -2
  257. package/dist/components/{p-d3a6b575.js.map → p-59110a4e.js.map} +1 -1
  258. package/dist/components/{p-838db47a.js → p-5b5399c2.js} +2 -2
  259. package/dist/components/p-5b5399c2.js.map +1 -0
  260. package/dist/components/{p-00e48fa3.js → p-79352b7c.js} +4 -4
  261. package/dist/components/{p-00e48fa3.js.map → p-79352b7c.js.map} +1 -1
  262. package/dist/components/{p-4cec756d.js → p-7b38ddd5.js} +2 -2
  263. package/dist/components/{p-4cec756d.js.map → p-7b38ddd5.js.map} +1 -1
  264. package/dist/components/{p-c6a9add9.js → p-7c7a5393.js} +2 -2
  265. package/dist/components/p-7c7a5393.js.map +1 -0
  266. package/dist/components/{p-f9e79aa1.js → p-88691420.js} +3 -3
  267. package/dist/components/{p-f9e79aa1.js.map → p-88691420.js.map} +1 -1
  268. package/dist/components/{p-93fee9f5.js → p-b4e91450.js} +2 -2
  269. package/dist/components/{p-93fee9f5.js.map → p-b4e91450.js.map} +1 -1
  270. package/dist/components/p-cc9cb040.js +164 -0
  271. package/dist/components/{p-c1c258ab.js.map → p-cc9cb040.js.map} +1 -1
  272. package/dist/components/{p-a88d8e93.js → p-ee5532fd.js} +3 -3
  273. package/dist/components/{p-a88d8e93.js.map → p-ee5532fd.js.map} +1 -1
  274. package/dist/components/{p-27bf5536.js → p-f36effad.js} +2 -2
  275. package/dist/components/{p-27bf5536.js.map → p-f36effad.js.map} +1 -1
  276. package/dist/esm/ifx-accordion_2.entry.js +2 -2
  277. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  278. package/dist/esm/ifx-alert_2.entry.js +1 -1
  279. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  280. package/dist/esm/ifx-badge.entry.js +1 -1
  281. package/dist/esm/ifx-badge.entry.js.map +1 -1
  282. package/dist/esm/ifx-basic-table.entry.js +1 -1
  283. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  284. package/dist/esm/ifx-breadcrumb-item-label.entry.js +1 -1
  285. package/dist/esm/ifx-breadcrumb-item-label.entry.js.map +1 -1
  286. package/dist/esm/ifx-breadcrumb-item.entry.js +1 -1
  287. package/dist/esm/ifx-breadcrumb-item.entry.js.map +1 -1
  288. package/dist/esm/ifx-breadcrumb.entry.js +1 -1
  289. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  290. package/dist/esm/ifx-button.entry.js +1 -1
  291. package/dist/esm/ifx-button.entry.js.map +1 -1
  292. package/dist/esm/ifx-card-headline.entry.js +1 -1
  293. package/dist/esm/ifx-card-headline.entry.js.map +1 -1
  294. package/dist/esm/ifx-card-links.entry.js +1 -1
  295. package/dist/esm/ifx-card-links.entry.js.map +1 -1
  296. package/dist/esm/ifx-card-overline.entry.js +1 -1
  297. package/dist/esm/ifx-card-overline.entry.js.map +1 -1
  298. package/dist/esm/ifx-card-text.entry.js +1 -1
  299. package/dist/esm/ifx-card-text.entry.js.map +1 -1
  300. package/dist/esm/ifx-card.entry.js +1 -1
  301. package/dist/esm/ifx-card.entry.js.map +1 -1
  302. package/dist/esm/ifx-checkbox-group.entry.js +1 -1
  303. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  304. package/dist/esm/ifx-chip_3.entry.js +3 -3
  305. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  306. package/dist/esm/ifx-dropdown-header.entry.js +1 -1
  307. package/dist/esm/ifx-dropdown-header.entry.js.map +1 -1
  308. package/dist/esm/ifx-dropdown-item.entry.js +1 -1
  309. package/dist/esm/ifx-dropdown-item.entry.js.map +1 -1
  310. package/dist/esm/ifx-footer-column.entry.js +1 -1
  311. package/dist/esm/ifx-footer-column.entry.js.map +1 -1
  312. package/dist/esm/ifx-footer.entry.js +1 -1
  313. package/dist/esm/ifx-footer.entry.js.map +1 -1
  314. package/dist/esm/ifx-link.entry.js +1 -1
  315. package/dist/esm/ifx-link.entry.js.map +1 -1
  316. package/dist/esm/ifx-modal.entry.js +1 -1
  317. package/dist/esm/ifx-modal.entry.js.map +1 -1
  318. package/dist/esm/ifx-multiselect.entry.js +1 -1
  319. package/dist/esm/ifx-multiselect.entry.js.map +1 -1
  320. package/dist/esm/ifx-navbar.entry.js +1 -1
  321. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  322. package/dist/esm/ifx-notification.entry.js +1 -1
  323. package/dist/esm/ifx-notification.entry.js.map +1 -1
  324. package/dist/esm/ifx-number-indicator.entry.js +1 -1
  325. package/dist/esm/ifx-number-indicator.entry.js.map +1 -1
  326. package/dist/esm/ifx-progress-bar.entry.js +1 -1
  327. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  328. package/dist/esm/ifx-radio-button-group.entry.js +1 -1
  329. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  330. package/dist/esm/ifx-radio-button.entry.js +1 -1
  331. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  332. package/dist/esm/ifx-search-bar.entry.js +1 -1
  333. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  334. package/dist/esm/ifx-search-field.entry.js +1 -1
  335. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  336. package/dist/esm/ifx-segment.entry.js +1 -1
  337. package/dist/esm/ifx-segment.entry.js.map +1 -1
  338. package/dist/esm/ifx-segmented-control.entry.js +1 -1
  339. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  340. package/dist/esm/ifx-select.entry.js +1 -1
  341. package/dist/esm/ifx-select.entry.js.map +1 -1
  342. package/dist/esm/ifx-sidebar-item.entry.js +1 -1
  343. package/dist/esm/ifx-sidebar-item.entry.js.map +1 -1
  344. package/dist/esm/ifx-sidebar-title.entry.js +1 -1
  345. package/dist/esm/ifx-sidebar-title.entry.js.map +1 -1
  346. package/dist/esm/ifx-sidebar.entry.js +1 -1
  347. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  348. package/dist/esm/ifx-slider.entry.js +1 -1
  349. package/dist/esm/ifx-slider.entry.js.map +1 -1
  350. package/dist/esm/ifx-spinner_2.entry.js +1 -1
  351. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  352. package/dist/esm/ifx-status.entry.js +1 -1
  353. package/dist/esm/ifx-status.entry.js.map +1 -1
  354. package/dist/esm/ifx-step.entry.js +1 -1
  355. package/dist/esm/ifx-step.entry.js.map +1 -1
  356. package/dist/esm/ifx-stepper.entry.js +1 -1
  357. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  358. package/dist/esm/ifx-switch.entry.js +1 -1
  359. package/dist/esm/ifx-switch.entry.js.map +1 -1
  360. package/dist/esm/ifx-table.entry.js +1 -1
  361. package/dist/esm/ifx-table.entry.js.map +1 -1
  362. package/dist/esm/ifx-tabs.entry.js +1 -1
  363. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  364. package/dist/esm/ifx-tag.entry.js +1 -1
  365. package/dist/esm/ifx-tag.entry.js.map +1 -1
  366. package/dist/esm/ifx-textarea.entry.js +1 -1
  367. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  368. package/dist/esm/ifx-tooltip.entry.js +1 -1
  369. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  370. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.css +1 -1
  371. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  372. package/dist/infineon-design-system-stencil/p-0333c09a.entry.js +2 -0
  373. package/dist/infineon-design-system-stencil/{p-ef59a9f9.entry.js.map → p-0333c09a.entry.js.map} +1 -1
  374. package/dist/infineon-design-system-stencil/p-05d332bd.entry.js +2 -0
  375. package/dist/infineon-design-system-stencil/{p-9fc6780e.entry.js.map → p-05d332bd.entry.js.map} +1 -1
  376. package/dist/infineon-design-system-stencil/p-080456bc.entry.js +2 -0
  377. package/dist/infineon-design-system-stencil/{p-7cd22218.entry.js.map → p-080456bc.entry.js.map} +1 -1
  378. package/dist/infineon-design-system-stencil/p-0a69604b.entry.js +2 -0
  379. package/dist/infineon-design-system-stencil/{p-37b651ad.entry.js.map → p-0a69604b.entry.js.map} +1 -1
  380. package/dist/infineon-design-system-stencil/p-0d11b881.entry.js +2 -0
  381. package/dist/infineon-design-system-stencil/{p-69c40ca9.entry.js.map → p-0d11b881.entry.js.map} +1 -1
  382. package/dist/infineon-design-system-stencil/p-1d47cfa5.entry.js +2 -0
  383. package/dist/infineon-design-system-stencil/{p-6c155e72.entry.js.map → p-1d47cfa5.entry.js.map} +1 -1
  384. package/dist/infineon-design-system-stencil/p-1f745731.entry.js +2 -0
  385. package/dist/infineon-design-system-stencil/{p-7b8d2d00.entry.js.map → p-1f745731.entry.js.map} +1 -1
  386. package/dist/infineon-design-system-stencil/p-2f87fada.entry.js +2 -0
  387. package/dist/infineon-design-system-stencil/{p-67bef9b1.entry.js.map → p-2f87fada.entry.js.map} +1 -1
  388. package/dist/infineon-design-system-stencil/p-332313b0.entry.js +2 -0
  389. package/dist/infineon-design-system-stencil/{p-a56778a3.entry.js.map → p-332313b0.entry.js.map} +1 -1
  390. package/dist/infineon-design-system-stencil/p-33f48cf1.entry.js +2 -0
  391. package/dist/infineon-design-system-stencil/{p-826bac97.entry.js.map → p-33f48cf1.entry.js.map} +1 -1
  392. package/dist/infineon-design-system-stencil/p-41316712.entry.js +2 -0
  393. package/dist/infineon-design-system-stencil/{p-a860954b.entry.js.map → p-41316712.entry.js.map} +1 -1
  394. package/dist/infineon-design-system-stencil/p-427b82a8.entry.js +2 -0
  395. package/dist/infineon-design-system-stencil/{p-dba9ba64.entry.js.map → p-427b82a8.entry.js.map} +1 -1
  396. package/dist/infineon-design-system-stencil/p-47893f7e.entry.js +2 -0
  397. package/dist/infineon-design-system-stencil/{p-2fcbe7c5.entry.js.map → p-47893f7e.entry.js.map} +1 -1
  398. package/dist/infineon-design-system-stencil/p-485ba923.entry.js +2 -0
  399. package/dist/infineon-design-system-stencil/{p-54178158.entry.js.map → p-485ba923.entry.js.map} +1 -1
  400. package/dist/infineon-design-system-stencil/p-4ddb3e72.entry.js +2 -0
  401. package/dist/infineon-design-system-stencil/{p-762b334b.entry.js.map → p-4ddb3e72.entry.js.map} +1 -1
  402. package/dist/infineon-design-system-stencil/p-50793991.entry.js +2 -0
  403. package/dist/infineon-design-system-stencil/{p-22d170ec.entry.js.map → p-50793991.entry.js.map} +1 -1
  404. package/dist/infineon-design-system-stencil/{p-b55121f0.entry.js → p-5d486e15.entry.js} +2 -2
  405. package/dist/infineon-design-system-stencil/{p-b55121f0.entry.js.map → p-5d486e15.entry.js.map} +1 -1
  406. package/dist/infineon-design-system-stencil/p-602a1ada.entry.js +2 -0
  407. package/dist/infineon-design-system-stencil/{p-1efeb8d3.entry.js.map → p-602a1ada.entry.js.map} +1 -1
  408. package/dist/infineon-design-system-stencil/p-61010cd5.entry.js +2 -0
  409. package/dist/infineon-design-system-stencil/{p-c128a27c.entry.js.map → p-61010cd5.entry.js.map} +1 -1
  410. package/dist/infineon-design-system-stencil/{p-5694467b.entry.js → p-63679298.entry.js} +2 -2
  411. package/dist/infineon-design-system-stencil/{p-5694467b.entry.js.map → p-63679298.entry.js.map} +1 -1
  412. package/dist/infineon-design-system-stencil/p-661a7c0b.entry.js +2 -0
  413. package/dist/infineon-design-system-stencil/{p-da7c406c.entry.js.map → p-661a7c0b.entry.js.map} +1 -1
  414. package/dist/infineon-design-system-stencil/p-69799784.entry.js +2 -0
  415. package/dist/infineon-design-system-stencil/{p-59c083f0.entry.js.map → p-69799784.entry.js.map} +1 -1
  416. package/dist/infineon-design-system-stencil/p-6a8bfce7.entry.js +2 -0
  417. package/dist/infineon-design-system-stencil/{p-0ea7bcc4.entry.js.map → p-6a8bfce7.entry.js.map} +1 -1
  418. package/dist/infineon-design-system-stencil/p-6c3c5b20.entry.js +2 -0
  419. package/dist/infineon-design-system-stencil/{p-96b3d6ad.entry.js.map → p-6c3c5b20.entry.js.map} +1 -1
  420. package/dist/infineon-design-system-stencil/p-74fd43e9.entry.js +2 -0
  421. package/dist/infineon-design-system-stencil/{p-86bc917e.entry.js.map → p-74fd43e9.entry.js.map} +1 -1
  422. package/dist/infineon-design-system-stencil/p-76e2c9c5.entry.js +2 -0
  423. package/dist/infineon-design-system-stencil/{p-2868a1c3.entry.js.map → p-76e2c9c5.entry.js.map} +1 -1
  424. package/dist/infineon-design-system-stencil/p-7de29aa8.entry.js +2 -0
  425. package/dist/infineon-design-system-stencil/{p-17c4f291.entry.js.map → p-7de29aa8.entry.js.map} +1 -1
  426. package/dist/infineon-design-system-stencil/{p-3ef9babe.entry.js → p-8531337f.entry.js} +2 -2
  427. package/dist/infineon-design-system-stencil/{p-3ef9babe.entry.js.map → p-8531337f.entry.js.map} +1 -1
  428. package/dist/infineon-design-system-stencil/p-96ba5e8c.entry.js +2 -0
  429. package/dist/infineon-design-system-stencil/{p-31ffdf1f.entry.js.map → p-96ba5e8c.entry.js.map} +1 -1
  430. package/dist/infineon-design-system-stencil/p-a1bb909f.entry.js +2 -0
  431. package/dist/infineon-design-system-stencil/{p-9f8b7e50.entry.js.map → p-a1bb909f.entry.js.map} +1 -1
  432. package/dist/infineon-design-system-stencil/p-aac226ce.entry.js +2 -0
  433. package/dist/infineon-design-system-stencil/{p-628cc5fa.entry.js.map → p-aac226ce.entry.js.map} +1 -1
  434. package/dist/infineon-design-system-stencil/p-b1c2e67a.entry.js +2 -0
  435. package/dist/infineon-design-system-stencil/{p-3d6b1437.entry.js.map → p-b1c2e67a.entry.js.map} +1 -1
  436. package/dist/infineon-design-system-stencil/p-b39303be.entry.js +2 -0
  437. package/dist/infineon-design-system-stencil/p-b39303be.entry.js.map +1 -0
  438. package/dist/infineon-design-system-stencil/p-b6bdc0a5.entry.js +2 -0
  439. package/dist/infineon-design-system-stencil/{p-f5fadcec.entry.js.map → p-b6bdc0a5.entry.js.map} +1 -1
  440. package/dist/infineon-design-system-stencil/p-b6d2073e.entry.js +2 -0
  441. package/dist/infineon-design-system-stencil/{p-dd6d8c6f.entry.js.map → p-b6d2073e.entry.js.map} +1 -1
  442. package/dist/infineon-design-system-stencil/p-b84588f9.entry.js +2 -0
  443. package/dist/infineon-design-system-stencil/{p-130a348e.entry.js.map → p-b84588f9.entry.js.map} +1 -1
  444. package/dist/infineon-design-system-stencil/p-c183f92b.entry.js +2 -0
  445. package/dist/infineon-design-system-stencil/{p-19e5328b.entry.js.map → p-c183f92b.entry.js.map} +1 -1
  446. package/dist/infineon-design-system-stencil/p-c4eac5cd.entry.js +2 -0
  447. package/dist/infineon-design-system-stencil/{p-e3ac60fd.entry.js.map → p-c4eac5cd.entry.js.map} +1 -1
  448. package/dist/infineon-design-system-stencil/p-d9f7f285.entry.js +2 -0
  449. package/dist/infineon-design-system-stencil/{p-edf6d637.entry.js.map → p-d9f7f285.entry.js.map} +1 -1
  450. package/dist/infineon-design-system-stencil/p-db9bdd7d.entry.js +2 -0
  451. package/dist/infineon-design-system-stencil/{p-ae1f14b9.entry.js.map → p-db9bdd7d.entry.js.map} +1 -1
  452. package/dist/infineon-design-system-stencil/p-dba0c2d2.entry.js +2 -0
  453. package/dist/infineon-design-system-stencil/{p-196a54c7.entry.js.map → p-dba0c2d2.entry.js.map} +1 -1
  454. package/dist/infineon-design-system-stencil/p-dc5ff11a.entry.js +2 -0
  455. package/dist/infineon-design-system-stencil/{p-2d10e50f.entry.js.map → p-dc5ff11a.entry.js.map} +1 -1
  456. package/dist/infineon-design-system-stencil/p-dd27040f.entry.js +2 -0
  457. package/dist/infineon-design-system-stencil/{p-8d2e1ccb.entry.js.map → p-dd27040f.entry.js.map} +1 -1
  458. package/dist/infineon-design-system-stencil/p-e93396ed.entry.js +2 -0
  459. package/dist/infineon-design-system-stencil/{p-50690841.entry.js.map → p-e93396ed.entry.js.map} +1 -1
  460. package/dist/infineon-design-system-stencil/p-f88b928c.entry.js +2 -0
  461. package/dist/infineon-design-system-stencil/{p-3a47beeb.entry.js.map → p-f88b928c.entry.js.map} +1 -1
  462. package/dist/infineon-design-system-stencil/p-fc455450.entry.js +2 -0
  463. package/dist/infineon-design-system-stencil/{p-30c93be2.entry.js.map → p-fc455450.entry.js.map} +1 -1
  464. package/dist/infineon-design-system-stencil/p-fe55dfcd.entry.js +2 -0
  465. package/dist/infineon-design-system-stencil/{p-7d478daf.entry.js.map → p-fe55dfcd.entry.js.map} +1 -1
  466. package/package.json +1 -1
  467. package/dist/components/p-838db47a.js.map +0 -1
  468. package/dist/components/p-c1c258ab.js +0 -164
  469. package/dist/components/p-c6a9add9.js.map +0 -1
  470. package/dist/infineon-design-system-stencil/p-0ea7bcc4.entry.js +0 -2
  471. package/dist/infineon-design-system-stencil/p-130a348e.entry.js +0 -2
  472. package/dist/infineon-design-system-stencil/p-17c4f291.entry.js +0 -2
  473. package/dist/infineon-design-system-stencil/p-196a54c7.entry.js +0 -2
  474. package/dist/infineon-design-system-stencil/p-19e5328b.entry.js +0 -2
  475. package/dist/infineon-design-system-stencil/p-1efeb8d3.entry.js +0 -2
  476. package/dist/infineon-design-system-stencil/p-22d170ec.entry.js +0 -2
  477. package/dist/infineon-design-system-stencil/p-2868a1c3.entry.js +0 -2
  478. package/dist/infineon-design-system-stencil/p-2d10e50f.entry.js +0 -2
  479. package/dist/infineon-design-system-stencil/p-2fcbe7c5.entry.js +0 -2
  480. package/dist/infineon-design-system-stencil/p-30c93be2.entry.js +0 -2
  481. package/dist/infineon-design-system-stencil/p-31ffdf1f.entry.js +0 -2
  482. package/dist/infineon-design-system-stencil/p-37b651ad.entry.js +0 -2
  483. package/dist/infineon-design-system-stencil/p-3a47beeb.entry.js +0 -2
  484. package/dist/infineon-design-system-stencil/p-3d6b1437.entry.js +0 -2
  485. package/dist/infineon-design-system-stencil/p-50690841.entry.js +0 -2
  486. package/dist/infineon-design-system-stencil/p-54178158.entry.js +0 -2
  487. package/dist/infineon-design-system-stencil/p-59c083f0.entry.js +0 -2
  488. package/dist/infineon-design-system-stencil/p-628cc5fa.entry.js +0 -2
  489. package/dist/infineon-design-system-stencil/p-67bef9b1.entry.js +0 -2
  490. package/dist/infineon-design-system-stencil/p-69c40ca9.entry.js +0 -2
  491. package/dist/infineon-design-system-stencil/p-6c155e72.entry.js +0 -2
  492. package/dist/infineon-design-system-stencil/p-762b334b.entry.js +0 -2
  493. package/dist/infineon-design-system-stencil/p-7b8d2d00.entry.js +0 -2
  494. package/dist/infineon-design-system-stencil/p-7cd22218.entry.js +0 -2
  495. package/dist/infineon-design-system-stencil/p-7d478daf.entry.js +0 -2
  496. package/dist/infineon-design-system-stencil/p-826bac97.entry.js +0 -2
  497. package/dist/infineon-design-system-stencil/p-86bc917e.entry.js +0 -2
  498. package/dist/infineon-design-system-stencil/p-8d2e1ccb.entry.js +0 -2
  499. package/dist/infineon-design-system-stencil/p-96b3d6ad.entry.js +0 -2
  500. package/dist/infineon-design-system-stencil/p-9f8b7e50.entry.js +0 -2
  501. package/dist/infineon-design-system-stencil/p-9fc6780e.entry.js +0 -2
  502. package/dist/infineon-design-system-stencil/p-a56778a3.entry.js +0 -2
  503. package/dist/infineon-design-system-stencil/p-a76c8195.entry.js +0 -2
  504. package/dist/infineon-design-system-stencil/p-a76c8195.entry.js.map +0 -1
  505. package/dist/infineon-design-system-stencil/p-a860954b.entry.js +0 -2
  506. package/dist/infineon-design-system-stencil/p-ae1f14b9.entry.js +0 -2
  507. package/dist/infineon-design-system-stencil/p-c128a27c.entry.js +0 -2
  508. package/dist/infineon-design-system-stencil/p-da7c406c.entry.js +0 -2
  509. package/dist/infineon-design-system-stencil/p-dba9ba64.entry.js +0 -2
  510. package/dist/infineon-design-system-stencil/p-dd6d8c6f.entry.js +0 -2
  511. package/dist/infineon-design-system-stencil/p-e3ac60fd.entry.js +0 -2
  512. package/dist/infineon-design-system-stencil/p-edf6d637.entry.js +0 -2
  513. package/dist/infineon-design-system-stencil/p-ef59a9f9.entry.js +0 -2
  514. package/dist/infineon-design-system-stencil/p-f5fadcec.entry.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["navbarCss","IfxNavbarStyle0","Navbar","constructor","hostRef","this","main","products","applications","design","support","about","applicationName","hasLeftMenuItems","fixed","showLogoAndAppname","logoHref","internalLogoHref","logoHrefTarget","internalLogoHrefTarget","addEventListenersToHandleCustomFocusState","element","el","shadowRoot","firstChild","console","error","tabIndex","aElements","querySelectorAll","i","length","slot","querySelector","assignedNodes","node","nodeName","navbarItem","clearFirstLayerMenu","event","detail","action","leftMenuItems","getMobileMenuTop","isSameNode","component","hideComponent","parent","children","toggleFirstLayerItem","showComponent","getWrappers","rightContentNavigationGroup","searchBarRightWrapper","searchBarLeftWrapper","rightSideItemSlot","rightSideSlot","leftSideSlot","rightAssignedNodes","leftAssignedNodes","navbarProfile","rightMenuItems","topRowWrapper","hideNavItems","searchBarIsOpen","l","classList","contains","r","hideOnMobile","showNavItems","undefined","handleSearchBarToggle","toggleClass","className","toggle","handleSidebar","sidebarIconWrapper","currentTarget","closest","sidebarIconOpen","sidebarIconClose","mainContainer","navbarWrapper","sidebarWrapper","handleBodyScroll","body","style","overflow","handleDropdownMenu","dropdownWrapper","iconWrapper","setItemMenuPosition","navbarItems","itemChildren","forEach","item","setMenuItemPosition","setMenuItemChildrenPosition","hasNestedItems","setItemSideSpecifications","subItem","getMediaQueryList","mediaQueryList","window","matchMedia","componentDidLoad","matches","moveNavItemsToSidebar","handleMobileMenuBottom","e","mobileMenuBottomWrapper","slotElement","target","nodes","add","remove","handleLogoHrefAndTarget","trim","includes","componentWillLoad","RemoveSpaceOnStorybookSnippet","dropdownMenu","addEventListener","getSearchBarLeftWrapper","getMobileMenuBottom","handleBurgerIcon","burgerIconWrapper","crossIcon","searchBarLeft","onNavbarMobile","setAttribute","moveChildComponentsIntoSubLayerMenu","tagName","toUpperCase","showLabel","toggleChildren","leftIsInitial","searchBarRight","moveChildComponentsBackIntoNavbar","navbarProfileItem","showProfileItemLabel","getAttribute","parentElement","storybookWrapper","render","h","key","class","href","width","height","viewBox","fill","xmlns","d","id","name","onClick","bind","icon","onSlotchange"],"sources":["src/components/navigation/navbar/navbar.scss?tag=ifx-navbar&encapsulation=shadow","src/components/navigation/navbar/navbar.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n:host {\n width: 100%;\n display: block;\n}\n\n\n.navbar__wrapper {\n font-family: tokens.$ifxFontFamilyBody;\n height: 63px;\n position: sticky;\n //overflow: hidden;\n z-index: 1030;\n border-bottom: 1px solid #EEEDED;\n\n &.fixed {\n border-bottom: none;\n }\n\n // border-bottom: 1px solid #EEEDED; //when fixed is false\n}\n\n.navbar__main-container {\n position: absolute;\n top: 0;\n width: 100%;\n //overflow: hidden;\n transition: all 1s;\n z-index: 1020;\n\n &.fixed {\n position: fixed;\n\n & .navbar__container {\n border-bottom: 1px solid #EEEDED;\n }\n }\n\n &.show {\n height: 100vh;\n bottom: 0;\n background-color: tokens.$ifxColorOverlayDark;\n transition: 1s;\n z-index: 1;\n }\n}\n\n.navbar__sidebar {\n box-sizing: border-box;\n position: fixed;\n right: -100%;\n top: 64px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n // padding: 32px;\n width: 375px;\n height: calc(100vh - 64px);\n background-color: tokens.$ifxColorBaseWhite;\n transition: right 1s;\n z-index: 1030;\n\n &.show {\n right: 0;\n transition: right 1s;\n }\n\n & .navbar__sidebar-top-row { \n display: flex;\n padding: var(--borderRadius-none, 0px) var(--space-300, 24px) 30px var(--space-300, 24px);\n flex-direction: column;\n align-items: flex-start;\n gap: var(--space-200, 16px);\n flex: 1 0 0;\n align-self: stretch;\n\n overflow-y: auto;\n\n & .navbar__sidebar-top-row-wrapper { \n display: flex;\n padding-top: var(--space-200, 16px);\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n gap: 16px;\n\n &.expand { \n align-items: initial;\n }\n\n & .navbar__sidebar-top-row-item { \n display: flex;\n padding: var(--space-200, 0px) var(--space-50, 4px) var(--space-200, 0px) 0px;\n align-items: center;\n gap: var(--space-100, 8px);\n align-self: stretch;\n justify-content: space-between;\n\n & .navbar__sidebar-top-row-item-icon-wrapper { \n & ifx-icon { \n vertical-align: middle;\n }\n }\n \n \n &:hover { \n cursor: pointer;\n }\n \n & .navbar__sidebar-top-row-item-label { \n color: var(--color-base-black, #1D1D1D);\n font-family: \"Source Sans 3\";\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; \n }\n \n }\n }\n\n }\n\n & .navbar__sidebar-bottom-row { \n //display: flex;\n display: none;\n padding: var(--space-150, 12px) var(--space-300, 24px) var(--space-150, 12px) var(--space-200, 16px);\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n background: var(--color-engineering-100, #F7F7F7);\n border-top: 1px solid var(--color-engineering-200, #EEEDED);\n gap: 10px;\n\n max-height: 160px;\n overflow-y: auto;\n\n &.show { \n display: flex;\n }\n \n\n & .navbar__sidebar-bottom-row-item { \n display: flex;\n height: 40px;\n padding-right: var(--space-50, 4px);\n align-items: center;\n gap: var(--space-100, 8px);\n flex: 1 0 0;\n \n & .navbar__sidebar-bottom-row-item-label {\n color: var(--color-base-black, #1D1D1D);\n font-family: \"Source Sans 3\";\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; \n }\n\n & .navbar__sidebar-bottom-row-item-icon-wrapper { \n display: flex;\n align-items: center;\n }\n }\n\n }\n\n\n & .navbar__sidebar-content-products,\n & .navbar__sidebar-content-main {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 24px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n\n & .navbar__sidebar-content-products-header,\n & .navbar__sidebar-content-about-header {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 16px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n color: #BFBBBB;\n\n & span {\n color: tokens.$ifxColorBaseBlack;\n font-weight: 600;\n font-size: 18px;\n line-height: 28px;\n display: flex;\n align-items: center;\n }\n }\n\n & .navbar__sidebar-content-products-menu,\n & .navbar__sidebar-content-main-menu {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 16px;\n flex: none;\n order: 1;\n flex-grow: 0;\n width: 100%;\n\n & .navbar__sidebar-content-products-menu-item,\n & .navbar__sidebar-content-main-menu-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & a {\n text-decoration: none;\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n }\n }\n\n & .navbar__sidebar-content-main-menu-item {\n color: tokens.$ifxColorEngineering300;\n\n & a {\n font-style: normal;\n font-weight: 600;\n font-size: 18px;\n line-height: 28px;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 0;\n flex-grow: 1;\n }\n }\n }\n\n & .navbar__sidebar-content-main-menu {\n align-items: normal;\n }\n }\n}\n\n.navbar__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 40px;\n gap: 16px;\n background-color: tokens.$ifxColorBaseWhite;\n font-family: tokens.$ifxFontFamilyBody;\n\n &.expanded { \n justify-content: initial;\n }\n\n // &.fixed { \n // border-bottom: 1px solid #EEEDED; //when fixed is true\n // }\n\n & .navbar__container-search-field-wrapper { \n display: none;\n\n &.show { \n display: flex;\n }\n }\n\n & .navbar__container-left {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0;\n gap: 16px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n &.hide {\n display: none;\n }\n\n &.expand { \n justify-content: initial;\n flex: 1;\n & .navbar__container-left-content { \n align-items: initial;\n flex: 1;\n & .navbar__container-left-content-navigation-group { \n justify-content: initial;\n flex: 1;\n & .navbar__container-left-content-navigation-item-search-bar { \n flex: 1;\n }\n }\n }\n \n }\n\n & .navbar__container-left-logo {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 16px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n &.hide { \n display: none;\n }\n\n & h6 {\n position: relative;\n margin: 0;\n padding: 0;\n font-style: normal;\n font-weight: 600;\n font-size: 16px;\n //line-height: 24px;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n flex-grow: 0;\n }\n\n & .navbar__container-left-logo-default {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 12px 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & svg {\n width: 91px;\n height: 40px;\n flex: none;\n order: 0;\n flex-grow: 0;\n vertical-align: bottom;\n }\n }\n\n & .navbar__container-left-logo-divider {\n width: 1px;\n height: 32px;\n background: tokens.$ifxColorEngineering200;\n flex: none;\n order: 2;\n flex-grow: 0;\n }\n }\n\n & .navbar__container-left-content {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: flex-start;\n padding: 0px;\n flex: none;\n order: 1;\n flex-grow: 0;\n\n & .navbar__container-left-content-navigation-group {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-left-content-navigation-item-search-bar {\n display: flex; //none\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n flex: none;\n order: 5;\n flex-grow: 0;\n //width: 256px;\n //height: 40px;\n }\n\n & .navbar__container-left-content-navigation-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n gap: 8px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & a {\n display: flex;\n align-items: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: tokens.$ifxColorBaseBlack;\n text-decoration: none;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n }\n }\n }\n }\n\n & .navbar__container-right {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n padding: 0;\n gap: 8px;\n flex: none;\n order: 1;\n flex-grow: 0;\n\n &.hide { \n display: none;\n }\n\n &.expand { \n justify-content: initial;\n flex: 1;\n & .navbar__container-right-content { \n align-items: initial;\n flex: 1;\n & .navbar__container-right-content-navigation-group { \n justify-content: initial;\n flex: 1;\n & .navbar__container-right-content-navigation-item-search-bar { \n flex: 1;\n & .navbar__container-right-content-navigation-item-search-bar-icon-wrapper { \n flex: 1;\n }\n }\n }\n }\n \n }\n\n & .navbar__burger-icon-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 4px 0px 4px 16px;\n border-left: 1px solid tokens.$ifxColorEngineering300;\n gap: 16px;\n flex: none;\n order: 1;\n flex-grow: 0;\n width: 41px;\n height: 40px;\n\n &.hide { \n display: none;\n }\n\n & .navbar__burger-icon {\n display: flex;\n align-items: center;\n\n &:hover { \n cursor: pointer;\n }\n\n &.close {\n display: none;\n }\n }\n\n & .navbar__cross-icon {\n display: none;\n align-items: center;\n\n &.show {\n display: flex;\n\n &:hover { \n cursor: pointer;\n }\n }\n }\n }\n\n & .navbar__container-right-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-right-content-navigation-group {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n padding: 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-right-content-navigation-item,\n & .navbar__container-right-content-navigation-item-profile,\n & .navbar__container-right-content-navigation-item-search-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n gap: 4px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-right-content-navigation-item-search-bar-icon-wrapper {\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 //width: 24px;\n //height: 24px;\n //max-width: 200px;\n\n &.isOpen { \n position: absolute;\n top: 10px;\n }\n }\n\n & .navbar__container-right-content-navigation-item-navigation-profile {\n position: relative;\n width: 24px;\n height: 24px;\n background: tokens.$ifxColorOcean500;\n border-radius: 100px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & a {\n position: absolute;\n width: 22px;\n height: 20px;\n left: calc(50% - 22px/2);\n top: calc(50% - 20px/2);\n font-style: normal;\n font-weight: 600;\n font-size: 14px;\n line-height: 20px;\n text-decoration: none;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: tokens.$ifxColorBaseWhite;\n }\n }\n\n & .navbar__container-right-content-navigation-item-icon-wrapper {\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\n & a {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: tokens.$ifxColorBaseBlack;\n text-decoration: none;\n display: flex;\n align-items: center;\n flex: none;\n order: 1;\n flex-grow: 0;\n }\n }\n }\n }\n }\n}\n\n//burger icon exist, and left container is gone\n@media screen and (max-width: 800px) {\n .navbar__container {\n padding: 0px 16px;\n height: 64px;\n gap: initial;\n\n &.expanded { \n & .navbar__container-right {\n & .navbar__burger-icon-wrapper {\n display: none;\n }\n }\n }\n\n & .navbar__container-left {\n & .navbar__container-left-content {\n display: none;\n }\n\n & .navbar__container-left-logo {\n & .navbar__container-left-logo-divider {\n display: none;\n }\n }\n }\n\n & .navbar__container-right {\n flex: 1;\n }\n }\n\n .navbar__sidebar {\n width: 0;\n transition: 1s;\n\n // &.show {\n // width: 100%;\n // }\n\n }\n}\n\n@media screen and (max-width: 500px) {\n .navbar__sidebar {\n &.show {\n width: 100%; // 100% of viewport width\n }\n }\n}\n\n@media screen and (min-width: 500px) {\n .navbar__sidebar {\n &.show {\n width: 50%; // 100% of viewport width\n }\n }\n}\n\n//burger icon disappears\n@media screen and (min-width: 800px) {\n .navbar__wrapper {\n height: 63px;\n }\n\n .navbar__container {\n padding: 0px 16px;\n height: 63px;\n gap: initial;\n\n & .navbar__container-right {\n & .navbar__burger-icon-wrapper {\n display: none;\n }\n }\n }\n\n .navbar__main-container {\n &.show {\n height: auto;\n background-color: inherit;\n transition: none;\n }\n }\n\n .navbar__sidebar {\n width: 0;\n transition: 1s;\n &.show { \n right: -100%;\n }\n }\n\n}\n\n//left container appears\n@media screen and (min-width: 1024px) {\n .navbar__wrapper {\n height: 72px;\n }\n\n .navbar__container {\n padding: 0px 24px;\n height: 72px;\n\n & .navbar__container-left {\n gap: 12px;\n display: flex;\n\n & .navbar__container-left-content {\n display: flex;\n }\n\n & .navbar__container-left-logo-default {\n & svg {\n width: 72.8px;\n height: 32px;\n }\n }\n }\n }\n\n .navbar__main-container {\n &.show {\n height: auto;\n background-color: inherit;\n transition: none;\n }\n }\n}\n\n@media screen and (min-width: 1200px) {\n .navbar__wrapper {\n height: 80px\n }\n\n .navbar__container {\n padding: 0px 32px;\n height: 80px;\n\n & .navbar__container-left {\n & .navbar__container-left-content {\n justify-content: inherit;\n }\n }\n\n & .navbar__container-right {\n & .navbar__container-right-content {\n justify-content: inherit;\n }\n }\n }\n}\n\n@media screen and (min-width: 1440px) {\n .navbar__wrapper {\n height: 80px;\n }\n\n .navbar__container {\n padding: 0px 40px;\n height: 80px;\n\n & .navbar__container-left {\n & .navbar__container-left-content {\n justify-content: center;\n }\n }\n\n & .navbar__container-right {\n & .navbar__container-right-content {\n justify-content: inherit;\n }\n }\n }\n}","import { Component, h, Element, State, Prop, Listen, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'ifx-navbar',\n styleUrl: 'navbar.scss',\n shadow: true,\n})\n\nexport class Navbar {\n @Element() el;\n @State() main: boolean = true\n @State() products: boolean = false\n @State() applications: boolean = false\n @State() design: boolean = false\n @State() support: boolean = false\n @State() about: boolean = false\n @Prop() applicationName: string = \"\"\n @State() hasLeftMenuItems: boolean = true;\n @Prop() fixed: boolean = true;\n @Prop() showLogoAndAppname: boolean = true;\n @State() searchBarIsOpen: string;\n @Prop() logoHref: string = \"\";\n @State() internalLogoHref: string = \"\"\n @Prop() logoHrefTarget: string = '_self';\n @State() internalLogoHrefTarget: string = '_self';\n @Event() ifxNavbarMobileMenuIsOpen: EventEmitter;\n\n private addEventListenersToHandleCustomFocusState() {\n const element = this.el.shadowRoot.firstChild;\n\n if (!element) {\n console.error('element not found');\n return;\n }\n element.tabIndex = -1;\n\n // Select all a elements in the navbar and set their tabIndex to -1 to make them non-focusable\n const aElements = element.querySelectorAll('a');\n for (let i = 0; i < aElements.length; i++) {\n aElements[i].tabIndex = -1;\n }\n\n const slot = element.querySelector('slot');\n if (slot) {\n const assignedNodes = slot.assignedNodes();\n for (let i = 0; i < assignedNodes.length; i++) {\n const node = assignedNodes[i] as HTMLElement;\n if (node.nodeName === 'IFX-NAVBAR-ITEM') {\n const navbarItem = node as HTMLIfxNavbarItemElement;\n\n // Get all navigation items\n const aElements = navbarItem?.shadowRoot.querySelectorAll('a');\n for (let i = 0; i < aElements.length; i++) {\n aElements[i].tabIndex = -1;\n }\n }\n }\n }\n }\n\n @Listen('ifxNavItem') \n clearFirstLayerMenu(event: CustomEvent) { \n if(event.detail.action === 'hideFirstLayer') { \n const leftMenuItems = this.getMobileMenuTop()\n for(let i = 0; i < leftMenuItems.length; i++) { \n if(!leftMenuItems[i].isSameNode(event.detail.component)) {\n leftMenuItems[i].hideComponent()\n }\n }\n }\n\n if(event.detail.action === 'hideSecondLayer') { \n const parent = event.detail.parent;\n const children = parent.children;\n parent.toggleFirstLayerItem('remove', 'add')\n for(let i = 0; i < children.length; i++) { \n if(!children[i].isSameNode(event.detail.component)) {\n children[i].hideComponent()\n }\n }\n }\n\n if(event.detail.action === 'returnToSecondLayer') { \n const parent = event.detail.parent;\n const children = parent.children;\n parent.toggleFirstLayerItem('add', 'remove')\n for(let i = 0; i < children.length; i++) { \n if(!children[i].isSameNode(event.detail.component)) {\n children[i].showComponent()\n }\n }\n }\n\n if(event.detail.action === 'show') { \n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]')\n for(let i = 0; i < leftMenuItems.length; i++) { \n if(!leftMenuItems[i].isSameNode(event.detail.component)) {\n leftMenuItems[i].showComponent()\n }\n }\n }\n\n if(event.detail.action === 'return') { \n const leftMenuItems = this.getMobileMenuTop()\n for(let i = 0; i < leftMenuItems.length; i++) { \n if(!leftMenuItems[i].isSameNode(event.detail.component)) {\n leftMenuItems[i].showComponent()\n }\n }\n }\n }\n\n getWrappers() {\n const rightContentNavigationGroup = this.el.shadowRoot.querySelector('.navbar__container-right-content-navigation-group')\n const searchBarRightWrapper = this.el.shadowRoot.querySelector('.navbar__container-right-content-navigation-item-search-bar-icon-wrapper')\n const searchBarLeftWrapper = this.el.shadowRoot.querySelector('.navbar__container-left-content-navigation-item-search-bar')\n const rightSideItemSlot = rightContentNavigationGroup.querySelector('slot[name=\"right-item\"]');\n const rightSideSlot = searchBarRightWrapper.querySelector('slot');\n const leftSideSlot = searchBarLeftWrapper.querySelector('slot');\n const rightAssignedNodes = rightSideSlot.assignedNodes();\n const leftAssignedNodes = leftSideSlot.assignedNodes();\n const navbarProfile = this.el.querySelector('ifx-navbar-profile');\n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]');\n const rightMenuItems = this.el.querySelectorAll('[slot=\"right-item\"]');\n const topRowWrapper = this.el.shadowRoot.querySelector('.navbar__sidebar-top-row-wrapper')\n \n return {rightSideItemSlot, rightSideSlot, leftSideSlot, rightAssignedNodes, leftAssignedNodes, navbarProfile, leftMenuItems, rightMenuItems, topRowWrapper};\n }\n\n hideNavItems() {\n const { rightAssignedNodes, leftAssignedNodes, navbarProfile, leftMenuItems, rightMenuItems, topRowWrapper } = this.getWrappers();\n \n if(rightAssignedNodes.length !== 0) { \n this.searchBarIsOpen = 'right'\n } else if(leftAssignedNodes.length !== 0) {\n this.searchBarIsOpen = 'left'\n }\n\n if(navbarProfile) { \n navbarProfile.hideComponent()\n }\n \n for(let l = 0; l < leftMenuItems.length; l++) { \n if(!topRowWrapper.classList.contains('expand')) {\n leftMenuItems[l].hideComponent()\n }\n }\n \n for(let r = 0; r < rightMenuItems.length; r++) { \n if(topRowWrapper.classList.contains('expand')) {\n if(!rightMenuItems[r].hideOnMobile) { \n rightMenuItems[r].hideComponent()\n }\n } else { \n rightMenuItems[r].hideComponent()\n }\n }\n }\n\n showNavItems() {\n const { navbarProfile, leftMenuItems, rightMenuItems, topRowWrapper } = this.getWrappers();\n this.searchBarIsOpen = undefined;\n \n if(navbarProfile) {\n navbarProfile.showComponent()\n }\n \n for(let l = 0; l < leftMenuItems.length; l++) { \n if(!topRowWrapper.classList.contains('expand')) {\n leftMenuItems[l].showComponent()\n }\n }\n \n for(let r = 0; r < rightMenuItems.length; r++) { \n if(topRowWrapper.classList.contains('expand')) {\n if(!rightMenuItems[r].hideOnMobile) { \n rightMenuItems[r].showComponent()\n }\n } else { \n rightMenuItems[r].showComponent()\n }\n }\n }\n \n \n @Listen('ifxOpen')\n handleSearchBarToggle(event: CustomEvent) {\n \n if(event.detail) { \n this.hideNavItems();\n } else if(!event.detail) {\n this.showNavItems();\n }\n }\n\n toggleClass(el, className) {\n el.classList.toggle(className)\n }\n\n handleSidebar(el) {\n const sidebarIconWrapper = el.currentTarget.closest('.navbar__burger-icon-wrapper');\n const sidebarIconOpen = sidebarIconWrapper.querySelector('.navbar__burger-icon')\n const sidebarIconClose = sidebarIconWrapper.querySelector('.navbar__cross-icon')\n const mainContainer = el.currentTarget.closest('.navbar__main-container');\n const navbarWrapper = el.currentTarget.closest('.navbar__wrapper')\n const sidebarWrapper = navbarWrapper.querySelector('.navbar__sidebar');\n this.toggleClass(navbarWrapper, 'show')\n this.toggleClass(mainContainer, 'show')\n this.toggleClass(sidebarWrapper, 'show')\n this.toggleClass(sidebarIconOpen, 'close')\n this.toggleClass(sidebarIconClose, 'show')\n\n if(sidebarIconClose.classList.contains('show')) { \n this.handleBodyScroll('hide')\n } else { \n this.handleBodyScroll('show')\n }\n }\n\n handleBodyScroll(action) { \n const body = this.el.closest('body')\n if(!this.fixed && action === 'hide') { \n body.style.overflow = 'hidden'\n } else if(action === 'show') { \n body.style.overflow = 'visible'\n }\n }\n\n handleDropdownMenu(el) {\n const dropdownWrapper = el.currentTarget.querySelector('.navbar__dropdown-wrapper')\n dropdownWrapper.classList.toggle('open')\n const iconWrapper = el.currentTarget.querySelector('a')\n iconWrapper.classList.toggle('open')\n }\n\n async setItemMenuPosition() { \n const navbarItems = this.el.querySelectorAll('ifx-navbar-item')\n const navbarProfile = this.el.querySelector('ifx-navbar-profile')\n\n if(navbarProfile) {\n const itemChildren = navbarProfile.querySelectorAll('ifx-navbar-item')\n if (itemChildren.length !== 0) {\n itemChildren.forEach(item => { \n item.setMenuItemPosition()\n this.setMenuItemChildrenPosition(item)\n })\n }\n }\n \n if(navbarItems.length !== 0) { \n for(let i = 0; i < navbarItems.length; i++) { \n const item = navbarItems[i];\n const itemChildren = item.querySelectorAll('ifx-navbar-item')\n if (itemChildren.length !== 0) {\n const hasNestedItems = await item.setItemSideSpecifications()\n if(hasNestedItems) { \n itemChildren.forEach(item => { \n item.setMenuItemPosition()\n this.setMenuItemChildrenPosition(item)\n })\n }\n }\n }\n }\n }\n\n setMenuItemChildrenPosition(item) {\n const itemChildren = item.querySelectorAll('ifx-navbar-item');\n if (itemChildren.length !== 0) {\n itemChildren.forEach(subItem => { \n subItem.setMenuItemPosition()\n this.setMenuItemChildrenPosition(subItem)\n })\n }\n }\n\n getMediaQueryList() { \n const mediaQueryList = window.matchMedia('(max-width: 800px)');\n return mediaQueryList;\n }\n\n componentDidLoad() {\n this.setItemMenuPosition()\n this.addEventListenersToHandleCustomFocusState();\n \n const mediaQueryList = this.getMediaQueryList()\n\n if (mediaQueryList.matches) {\n this.moveNavItemsToSidebar();\n }\n\n }\n\n handleMobileMenuBottom(e) { \n const mobileMenuBottomWrapper = this.el.shadowRoot.querySelector('.navbar__sidebar-bottom-row')\n const slotElement = e.target;\n const nodes = slotElement.assignedNodes();\n if(nodes.length > 0) { \n mobileMenuBottomWrapper.classList.add('show')\n } else { \n mobileMenuBottomWrapper.classList.remove('show')\n }\n }\n\n handleLogoHrefAndTarget(){\n if(this.logoHref.trim() === \"\") {\n this.internalLogoHref = undefined;\n }else{\n this.internalLogoHref = this.logoHref;\n }\n\n if(['_self', '_blank', '_parent'].includes(this.logoHrefTarget.trim())){\n this.internalLogoHrefTarget = this.logoHrefTarget;\n }else{\n this.internalLogoHrefTarget = '_self';\n }\n }\n\n \n componentWillLoad() {\n this.RemoveSpaceOnStorybookSnippet()\n const dropdownMenu = this.el.querySelector('ifx-navbar-menu')\n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]')\n if (!leftMenuItems.length && !dropdownMenu) {\n this.hasLeftMenuItems = false;\n }\n this.handleLogoHrefAndTarget();\n\n const mediaQueryList = window.matchMedia('(max-width: 800px)');\n mediaQueryList.addEventListener('change', (e) => this.moveNavItemsToSidebar(e));\n }\n\n \n\n getSearchBarLeftWrapper() { \n const searchBarLeftWrapper = this.el.shadowRoot.querySelector('.navbar__container-left-content-navigation-item-search-bar')\n return searchBarLeftWrapper;\n }\n\n getMobileMenuTop() { \n const leftMenuItems = this.el.querySelectorAll('[slot=\"mobile-menu-top\"]');\n return leftMenuItems;\n }\n\n getMobileMenuBottom() { \n const rightMenuItems = this.el.querySelectorAll('[slot=\"mobile-menu-bottom\"]');\n return rightMenuItems;\n }\n\n handleBurgerIcon() { \n const leftMenuItems = this.getMobileMenuTop()\n const rightMenuItems = this.getMobileMenuBottom()\n if(!leftMenuItems.length && !rightMenuItems.length) { \n const burgerIconWrapper = this.el.shadowRoot.querySelector('.navbar__burger-icon-wrapper')\n this.toggleClass(burgerIconWrapper, 'hide')\n }\n }\n \n moveNavItemsToSidebar(e?: MediaQueryListEvent) {\n const topRowWrapper = this.el.shadowRoot.querySelector('.navbar__sidebar-top-row-wrapper')\n const mediaQueryList = this.getMediaQueryList();\n const matches = e ? e.matches : mediaQueryList.matches;\n \n if (matches) {\n /* The viewport is 800px wide or less */\n topRowWrapper.classList.add('expand')\n \n //hide body scroll if sidebar was opened\n const crossIcon = this.el.shadowRoot.querySelector('.navbar__cross-icon')\n if(crossIcon.classList.contains('show')) { \n this.handleBodyScroll('hide')\n }\n \n //move search bar to right-side\n const searchBarLeft = this.el.querySelector('[slot=\"search-bar-left\"]')\n if(searchBarLeft) { \n if(this.searchBarIsOpen) { \n searchBarLeft.onNavbarMobile()\n }\n const searchBarLeftWrapper = this.getSearchBarLeftWrapper()\n searchBarLeftWrapper.classList.add('initial')\n searchBarLeft.setAttribute('slot', 'search-bar-right')\n }\n \n //left-side\n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]')\n for(let i = 0; i < leftMenuItems.length; i++) { \n leftMenuItems[i].setAttribute('slot', 'mobile-menu-top')\n leftMenuItems[i].moveChildComponentsIntoSubLayerMenu()\n if(this.searchBarIsOpen) { \n leftMenuItems[i].showComponent()\n }\n }\n \n //right-side\n const rightMenuItems = this.el.querySelectorAll('[slot=\"right-item\"]')\n for(let i = 0; i < rightMenuItems.length; i++) { \n if(rightMenuItems[i].tagName.toUpperCase() === 'IFX-NAVBAR-PROFILE') { \n rightMenuItems[i].showLabel = false;\n } else { \n if(rightMenuItems[i].hideOnMobile) { \n rightMenuItems[i].setAttribute('slot', 'mobile-menu-bottom')\n \n rightMenuItems[i].toggleChildren('add')\n \n rightMenuItems[i].showLabel = true;\n if(this.searchBarIsOpen) { \n rightMenuItems[i].showComponent()\n }\n }\n }\n }\n \n this.handleBurgerIcon()\n\n } else {\n /* The viewport is more than 800px wide */\n topRowWrapper.classList.remove('expand')\n\n //show body scroll \n this.handleBodyScroll('show')\n\n //return search bar to its original position\n const searchBarLeftWrapper = this.getSearchBarLeftWrapper()\n const leftIsInitial = searchBarLeftWrapper.classList.contains('initial')\n const searchBarRight = this.el.querySelector('[slot=\"search-bar-right\"]')\n if(leftIsInitial) { \n if(this.searchBarIsOpen) { \n searchBarRight.onNavbarMobile()\n }\n if(searchBarRight) { \n searchBarRight.setAttribute('slot', 'search-bar-left')\n }\n }\n\n //left-side\n const leftMenuItems = this.getMobileMenuTop()\n for(let i = 0; i < leftMenuItems.length; i++) { \n leftMenuItems[i].setAttribute('slot', 'left-item')\n leftMenuItems[i].moveChildComponentsBackIntoNavbar()\n }\n\n //right-side\n const rightMenuItems = this.getMobileMenuBottom()\n const navbarProfileItem = this.el.querySelector('ifx-navbar-profile')\n if(navbarProfileItem) { \n const showProfileItemLabel = navbarProfileItem.getAttribute('show-label');\n navbarProfileItem.setAttribute('show-label', showProfileItemLabel)\n }\n\n for(let i = 0; i < rightMenuItems.length; i++) { \n rightMenuItems[i].setAttribute('slot', 'right-item')\n\n rightMenuItems[i].toggleChildren('remove')\n \n const showLabel = rightMenuItems[i].getAttribute('show-label');\n rightMenuItems[i].setAttribute('show-label', showLabel)\n if(this.searchBarIsOpen) { \n rightMenuItems[i].hideComponent()\n }\n }\n }\n }\n\n RemoveSpaceOnStorybookSnippet() { \n let parent = this.el.parentElement;\n if(parent) { \n let storybookWrapper = parent.closest('.css-xzp052');\n if(storybookWrapper) { \n storybookWrapper.style.overflow = 'visible'\n }\n }\n }\n\n\n \n render() {\n return (\n <div aria-label='a navigation navbar' class={`navbar__wrapper ${this.fixed ? 'fixed' : \"\"}`}>\n <div class={`navbar__main-container ${this.fixed ? 'fixed' : \"\"}`}>\n <div class={`navbar__container ${this.searchBarIsOpen ? \"expanded\" : \"\"}`}>\n <div class={`navbar__container-left ${this.searchBarIsOpen === 'left' ? \"expand\" : this.searchBarIsOpen === 'right' ? 'hide' : \"\"}`}>\n {this.showLogoAndAppname &&\n <div class={`navbar__container-left-logo ${this.searchBarIsOpen === 'left' ? 'hide' : \"\"}`}>\n <div class=\"navbar__container-left-logo-default\">\n <a href={this.internalLogoHref} target = {this.internalLogoHrefTarget}>\n <svg width=\"91\" height=\"40\" viewBox=\"0 0 91 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_2396_2480)\">\n <path d=\"M67.691 26.7766C71.0884 26.7766 72.1461 23.1841 72.1461 19.8802C72.1461 15.4536 70.2871 13.1441 67.691 13.1441C64.4219 13.1441 63.2681 16.7367 63.3001 19.9443C63.3322 23.1199 64.2296 26.7766 67.691 26.7766ZM66.0244 19.8481C66.0244 18.533 66.0244 15.4536 67.691 15.4536C69.4859 15.4536 69.4218 18.5009 69.4218 19.9123C69.4218 21.2595 69.4218 24.5313 67.7551 24.5313C65.9603 24.4992 66.0244 21.2274 66.0244 19.8481ZM57.8195 26.7766C59.1976 26.7766 60.3835 26.2313 61.5053 25.0445L60.5117 23.1841C59.7425 24.018 58.9733 24.4671 58.0438 24.4671C57.2746 24.4671 56.6336 24.018 56.249 23.2482C55.9285 22.5746 55.8644 21.8048 55.8644 20.9708V20.7142H61.6335V20.1368C61.6335 17.282 61.2809 15.7102 60.3835 14.5234C59.7104 13.6253 58.7169 13.1441 57.499 13.1441C56.2169 13.1441 55.1593 13.7215 54.39 14.8442C53.5567 16.0631 53.2042 17.699 53.2042 19.9443C53.1721 24.2426 54.8708 26.7766 57.8195 26.7766ZM57.531 15.2612C58.172 15.2612 58.5566 15.614 58.813 16.1914C59.0053 16.7046 59.1015 17.5707 59.1015 18.5971H55.8644C55.8964 16.3197 56.3772 15.2612 57.531 15.2612ZM74.2614 26.4559H76.7614V16.8329C77.3703 16.0952 78.0754 15.6782 78.5882 15.6782C78.9087 15.6782 79.2292 15.7423 79.4215 15.9989C79.6138 16.2876 79.71 16.7046 79.71 17.699V26.4559H82.21V16.5442C82.21 15.6782 82.1138 14.8121 81.601 14.1706C81.1523 13.5932 80.4472 13.2404 79.5497 13.2404C78.3959 13.2404 77.2101 13.914 76.569 14.6838C76.537 14.0102 76.3126 13.3687 76.2485 13.1441L73.9089 13.7536C74.0371 14.4593 74.2294 15.3253 74.2294 16.8971V26.4559H74.2614ZM45.2236 14.6838C45.1915 14.0102 44.9672 13.3687 44.9031 13.1441L42.5634 13.7536C42.6916 14.4593 42.8839 15.3253 42.8839 16.8971V26.4238H45.3838V16.8008C45.9928 16.0631 46.6979 15.6461 47.2107 15.6461C47.5312 15.6461 47.8517 15.7102 48.044 15.9669C48.2363 16.2555 48.3325 16.6725 48.3325 17.6669V26.4238H50.8324V16.5442C50.8324 15.6782 50.7363 14.8121 50.2235 14.1706C49.7748 13.5932 49.0696 13.2404 48.1722 13.2404C47.0505 13.2404 45.8646 13.914 45.2236 14.6838ZM14.6473 9.07042C16.1216 9.07042 17.3075 7.88359 17.3075 6.40807C17.3075 4.93256 16.1216 3.74573 14.6473 3.74573C13.173 3.74573 11.9871 4.93256 11.9871 6.40807C11.9871 7.88359 13.173 9.07042 14.6473 9.07042ZM26.9227 26.4559V16.5442C26.9227 15.6782 26.8265 14.8121 26.3137 14.1706C25.865 13.5932 25.1599 13.2404 24.2625 13.2404C23.1087 13.2404 21.9228 13.914 21.2818 14.6838C21.2497 14.0102 21.0254 13.3687 20.9613 13.1441L18.6536 13.7857C18.7818 14.4913 18.9741 15.3574 18.9741 16.9291V26.4559H21.4741V16.8329C22.0831 16.0952 22.7882 15.6782 23.301 15.6782C23.6215 15.6782 23.942 15.7423 24.1343 15.9989C24.3266 16.2876 24.4227 16.7046 24.4227 17.699V26.4559H26.9227ZM38.4289 8.36474C37.4994 8.36474 36.7622 9.10249 36.7622 10.0327C36.7622 10.9629 37.4994 11.7007 38.3968 11.7007C39.3263 11.7007 40.0634 10.9629 40.0634 10.0327C40.0634 9.10249 39.3263 8.36474 38.4289 8.36474ZM13.4614 26.4559H15.9614V10.8346L13.4614 11.1554V26.4559ZM33.8777 9.90441C34.3264 9.90441 34.7751 10.0648 35.0635 10.2893L35.7687 8.33266C35.0956 7.85151 34.3584 7.62698 33.429 7.62698C32.788 7.62698 32.1149 7.78736 31.5059 8.26851C30.897 8.78173 30.256 9.80818 30.256 11.7328C30.256 12.5667 30.288 13.4328 30.288 13.4328H29.4226V15.6461H30.288V26.4238H32.8521V15.6782H34.743L35.2238 13.4649H32.8841V11.4762C32.8841 10.5139 33.2687 9.90441 33.8777 9.90441ZM37.1468 26.4559H39.6788V13.2404L37.1468 13.5611V26.4559Z\" fill=\"#005DA9\" />\n <path d=\"M77.0816 33.5126C68.6203 36.0146 58.3321 37.1052 48.2682 37.1052C22.7239 37.1052 6.24986 29.5993 5.09604 19.6877C4.67938 15.9668 7.59599 12.3422 12.4677 9.26285C11.6023 8.62132 11.0575 7.59488 11.0254 6.44012C3.97427 10.161 0 15.0366 0 19.9764C0 30.9145 19.5188 40.1525 48.5246 39.7676C58.6205 39.6393 67.0498 38.1958 74.6778 35.6939C83.7482 32.7428 89.4532 28.5087 90.8313 26.6483C89.1968 28.1238 85.3186 31.0748 77.0816 33.5126ZM23.2687 4.38723C24.9674 3.80985 27.3712 3.0721 27.3712 3.0721C34.1339 1.21166 41.6017 0.121063 48.5566 0.185215C40.544 -0.295931 33.2365 0.185215 26.8584 1.33997C26.8584 1.33997 24.743 1.69281 22.4675 2.27018C22.4675 2.27018 21.3777 2.55887 20.7047 2.75133C20.0316 2.94379 19.1021 3.2004 19.1021 3.2004C18.4611 3.39286 17.8201 3.6174 17.1791 3.84193C17.8201 4.48346 18.2047 5.31745 18.2368 6.27974C19.3586 5.76652 21.5059 4.99668 23.2687 4.38723Z\" fill=\"#E30034\" />\n </g>\n <defs>\n <clipPath id=\"clip0_2396_2480\">\n <rect width=\"91\" height=\"40\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </a>\n </div>\n {this.applicationName && <h6>{this.applicationName}</h6>}\n {this.applicationName && this.hasLeftMenuItems &&\n <div class=\"navbar__container-left-logo-divider\"></div>}\n </div>}\n <div class=\"navbar__container-left-content\">\n <div class=\"navbar__container-left-content-navigation-group\">\n <slot name='left-item' />\n <div class=\"navbar__container-left-content-navigation-item-search-bar\">\n <slot name='search-bar-left' />\n </div>\n </div>\n </div>\n </div>\n <div class={`navbar__container-right ${this.searchBarIsOpen === 'right' ? \"expand\" : this.searchBarIsOpen === 'left' ? 'hide' : \"\"}`}>\n <div class=\"navbar__container-right-content\">\n <div class=\"navbar__container-right-content-navigation-group\">\n <div class=\"navbar__container-right-content-navigation-item-search-bar\">\n <div class={`navbar__container-right-content-navigation-item-search-bar-icon-wrapper`}>\n <slot name='search-bar-right' />\n </div>\n </div>\n <slot name='right-item' />\n </div>\n </div>\n\n {/* MOBILE MENU BUTTON */}\n <div class={`navbar__burger-icon-wrapper`} onClick={this.handleSidebar.bind(this)}>\n <div class=\"navbar__burger-icon\">\n <ifx-icon icon=\"menu-right-24\"></ifx-icon>\n </div>\n <div class=\"navbar__cross-icon\">\n <ifx-icon icon=\"cross-24\"></ifx-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* SIDEBAR */}\n <div class=\"navbar__sidebar\">\n {/* left side ifx-navbar-item */}\n <div class=\"navbar__sidebar-top-row\">\n <div class=\"navbar__sidebar-top-row-wrapper\">\n <slot name='mobile-menu-top' />\n </div>\n </div>\n\n {/* right side ifx-navbar-item */}\n <div class=\"navbar__sidebar-bottom-row\">\n <slot name='mobile-menu-bottom' onSlotchange={(e) => this.handleMobileMenuBottom(e)} />\n </div>\n \n </div>\n </div>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["navbarCss","IfxNavbarStyle0","Navbar","constructor","hostRef","this","main","products","applications","design","support","about","applicationName","hasLeftMenuItems","fixed","showLogoAndAppname","logoHref","internalLogoHref","logoHrefTarget","internalLogoHrefTarget","addEventListenersToHandleCustomFocusState","element","el","shadowRoot","firstChild","console","error","tabIndex","aElements","querySelectorAll","i","length","slot","querySelector","assignedNodes","node","nodeName","navbarItem","clearFirstLayerMenu","event","detail","action","leftMenuItems","getMobileMenuTop","isSameNode","component","hideComponent","parent","children","toggleFirstLayerItem","showComponent","getWrappers","rightContentNavigationGroup","searchBarRightWrapper","searchBarLeftWrapper","rightSideItemSlot","rightSideSlot","leftSideSlot","rightAssignedNodes","leftAssignedNodes","navbarProfile","rightMenuItems","topRowWrapper","hideNavItems","searchBarIsOpen","l","classList","contains","r","hideOnMobile","showNavItems","undefined","handleSearchBarToggle","toggleClass","className","toggle","handleSidebar","sidebarIconWrapper","currentTarget","closest","sidebarIconOpen","sidebarIconClose","mainContainer","navbarWrapper","sidebarWrapper","handleBodyScroll","body","style","overflow","handleDropdownMenu","dropdownWrapper","iconWrapper","setItemMenuPosition","navbarItems","itemChildren","forEach","item","setMenuItemPosition","setMenuItemChildrenPosition","hasNestedItems","setItemSideSpecifications","subItem","getMediaQueryList","mediaQueryList","window","matchMedia","componentDidLoad","matches","moveNavItemsToSidebar","handleMobileMenuBottom","e","mobileMenuBottomWrapper","slotElement","target","nodes","add","remove","handleLogoHrefAndTarget","trim","includes","componentWillLoad","RemoveSpaceOnStorybookSnippet","dropdownMenu","addEventListener","getSearchBarLeftWrapper","getMobileMenuBottom","handleBurgerIcon","burgerIconWrapper","crossIcon","searchBarLeft","onNavbarMobile","setAttribute","moveChildComponentsIntoSubLayerMenu","tagName","toUpperCase","showLabel","toggleChildren","leftIsInitial","searchBarRight","moveChildComponentsBackIntoNavbar","navbarProfileItem","showProfileItemLabel","getAttribute","parentElement","storybookWrapper","render","h","key","class","href","width","height","viewBox","fill","xmlns","d","id","name","onClick","bind","icon","onSlotchange"],"sources":["src/components/navigation/navbar/navbar.scss?tag=ifx-navbar&encapsulation=shadow","src/components/navigation/navbar/navbar.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n:host {\n width: 100%;\n display: block;\n}\n\n\n.navbar__wrapper {\n font-family: tokens.$ifxFontFamilyBody;\n height: 63px;\n position: sticky;\n //overflow: hidden;\n z-index: 1030;\n border-bottom: 1px solid #EEEDED;\n\n &.fixed {\n border-bottom: none;\n }\n\n // border-bottom: 1px solid #EEEDED; //when fixed is false\n}\n\n.navbar__main-container {\n position: absolute;\n top: 0;\n width: 100%;\n //overflow: hidden;\n transition: all 1s;\n z-index: 1020;\n\n &.fixed {\n position: fixed;\n\n & .navbar__container {\n border-bottom: 1px solid #EEEDED;\n }\n }\n\n &.show {\n height: 100vh;\n bottom: 0;\n background-color: tokens.$ifxColorOverlayDark;\n transition: 1s;\n z-index: 1;\n }\n}\n\n.navbar__sidebar {\n box-sizing: border-box;\n position: fixed;\n right: -100%;\n top: 64px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n // padding: 32px;\n width: 375px;\n height: calc(100vh - 64px);\n background-color: tokens.$ifxColorBaseWhite;\n transition: right 1s;\n z-index: 1030;\n\n &.show {\n right: 0;\n transition: right 1s;\n }\n\n & .navbar__sidebar-top-row { \n display: flex;\n padding: var(--borderRadius-none, 0px) var(--space-300, 24px) 30px var(--space-300, 24px);\n flex-direction: column;\n align-items: flex-start;\n gap: var(--space-200, 16px);\n flex: 1 0 0;\n align-self: stretch;\n\n overflow-y: auto;\n\n & .navbar__sidebar-top-row-wrapper { \n display: flex;\n padding-top: var(--space-200, 16px);\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n gap: 16px;\n\n &.expand { \n align-items: initial;\n }\n\n & .navbar__sidebar-top-row-item { \n display: flex;\n padding: var(--space-200, 0px) var(--space-50, 4px) var(--space-200, 0px) 0px;\n align-items: center;\n gap: var(--space-100, 8px);\n align-self: stretch;\n justify-content: space-between;\n\n & .navbar__sidebar-top-row-item-icon-wrapper { \n & ifx-icon { \n vertical-align: middle;\n }\n }\n \n \n &:hover { \n cursor: pointer;\n }\n \n & .navbar__sidebar-top-row-item-label { \n color: var(--color-base-black, #1D1D1D);\n font-family: \"Source Sans 3\";\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; \n }\n \n }\n }\n\n }\n\n & .navbar__sidebar-bottom-row { \n //display: flex;\n display: none;\n padding: var(--space-150, 12px) var(--space-300, 24px) var(--space-150, 12px) var(--space-200, 16px);\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n background: var(--color-engineering-100, #F7F7F7);\n border-top: 1px solid var(--color-engineering-200, #EEEDED);\n gap: 10px;\n\n max-height: 160px;\n overflow-y: auto;\n\n &.show { \n display: flex;\n }\n \n\n & .navbar__sidebar-bottom-row-item { \n display: flex;\n height: 40px;\n padding-right: var(--space-50, 4px);\n align-items: center;\n gap: var(--space-100, 8px);\n flex: 1 0 0;\n \n & .navbar__sidebar-bottom-row-item-label {\n color: var(--color-base-black, #1D1D1D);\n font-family: \"Source Sans 3\";\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px; \n }\n\n & .navbar__sidebar-bottom-row-item-icon-wrapper { \n display: flex;\n align-items: center;\n }\n }\n\n }\n\n\n & .navbar__sidebar-content-products,\n & .navbar__sidebar-content-main {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 24px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n\n & .navbar__sidebar-content-products-header,\n & .navbar__sidebar-content-about-header {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 16px;\n flex: none;\n order: 0;\n align-self: stretch;\n flex-grow: 0;\n color: #BFBBBB;\n\n & span {\n color: tokens.$ifxColorBaseBlack;\n font-weight: 600;\n font-size: 18px;\n line-height: 28px;\n display: flex;\n align-items: center;\n }\n }\n\n & .navbar__sidebar-content-products-menu,\n & .navbar__sidebar-content-main-menu {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n gap: 16px;\n flex: none;\n order: 1;\n flex-grow: 0;\n width: 100%;\n\n & .navbar__sidebar-content-products-menu-item,\n & .navbar__sidebar-content-main-menu-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & a {\n text-decoration: none;\n font-style: normal;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n }\n }\n\n & .navbar__sidebar-content-main-menu-item {\n color: tokens.$ifxColorEngineering300;\n\n & a {\n font-style: normal;\n font-weight: 600;\n font-size: 18px;\n line-height: 28px;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 0;\n flex-grow: 1;\n }\n }\n }\n\n & .navbar__sidebar-content-main-menu {\n align-items: normal;\n }\n }\n}\n\n.navbar__container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 40px;\n gap: 16px;\n background-color: tokens.$ifxColorBaseWhite;\n font-family: tokens.$ifxFontFamilyBody;\n\n &.expanded { \n justify-content: initial;\n }\n\n // &.fixed { \n // border-bottom: 1px solid #EEEDED; //when fixed is true\n // }\n\n & .navbar__container-search-field-wrapper { \n display: none;\n\n &.show { \n display: flex;\n }\n }\n\n & .navbar__container-left {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0;\n gap: 16px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n &.hide {\n display: none;\n }\n\n &.expand { \n justify-content: initial;\n flex: 1;\n & .navbar__container-left-content { \n align-items: initial;\n flex: 1;\n & .navbar__container-left-content-navigation-group { \n justify-content: initial;\n flex: 1;\n & .navbar__container-left-content-navigation-item-search-bar { \n flex: 1;\n }\n }\n }\n \n }\n\n & .navbar__container-left-logo {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 16px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n &.hide { \n display: none;\n }\n\n & h6 {\n position: relative;\n margin: 0;\n padding: 0;\n font-style: normal;\n font-weight: 600;\n font-size: 16px;\n //line-height: 24px;\n display: flex;\n align-items: center;\n color: tokens.$ifxColorBaseBlack;\n flex: none;\n order: 1;\n flex-grow: 0;\n }\n\n & .navbar__container-left-logo-default {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 12px 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & svg {\n width: 91px;\n height: 40px;\n flex: none;\n order: 0;\n flex-grow: 0;\n vertical-align: bottom;\n }\n }\n\n & .navbar__container-left-logo-divider {\n width: 1px;\n height: 32px;\n background: tokens.$ifxColorEngineering200;\n flex: none;\n order: 2;\n flex-grow: 0;\n }\n }\n\n & .navbar__container-left-content {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: flex-start;\n padding: 0px;\n flex: none;\n order: 1;\n flex-grow: 0;\n\n & .navbar__container-left-content-navigation-group {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px;\n gap: 4px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-left-content-navigation-item-search-bar {\n display: flex; //none\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n flex: none;\n order: 5;\n flex-grow: 0;\n //width: 256px;\n //height: 40px;\n }\n\n & .navbar__container-left-content-navigation-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n gap: 8px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & a {\n display: flex;\n align-items: center;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n color: tokens.$ifxColorBaseBlack;\n text-decoration: none;\n flex: none;\n order: 0;\n flex-grow: 0;\n }\n }\n }\n }\n }\n\n & .navbar__container-right {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: flex-end;\n padding: 0;\n gap: 8px;\n flex: none;\n order: 1;\n flex-grow: 0;\n\n &.hide { \n display: none;\n }\n\n &.expand { \n justify-content: initial;\n flex: 1;\n & .navbar__container-right-content { \n align-items: initial;\n flex: 1;\n & .navbar__container-right-content-navigation-group { \n justify-content: initial;\n flex: 1;\n & .navbar__container-right-content-navigation-item-search-bar { \n flex: 1;\n & .navbar__container-right-content-navigation-item-search-bar-icon-wrapper { \n flex: 1;\n }\n }\n }\n }\n \n }\n\n & .navbar__burger-icon-wrapper {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 4px 0px 4px 16px;\n border-left: 1px solid tokens.$ifxColorEngineering300;\n gap: 16px;\n flex: none;\n order: 1;\n flex-grow: 0;\n width: 41px;\n height: 40px;\n\n &.hide { \n display: none;\n }\n\n & .navbar__burger-icon {\n display: flex;\n align-items: center;\n\n &:hover { \n cursor: pointer;\n }\n\n &.close {\n display: none;\n }\n }\n\n & .navbar__cross-icon {\n display: none;\n align-items: center;\n\n &.show {\n display: flex;\n\n &:hover { \n cursor: pointer;\n }\n }\n }\n }\n\n & .navbar__container-right-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n padding: 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-right-content-navigation-group {\n position: relative;\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n align-items: center;\n padding: 0px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-right-content-navigation-item,\n & .navbar__container-right-content-navigation-item-profile,\n & .navbar__container-right-content-navigation-item-search-bar {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0px 8px;\n gap: 4px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & .navbar__container-right-content-navigation-item-search-bar-icon-wrapper {\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 //width: 24px;\n //height: 24px;\n //max-width: 200px;\n\n &.isOpen { \n position: absolute;\n top: 10px;\n }\n }\n\n & .navbar__container-right-content-navigation-item-navigation-profile {\n position: relative;\n width: 24px;\n height: 24px;\n background: tokens.$ifxColorOcean500;\n border-radius: 100px;\n flex: none;\n order: 0;\n flex-grow: 0;\n\n & a {\n position: absolute;\n width: 22px;\n height: 20px;\n left: calc(50% - 22px/2);\n top: calc(50% - 20px/2);\n font-style: normal;\n font-weight: 600;\n font-size: 14px;\n line-height: 20px;\n text-decoration: none;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n color: tokens.$ifxColorBaseWhite;\n }\n }\n\n & .navbar__container-right-content-navigation-item-icon-wrapper {\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\n & a {\n font-style: normal;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n color: tokens.$ifxColorBaseBlack;\n text-decoration: none;\n display: flex;\n align-items: center;\n flex: none;\n order: 1;\n flex-grow: 0;\n }\n }\n }\n }\n }\n}\n\n//burger icon exist, and left container is gone\n@media screen and (max-width: 800px) {\n .navbar__container {\n padding: 0px 16px;\n height: 64px;\n gap: initial;\n\n &.expanded { \n & .navbar__container-right {\n & .navbar__burger-icon-wrapper {\n display: none;\n }\n }\n }\n\n & .navbar__container-left {\n & .navbar__container-left-content {\n display: none;\n }\n\n & .navbar__container-left-logo {\n & .navbar__container-left-logo-divider {\n display: none;\n }\n }\n }\n\n & .navbar__container-right {\n flex: 1;\n }\n }\n\n .navbar__sidebar {\n width: 0;\n transition: 1s;\n\n // &.show {\n // width: 100%;\n // }\n\n }\n}\n\n@media screen and (max-width: 500px) {\n .navbar__sidebar {\n &.show {\n width: 100%; // 100% of viewport width\n }\n }\n}\n\n@media screen and (min-width: 500px) {\n .navbar__sidebar {\n &.show {\n width: 50%; // 100% of viewport width\n }\n }\n}\n\n//burger icon disappears\n@media screen and (min-width: 800px) {\n .navbar__wrapper {\n height: 63px;\n }\n\n .navbar__container {\n padding: 0px 16px;\n height: 63px;\n gap: initial;\n\n & .navbar__container-right {\n & .navbar__burger-icon-wrapper {\n display: none;\n }\n }\n }\n\n .navbar__main-container {\n &.show {\n height: auto;\n background-color: inherit;\n transition: none;\n }\n }\n\n .navbar__sidebar {\n width: 0;\n transition: 1s;\n &.show { \n right: -100%;\n }\n }\n\n}\n\n//left container appears\n@media screen and (min-width: 1024px) {\n .navbar__wrapper {\n height: 72px;\n }\n\n .navbar__container {\n padding: 0px 24px;\n height: 72px;\n\n & .navbar__container-left {\n gap: 12px;\n display: flex;\n\n & .navbar__container-left-content {\n display: flex;\n }\n\n & .navbar__container-left-logo-default {\n & svg {\n width: 72.8px;\n height: 32px;\n }\n }\n }\n }\n\n .navbar__main-container {\n &.show {\n height: auto;\n background-color: inherit;\n transition: none;\n }\n }\n}\n\n@media screen and (min-width: 1200px) {\n .navbar__wrapper {\n height: 80px\n }\n\n .navbar__container {\n padding: 0px 32px;\n height: 80px;\n\n & .navbar__container-left {\n & .navbar__container-left-content {\n justify-content: inherit;\n }\n }\n\n & .navbar__container-right {\n & .navbar__container-right-content {\n justify-content: inherit;\n }\n }\n }\n}\n\n@media screen and (min-width: 1440px) {\n .navbar__wrapper {\n height: 80px;\n }\n\n .navbar__container {\n padding: 0px 40px;\n height: 80px;\n\n & .navbar__container-left {\n & .navbar__container-left-content {\n justify-content: center;\n }\n }\n\n & .navbar__container-right {\n & .navbar__container-right-content {\n justify-content: inherit;\n }\n }\n }\n}","import { Component, h, Element, State, Prop, Listen, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'ifx-navbar',\n styleUrl: 'navbar.scss',\n shadow: true,\n})\n\nexport class Navbar {\n @Element() el;\n @State() main: boolean = true\n @State() products: boolean = false\n @State() applications: boolean = false\n @State() design: boolean = false\n @State() support: boolean = false\n @State() about: boolean = false\n @Prop() applicationName: string = \"\"\n @State() hasLeftMenuItems: boolean = true;\n @Prop() fixed: boolean = true;\n @Prop() showLogoAndAppname: boolean = true;\n @State() searchBarIsOpen: string;\n @Prop() logoHref: string = \"\";\n @State() internalLogoHref: string = \"\"\n @Prop() logoHrefTarget: string = '_self';\n @State() internalLogoHrefTarget: string = '_self';\n @Event() ifxNavbarMobileMenuIsOpen: EventEmitter;\n\n private addEventListenersToHandleCustomFocusState() {\n const element = this.el.shadowRoot.firstChild;\n\n if (!element) {\n console.error('element not found');\n return;\n }\n element.tabIndex = -1;\n\n // Select all a elements in the navbar and set their tabIndex to -1 to make them non-focusable\n const aElements = element.querySelectorAll('a');\n for (let i = 0; i < aElements.length; i++) {\n aElements[i].tabIndex = -1;\n }\n\n const slot = element.querySelector('slot');\n if (slot) {\n const assignedNodes = slot.assignedNodes();\n for (let i = 0; i < assignedNodes.length; i++) {\n const node = assignedNodes[i] as HTMLElement;\n if (node.nodeName === 'IFX-NAVBAR-ITEM') {\n const navbarItem = node as HTMLIfxNavbarItemElement;\n\n // Get all navigation items\n const aElements = navbarItem?.shadowRoot.querySelectorAll('a');\n for (let i = 0; i < aElements.length; i++) {\n aElements[i].tabIndex = -1;\n }\n }\n }\n }\n }\n\n @Listen('ifxNavItem') \n clearFirstLayerMenu(event: CustomEvent) { \n if(event.detail.action === 'hideFirstLayer') { \n const leftMenuItems = this.getMobileMenuTop()\n for(let i = 0; i < leftMenuItems.length; i++) { \n if(!leftMenuItems[i].isSameNode(event.detail.component)) {\n leftMenuItems[i].hideComponent()\n }\n }\n }\n\n if(event.detail.action === 'hideSecondLayer') { \n const parent = event.detail.parent;\n const children = parent.children;\n parent.toggleFirstLayerItem('remove', 'add')\n for(let i = 0; i < children.length; i++) { \n if(!children[i].isSameNode(event.detail.component)) {\n children[i].hideComponent()\n }\n }\n }\n\n if(event.detail.action === 'returnToSecondLayer') { \n const parent = event.detail.parent;\n const children = parent.children;\n parent.toggleFirstLayerItem('add', 'remove')\n for(let i = 0; i < children.length; i++) { \n if(!children[i].isSameNode(event.detail.component)) {\n children[i].showComponent()\n }\n }\n }\n\n if(event.detail.action === 'show') { \n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]')\n for(let i = 0; i < leftMenuItems.length; i++) { \n if(!leftMenuItems[i].isSameNode(event.detail.component)) {\n leftMenuItems[i].showComponent()\n }\n }\n }\n\n if(event.detail.action === 'return') { \n const leftMenuItems = this.getMobileMenuTop()\n for(let i = 0; i < leftMenuItems.length; i++) { \n if(!leftMenuItems[i].isSameNode(event.detail.component)) {\n leftMenuItems[i].showComponent()\n }\n }\n }\n }\n\n getWrappers() {\n const rightContentNavigationGroup = this.el.shadowRoot.querySelector('.navbar__container-right-content-navigation-group')\n const searchBarRightWrapper = this.el.shadowRoot.querySelector('.navbar__container-right-content-navigation-item-search-bar-icon-wrapper')\n const searchBarLeftWrapper = this.el.shadowRoot.querySelector('.navbar__container-left-content-navigation-item-search-bar')\n const rightSideItemSlot = rightContentNavigationGroup.querySelector('slot[name=\"right-item\"]');\n const rightSideSlot = searchBarRightWrapper.querySelector('slot');\n const leftSideSlot = searchBarLeftWrapper.querySelector('slot');\n const rightAssignedNodes = rightSideSlot.assignedNodes();\n const leftAssignedNodes = leftSideSlot.assignedNodes();\n const navbarProfile = this.el.querySelector('ifx-navbar-profile');\n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]');\n const rightMenuItems = this.el.querySelectorAll('[slot=\"right-item\"]');\n const topRowWrapper = this.el.shadowRoot.querySelector('.navbar__sidebar-top-row-wrapper')\n \n return {rightSideItemSlot, rightSideSlot, leftSideSlot, rightAssignedNodes, leftAssignedNodes, navbarProfile, leftMenuItems, rightMenuItems, topRowWrapper};\n }\n\n hideNavItems() {\n const { rightAssignedNodes, leftAssignedNodes, navbarProfile, leftMenuItems, rightMenuItems, topRowWrapper } = this.getWrappers();\n \n if(rightAssignedNodes.length !== 0) { \n this.searchBarIsOpen = 'right'\n } else if(leftAssignedNodes.length !== 0) {\n this.searchBarIsOpen = 'left'\n }\n\n if(navbarProfile) { \n navbarProfile.hideComponent()\n }\n \n for(let l = 0; l < leftMenuItems.length; l++) { \n if(!topRowWrapper.classList.contains('expand')) {\n leftMenuItems[l].hideComponent()\n }\n }\n \n for(let r = 0; r < rightMenuItems.length; r++) { \n if(topRowWrapper.classList.contains('expand')) {\n if(!rightMenuItems[r].hideOnMobile) { \n rightMenuItems[r].hideComponent()\n }\n } else { \n rightMenuItems[r].hideComponent()\n }\n }\n }\n\n showNavItems() {\n const { navbarProfile, leftMenuItems, rightMenuItems, topRowWrapper } = this.getWrappers();\n this.searchBarIsOpen = undefined;\n \n if(navbarProfile) {\n navbarProfile.showComponent()\n }\n \n for(let l = 0; l < leftMenuItems.length; l++) { \n if(!topRowWrapper.classList.contains('expand')) {\n leftMenuItems[l].showComponent()\n }\n }\n \n for(let r = 0; r < rightMenuItems.length; r++) { \n if(topRowWrapper.classList.contains('expand')) {\n if(!rightMenuItems[r].hideOnMobile) { \n rightMenuItems[r].showComponent()\n }\n } else { \n rightMenuItems[r].showComponent()\n }\n }\n }\n \n \n @Listen('ifxOpen')\n handleSearchBarToggle(event: CustomEvent) {\n \n if(event.detail) { \n this.hideNavItems();\n } else if(!event.detail) {\n this.showNavItems();\n }\n }\n\n toggleClass(el, className) {\n el.classList.toggle(className)\n }\n\n handleSidebar(el) {\n const sidebarIconWrapper = el.currentTarget.closest('.navbar__burger-icon-wrapper');\n const sidebarIconOpen = sidebarIconWrapper.querySelector('.navbar__burger-icon')\n const sidebarIconClose = sidebarIconWrapper.querySelector('.navbar__cross-icon')\n const mainContainer = el.currentTarget.closest('.navbar__main-container');\n const navbarWrapper = el.currentTarget.closest('.navbar__wrapper')\n const sidebarWrapper = navbarWrapper.querySelector('.navbar__sidebar');\n this.toggleClass(navbarWrapper, 'show')\n this.toggleClass(mainContainer, 'show')\n this.toggleClass(sidebarWrapper, 'show')\n this.toggleClass(sidebarIconOpen, 'close')\n this.toggleClass(sidebarIconClose, 'show')\n\n if(sidebarIconClose.classList.contains('show')) { \n this.handleBodyScroll('hide')\n } else { \n this.handleBodyScroll('show')\n }\n }\n\n handleBodyScroll(action) { \n const body = this.el.closest('body')\n if(!this.fixed && action === 'hide') { \n body.style.overflow = 'hidden'\n } else if(action === 'show') { \n body.style.overflow = 'visible'\n }\n }\n\n handleDropdownMenu(el) {\n const dropdownWrapper = el.currentTarget.querySelector('.navbar__dropdown-wrapper')\n dropdownWrapper.classList.toggle('open')\n const iconWrapper = el.currentTarget.querySelector('a')\n iconWrapper.classList.toggle('open')\n }\n\n async setItemMenuPosition() { \n const navbarItems = this.el.querySelectorAll('ifx-navbar-item')\n const navbarProfile = this.el.querySelector('ifx-navbar-profile')\n\n if(navbarProfile) {\n const itemChildren = navbarProfile.querySelectorAll('ifx-navbar-item')\n if (itemChildren.length !== 0) {\n itemChildren.forEach(item => { \n item.setMenuItemPosition()\n this.setMenuItemChildrenPosition(item)\n })\n }\n }\n \n if(navbarItems.length !== 0) { \n for(let i = 0; i < navbarItems.length; i++) { \n const item = navbarItems[i];\n const itemChildren = item.querySelectorAll('ifx-navbar-item')\n if (itemChildren.length !== 0) {\n const hasNestedItems = await item.setItemSideSpecifications()\n if(hasNestedItems) { \n itemChildren.forEach(item => { \n item.setMenuItemPosition()\n this.setMenuItemChildrenPosition(item)\n })\n }\n }\n }\n }\n }\n\n setMenuItemChildrenPosition(item) {\n const itemChildren = item.querySelectorAll('ifx-navbar-item');\n if (itemChildren.length !== 0) {\n itemChildren.forEach(subItem => { \n subItem.setMenuItemPosition()\n this.setMenuItemChildrenPosition(subItem)\n })\n }\n }\n\n getMediaQueryList() { \n const mediaQueryList = window.matchMedia('(max-width: 800px)');\n return mediaQueryList;\n }\n\n componentDidLoad() {\n this.setItemMenuPosition()\n this.addEventListenersToHandleCustomFocusState();\n \n const mediaQueryList = this.getMediaQueryList()\n\n if (mediaQueryList.matches) {\n this.moveNavItemsToSidebar();\n }\n\n }\n\n handleMobileMenuBottom(e) { \n const mobileMenuBottomWrapper = this.el.shadowRoot.querySelector('.navbar__sidebar-bottom-row')\n const slotElement = e.target;\n const nodes = slotElement.assignedNodes();\n if(nodes.length > 0) { \n mobileMenuBottomWrapper.classList.add('show')\n } else { \n mobileMenuBottomWrapper.classList.remove('show')\n }\n }\n\n handleLogoHrefAndTarget(){\n if(this.logoHref.trim() === \"\") {\n this.internalLogoHref = undefined;\n }else{\n this.internalLogoHref = this.logoHref;\n }\n\n if(['_self', '_blank', '_parent'].includes(this.logoHrefTarget.trim())){\n this.internalLogoHrefTarget = this.logoHrefTarget;\n }else{\n this.internalLogoHrefTarget = '_self';\n }\n }\n\n \n componentWillLoad() {\n this.RemoveSpaceOnStorybookSnippet()\n const dropdownMenu = this.el.querySelector('ifx-navbar-menu')\n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]')\n if (!leftMenuItems.length && !dropdownMenu) {\n this.hasLeftMenuItems = false;\n }\n this.handleLogoHrefAndTarget();\n\n const mediaQueryList = window.matchMedia('(max-width: 800px)');\n mediaQueryList.addEventListener('change', (e) => this.moveNavItemsToSidebar(e));\n }\n\n \n\n getSearchBarLeftWrapper() { \n const searchBarLeftWrapper = this.el.shadowRoot.querySelector('.navbar__container-left-content-navigation-item-search-bar')\n return searchBarLeftWrapper;\n }\n\n getMobileMenuTop() { \n const leftMenuItems = this.el.querySelectorAll('[slot=\"mobile-menu-top\"]');\n return leftMenuItems;\n }\n\n getMobileMenuBottom() { \n const rightMenuItems = this.el.querySelectorAll('[slot=\"mobile-menu-bottom\"]');\n return rightMenuItems;\n }\n\n handleBurgerIcon() { \n const leftMenuItems = this.getMobileMenuTop()\n const rightMenuItems = this.getMobileMenuBottom()\n if(!leftMenuItems.length && !rightMenuItems.length) { \n const burgerIconWrapper = this.el.shadowRoot.querySelector('.navbar__burger-icon-wrapper')\n this.toggleClass(burgerIconWrapper, 'hide')\n }\n }\n \n moveNavItemsToSidebar(e?: MediaQueryListEvent) {\n const topRowWrapper = this.el.shadowRoot.querySelector('.navbar__sidebar-top-row-wrapper')\n const mediaQueryList = this.getMediaQueryList();\n const matches = e ? e.matches : mediaQueryList.matches;\n \n if (matches) {\n /* The viewport is 800px wide or less */\n topRowWrapper.classList.add('expand')\n \n //hide body scroll if sidebar was opened\n const crossIcon = this.el.shadowRoot.querySelector('.navbar__cross-icon')\n if(crossIcon.classList.contains('show')) { \n this.handleBodyScroll('hide')\n }\n \n //move search bar to right-side\n const searchBarLeft = this.el.querySelector('[slot=\"search-bar-left\"]')\n if(searchBarLeft) { \n if(this.searchBarIsOpen) { \n searchBarLeft.onNavbarMobile()\n }\n const searchBarLeftWrapper = this.getSearchBarLeftWrapper()\n searchBarLeftWrapper.classList.add('initial')\n searchBarLeft.setAttribute('slot', 'search-bar-right')\n }\n \n //left-side\n const leftMenuItems = this.el.querySelectorAll('[slot=\"left-item\"]')\n for(let i = 0; i < leftMenuItems.length; i++) { \n leftMenuItems[i].setAttribute('slot', 'mobile-menu-top')\n leftMenuItems[i].moveChildComponentsIntoSubLayerMenu()\n if(this.searchBarIsOpen) { \n leftMenuItems[i].showComponent()\n }\n }\n \n //right-side\n const rightMenuItems = this.el.querySelectorAll('[slot=\"right-item\"]')\n for(let i = 0; i < rightMenuItems.length; i++) { \n if(rightMenuItems[i].tagName.toUpperCase() === 'IFX-NAVBAR-PROFILE') { \n rightMenuItems[i].showLabel = false;\n } else { \n if(rightMenuItems[i].hideOnMobile) { \n rightMenuItems[i].setAttribute('slot', 'mobile-menu-bottom')\n \n rightMenuItems[i].toggleChildren('add')\n \n rightMenuItems[i].showLabel = true;\n if(this.searchBarIsOpen) { \n rightMenuItems[i].showComponent()\n }\n }\n }\n }\n \n this.handleBurgerIcon()\n\n } else {\n /* The viewport is more than 800px wide */\n topRowWrapper.classList.remove('expand')\n\n //show body scroll \n this.handleBodyScroll('show')\n\n //return search bar to its original position\n const searchBarLeftWrapper = this.getSearchBarLeftWrapper()\n const leftIsInitial = searchBarLeftWrapper.classList.contains('initial')\n const searchBarRight = this.el.querySelector('[slot=\"search-bar-right\"]')\n if(leftIsInitial) { \n if(this.searchBarIsOpen) { \n searchBarRight.onNavbarMobile()\n }\n if(searchBarRight) { \n searchBarRight.setAttribute('slot', 'search-bar-left')\n }\n }\n\n //left-side\n const leftMenuItems = this.getMobileMenuTop()\n for(let i = 0; i < leftMenuItems.length; i++) { \n leftMenuItems[i].setAttribute('slot', 'left-item')\n leftMenuItems[i].moveChildComponentsBackIntoNavbar()\n }\n\n //right-side\n const rightMenuItems = this.getMobileMenuBottom()\n const navbarProfileItem = this.el.querySelector('ifx-navbar-profile')\n if(navbarProfileItem) { \n const showProfileItemLabel = navbarProfileItem.getAttribute('show-label');\n navbarProfileItem.setAttribute('show-label', showProfileItemLabel)\n }\n\n for(let i = 0; i < rightMenuItems.length; i++) { \n rightMenuItems[i].setAttribute('slot', 'right-item')\n\n rightMenuItems[i].toggleChildren('remove')\n \n const showLabel = rightMenuItems[i].getAttribute('show-label');\n rightMenuItems[i].setAttribute('show-label', showLabel)\n if(this.searchBarIsOpen) { \n rightMenuItems[i].hideComponent()\n }\n }\n }\n }\n\n RemoveSpaceOnStorybookSnippet() { \n let parent = this.el.parentElement;\n if(parent) { \n let storybookWrapper = parent.closest('.css-xzp052');\n if(storybookWrapper) { \n storybookWrapper.style.overflow = 'visible'\n }\n }\n }\n\n\n \n render() {\n return (\n <div aria-label='a navigation navbar' class={`navbar__wrapper ${this.fixed ? 'fixed' : \"\"}`}>\n <div class={`navbar__main-container ${this.fixed ? 'fixed' : \"\"}`}>\n <div class={`navbar__container ${this.searchBarIsOpen ? \"expanded\" : \"\"}`}>\n <div class={`navbar__container-left ${this.searchBarIsOpen === 'left' ? \"expand\" : this.searchBarIsOpen === 'right' ? 'hide' : \"\"}`}>\n {this.showLogoAndAppname &&\n <div class={`navbar__container-left-logo ${this.searchBarIsOpen === 'left' ? 'hide' : \"\"}`}>\n <div class=\"navbar__container-left-logo-default\">\n <a href={this.internalLogoHref} target = {this.internalLogoHrefTarget}>\n <svg width=\"91\" height=\"40\" viewBox=\"0 0 91 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_2396_2480)\">\n <path d=\"M67.691 26.7766C71.0884 26.7766 72.1461 23.1841 72.1461 19.8802C72.1461 15.4536 70.2871 13.1441 67.691 13.1441C64.4219 13.1441 63.2681 16.7367 63.3001 19.9443C63.3322 23.1199 64.2296 26.7766 67.691 26.7766ZM66.0244 19.8481C66.0244 18.533 66.0244 15.4536 67.691 15.4536C69.4859 15.4536 69.4218 18.5009 69.4218 19.9123C69.4218 21.2595 69.4218 24.5313 67.7551 24.5313C65.9603 24.4992 66.0244 21.2274 66.0244 19.8481ZM57.8195 26.7766C59.1976 26.7766 60.3835 26.2313 61.5053 25.0445L60.5117 23.1841C59.7425 24.018 58.9733 24.4671 58.0438 24.4671C57.2746 24.4671 56.6336 24.018 56.249 23.2482C55.9285 22.5746 55.8644 21.8048 55.8644 20.9708V20.7142H61.6335V20.1368C61.6335 17.282 61.2809 15.7102 60.3835 14.5234C59.7104 13.6253 58.7169 13.1441 57.499 13.1441C56.2169 13.1441 55.1593 13.7215 54.39 14.8442C53.5567 16.0631 53.2042 17.699 53.2042 19.9443C53.1721 24.2426 54.8708 26.7766 57.8195 26.7766ZM57.531 15.2612C58.172 15.2612 58.5566 15.614 58.813 16.1914C59.0053 16.7046 59.1015 17.5707 59.1015 18.5971H55.8644C55.8964 16.3197 56.3772 15.2612 57.531 15.2612ZM74.2614 26.4559H76.7614V16.8329C77.3703 16.0952 78.0754 15.6782 78.5882 15.6782C78.9087 15.6782 79.2292 15.7423 79.4215 15.9989C79.6138 16.2876 79.71 16.7046 79.71 17.699V26.4559H82.21V16.5442C82.21 15.6782 82.1138 14.8121 81.601 14.1706C81.1523 13.5932 80.4472 13.2404 79.5497 13.2404C78.3959 13.2404 77.2101 13.914 76.569 14.6838C76.537 14.0102 76.3126 13.3687 76.2485 13.1441L73.9089 13.7536C74.0371 14.4593 74.2294 15.3253 74.2294 16.8971V26.4559H74.2614ZM45.2236 14.6838C45.1915 14.0102 44.9672 13.3687 44.9031 13.1441L42.5634 13.7536C42.6916 14.4593 42.8839 15.3253 42.8839 16.8971V26.4238H45.3838V16.8008C45.9928 16.0631 46.6979 15.6461 47.2107 15.6461C47.5312 15.6461 47.8517 15.7102 48.044 15.9669C48.2363 16.2555 48.3325 16.6725 48.3325 17.6669V26.4238H50.8324V16.5442C50.8324 15.6782 50.7363 14.8121 50.2235 14.1706C49.7748 13.5932 49.0696 13.2404 48.1722 13.2404C47.0505 13.2404 45.8646 13.914 45.2236 14.6838ZM14.6473 9.07042C16.1216 9.07042 17.3075 7.88359 17.3075 6.40807C17.3075 4.93256 16.1216 3.74573 14.6473 3.74573C13.173 3.74573 11.9871 4.93256 11.9871 6.40807C11.9871 7.88359 13.173 9.07042 14.6473 9.07042ZM26.9227 26.4559V16.5442C26.9227 15.6782 26.8265 14.8121 26.3137 14.1706C25.865 13.5932 25.1599 13.2404 24.2625 13.2404C23.1087 13.2404 21.9228 13.914 21.2818 14.6838C21.2497 14.0102 21.0254 13.3687 20.9613 13.1441L18.6536 13.7857C18.7818 14.4913 18.9741 15.3574 18.9741 16.9291V26.4559H21.4741V16.8329C22.0831 16.0952 22.7882 15.6782 23.301 15.6782C23.6215 15.6782 23.942 15.7423 24.1343 15.9989C24.3266 16.2876 24.4227 16.7046 24.4227 17.699V26.4559H26.9227ZM38.4289 8.36474C37.4994 8.36474 36.7622 9.10249 36.7622 10.0327C36.7622 10.9629 37.4994 11.7007 38.3968 11.7007C39.3263 11.7007 40.0634 10.9629 40.0634 10.0327C40.0634 9.10249 39.3263 8.36474 38.4289 8.36474ZM13.4614 26.4559H15.9614V10.8346L13.4614 11.1554V26.4559ZM33.8777 9.90441C34.3264 9.90441 34.7751 10.0648 35.0635 10.2893L35.7687 8.33266C35.0956 7.85151 34.3584 7.62698 33.429 7.62698C32.788 7.62698 32.1149 7.78736 31.5059 8.26851C30.897 8.78173 30.256 9.80818 30.256 11.7328C30.256 12.5667 30.288 13.4328 30.288 13.4328H29.4226V15.6461H30.288V26.4238H32.8521V15.6782H34.743L35.2238 13.4649H32.8841V11.4762C32.8841 10.5139 33.2687 9.90441 33.8777 9.90441ZM37.1468 26.4559H39.6788V13.2404L37.1468 13.5611V26.4559Z\" fill=\"#005DA9\" />\n <path d=\"M77.0816 33.5126C68.6203 36.0146 58.3321 37.1052 48.2682 37.1052C22.7239 37.1052 6.24986 29.5993 5.09604 19.6877C4.67938 15.9668 7.59599 12.3422 12.4677 9.26285C11.6023 8.62132 11.0575 7.59488 11.0254 6.44012C3.97427 10.161 0 15.0366 0 19.9764C0 30.9145 19.5188 40.1525 48.5246 39.7676C58.6205 39.6393 67.0498 38.1958 74.6778 35.6939C83.7482 32.7428 89.4532 28.5087 90.8313 26.6483C89.1968 28.1238 85.3186 31.0748 77.0816 33.5126ZM23.2687 4.38723C24.9674 3.80985 27.3712 3.0721 27.3712 3.0721C34.1339 1.21166 41.6017 0.121063 48.5566 0.185215C40.544 -0.295931 33.2365 0.185215 26.8584 1.33997C26.8584 1.33997 24.743 1.69281 22.4675 2.27018C22.4675 2.27018 21.3777 2.55887 20.7047 2.75133C20.0316 2.94379 19.1021 3.2004 19.1021 3.2004C18.4611 3.39286 17.8201 3.6174 17.1791 3.84193C17.8201 4.48346 18.2047 5.31745 18.2368 6.27974C19.3586 5.76652 21.5059 4.99668 23.2687 4.38723Z\" fill=\"#E30034\" />\n </g>\n <defs>\n <clipPath id=\"clip0_2396_2480\">\n <rect width=\"91\" height=\"40\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n </a>\n </div>\n {this.applicationName && <h6>{this.applicationName}</h6>}\n {this.applicationName && this.hasLeftMenuItems &&\n <div class=\"navbar__container-left-logo-divider\"></div>}\n </div>}\n <div class=\"navbar__container-left-content\">\n <div class=\"navbar__container-left-content-navigation-group\">\n <slot name='left-item' />\n <div class=\"navbar__container-left-content-navigation-item-search-bar\">\n <slot name='search-bar-left' />\n </div>\n </div>\n </div>\n </div>\n <div class={`navbar__container-right ${this.searchBarIsOpen === 'right' ? \"expand\" : this.searchBarIsOpen === 'left' ? 'hide' : \"\"}`}>\n <div class=\"navbar__container-right-content\">\n <div class=\"navbar__container-right-content-navigation-group\">\n <div class=\"navbar__container-right-content-navigation-item-search-bar\">\n <div class={`navbar__container-right-content-navigation-item-search-bar-icon-wrapper`}>\n <slot name='search-bar-right' />\n </div>\n </div>\n <slot name='right-item' />\n </div>\n </div>\n\n {/* MOBILE MENU BUTTON */}\n <div class={`navbar__burger-icon-wrapper`} onClick={this.handleSidebar.bind(this)}>\n <div class=\"navbar__burger-icon\">\n <ifx-icon icon=\"menu-right-24\"></ifx-icon>\n </div>\n <div class=\"navbar__cross-icon\">\n <ifx-icon icon=\"cross-24\"></ifx-icon>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* SIDEBAR */}\n <div class=\"navbar__sidebar\">\n {/* left side ifx-navbar-item */}\n <div class=\"navbar__sidebar-top-row\">\n <div class=\"navbar__sidebar-top-row-wrapper\">\n <slot name='mobile-menu-top' />\n </div>\n </div>\n\n {/* right side ifx-navbar-item */}\n <div class=\"navbar__sidebar-bottom-row\">\n <slot name='mobile-menu-bottom' onSlotchange={(e) => this.handleMobileMenuBottom(e)} />\n </div>\n \n </div>\n </div>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as i,h as e,g as s}from"./p-e6edf72d.js";const n=':root{font-family:"Source Sans 3", sans-serif}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:"Source Sans 3"}.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-clear-button.hide{display:none}.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:1000}.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 l(t,i){let e;return function s(...n){const o=()=>{clearTimeout(e);t(...n)};clearTimeout(e);e=setTimeout(o,i)}}const r=class{constructor(e){t(this,e);this.ifxSelect=i(this,"ifxSelect",7);this.ifxOpen=i(this,"ifxOpen",7);if(e.$hostElement$["s-ei"]){this.internals=e.$hostElement$["s-ei"]}else{this.internals=e.$hostElement$.attachInternals();e.$hostElement$["s-ei"]=this.internals}this.batchSize=50;this.size="medium (40px)";this.disabled=false;this.error=false;this.internalError=false;this.errorMessage="Error";this.label="";this.persistentSelectedOptions=[];this.placeholder="";this.dropdownOpen=false;this.currentIndex=0;this.isLoading=false;this.loadedOptions=[];this.filteredOptions=[];this.showSearch=true;this.showSelectAll=true;this.showClearButton=true;this.optionCount=0;this.optionsProcessed=false;this.handleSearch=l((t=>{const i=t.value.toLowerCase();if(i===""){this.filteredOptions=this.loadedOptions}else{this.filteredOptions=this.loadedOptions.filter((t=>{const e=t.label.toLowerCase().includes(i);if(t.children){const s=t.children.some((t=>t.label.toLowerCase().includes(i)));return e||s}return e}))}}),300);this.handleDocumentClick=t=>{const i=t.composedPath();if(!i.includes(this.dropdownElement)){this.dropdownOpen=false;document.removeEventListener("click",this.handleDocumentClick);this.filteredOptions=this.loadedOptions;this.ifxOpen.emit(this.dropdownOpen)}}}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 i=t.target;const e=Math.floor((i.scrollHeight-i.clientHeight)/2);if(i.scrollTop>=e){this.fetchMoreOptions()}}async fetchOptions(t,i){let e=[];if(typeof this.options==="string"){try{e=JSON.parse(this.options)}catch(t){console.error("Failed to parse options:",t)}}else if(Array.isArray(this.options)){e=this.options}else{console.error("Unexpected value for options:",this.options)}if(!this.optionsProcessed){this.optionCount=this.countOptions(e);const t=this.collectSelectedOptions(e);const i=t.filter((t=>!this.persistentSelectedOptions.some((i=>i.value==t.value))));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...i];this.optionsProcessed=true}const s=e.slice(t,t+i);return s}collectSelectedOptions(t){let i=[];for(const e of t){if(e.selected){if(e.children&&e.children.length>0){i=i.concat(this.collectLeafOptions(e.children))}else{if(!i.some((t=>t.value===e.value))){i.push(e)}}}else{if(e.children&&e.children.length>0){i=i.concat(this.collectSelectedOptions(e.children))}}}return i}collectLeafOptions(t){let i=[];for(const e of t){if(e.children&&e.children.length>0){i=i.concat(this.collectLeafOptions(e.children))}else{i.push(e)}}return i}countOptions(t){let i=0;for(const e of t){if(e.children&&e.children.length>=0){i+=this.countOptions(e.children)}else{i++}}return i}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,i){const e=new FormData;t.forEach((t=>e.append(this.name,t.value)));this.internals.setFormValue(e)}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 i=t.children?t.children.length:1;return this.maxItemCount&&this.persistentSelectedOptions.length+i>this.maxItemCount&&!this.persistentSelectedOptions.some((i=>i.value===t.value))}updateSelection(t){const i=this.persistentSelectedOptions.some((i=>i.value===t.value));if(t.children&&t.children.length>0){this.handleParentOptionClick(t)}else{this.handleChildOptionClick(t,i)}}async selectAll(){const t=await this.fetchOptions(0,this.optionCount);this.selectAllRecursive(t);this.ifxSelect.emit(this.persistentSelectedOptions)}selectAllRecursive(t){for(const i of t){if(i.children&&i.children.length>0){this.selectAllRecursive(i.children)}else{if(!this.persistentSelectedOptions.some((t=>t.value===i.value))){i.selected=true;this.persistentSelectedOptions=[...this.persistentSelectedOptions,i];this.optionCount=this.countOptions(this.persistentSelectedOptions)}}}}handleParentOptionClick(t){const i=t.children.every((t=>this.persistentSelectedOptions.some((i=>i.value===t.value))));if(i){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((i=>!t.children.some((t=>t.value===i.value))))];t.selected=false;t.children.forEach((t=>{t.selected=false}))}else{const i=[...t.children.filter((t=>!this.persistentSelectedOptions.some((i=>i.value===t.value))))];t.selected=true;t.children.forEach((t=>{t.selected=true}));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...i]}}handleChildOptionClick(t,i){if(i){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((i=>i.value!==t.value))];t.selected=false}else{this.persistentSelectedOptions=[...this.persistentSelectedOptions,t];t.selected=true}this.updateParentSelectedState()}updateParentSelectedState(){this.loadedOptions.forEach((t=>{var i;if(((i=t.children)===null||i===void 0?void 0:i.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.ifxOpen.emit(this.dropdownOpen)}),0)}waitForElement(t,i,e=50){let s=0;function n(){requestAnimationFrame((()=>{const o=t();if(o.length>0||s>e){i(o)}else{s++;n()}}))}n()}handleKeyDown(t){if(this.disabled)return;const i=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(i);if(this.dropdownOpen){this.updateHighlightedOption(i)}break;case"ArrowUp":this.handleArrowUp(i);if(this.dropdownOpen){this.updateHighlightedOption(i)}break}}handleWrapperClick(t){this.positionDropdown();if(t.currentTarget===t.target){this.toggleDropdown()}}clearSelection(){this.persistentSelectedOptions=[];this.ifxSelect.emit(this.persistentSelectedOptions)}positionDropdown(){var t;const i=(t=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper"))===null||t===void 0?void 0:t.getBoundingClientRect();const e=window.innerHeight-i.bottom;const s=i.top;if(s>e&&i.height>e||i.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,i){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){this.handleOptionClick(i)}}renderOption(t,i){var s;const n=this.isOptionIndeterminate(t);const o=t.children?n||this.isOptionSelected(t):this.persistentSelectedOptions.some((i=>i.value===t.value));const l=!o&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const r=`checkbox-${t.value}-${i}`;return e("div",{class:"option-wrapper"},e("div",{class:`option ${o?"selected":""} ${l?"disabled":""} \n ${this.getSizeClass()}`,"data-value":t.value,onKeyDown:i=>!l&&this.handleOptionKeyDown(i,t),onClick:()=>!l&&this.handleOptionClick(t),tabindex:"0",role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"treeitem":"option"}`},e("ifx-checkbox",{tabIndex:-1,ref:i=>t.checkboxRef=i,id:r,size:"s",checked:n?false:o,indeterminate:n,disabled:l}),e("label",{htmlFor:r,onClick:t=>t.stopPropagation()},t.label)),t.children&&t.children.map(((t,e)=>this.renderSubOption(t,`${i}-${e}`))))}isOptionSelected(t){if(!t.children)return false;return t.children.every((t=>this.persistentSelectedOptions.some((i=>i.value===t.value))))}isOptionIndeterminate(t){if(!t.children)return false;const i=t.children.filter((t=>this.persistentSelectedOptions.some((i=>i.value===t.value)))).length;return i>0&&i<t.children.length}findInOptions(t,i){for(const e of t){if(e.value===i){return e}if(e.children){const t=this.findInOptions(e.children,i);if(t){return t}}}return null}renderSubOption(t,i){var s;const n=this.persistentSelectedOptions.some((i=>i.value===t.value));const o=!n&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const l=`checkbox-${t.value}-${i}`;return e("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:i=>!o&&this.handleOptionKeyDown(i,t),onClick:()=>!o&&this.handleOptionClick(t),tabindex:"0"},e("ifx-checkbox",{tabIndex:-1,ref:i=>t.checkboxRef=i,id:l,size:"s",checked:n,disabled:o}),e("label",{htmlFor:l,onClick:t=>t.stopPropagation()},t.label))}renderSelectAll(){const t=this.persistentSelectedOptions.length===this.optionCount;const i=this.persistentSelectedOptions.length===0;const s=this.optionCount>0&&!i&&!t;const n=this;function o(){if(t){n.clearSelection()}else{n.selectAll()}}function l(t){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){o()}}return e("div",{class:"select-all-wrapper"},e("div",{class:`option ${this.getSizeClass()}`,tabindex:"0",onKeyDown:t=>l(t),onClick:o},e("ifx-checkbox",{tabIndex:-1,id:"selectAll",checked:t,indeterminate:s,size:"s"}),e("label",{htmlFor:"selectAll"},"Select all")),e("ifx-dropdown-separator",null))}render(){const t=this.persistentSelectedOptions.filter((t=>{const i=this.persistentSelectedOptions.some((i=>i.children&&i.children.some((i=>i.value===t.value))&&i.selected));return!i})).map((t=>t.label)).join(", ");return e("div",{class:`ifx-multiselect-container`,ref:t=>this.dropdownElement=t},this.label?e("div",{class:"ifx-label-wrapper"},e("span",null,this.label)):null,e("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)},e("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&&e("div",{class:"ifx-multiselect-dropdown-menu",onScroll:t=>this.handleScroll(t)},this.showSearch&&e("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,i)=>this.renderOption(t,i))),this.isLoading&&e("div",null,"Loading more options...")),e("div",{class:"ifx-multiselect-icon-container"},this.persistentSelectedOptions.length>0&&e("div",{class:`ifx-clear-button ${!this.showClearButton?"hide":""}`,onClick:this.disabled?undefined:()=>this.clearSelection()},e("ifx-icon",{icon:"cremove16"})),e("div",{class:"icon-wrapper-up",onClick:this.disabled?undefined:()=>this.toggleDropdown()},e("ifx-icon",{key:"icon-up",icon:"chevronup-16"})),e("div",{class:"icon-wrapper-down",onClick:this.disabled?undefined:()=>this.toggleDropdown()},e("ifx-icon",{key:"icon-down",icon:"chevron-down-16"})))),this.internalError?e("div",{class:"ifx-error-message-wrapper"},e("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"]}}};r.globalZIndex=1e3;r.style=o;export{r as ifx_multiselect};
2
+ //# sourceMappingURL=p-0a69604b.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","batchSize","size","disabled","error","internalError","errorMessage","label","persistentSelectedOptions","placeholder","dropdownOpen","currentIndex","isLoading","loadedOptions","filteredOptions","showSearch","showSelectAll","showClearButton","optionCount","optionsProcessed","handleSearch","targetElement","searchTerm","value","toLowerCase","filter","option","matchesSearchTerm","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","document","removeEventListener","ifxOpen","emit","updateOptions","loadInitialOptions","internalErrorMessage","fetchOptions","fetchMoreOptions","moreOptions","length","handleScroll","element","target","halfwayPoint","Math","floor","scrollHeight","clientHeight","scrollTop","startIndex","count","allOptions","options","JSON","parse","err","console","Array","isArray","countOptions","initiallySelected","collectSelectedOptions","initallySelectedNotInState","init","opt","slicedOptions","slice","selectedOptions","selected","concat","collectLeafOptions","existingOption","push","leafOptions","componentDidLoad","positionDropdown","componentWillLoad","updateInternalError","updateInternalErrorMessage","loadedOptionsChanged","onSelectionChange","newValue","_","formData","FormData","forEach","append","name","internals","setFormValue","handleOptionClick","isSelectionLimitReached","checkboxRef","toggleCheckedState","updateSelection","ifxSelect","newOptionsLength","maxItemCount","selectedOption","wasSelected","handleParentOptionClick","handleChildOptionClick","selectAll","selectAllRecursive","allChildrenSelected","every","newChildren","childOption","updateParentSelectedState","_a","isOptionIndeterminate","indeterminate","getSizeClass","toggleDropdown","addEventListener","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","querySelectorAll","code","updateHighlightedOption","handleArrowDown","handleArrowUp","handleWrapperClick","currentTarget","clearSelection","wrapperRect","el","shadowRoot","querySelector","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","top","height","dropdownFlipped","classList","remove","add","focus","handleOptionKeyDown","e","key","stopPropagation","renderOption","index","isIndeterminate","isSelected","isOptionSelected","disableCheckbox","uniqueId","h","class","onKeyDown","onClick","tabindex","role","tabIndex","ref","id","checked","htmlFor","map","childIndex","renderSubOption","persistentOption","selectedChildren","findInOptions","foundInChildren","renderSelectAll","allSelected","noneSelected","that","toggleSelectAll","handleSelectAllKeydown","render","selectedOptionsLabels","isChildSelectedWithParent","parentOption","join","undefined","onScroll","type","onInput","icon","globalZIndex"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: tokens.$ifxFontFamilyBody;\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-error-message-wrapper {\n color: #CD002F;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-multiselect-wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%;\n font-weight: 400;\n font-style: normal;\n\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid tokens.$ifxColorOcean500;\n border-radius: 2px;\n\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering200;\n color: #575352;\n border-color: #575352;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n &.error {\n border-color: #CD002F;\n }\n\n &:hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .icon-wrapper-down {\n display: none\n }\n }\n\n\n & .icon-wrapper-up {\n display: none;\n }\n\n & .icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n &.is-flipped {\n .ifx-multiselect-dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n\n .ifx-multiselect-input {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.placeholder {\n opacity: 0.5;\n }\n\n }\n\n\n .ifx-multiselect-icon-container {\n margin-left: auto;\n align-items: center;\n display: flex;\n }\n\n .ifx-clear-button {\n display: flex;\n &.hide { \n display: none;\n }\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: 1000; \n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { Option } from './interfaces';\n\n// Debounce function\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n};\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n static globalZIndex = 1000; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\n */\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n \n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n // if parent is selected, then select all child options\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\n */\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n \n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n } \n return leafOptions;\n }\n\n /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => {\n const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);\n if (option.children) {\n const childrenMatch = option.children.some(child => {\n return child.label.toLowerCase().includes(searchTerm);\n });\n return matchesSearchTerm || childrenMatch;\n }\n return matchesSearchTerm;\n });\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n this.optionCount = this.countOptions( this.persistentSelectedOptions)\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\n\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.filteredOptions = this.loadedOptions;\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // If there's more space above than below the trigger and the dropdown doesn't fit below\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n \n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input \n ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</div>}\n </div>\n )}\n <div class='ifx-multiselect-icon-container'>\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && ( \n <div class={`ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`} onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cremove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevronup-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","batchSize","size","disabled","error","internalError","errorMessage","label","persistentSelectedOptions","placeholder","dropdownOpen","currentIndex","isLoading","loadedOptions","filteredOptions","showSearch","showSelectAll","showClearButton","optionCount","optionsProcessed","handleSearch","targetElement","searchTerm","value","toLowerCase","filter","option","matchesSearchTerm","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","document","removeEventListener","ifxOpen","emit","updateOptions","loadInitialOptions","internalErrorMessage","fetchOptions","fetchMoreOptions","moreOptions","length","handleScroll","element","target","halfwayPoint","Math","floor","scrollHeight","clientHeight","scrollTop","startIndex","count","allOptions","options","JSON","parse","err","console","Array","isArray","countOptions","initiallySelected","collectSelectedOptions","initallySelectedNotInState","init","opt","slicedOptions","slice","selectedOptions","selected","concat","collectLeafOptions","existingOption","push","leafOptions","componentDidLoad","positionDropdown","componentWillLoad","updateInternalError","updateInternalErrorMessage","loadedOptionsChanged","onSelectionChange","newValue","_","formData","FormData","forEach","append","name","internals","setFormValue","handleOptionClick","isSelectionLimitReached","checkboxRef","toggleCheckedState","updateSelection","ifxSelect","newOptionsLength","maxItemCount","selectedOption","wasSelected","handleParentOptionClick","handleChildOptionClick","selectAll","selectAllRecursive","allChildrenSelected","every","newChildren","childOption","updateParentSelectedState","_a","isOptionIndeterminate","indeterminate","getSizeClass","toggleDropdown","addEventListener","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","querySelectorAll","code","updateHighlightedOption","handleArrowDown","handleArrowUp","handleWrapperClick","currentTarget","clearSelection","wrapperRect","el","shadowRoot","querySelector","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","top","height","dropdownFlipped","classList","remove","add","focus","handleOptionKeyDown","e","key","stopPropagation","renderOption","index","isIndeterminate","isSelected","isOptionSelected","disableCheckbox","uniqueId","h","class","onKeyDown","onClick","tabindex","role","tabIndex","ref","id","checked","htmlFor","map","childIndex","renderSubOption","persistentOption","selectedChildren","findInOptions","foundInChildren","renderSelectAll","allSelected","noneSelected","that","toggleSelectAll","handleSelectAllKeydown","render","selectedOptionsLabels","isChildSelectedWithParent","parentOption","join","undefined","onScroll","type","onInput","icon","globalZIndex"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: tokens.$ifxFontFamilyBody;\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-error-message-wrapper {\n color: #CD002F;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-multiselect-wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%;\n font-weight: 400;\n font-style: normal;\n\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid tokens.$ifxColorOcean500;\n border-radius: 2px;\n\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering200;\n color: #575352;\n border-color: #575352;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n &.error {\n border-color: #CD002F;\n }\n\n &:hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .icon-wrapper-down {\n display: none\n }\n }\n\n\n & .icon-wrapper-up {\n display: none;\n }\n\n & .icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n &.is-flipped {\n .ifx-multiselect-dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n\n .ifx-multiselect-input {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.placeholder {\n opacity: 0.5;\n }\n\n }\n\n\n .ifx-multiselect-icon-container {\n margin-left: auto;\n align-items: center;\n display: flex;\n }\n\n .ifx-clear-button {\n display: flex;\n &.hide { \n display: none;\n }\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: 1000; \n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { Option } from './interfaces';\n\n// Debounce function\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n};\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n static globalZIndex = 1000; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\n */\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n \n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n // if parent is selected, then select all child options\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\n */\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n \n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n } \n return leafOptions;\n }\n\n /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => {\n const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);\n if (option.children) {\n const childrenMatch = option.children.some(child => {\n return child.label.toLowerCase().includes(searchTerm);\n });\n return matchesSearchTerm || childrenMatch;\n }\n return matchesSearchTerm;\n });\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n this.optionCount = this.countOptions( this.persistentSelectedOptions)\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\n\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.filteredOptions = this.loadedOptions;\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // If there's more space above than below the trigger and the dropdown doesn't fit below\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n \n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input \n ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</div>}\n </div>\n )}\n <div class='ifx-multiselect-icon-container'>\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && ( \n <div class={`ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`} onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cremove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevronup-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n\n}\n"],"mappings":"yDAAA,MAAMA,EAAiB,09IACvB,MAAAC,EAAeD,ECGf,SAASE,EAASC,EAAMC,GACtB,IAAIC,EACJ,OAAO,SAASC,KAAoBC,GAClC,MAAMC,EAAQ,KACZC,aAAaJ,GACbF,KAAQI,EAAK,EAEfE,aAAaJ,GACbA,EAAUK,WAAWF,EAAOJ,E,CAEhC,C,MAWaO,EAAW,MATxB,WAAAC,CAAAC,G,gPAaUC,KAAAC,UAAoB,GACpBD,KAAAE,KAAe,gBACfF,KAAAG,SAAoB,MACpBH,KAAAI,MAAiB,MAChBJ,KAAAK,cAAyB,MAC1BL,KAAAM,aAAuB,QAEvBN,KAAAO,MAAgB,GACdP,KAAAQ,0BAAsC,GACxCR,KAAAS,YAAsB,GACrBT,KAAAU,aAAe,MAIhBV,KAAAW,aAAuB,EACtBX,KAAAY,UAAqB,MACrBZ,KAAAa,cAA0B,GAC1Bb,KAAAc,gBAA4B,GAC7Bd,KAAAe,WAAsB,KACtBf,KAAAgB,cAAyB,KACzBhB,KAAAiB,gBAA2B,KAC1BjB,KAAAkB,YAAsB,EACtBlB,KAAAmB,iBAA4B,MAmJrCnB,KAAAoB,aAAehC,GAAUiC,IACvB,MAAMC,EAAaD,EAAcE,MAAMC,cACvC,GAAIF,IAAe,GAAI,CACrBtB,KAAKc,gBAAkBd,KAAKa,a,KACvB,CACLb,KAAKc,gBAAkBd,KAAKa,cAAcY,QAAOC,IAC/C,MAAMC,EAAoBD,EAAOnB,MAAMiB,cAAcI,SAASN,GAC9D,GAAII,EAAOG,SAAU,CACnB,MAAMC,EAAgBJ,EAAOG,SAASE,MAAKC,GAClCA,EAAMzB,MAAMiB,cAAcI,SAASN,KAE5C,OAAOK,GAAqBG,C,CAE9B,OAAOH,CAAiB,G,IAG3B,KAkJH3B,KAAAiC,oBAAuBC,IACrB,MAAMC,EAAOD,EAAME,eACnB,IAAKD,EAAKP,SAAS5B,KAAKqC,iBAAkB,CACxCrC,KAAKU,aAAe,MACpB4B,SAASC,oBAAoB,QAASvC,KAAKiC,qBAC3CjC,KAAKc,gBAAkBd,KAAKa,cAE5Bb,KAAKwC,QAAQC,KAAKzC,KAAKU,a,GA/S3B,aAAAgC,GACE1C,KAAKa,cAAgB,GACrBb,KAAKc,gBAAkB,GACvBd,KAAKkB,YAAc,EACnBlB,KAAKmB,iBAAmB,MACxBnB,KAAKQ,0BAA4B,GAEjCR,KAAK2C,oB,CAIP,wBAAMA,GACJ3C,KAAKY,UAAY,KACjBZ,KAAKK,cAAgBL,KAAKI,MAC1BJ,KAAK4C,qBAAuB5C,KAAKM,aAEjCN,KAAKa,oBAAsBb,KAAK6C,aAAa,EAAG7C,KAAKC,WACrDD,KAAKY,UAAY,K,CAGnB,sBAAMkC,GACJ9C,KAAKY,UAAY,KACjB,MAAMmC,QAAoB/C,KAAK6C,aAAa7C,KAAKa,cAAcmC,OAAQhD,KAAKC,WAC5ED,KAAKa,cAAgB,IAAIb,KAAKa,iBAAkBkC,GAChD/C,KAAKY,UAAY,K,CAInB,YAAAqC,CAAaf,GACX,MAAMgB,EAAUhB,EAAMiB,OACtB,MAAMC,EAAeC,KAAKC,OAAOJ,EAAQK,aAAeL,EAAQM,cAAgB,GAEhF,GAAIN,EAAQO,WAAaL,EAAc,CACrCpD,KAAK8C,kB,EAOT,kBAAMD,CAAaa,EAAoBC,GACrC,IAAIC,EAAuB,GAG3B,UAAW5D,KAAK6D,UAAY,SAAU,CACpC,IACED,EAAaE,KAAKC,MAAM/D,KAAK6D,Q,CAE7B,MAAOG,GACPC,QAAQ7D,MAAM,2BAA4B4D,E,OAEvC,GAAIE,MAAMC,QAAQnE,KAAK6D,SAAU,CACtCD,EAAa5D,KAAK6D,O,KACb,CACLI,QAAQ7D,MAAM,gCAAiCJ,KAAK6D,Q,CAGtD,IAAK7D,KAAKmB,iBAAkB,CAC1BnB,KAAKkB,YAAclB,KAAKoE,aAAaR,GACrC,MAAMS,EAAoBrE,KAAKsE,uBAAuBV,GACtD,MAAMW,EAA6BF,EAAkB5C,QAAO+C,IAASxE,KAAKQ,0BAA0BuB,MAAK0C,GAAOA,EAAIlD,OAASiD,EAAKjD,UAClIvB,KAAKQ,0BAA4B,IAAIR,KAAKQ,6BAA8B+D,GACxEvE,KAAKmB,iBAAmB,I,CAG1B,MAAMuD,EAAgBd,EAAWe,MAAMjB,EAAYA,EAAaC,GAChE,OAAOe,C,CAWD,sBAAAJ,CAAuBT,GAC7B,IAAIe,EAA4B,GAEhC,IAAK,MAAMlD,KAAUmC,EAAS,CAC5B,GAAInC,EAAOmD,SAAU,CACnB,GAAInD,EAAOG,UAAYH,EAAOG,SAASmB,OAAS,EAAG,CAEjD4B,EAAkBA,EAAgBE,OAAO9E,KAAK+E,mBAAmBrD,EAAOG,U,KACnE,CACL,IAAK+C,EAAgB7C,MAAKiD,GAAkBA,EAAezD,QAAUG,EAAOH,QAAQ,CAClFqD,EAAgBK,KAAKvD,E,OAGpB,CACL,GAAIA,EAAOG,UAAYH,EAAOG,SAASmB,OAAS,EAAG,CACjD4B,EAAkBA,EAAgBE,OAAO9E,KAAKsE,uBAAuB5C,EAAOG,U,GAKlF,OAAO+C,C,CAQD,kBAAAG,CAAmBlD,GACzB,IAAIqD,EAAc,GAElB,IAAK,MAAMlD,KAASH,EAAU,CAC5B,GAAIG,EAAMH,UAAYG,EAAMH,SAASmB,OAAS,EAAG,CAC/CkC,EAAcA,EAAYJ,OAAO9E,KAAK+E,mBAAmB/C,EAAMH,U,KAC1D,CACLqD,EAAYD,KAAKjD,E,EAGrB,OAAOkD,C,CAMT,YAAAd,CAAaP,GACX,IAAIF,EAAQ,EACZ,IAAK,MAAMjC,KAAUmC,EAAS,CAC5B,GAAInC,EAAOG,UAAYH,EAAOG,SAASmB,QAAU,EAAG,CAClDW,GAAS3D,KAAKoE,aAAa1C,EAAOG,S,KAC7B,CACL8B,G,EAGJ,OAAOA,C,CAsBT,gBAAAwB,GACEvF,YAAW,KACTI,KAAKoF,kBAAkB,GACtB,I,CAKL,iBAAAC,GACErF,KAAK2C,qBACL3C,KAAKc,gBAAkB,IAAId,KAAKa,c,CAIlC,mBAAAyE,GACEtF,KAAKK,cAAgBL,KAAKI,K,CAI5B,0BAAAmF,GACEvF,KAAK4C,qBAAuB5C,KAAKM,Y,CAInC,oBAAAkF,GACExF,KAAKc,gBAAkB,IAAId,KAAKa,c,CAIlC,iBAAA4E,CAAkBC,EAAoBC,GACpC,MAAMC,EAAW,IAAIC,SACrBH,EAASI,SAAQpE,GAAUkE,EAASG,OAAO/F,KAAKgG,KAAMtE,EAAOH,SAC7DvB,KAAKiG,UAAUC,aAAaN,E,CAG9B,iBAAAO,CAAkBzE,GAChB1B,KAAKK,cAAgB,MAErB,IAAKqB,EAAOmD,UAAY7E,KAAKoG,wBAAwB1E,GAAS,CAC5DA,EAAO2E,YAAYC,mBAAmB,OACtCtG,KAAKK,cAAgB,KACrBL,KAAK4C,qBAAuB,6DAC5B,M,CAGF5C,KAAKuG,gBAAgB7E,GACrB1B,KAAKwG,UAAU/D,KAAKzC,KAAKQ,0B,CAI3B,uBAAA4F,CAAwB1E,GACtB,IAAI+E,EAAmB/E,EAAOG,SAAWH,EAAOG,SAASmB,OAAS,EAClE,OAAOhD,KAAK0G,cAAgB1G,KAAKQ,0BAA0BwC,OAASyD,EAAmBzG,KAAK0G,eACzF1G,KAAKQ,0BAA0BuB,MAAK4E,GAAkBA,EAAepF,QAAUG,EAAOH,O,CAG3F,eAAAgF,CAAgB7E,GACd,MAAMkF,EAAc5G,KAAKQ,0BAA0BuB,MAAK4E,GAAkBA,EAAepF,QAAUG,EAAOH,QAE1G,GAAIG,EAAOG,UAAYH,EAAOG,SAASmB,OAAS,EAAG,CACjDhD,KAAK6G,wBAAwBnF,E,KACxB,CACL1B,KAAK8G,uBAAuBpF,EAAQkF,E,EAIxC,eAAMG,GACJ,MAAMnD,QAAmB5D,KAAK6C,aAAa,EAAG7C,KAAKkB,aACnDlB,KAAKgH,mBAAmBpD,GAExB5D,KAAKwG,UAAU/D,KAAKzC,KAAKQ,0B,CAGnB,kBAAAwG,CAAmBnD,GACzB,IAAK,MAAMY,KAAOZ,EAAS,CACzB,GAAIY,EAAI5C,UAAY4C,EAAI5C,SAASmB,OAAS,EAAG,CAC3ChD,KAAKgH,mBAAmBvC,EAAI5C,S,KACvB,CACL,IAAK7B,KAAKQ,0BAA0BuB,MAAMA,GAASA,EAAKR,QAAUkD,EAAIlD,QAAS,CAC7EkD,EAAII,SAAW,KACf7E,KAAKQ,0BAA4B,IAAIR,KAAKQ,0BAA2BiE,GACrEzE,KAAKkB,YAAclB,KAAKoE,aAAcpE,KAAKQ,0B,IAOnD,uBAAAqG,CAAwBnF,GACtB,MAAMuF,EAAsBvF,EAAOG,SAASqF,OAAMlF,GAChDhC,KAAKQ,0BAA0BuB,MAAK4E,GAAkBA,EAAepF,QAAUS,EAAMT,UAGvF,GAAI0F,EAAqB,CACvBjH,KAAKQ,0BAA4B,IAAIR,KAAKQ,0BAA0BiB,QAClEkF,IAAmBjF,EAAOG,SAASE,MAAKC,GAASA,EAAMT,QAAUoF,EAAepF,WAGlFG,EAAOmD,SAAW,MAClBnD,EAAOG,SAASiE,SAAQ9D,IACtBA,EAAM6C,SAAW,KAAK,G,KAGnB,CACL,MAAMsC,EAAc,IAAIzF,EAAOG,SAASJ,QAAO2F,IACxCpH,KAAKQ,0BAA0BuB,MAAK4E,GAAkBA,EAAepF,QAAU6F,EAAY7F,WAElGG,EAAOmD,SAAW,KAClBnD,EAAOG,SAASiE,SAAQ9D,IACtBA,EAAM6C,SAAW,IAAI,IAEvB7E,KAAKQ,0BAA4B,IAAIR,KAAKQ,6BAA8B2G,E,EAI5E,sBAAAL,CAAuBpF,EAAgBkF,GACrC,GAAIA,EAAa,CACf5G,KAAKQ,0BAA4B,IAAIR,KAAKQ,0BAA0BiB,QAAOkF,GAAkBA,EAAepF,QAAUG,EAAOH,SAC7HG,EAAOmD,SAAW,K,KACb,CACL7E,KAAKQ,0BAA4B,IAAIR,KAAKQ,0BAA2BkB,GACrEA,EAAOmD,SAAW,I,CAEpB7E,KAAKqH,2B,CAGP,yBAAAA,GACErH,KAAKa,cAAciF,SAAQpE,I,MACzB,KAAG4F,EAAA5F,EAAOG,YAAQ,MAAAyF,SAAA,SAAAA,EAAEtE,QAAS,EAAG,CAC9B,GAAGtB,EAAOG,SAASqF,OAAMlF,GAASA,EAAM6C,WAAa,OAAOnD,EAAOmD,SAAW,SACzE,CACHnD,EAAOmD,SAAW,MAClB,GAAG7E,KAAKuH,sBAAsB7F,GAAS,CACrCA,EAAO8F,cAAgB,I,KACpB,CACH9F,EAAO8F,cAAgB,K,OAoBjC,YAAAC,GACE,MAAO,GAAGzH,KAAKE,SAAW,IACtB,eACA,e,CAGN,cAAAwH,GACE1H,KAAKU,cAAgBV,KAAKU,aAC1Bd,YAAW,KACT,GAAII,KAAKU,aAAc,CACrB4B,SAASqF,iBAAiB,QAAS3H,KAAKiC,oB,CAG1CjC,KAAKwC,QAAQC,KAAKzC,KAAKU,aAAa,GACnC,E,CAIL,cAAAkH,CAAeC,EAA6BC,EAAoBC,EAAW,IACzE,IAAIC,EAAQ,EACZ,SAASC,IACPC,uBAAsB,KACpB,MAAMC,EAAWN,IACjB,GAAIM,EAASnF,OAAS,GAAKgF,EAAQD,EAAU,CAC3CD,EAASK,E,KACJ,CACLH,IACAC,G,KAINA,G,CAIF,aAAAG,CAAclG,GACZ,GAAIlC,KAAKG,SAAU,OAEnB,MAAM0D,EAAU7D,KAAKqC,gBAAgBgG,iBAAiB,WAEtD,OAAQnG,EAAMoG,MACZ,IAAK,QACHtI,KAAK0H,iBAEL1H,KAAK4H,gBAAe,IACX5H,KAAKqC,gBAAgBgG,iBAAiB,aAC3CxE,IACA7D,KAAKuI,wBAAwB1E,EAAQ,IAEzC,MACF,IAAK,QACH7D,KAAK0H,iBAEL1H,KAAK4H,gBAAe,IACX5H,KAAKqC,gBAAgBgG,iBAAiB,aAC3CxE,IACA7D,KAAKuI,wBAAwB1E,EAAQ,IAEzC,MACF,IAAK,YACH7D,KAAKwI,gBAAgB3E,GACrB,GAAI7D,KAAKU,aAAc,CACrBV,KAAKuI,wBAAwB1E,E,CAE/B,MACF,IAAK,UACH7D,KAAKyI,cAAc5E,GACnB,GAAI7D,KAAKU,aAAc,CACrBV,KAAKuI,wBAAwB1E,E,CAE/B,M,CAIN,kBAAA6E,CAAmBxG,GAEjBlC,KAAKoF,mBAGL,GAAIlD,EAAMyG,gBAAkBzG,EAAMiB,OAAQ,CACxCnD,KAAK0H,gB,EAIT,cAAAkB,GACE5I,KAAKQ,0BAA4B,GACjCR,KAAKwG,UAAU/D,KAAKzC,KAAKQ,0B,CAG3B,gBAAA4E,G,MACE,MAAMyD,GAAcvB,EAAAtH,KAAK8I,GAAGC,WAAWC,cAAc,+BAA2B,MAAA1B,SAAA,SAAAA,EAAE2B,wBAClF,MAAMC,EAAaC,OAAOC,YAAcP,EAAYQ,OACpD,MAAMC,EAAaT,EAAYU,IAG/B,GAAKD,EAAaJ,GAAcL,EAAYW,OAASN,GAAgBL,EAAYQ,OAASF,OAAOC,YAAc,CAC7GpJ,KAAKyJ,gBAAkB,I,KAClB,CACLzJ,KAAKyJ,gBAAkB,K,EAOnB,uBAAAlB,CAAwB1E,GAE9BA,EAAQiC,SAASpE,GAAoBA,EAAOgI,UAAUC,OAAO,oBAG7D,GAAI3J,KAAKW,cAAgB,GAAKX,KAAKW,aAAekD,EAAQb,OAAQ,CAC/Da,EAAQ7D,KAAKW,cAA0B+I,UAAUE,IAAI,kBACrD/F,EAAQ7D,KAAKW,cAA8BkJ,O,EAKxC,eAAArB,CAAgB3E,GACtB,GAAI7D,KAAKW,aAAekD,EAAQb,OAAS,EAAG,CAC1ChD,KAAKW,c,KACA,CACLX,KAAKW,aAAe,C,EAKhB,aAAA8H,CAAc5E,GACpB,GAAI7D,KAAKW,aAAe,EAAG,CACzBX,KAAKW,c,KACA,CACLX,KAAKW,aAAekD,EAAQb,OAAS,C,EAIzC,mBAAA8G,CAAoBC,EAAkBrI,GACpC,GAAGqI,EAAEC,MAAQ,WAAaD,EAAEC,MAAQ,YAAaD,EAAEE,kBACnD,GAAGF,EAAEC,MAAQ,SAAWD,EAAEC,MAAQ,IAAK,CACrChK,KAAKmG,kBAAkBzE,E,EAI3B,YAAAwI,CAAaxI,EAAgByI,G,MAC3B,MAAMC,EAAkBpK,KAAKuH,sBAAsB7F,GACnD,MAAM2I,EAAa3I,EAAOG,SAAWuI,GAAmBpK,KAAKsK,iBAAiB5I,GAAU1B,KAAKQ,0BAA0BuB,MAAK4E,GAAkBA,EAAepF,QAAUG,EAAOH,QAC9K,MAAMgJ,GAAmBF,GAAcrK,KAAK0G,cAAgB1G,KAAKQ,0BAA0BwC,QAAUhD,KAAK0G,aAC1G,MAAM8D,EAAW,YAAY9I,EAAOH,SAAS4I,IAE7C,OACEM,EAAA,OAAKC,MAAM,kBACTD,EAAA,OAAKC,MAAO,UAAUL,EAAa,WAAa,MAAME,EAAkB,WAAa,gBACnFvK,KAAKyH,iBAAgB,aACT/F,EAAOH,MACnBoJ,UAAYZ,IAAOQ,GAAmBvK,KAAK8J,oBAAoBC,EAAGrI,GAClEkJ,QAAS,KAAOL,GAAmBvK,KAAKmG,kBAAkBzE,GAC1DmJ,SAAS,IACTC,KAAM,KAAGxD,EAAA5F,EAAOG,YAAQ,MAAAyF,SAAA,SAAAA,EAAEtE,QAAS,EAAI,WAAa,YACpDyH,EAAA,gBAAcM,UAAW,EAAGC,IAAMlC,GAAOpH,EAAO2E,YAAcyC,EAAImC,GAAIT,EAAUtK,KAAK,IAAIgL,QAASd,EAAkB,MAAQC,EAAY7C,cAAe4C,EAAiBjK,SAAUoK,IAClLE,EAAA,SAAOU,QAASX,EAAUI,QAAUb,GAAMA,EAAEE,mBAAoBvI,EAAOnB,QAExEmB,EAAOG,UAAYH,EAAOG,SAASuJ,KAAI,CAACpJ,EAAOqJ,IAAerL,KAAKsL,gBAAgBtJ,EAAO,GAAGmI,KAASkB,O,CAK7G,gBAAAf,CAAiB5I,GACf,IAAKA,EAAOG,SAAU,OAAO,MAE7B,OAAOH,EAAOG,SAASqF,OAAMlF,GAC3BhC,KAAKQ,0BAA0BuB,MAAKwJ,GAAoBA,EAAiBhK,QAAUS,EAAMT,S,CAK7F,qBAAAgG,CAAsB7F,GACpB,IAAKA,EAAOG,SAAU,OAAO,MAE7B,MAAM2J,EAAmB9J,EAAOG,SAASJ,QAAOO,GAC9ChC,KAAKQ,0BAA0BuB,MAAKwJ,GAAoBA,EAAiBhK,QAAUS,EAAMT,UACzFyB,OAEF,OAAOwI,EAAmB,GAAKA,EAAmB9J,EAAOG,SAASmB,M,CAIpE,aAAAyI,CAAc5H,EAAmBvC,GAC/B,IAAK,MAAMI,KAAUmC,EAAS,CAC5B,GAAInC,EAAOH,QAAUD,EAAY,CAC/B,OAAOI,C,CAET,GAAIA,EAAOG,SAAU,CACnB,MAAM6J,EAAkB1L,KAAKyL,cAAc/J,EAAOG,SAAUP,GAC5D,GAAIoK,EAAiB,CACnB,OAAOA,C,GAIb,OAAO,I,CAIT,eAAAJ,CAAgB5J,EAAgByI,G,MAC9B,MAAME,EAAarK,KAAKQ,0BAA0BuB,MAAK4E,GAAkBA,EAAepF,QAAUG,EAAOH,QACzG,MAAMgJ,GAAmBF,GAAcrK,KAAK0G,cAAgB1G,KAAKQ,0BAA0BwC,QAAUhD,KAAK0G,aAC1G,MAAM8D,EAAW,YAAY9I,EAAOH,SAAS4I,IAE7C,OACEM,EAAA,OAAKC,MAAO,qBAAqBL,EAAa,WAAa,MAAMrK,KAAKyH,kBAAkB8C,EAAkB,WAAa,KAAI,aAC7G7I,EAAOH,MACnBuJ,KAAM,KAAGxD,EAAA5F,EAAOG,YAAQ,MAAAyF,SAAA,SAAAA,EAAEtE,QAAS,EAAI,SAAW,aAClD2H,UAAYZ,IAAOQ,GAAmBvK,KAAK8J,oBAAoBC,EAAGrI,GAClEkJ,QAAS,KAAOL,GAAmBvK,KAAKmG,kBAAkBzE,GAC1DmJ,SAAS,KACTJ,EAAA,gBAAcM,UAAW,EAAGC,IAAMlC,GAAOpH,EAAO2E,YAAcyC,EAAImC,GAAIT,EAAUtK,KAAK,IAAIgL,QAASb,EAAYlK,SAAUoK,IACxHE,EAAA,SAAOU,QAASX,EAAUI,QAAUb,GAAMA,EAAEE,mBAAoBvI,EAAOnB,O,CAKrE,eAAAoL,GACN,MAAMC,EAAc5L,KAAKQ,0BAA0BwC,SAAWhD,KAAKkB,YACnE,MAAM2K,EAAe7L,KAAKQ,0BAA0BwC,SAAW,EAC/D,MAAMwE,EAAgBxH,KAAKkB,YAAc,IAAM2K,IAAiBD,EAEhE,MAAME,EAAO9L,KACb,SAAS+L,IACP,GAAIH,EAAa,CACfE,EAAKlD,gB,KACA,CACLkD,EAAK/E,W,EAIT,SAASiF,EAAuBjC,GAC9B,GAAGA,EAAEC,MAAQ,WAAaD,EAAEC,MAAQ,YAAaD,EAAEE,kBACnD,GAAGF,EAAEC,MAAQ,SAAWD,EAAEC,MAAQ,IAAK,CACrC+B,G,EAIJ,OAAOtB,EAAA,OAAKC,MAAM,sBAChBD,EAAA,OAAKC,MAAO,UAAU1K,KAAKyH,iBAAkBoD,SAAS,IAAIF,UAAYZ,GAAMiC,EAAuBjC,GAAIa,QAASmB,GAC9GtB,EAAA,gBAAcM,UAAW,EAAGE,GAAG,YAAYC,QAASU,EAAapE,cAAeA,EAAetH,KAAK,MACpGuK,EAAA,SAAOU,QAAQ,aAAW,eAE5BV,EAAA,+B,CAKJ,MAAAwB,GAEE,MAAMC,EAAwBlM,KAAKQ,0BAChCiB,QAAOC,IAEN,MAAMyK,EAA4BnM,KAAKQ,0BAA0BuB,MAAKqK,GACpEA,EAAavK,UACbuK,EAAavK,SAASE,MAAKC,GAASA,EAAMT,QAAUG,EAAOH,SAC3D6K,EAAavH,WAEf,OAAQsH,CAAyB,IAElCf,KAAI1J,GAAUA,EAAOnB,QACrB8L,KAAK,MAER,OACE5B,EAAA,OAAKC,MAAO,4BAA6BM,IAAKlC,GAAM9I,KAAKqC,gBAAkByG,GAEvE9I,KAAKO,MACHkK,EAAA,OAAKC,MAAM,qBACTD,EAAA,YAAOzK,KAAKO,QACL,KAEbkK,EAAA,OAAKC,MAAO,qCACV1K,KAAKyH,4BACLzH,KAAKU,aAAe,SAAW,gBAC/BV,KAAKyJ,gBAAkB,aAAe,eACtCzJ,KAAKK,cAAgB,QAAU,eAC/BL,KAAKG,SAAW,WAAa,KAC7B0K,SAAS,IACTD,QAAS5K,KAAKG,SAAWmM,UAAapK,GAAUlC,KAAK0I,mBAAmBxG,GACxEyI,UAAW3K,KAAKG,SAAWmM,UAAapK,GAAUlC,KAAKoI,cAAclG,IACrEuI,EAAA,OAAKC,MAAO,qCACV1K,KAAKQ,0BAA0BwC,SAAW,EAAI,cAAgB,iBAE9D4H,QAAS5K,KAAKG,SAAWmM,UAAY,IAAMtM,KAAK0H,kBAE/C1H,KAAKQ,0BAA0BwC,OAAS,EAAIkJ,EAAwBlM,KAAKS,aAE3ET,KAAKU,cACJ+J,EAAA,OAAKC,MAAM,gCACT6B,SAAWrK,GAAUlC,KAAKiD,aAAaf,IACtClC,KAAKe,YAAc0J,EAAA,SAAO+B,KAAK,OAAO1B,KAAK,UAAUJ,MAAM,eAAeC,UAAYZ,IAAQA,EAAEE,iBAAiB,EAAIwC,QAAUvK,GAAUlC,KAAKoB,aAAac,EAAMiB,QAAS1C,YAAY,cACtLT,KAAKgB,eAAiBhB,KAAK2L,kBAC3B3L,KAAKc,gBAAgBsK,KAAI,CAAC1J,EAAQyI,IAAUnK,KAAKkK,aAAaxI,EAAQyI,KACtEnK,KAAKY,WAAa6J,EAAA,uCAGvBA,EAAA,OAAKC,MAAM,kCAGR1K,KAAKQ,0BAA0BwC,OAAS,GACvCyH,EAAA,OAAKC,MAAO,qBAAqB1K,KAAKiB,gBAAkB,OAAS,KAAM2J,QAAS5K,KAAKG,SAAWmM,UAAY,IAAMtM,KAAK4I,kBACrH6B,EAAA,YAAUiC,KAAK,eAGnBjC,EAAA,OAAKC,MAAM,kBAAkBE,QAAS5K,KAAKG,SAAWmM,UAAY,IAAMtM,KAAK0H,kBAC3E+C,EAAA,YACET,IAAI,UACJ0C,KAAK,kBAETjC,EAAA,OAAKC,MAAM,oBAAoBE,QAAS5K,KAAKG,SAAWmM,UAAY,IAAMtM,KAAK0H,kBAC7E+C,EAAA,YACET,IAAI,YACJ0C,KAAK,uBAMX1M,KAAKK,cACHoK,EAAA,OAAKC,MAAM,6BACTD,EAAA,YAAOzK,KAAK4C,uBACL,K,4RA3oBZ/C,EAAA8M,aAAe,I","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,h as i,g as t}from"./p-e6edf72d.js";const a=':root{font-family:"Source Sans 3", sans-serif}:host{pointer-events:none}.card__headline-wrapper{padding-bottom:16px}.card__headline-wrapper.withDesc{padding-bottom:8px}.card-headline{margin-top:0;padding-top:0;font-family:"Source Sans 3";font-weight:600;font-size:1.5rem;line-height:2rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.card-headline.horizontal{font-size:1.25rem;line-height:28px}';const o=a;const r=class{constructor(i){e(this,i)}componentWillLoad(){var e;const i=this.el.closest("ifx-card");if(i){const t=(e=i.shadowRoot.querySelector(".card"))===null||e===void 0?void 0:e.className;if(t&&t.includes("horizontal")){this.direction="horizontal"}const a=i.querySelector("ifx-card-text");if(a){this.hasDesc=true}}}render(){return i("div",{key:"3599127fad1e7dc563064d38df9996bcd7bd9217",class:`card__headline-wrapper ${this.hasDesc?"withDesc":""}`},i("div",{key:"643428271dec2bdf71c7059bf6e28c00cae9438b",class:`card-headline ${this.direction}`},i("slot",{key:"3b7ec4e25a399e96a0db4f03d793109eabf08fff"})))}get el(){return t(this)}};r.style=o;export{r as ifx_card_headline};
2
+ //# sourceMappingURL=p-0d11b881.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["cardHeadlineCss","IfxCardHeadlineStyle0","CardHeadline","componentWillLoad","cardElement","this","el","closest","cardClass","_a","shadowRoot","querySelector","className","includes","direction","desc","hasDesc","render","h","key","class"],"sources":["src/components/card/card-headline/card-headline.scss?tag=ifx-card-headline&encapsulation=shadow","src/components/card/card-headline/card-headline.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n:host {\n pointer-events: none;\n}\n\n.card__headline-wrapper {\n padding-bottom: 16px;\n\n &.withDesc {\n padding-bottom: 8px;\n }\n}\n\n.card-headline {\n margin-top: 0;\n padding-top: 0;\n font-family: tokens.$ifxFontFamilyBody;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSize3xl;\n line-height: tokens.$ifxLineHeight3xl;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.horizontal {\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n }\n\n}","import { Component, h, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'ifx-card-headline',\n styleUrl: 'card-headline.scss',\n shadow: true,\n})\n\nexport class CardHeadline {\n @Element() el;\n @State() direction: string;\n @State() hasDesc: boolean;\n\n componentWillLoad() {\n const cardElement = this.el.closest('ifx-card');\n\n if (cardElement) {\n const cardClass = cardElement.shadowRoot.querySelector('.card')?.className;\n\n if (cardClass && cardClass.includes('horizontal')) {\n this.direction = 'horizontal'\n }\n\n const desc = cardElement.querySelector('ifx-card-text');\n if (desc) {\n this.hasDesc = true;\n }\n }\n }\n\n\n render() {\n return (\n <div class={`card__headline-wrapper ${this.hasDesc ? 'withDesc' : \"\"}`}>\n <div class={`card-headline ${this.direction}`}>\n <slot />\n </div>\n </div>\n )\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAkB,ydACxB,MAAAC,EAAeD,E,MCOFE,EAAY,M,yBAKvB,iBAAAC,G,MACE,MAAMC,EAAcC,KAAKC,GAAGC,QAAQ,YAEpC,GAAIH,EAAa,CACf,MAAMI,GAAYC,EAAAL,EAAYM,WAAWC,cAAc,YAAQ,MAAAF,SAAA,SAAAA,EAAEG,UAEjE,GAAIJ,GAAaA,EAAUK,SAAS,cAAe,CACjDR,KAAKS,UAAY,Y,CAGnB,MAAMC,EAAOX,EAAYO,cAAc,iBACvC,GAAII,EAAM,CACRV,KAAKW,QAAU,I,GAMrB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAO,0BAA0Bf,KAAKW,QAAU,WAAa,MAChEE,EAAA,OAAAC,IAAA,2CAAKC,MAAO,iBAAiBf,KAAKS,aAChCI,EAAA,QAAAC,IAAA,8C","ignoreList":[]}
1
+ {"version":3,"names":["cardHeadlineCss","IfxCardHeadlineStyle0","CardHeadline","componentWillLoad","cardElement","this","el","closest","cardClass","_a","shadowRoot","querySelector","className","includes","direction","desc","hasDesc","render","h","key","class"],"sources":["src/components/card/card-headline/card-headline.scss?tag=ifx-card-headline&encapsulation=shadow","src/components/card/card-headline/card-headline.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n:host {\n pointer-events: none;\n}\n\n.card__headline-wrapper {\n padding-bottom: 16px;\n\n &.withDesc {\n padding-bottom: 8px;\n }\n}\n\n.card-headline {\n margin-top: 0;\n padding-top: 0;\n font-family: tokens.$ifxFontFamilyBody;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSize3xl;\n line-height: tokens.$ifxLineHeight3xl;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.horizontal {\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n }\n\n}","import { Component, h, Element, State } from '@stencil/core';\n\n@Component({\n tag: 'ifx-card-headline',\n styleUrl: 'card-headline.scss',\n shadow: true,\n})\n\nexport class CardHeadline {\n @Element() el;\n @State() direction: string;\n @State() hasDesc: boolean;\n\n componentWillLoad() {\n const cardElement = this.el.closest('ifx-card');\n\n if (cardElement) {\n const cardClass = cardElement.shadowRoot.querySelector('.card')?.className;\n\n if (cardClass && cardClass.includes('horizontal')) {\n this.direction = 'horizontal'\n }\n\n const desc = cardElement.querySelector('ifx-card-text');\n if (desc) {\n this.hasDesc = true;\n }\n }\n }\n\n\n render() {\n return (\n <div class={`card__headline-wrapper ${this.hasDesc ? 'withDesc' : \"\"}`}>\n <div class={`card-headline ${this.direction}`}>\n <slot />\n </div>\n </div>\n )\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAkB,4cACxB,MAAAC,EAAeD,E,MCOFE,EAAY,M,yBAKvB,iBAAAC,G,MACE,MAAMC,EAAcC,KAAKC,GAAGC,QAAQ,YAEpC,GAAIH,EAAa,CACf,MAAMI,GAAYC,EAAAL,EAAYM,WAAWC,cAAc,YAAQ,MAAAF,SAAA,SAAAA,EAAEG,UAEjE,GAAIJ,GAAaA,EAAUK,SAAS,cAAe,CACjDR,KAAKS,UAAY,Y,CAGnB,MAAMC,EAAOX,EAAYO,cAAc,iBACvC,GAAII,EAAM,CACRV,KAAKW,QAAU,I,GAMrB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAO,0BAA0Bf,KAAKW,QAAU,WAAa,MAChEE,EAAA,OAAAC,IAAA,2CAAKC,MAAO,iBAAiBf,KAAKS,aAChCI,EAAA,QAAAC,IAAA,8C","ignoreList":[]}