@infineon/infineon-design-system-stencil 39.5.3--canary.2139.133cea084905930519b2700b21cd878dd36f68e1.0 → 39.5.3--canary.2143.d66ed884e562634a631b07e90a58088599280b17.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 (771) hide show
  1. package/dist/cjs/ifx-accordion.ifx-accordion-item.entry.cjs.js.map +1 -1
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js +3 -3
  3. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ifx-action-list-item.cjs.entry.js +2 -2
  5. package/dist/cjs/ifx-action-list-item.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ifx-action-list-item.entry.cjs.js.map +1 -1
  7. package/dist/cjs/ifx-action-list.cjs.entry.js +2 -2
  8. package/dist/cjs/ifx-action-list.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-action-list.entry.cjs.js.map +1 -1
  10. package/dist/cjs/ifx-alert.ifx-template.entry.cjs.js.map +1 -1
  11. package/dist/cjs/ifx-alert_2.cjs.entry.js +2 -2
  12. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-basic-table.cjs.entry.js +2 -2
  14. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-basic-table.entry.cjs.js.map +1 -1
  16. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +2 -2
  17. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ifx-breadcrumb-item-label.entry.cjs.js.map +1 -1
  19. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +2 -2
  20. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-breadcrumb-item.entry.cjs.js.map +1 -1
  22. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +2 -2
  23. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ifx-breadcrumb.entry.cjs.js.map +1 -1
  25. package/dist/cjs/ifx-button.cjs.entry.js +2 -2
  26. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-button.entry.cjs.js.map +1 -1
  28. package/dist/cjs/ifx-card-headline.cjs.entry.js +2 -2
  29. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ifx-card-headline.entry.cjs.js.map +1 -1
  31. package/dist/cjs/ifx-card-image.cjs.entry.js +1 -1
  32. package/dist/cjs/ifx-card-links.cjs.entry.js +2 -2
  33. package/dist/cjs/ifx-card-links.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ifx-card-links.entry.cjs.js.map +1 -1
  35. package/dist/cjs/ifx-card-overline.cjs.entry.js +2 -2
  36. package/dist/cjs/ifx-card-overline.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ifx-card-overline.entry.cjs.js.map +1 -1
  38. package/dist/cjs/ifx-card-text.cjs.entry.js +2 -2
  39. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ifx-card-text.entry.cjs.js.map +1 -1
  41. package/dist/cjs/ifx-card.cjs.entry.js +2 -2
  42. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-card.entry.cjs.js.map +1 -1
  44. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +2 -2
  45. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ifx-checkbox-group.entry.cjs.js.map +1 -1
  47. package/dist/cjs/ifx-checkbox.cjs.entry.js +13 -13
  48. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ifx-checkbox.entry.cjs.js.map +1 -1
  50. package/dist/cjs/ifx-chip.ifx-chip-item.ifx-pagination.entry.cjs.js.map +1 -1
  51. package/dist/cjs/ifx-chip_3.cjs.entry.js +4 -4
  52. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +1 -1
  54. package/dist/cjs/ifx-content-switcher.cjs.entry.js +1 -1
  55. package/dist/cjs/ifx-date-picker.cjs.entry.js +1 -1
  56. package/dist/cjs/ifx-download.cjs.entry.js +1 -1
  57. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +2 -2
  58. package/dist/cjs/ifx-dropdown-header.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-dropdown-header.entry.cjs.js.map +1 -1
  60. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +2 -2
  61. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ifx-dropdown-item.entry.cjs.js.map +1 -1
  63. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +1 -1
  64. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +1 -1
  65. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +1 -1
  66. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +1 -1
  67. package/dist/cjs/ifx-dropdown.cjs.entry.js +1 -1
  68. package/dist/cjs/ifx-faq.cjs.entry.js +1 -1
  69. package/dist/cjs/ifx-file-upload.cjs.entry.js +2 -2
  70. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-file-upload.entry.cjs.js.map +1 -1
  72. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +1 -1
  73. package/dist/cjs/ifx-filter-bar.cjs.entry.js +1 -1
  74. package/dist/cjs/ifx-filter-search.cjs.entry.js +1 -1
  75. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +1 -1
  76. package/dist/cjs/ifx-footer-column.cjs.entry.js +2 -2
  77. package/dist/cjs/ifx-footer-column.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ifx-footer-column.entry.cjs.js.map +1 -1
  79. package/dist/cjs/ifx-footer.cjs.entry.js +2 -2
  80. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-footer.entry.cjs.js.map +1 -1
  82. package/dist/cjs/ifx-icon-button.cjs.entry.js +1 -1
  83. package/dist/cjs/ifx-icon.cjs.entry.js +1 -1
  84. package/dist/cjs/ifx-icons-preview.cjs.entry.js +1 -1
  85. package/dist/cjs/ifx-indicator.cjs.entry.js +2 -2
  86. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ifx-indicator.entry.cjs.js.map +1 -1
  88. package/dist/cjs/ifx-link.cjs.entry.js +2 -2
  89. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ifx-link.entry.cjs.js.map +1 -1
  91. package/dist/cjs/ifx-list-entry.cjs.entry.js +1 -1
  92. package/dist/cjs/ifx-list.cjs.entry.js +1 -1
  93. package/dist/cjs/ifx-modal.cjs.entry.js +2 -2
  94. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ifx-modal.entry.cjs.js.map +1 -1
  96. package/dist/cjs/ifx-multiselect.ifx-multiselect-option.entry.cjs.js.map +1 -1
  97. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +2 -2
  98. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ifx-navbar-item.cjs.entry.js +1 -1
  100. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +1 -1
  101. package/dist/cjs/ifx-navbar.cjs.entry.js +2 -2
  102. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ifx-navbar.entry.cjs.js.map +1 -1
  104. package/dist/cjs/ifx-notification.cjs.entry.js +2 -2
  105. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ifx-notification.entry.cjs.js.map +1 -1
  107. package/dist/cjs/ifx-overview-table.cjs.entry.js +1 -1
  108. package/dist/cjs/ifx-progress-bar.cjs.entry.js +2 -2
  109. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ifx-progress-bar.entry.cjs.js.map +1 -1
  111. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +2 -2
  112. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ifx-radio-button-group.entry.cjs.js.map +1 -1
  114. package/dist/cjs/ifx-radio-button.cjs.entry.js +2 -2
  115. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  116. package/dist/cjs/ifx-radio-button.entry.cjs.js.map +1 -1
  117. package/dist/cjs/ifx-search-bar.cjs.entry.js +2 -2
  118. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  119. package/dist/cjs/ifx-search-bar.entry.cjs.js.map +1 -1
  120. package/dist/cjs/ifx-search-field.cjs.entry.js +2 -2
  121. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  122. package/dist/cjs/ifx-search-field.entry.cjs.js.map +1 -1
  123. package/dist/cjs/ifx-segment.cjs.entry.js +2 -2
  124. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -1
  125. package/dist/cjs/ifx-segment.entry.cjs.js.map +1 -1
  126. package/dist/cjs/ifx-segmented-control.cjs.entry.js +2 -2
  127. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  128. package/dist/cjs/ifx-segmented-control.entry.cjs.js.map +1 -1
  129. package/dist/cjs/ifx-select.cjs.entry.js +2 -2
  130. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  131. package/dist/cjs/ifx-select.entry.cjs.js.map +1 -1
  132. package/dist/cjs/ifx-set-filter.cjs.entry.js +1 -1
  133. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +2 -2
  134. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -1
  135. package/dist/cjs/ifx-sidebar-item.entry.cjs.js.map +1 -1
  136. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +2 -2
  137. package/dist/cjs/ifx-sidebar-title.cjs.entry.js.map +1 -1
  138. package/dist/cjs/ifx-sidebar-title.entry.cjs.js.map +1 -1
  139. package/dist/cjs/ifx-sidebar.cjs.entry.js +2 -2
  140. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -1
  141. package/dist/cjs/ifx-sidebar.entry.cjs.js.map +1 -1
  142. package/dist/cjs/ifx-slider.cjs.entry.js +2 -2
  143. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  144. package/dist/cjs/ifx-slider.entry.cjs.js.map +1 -1
  145. package/dist/cjs/ifx-spinner.ifx-text-field.entry.cjs.js.map +1 -1
  146. package/dist/cjs/ifx-spinner_2.cjs.entry.js +2 -2
  147. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  148. package/dist/cjs/ifx-status.cjs.entry.js +2 -2
  149. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  150. package/dist/cjs/ifx-status.entry.cjs.js.map +1 -1
  151. package/dist/cjs/ifx-step.cjs.entry.js +2 -2
  152. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -1
  153. package/dist/cjs/ifx-step.entry.cjs.js.map +1 -1
  154. package/dist/cjs/ifx-stepper.cjs.entry.js +2 -2
  155. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  156. package/dist/cjs/ifx-stepper.entry.cjs.js.map +1 -1
  157. package/dist/cjs/ifx-switch.cjs.entry.js +2 -2
  158. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  159. package/dist/cjs/ifx-switch.entry.cjs.js.map +1 -1
  160. package/dist/cjs/ifx-tab.cjs.entry.js +1 -1
  161. package/dist/cjs/ifx-table.cjs.entry.js +2 -2
  162. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  163. package/dist/cjs/ifx-table.entry.cjs.js.map +1 -1
  164. package/dist/cjs/ifx-tabs.cjs.entry.js +2 -2
  165. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  166. package/dist/cjs/ifx-tabs.entry.cjs.js.map +1 -1
  167. package/dist/cjs/ifx-templates-ui.cjs.entry.js +1 -1
  168. package/dist/cjs/ifx-textarea.cjs.entry.js +2 -2
  169. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  170. package/dist/cjs/ifx-textarea.entry.cjs.js.map +1 -1
  171. package/dist/cjs/ifx-tooltip.cjs.entry.js +2 -2
  172. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  173. package/dist/cjs/ifx-tooltip.entry.cjs.js.map +1 -1
  174. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +1 -1
  175. package/dist/cjs/ifx-tree-view.cjs.entry.js +1 -1
  176. package/dist/cjs/{index-Dc5gCGlQ.js → index-n_pDKBY2.js} +3 -3
  177. package/dist/cjs/index-n_pDKBY2.js.map +1 -0
  178. package/dist/cjs/infineon-design-system-stencil.cjs.js +2 -2
  179. package/dist/cjs/loader.cjs.js +2 -2
  180. package/dist/collection/components/accordion/accordion.css +1 -1
  181. package/dist/collection/components/accordion/accordionItem.css +1 -1
  182. package/dist/collection/components/action-list/action-list-item.css +1 -1
  183. package/dist/collection/components/action-list/action-list.css +1 -1
  184. package/dist/collection/components/alert/alert.css +1 -1
  185. package/dist/collection/components/breadcrumb/breadcrumb-item-label.css +1 -1
  186. package/dist/collection/components/breadcrumb/breadcrumb-item.css +1 -1
  187. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  188. package/dist/collection/components/button/button.css +1 -1
  189. package/dist/collection/components/card/card-headline/card-headline.css +1 -1
  190. package/dist/collection/components/card/card-links/card-links.css +1 -1
  191. package/dist/collection/components/card/card-overline/card-overline.css +1 -1
  192. package/dist/collection/components/card/card-text/card-text.css +1 -1
  193. package/dist/collection/components/card/card.css +1 -1
  194. package/dist/collection/components/checkbox/checkbox.js +14 -15
  195. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  196. package/dist/collection/components/checkbox-group/checkbox-group.css +1 -1
  197. package/dist/collection/components/chip/chip-item/chip-item.css +1 -1
  198. package/dist/collection/components/chip/chip.css +1 -1
  199. package/dist/collection/components/dropdown/dropdown-header/dropdown-header.css +1 -1
  200. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.css +1 -1
  201. package/dist/collection/components/file-upload/file-upload.css +1 -1
  202. package/dist/collection/components/footer/footer-column.css +1 -1
  203. package/dist/collection/components/footer/footer.css +1 -1
  204. package/dist/collection/components/indicator/indicator.css +1 -1
  205. package/dist/collection/components/link/link.css +1 -1
  206. package/dist/collection/components/modal/modal.css +1 -1
  207. package/dist/collection/components/navigation/navbar/navbar.css +1 -1
  208. package/dist/collection/components/navigation/sidebar/sidebar-item.css +1 -1
  209. package/dist/collection/components/navigation/sidebar/sidebar-title.css +1 -1
  210. package/dist/collection/components/navigation/sidebar/sidebar.css +1 -1
  211. package/dist/collection/components/notification/notification.css +1 -1
  212. package/dist/collection/components/pagination/pagination.css +1 -1
  213. package/dist/collection/components/progress-bar/progress-bar.css +1 -1
  214. package/dist/collection/components/radio-button/radio-button.css +1 -1
  215. package/dist/collection/components/radio-button-group/radio-button-group.css +1 -1
  216. package/dist/collection/components/search-bar/search-bar.css +1 -1
  217. package/dist/collection/components/search-field/search-field.css +1 -1
  218. package/dist/collection/components/segmented-control/segment/segment.css +1 -1
  219. package/dist/collection/components/segmented-control/segmented-control.css +1 -1
  220. package/dist/collection/components/select/multi-select/multiselect.css +1 -1
  221. package/dist/collection/components/select/single-select/select.css +1 -1
  222. package/dist/collection/components/slider/slider.css +1 -1
  223. package/dist/collection/components/status/status.css +1 -1
  224. package/dist/collection/components/stepper/step/step.css +1 -1
  225. package/dist/collection/components/stepper/stepper.css +1 -1
  226. package/dist/collection/components/switch/switch.css +1 -1
  227. package/dist/collection/components/table-advanced-version/table.css +1 -1
  228. package/dist/collection/components/table-basic-version/table.css +1 -1
  229. package/dist/collection/components/tabs/tabs.css +1 -1
  230. package/dist/collection/components/text-field/text-field.css +1 -1
  231. package/dist/collection/components/textarea/textarea.css +1 -1
  232. package/dist/collection/components/tooltip/tooltip.css +1 -1
  233. package/dist/components/ifx-accordion-item.js +1 -1
  234. package/dist/components/ifx-accordion.js +1 -1
  235. package/dist/components/ifx-action-list-item.js +1 -1
  236. package/dist/components/ifx-action-list-item.js.map +1 -1
  237. package/dist/components/ifx-action-list.js +1 -1
  238. package/dist/components/ifx-action-list.js.map +1 -1
  239. package/dist/components/ifx-alert.js +1 -1
  240. package/dist/components/ifx-basic-table.js +1 -1
  241. package/dist/components/ifx-basic-table.js.map +1 -1
  242. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  243. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  244. package/dist/components/ifx-breadcrumb-item.js +1 -1
  245. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  246. package/dist/components/ifx-breadcrumb.js +1 -1
  247. package/dist/components/ifx-breadcrumb.js.map +1 -1
  248. package/dist/components/ifx-button.js +1 -1
  249. package/dist/components/ifx-card-headline.js +1 -1
  250. package/dist/components/ifx-card-headline.js.map +1 -1
  251. package/dist/components/ifx-card-links.js +1 -1
  252. package/dist/components/ifx-card-links.js.map +1 -1
  253. package/dist/components/ifx-card-overline.js +1 -1
  254. package/dist/components/ifx-card-overline.js.map +1 -1
  255. package/dist/components/ifx-card-text.js +1 -1
  256. package/dist/components/ifx-card-text.js.map +1 -1
  257. package/dist/components/ifx-card.js +1 -1
  258. package/dist/components/ifx-card.js.map +1 -1
  259. package/dist/components/ifx-checkbox-group.js +1 -1
  260. package/dist/components/ifx-checkbox-group.js.map +1 -1
  261. package/dist/components/ifx-checkbox.js +1 -1
  262. package/dist/components/ifx-chip-item.js +1 -1
  263. package/dist/components/ifx-chip.js +1 -1
  264. package/dist/components/ifx-download.js +1 -1
  265. package/dist/components/ifx-dropdown-header.js +1 -1
  266. package/dist/components/ifx-dropdown-header.js.map +1 -1
  267. package/dist/components/ifx-dropdown-item.js +1 -1
  268. package/dist/components/ifx-dropdown-item.js.map +1 -1
  269. package/dist/components/ifx-dropdown-trigger-button.js +1 -1
  270. package/dist/components/ifx-faq.js +2 -2
  271. package/dist/components/ifx-file-upload.js +3 -3
  272. package/dist/components/ifx-file-upload.js.map +1 -1
  273. package/dist/components/ifx-filter-accordion.js +1 -1
  274. package/dist/components/ifx-filter-bar.js +1 -1
  275. package/dist/components/ifx-filter-search.js +1 -1
  276. package/dist/components/ifx-footer-column.js +1 -1
  277. package/dist/components/ifx-footer-column.js.map +1 -1
  278. package/dist/components/ifx-footer.js +1 -1
  279. package/dist/components/ifx-footer.js.map +1 -1
  280. package/dist/components/ifx-icons-preview.js +3 -3
  281. package/dist/components/ifx-indicator.js +1 -1
  282. package/dist/components/ifx-link.js +1 -1
  283. package/dist/components/ifx-list-entry.js +2 -2
  284. package/dist/components/ifx-list.js +1 -1
  285. package/dist/components/ifx-modal.js +1 -1
  286. package/dist/components/ifx-modal.js.map +1 -1
  287. package/dist/components/ifx-multiselect-option.js +1 -1
  288. package/dist/components/ifx-multiselect.js +1 -1
  289. package/dist/components/ifx-navbar-item.js +1 -1
  290. package/dist/components/ifx-navbar.js +1 -1
  291. package/dist/components/ifx-navbar.js.map +1 -1
  292. package/dist/components/ifx-notification.js +1 -1
  293. package/dist/components/ifx-overview-table.js +2 -2
  294. package/dist/components/ifx-pagination.js +1 -1
  295. package/dist/components/ifx-progress-bar.js +1 -1
  296. package/dist/components/ifx-radio-button-group.js +1 -1
  297. package/dist/components/ifx-radio-button-group.js.map +1 -1
  298. package/dist/components/ifx-radio-button.js +1 -1
  299. package/dist/components/ifx-search-bar.js +2 -2
  300. package/dist/components/ifx-search-bar.js.map +1 -1
  301. package/dist/components/ifx-search-field.js +1 -1
  302. package/dist/components/ifx-segment.js +1 -1
  303. package/dist/components/ifx-segment.js.map +1 -1
  304. package/dist/components/ifx-segmented-control.js +1 -1
  305. package/dist/components/ifx-segmented-control.js.map +1 -1
  306. package/dist/components/ifx-select.js +1 -1
  307. package/dist/components/ifx-set-filter.js +6 -6
  308. package/dist/components/ifx-sidebar-item.js +2 -2
  309. package/dist/components/ifx-sidebar-item.js.map +1 -1
  310. package/dist/components/ifx-sidebar-title.js +1 -1
  311. package/dist/components/ifx-sidebar-title.js.map +1 -1
  312. package/dist/components/ifx-sidebar.js +1 -1
  313. package/dist/components/ifx-sidebar.js.map +1 -1
  314. package/dist/components/ifx-slider.js +1 -1
  315. package/dist/components/ifx-slider.js.map +1 -1
  316. package/dist/components/ifx-status.js +1 -1
  317. package/dist/components/ifx-status.js.map +1 -1
  318. package/dist/components/ifx-step.js +1 -1
  319. package/dist/components/ifx-step.js.map +1 -1
  320. package/dist/components/ifx-stepper.js +1 -1
  321. package/dist/components/ifx-stepper.js.map +1 -1
  322. package/dist/components/ifx-switch.js +1 -1
  323. package/dist/components/ifx-switch.js.map +1 -1
  324. package/dist/components/ifx-table.js +8 -8
  325. package/dist/components/ifx-table.js.map +1 -1
  326. package/dist/components/ifx-tabs.js +1 -1
  327. package/dist/components/ifx-tabs.js.map +1 -1
  328. package/dist/components/ifx-template.js +1 -1
  329. package/dist/components/ifx-templates-ui.js +5 -5
  330. package/dist/components/ifx-text-field.js +1 -1
  331. package/dist/components/ifx-textarea.js +1 -1
  332. package/dist/components/ifx-textarea.js.map +1 -1
  333. package/dist/components/ifx-tooltip.js +1 -1
  334. package/dist/components/ifx-tooltip.js.map +1 -1
  335. package/dist/components/ifx-tree-view-item.js +1 -1
  336. package/dist/components/index.js +1 -1
  337. package/dist/components/index.js.map +1 -1
  338. package/dist/components/{p-DJMMjs4C.js → p-B61i82g5.js} +3 -3
  339. package/dist/components/{p-DJMMjs4C.js.map → p-B61i82g5.js.map} +1 -1
  340. package/dist/components/{p-DZDL9mJT.js → p-BC9WtGi5.js} +5 -5
  341. package/dist/components/{p-DZDL9mJT.js.map → p-BC9WtGi5.js.map} +1 -1
  342. package/dist/components/{p-BxahGQyq.js → p-BJpqCkkb.js} +3 -3
  343. package/dist/components/{p-BxahGQyq.js.map → p-BJpqCkkb.js.map} +1 -1
  344. package/dist/components/{p-D993ZAZ7.js → p-BMQLGfWX.js} +4 -4
  345. package/dist/components/{p-D993ZAZ7.js.map → p-BMQLGfWX.js.map} +1 -1
  346. package/dist/components/{p-BR9GBwm3.js → p-BRgFU560.js} +3 -3
  347. package/dist/components/{p-BR9GBwm3.js.map → p-BRgFU560.js.map} +1 -1
  348. package/dist/components/{p-CuW3ASZY.js → p-BerfCR8L.js} +3 -3
  349. package/dist/components/{p-CuW3ASZY.js.map → p-BerfCR8L.js.map} +1 -1
  350. package/dist/components/{p-BGgzlGhs.js → p-Bux5F8Jt.js} +3 -3
  351. package/dist/components/{p-BGgzlGhs.js.map → p-Bux5F8Jt.js.map} +1 -1
  352. package/dist/components/{p-C12r4j5b.js → p-BxvlRqa4.js} +3 -3
  353. package/dist/components/{p-C12r4j5b.js.map → p-BxvlRqa4.js.map} +1 -1
  354. package/dist/components/{p-CGQrMuO5.js → p-ByoPzMNu.js} +3 -3
  355. package/dist/components/{p-CGQrMuO5.js.map → p-ByoPzMNu.js.map} +1 -1
  356. package/dist/components/{p-BXzO4n5s.js → p-C53lC4vo.js} +4 -4
  357. package/dist/components/{p-BXzO4n5s.js.map → p-C53lC4vo.js.map} +1 -1
  358. package/dist/components/{p-Bc_ZM813.js → p-Cmd43Oxg.js} +3 -3
  359. package/dist/components/{p-Bc_ZM813.js.map → p-Cmd43Oxg.js.map} +1 -1
  360. package/dist/components/{p-CROLVxZq.js → p-CtzLf4yZ.js} +15 -16
  361. package/dist/components/p-CtzLf4yZ.js.map +1 -0
  362. package/dist/components/{p-RF9z92mE.js → p-D9skJwQF.js} +3 -3
  363. package/dist/components/{p-RF9z92mE.js.map → p-D9skJwQF.js.map} +1 -1
  364. package/dist/components/{p-egr4FehX.js → p-DmM40b2X.js} +5 -5
  365. package/dist/components/{p-egr4FehX.js.map → p-DmM40b2X.js.map} +1 -1
  366. package/dist/components/{p-R79iWjuc.js → p-Dn3cSDWF.js} +3 -3
  367. package/dist/components/{p-R79iWjuc.js.map → p-Dn3cSDWF.js.map} +1 -1
  368. package/dist/components/{p-CafcSYVH.js → p-DsbrEtP9.js} +4 -4
  369. package/dist/components/{p-CafcSYVH.js.map → p-DsbrEtP9.js.map} +1 -1
  370. package/dist/components/{p-DceacY9Q.js → p-GP5uSTr1.js} +3 -3
  371. package/dist/components/{p-DceacY9Q.js.map → p-GP5uSTr1.js.map} +1 -1
  372. package/dist/components/{p-CGiuqlV6.js → p-WVpEOqoG.js} +4 -4
  373. package/dist/components/{p-CGiuqlV6.js.map → p-WVpEOqoG.js.map} +1 -1
  374. package/dist/components/{p-DtkiOAQY.js → p-ZCLJED5S.js} +3 -3
  375. package/dist/components/{p-DtkiOAQY.js.map → p-ZCLJED5S.js.map} +1 -1
  376. package/dist/esm/ifx-accordion.ifx-accordion-item.entry.js.map +1 -1
  377. package/dist/esm/ifx-accordion_2.entry.js +3 -3
  378. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  379. package/dist/esm/ifx-action-list-item.entry.js +2 -2
  380. package/dist/esm/ifx-action-list-item.entry.js.map +1 -1
  381. package/dist/esm/ifx-action-list.entry.js +2 -2
  382. package/dist/esm/ifx-action-list.entry.js.map +1 -1
  383. package/dist/esm/ifx-alert.ifx-template.entry.js.map +1 -1
  384. package/dist/esm/ifx-alert_2.entry.js +2 -2
  385. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  386. package/dist/esm/ifx-basic-table.entry.js +2 -2
  387. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  388. package/dist/esm/ifx-breadcrumb-item-label.entry.js +2 -2
  389. package/dist/esm/ifx-breadcrumb-item-label.entry.js.map +1 -1
  390. package/dist/esm/ifx-breadcrumb-item.entry.js +2 -2
  391. package/dist/esm/ifx-breadcrumb-item.entry.js.map +1 -1
  392. package/dist/esm/ifx-breadcrumb.entry.js +2 -2
  393. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  394. package/dist/esm/ifx-button.entry.js +2 -2
  395. package/dist/esm/ifx-button.entry.js.map +1 -1
  396. package/dist/esm/ifx-card-headline.entry.js +2 -2
  397. package/dist/esm/ifx-card-headline.entry.js.map +1 -1
  398. package/dist/esm/ifx-card-image.entry.js +1 -1
  399. package/dist/esm/ifx-card-links.entry.js +2 -2
  400. package/dist/esm/ifx-card-links.entry.js.map +1 -1
  401. package/dist/esm/ifx-card-overline.entry.js +2 -2
  402. package/dist/esm/ifx-card-overline.entry.js.map +1 -1
  403. package/dist/esm/ifx-card-text.entry.js +2 -2
  404. package/dist/esm/ifx-card-text.entry.js.map +1 -1
  405. package/dist/esm/ifx-card.entry.js +2 -2
  406. package/dist/esm/ifx-card.entry.js.map +1 -1
  407. package/dist/esm/ifx-checkbox-group.entry.js +2 -2
  408. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  409. package/dist/esm/ifx-checkbox.entry.js +13 -13
  410. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  411. package/dist/esm/ifx-chip.ifx-chip-item.ifx-pagination.entry.js.map +1 -1
  412. package/dist/esm/ifx-chip_3.entry.js +4 -4
  413. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  414. package/dist/esm/ifx-content-switcher-item.entry.js +1 -1
  415. package/dist/esm/ifx-content-switcher.entry.js +1 -1
  416. package/dist/esm/ifx-date-picker.entry.js +1 -1
  417. package/dist/esm/ifx-download.entry.js +1 -1
  418. package/dist/esm/ifx-dropdown-header.entry.js +2 -2
  419. package/dist/esm/ifx-dropdown-header.entry.js.map +1 -1
  420. package/dist/esm/ifx-dropdown-item.entry.js +2 -2
  421. package/dist/esm/ifx-dropdown-item.entry.js.map +1 -1
  422. package/dist/esm/ifx-dropdown-menu.entry.js +1 -1
  423. package/dist/esm/ifx-dropdown-separator.entry.js +1 -1
  424. package/dist/esm/ifx-dropdown-trigger-button.entry.js +1 -1
  425. package/dist/esm/ifx-dropdown-trigger.entry.js +1 -1
  426. package/dist/esm/ifx-dropdown.entry.js +1 -1
  427. package/dist/esm/ifx-faq.entry.js +1 -1
  428. package/dist/esm/ifx-file-upload.entry.js +2 -2
  429. package/dist/esm/ifx-file-upload.entry.js.map +1 -1
  430. package/dist/esm/ifx-filter-accordion.entry.js +1 -1
  431. package/dist/esm/ifx-filter-bar.entry.js +1 -1
  432. package/dist/esm/ifx-filter-search.entry.js +1 -1
  433. package/dist/esm/ifx-filter-type-group.entry.js +1 -1
  434. package/dist/esm/ifx-footer-column.entry.js +2 -2
  435. package/dist/esm/ifx-footer-column.entry.js.map +1 -1
  436. package/dist/esm/ifx-footer.entry.js +2 -2
  437. package/dist/esm/ifx-footer.entry.js.map +1 -1
  438. package/dist/esm/ifx-icon-button.entry.js +1 -1
  439. package/dist/esm/ifx-icon.entry.js +1 -1
  440. package/dist/esm/ifx-icons-preview.entry.js +1 -1
  441. package/dist/esm/ifx-indicator.entry.js +2 -2
  442. package/dist/esm/ifx-indicator.entry.js.map +1 -1
  443. package/dist/esm/ifx-link.entry.js +2 -2
  444. package/dist/esm/ifx-link.entry.js.map +1 -1
  445. package/dist/esm/ifx-list-entry.entry.js +1 -1
  446. package/dist/esm/ifx-list.entry.js +1 -1
  447. package/dist/esm/ifx-modal.entry.js +2 -2
  448. package/dist/esm/ifx-modal.entry.js.map +1 -1
  449. package/dist/esm/ifx-multiselect.ifx-multiselect-option.entry.js.map +1 -1
  450. package/dist/esm/ifx-multiselect_2.entry.js +2 -2
  451. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -1
  452. package/dist/esm/ifx-navbar-item.entry.js +1 -1
  453. package/dist/esm/ifx-navbar-profile.entry.js +1 -1
  454. package/dist/esm/ifx-navbar.entry.js +2 -2
  455. package/dist/esm/ifx-navbar.entry.js.map +1 -1
  456. package/dist/esm/ifx-notification.entry.js +2 -2
  457. package/dist/esm/ifx-notification.entry.js.map +1 -1
  458. package/dist/esm/ifx-overview-table.entry.js +1 -1
  459. package/dist/esm/ifx-progress-bar.entry.js +2 -2
  460. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  461. package/dist/esm/ifx-radio-button-group.entry.js +2 -2
  462. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  463. package/dist/esm/ifx-radio-button.entry.js +2 -2
  464. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  465. package/dist/esm/ifx-search-bar.entry.js +2 -2
  466. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  467. package/dist/esm/ifx-search-field.entry.js +2 -2
  468. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  469. package/dist/esm/ifx-segment.entry.js +2 -2
  470. package/dist/esm/ifx-segment.entry.js.map +1 -1
  471. package/dist/esm/ifx-segmented-control.entry.js +2 -2
  472. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  473. package/dist/esm/ifx-select.entry.js +2 -2
  474. package/dist/esm/ifx-select.entry.js.map +1 -1
  475. package/dist/esm/ifx-set-filter.entry.js +1 -1
  476. package/dist/esm/ifx-sidebar-item.entry.js +2 -2
  477. package/dist/esm/ifx-sidebar-item.entry.js.map +1 -1
  478. package/dist/esm/ifx-sidebar-title.entry.js +2 -2
  479. package/dist/esm/ifx-sidebar-title.entry.js.map +1 -1
  480. package/dist/esm/ifx-sidebar.entry.js +2 -2
  481. package/dist/esm/ifx-sidebar.entry.js.map +1 -1
  482. package/dist/esm/ifx-slider.entry.js +2 -2
  483. package/dist/esm/ifx-slider.entry.js.map +1 -1
  484. package/dist/esm/ifx-spinner.ifx-text-field.entry.js.map +1 -1
  485. package/dist/esm/ifx-spinner_2.entry.js +2 -2
  486. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  487. package/dist/esm/ifx-status.entry.js +2 -2
  488. package/dist/esm/ifx-status.entry.js.map +1 -1
  489. package/dist/esm/ifx-step.entry.js +2 -2
  490. package/dist/esm/ifx-step.entry.js.map +1 -1
  491. package/dist/esm/ifx-stepper.entry.js +2 -2
  492. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  493. package/dist/esm/ifx-switch.entry.js +2 -2
  494. package/dist/esm/ifx-switch.entry.js.map +1 -1
  495. package/dist/esm/ifx-tab.entry.js +1 -1
  496. package/dist/esm/ifx-table.entry.js +2 -2
  497. package/dist/esm/ifx-table.entry.js.map +1 -1
  498. package/dist/esm/ifx-tabs.entry.js +2 -2
  499. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  500. package/dist/esm/ifx-templates-ui.entry.js +1 -1
  501. package/dist/esm/ifx-textarea.entry.js +2 -2
  502. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  503. package/dist/esm/ifx-tooltip.entry.js +2 -2
  504. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  505. package/dist/esm/ifx-tree-view-item.entry.js +1 -1
  506. package/dist/esm/ifx-tree-view.entry.js +1 -1
  507. package/dist/esm/{index-PqnYwNKt.js → index-DtIEDtZ8.js} +3 -3
  508. package/dist/esm/index-DtIEDtZ8.js.map +1 -0
  509. package/dist/esm/infineon-design-system-stencil.js +3 -3
  510. package/dist/esm/loader.js +3 -3
  511. package/dist/infineon-design-system-stencil/ifx-accordion.ifx-accordion-item.entry.esm.js.map +1 -1
  512. package/dist/infineon-design-system-stencil/ifx-action-list-item.entry.esm.js.map +1 -1
  513. package/dist/infineon-design-system-stencil/ifx-action-list.entry.esm.js.map +1 -1
  514. package/dist/infineon-design-system-stencil/ifx-alert.ifx-template.entry.esm.js.map +1 -1
  515. package/dist/infineon-design-system-stencil/ifx-basic-table.entry.esm.js.map +1 -1
  516. package/dist/infineon-design-system-stencil/ifx-breadcrumb-item-label.entry.esm.js.map +1 -1
  517. package/dist/infineon-design-system-stencil/ifx-breadcrumb-item.entry.esm.js.map +1 -1
  518. package/dist/infineon-design-system-stencil/ifx-breadcrumb.entry.esm.js.map +1 -1
  519. package/dist/infineon-design-system-stencil/ifx-button.entry.esm.js.map +1 -1
  520. package/dist/infineon-design-system-stencil/ifx-card-headline.entry.esm.js.map +1 -1
  521. package/dist/infineon-design-system-stencil/ifx-card-links.entry.esm.js.map +1 -1
  522. package/dist/infineon-design-system-stencil/ifx-card-overline.entry.esm.js.map +1 -1
  523. package/dist/infineon-design-system-stencil/ifx-card-text.entry.esm.js.map +1 -1
  524. package/dist/infineon-design-system-stencil/ifx-card.entry.esm.js.map +1 -1
  525. package/dist/infineon-design-system-stencil/ifx-checkbox-group.entry.esm.js.map +1 -1
  526. package/dist/infineon-design-system-stencil/ifx-checkbox.entry.esm.js.map +1 -1
  527. package/dist/infineon-design-system-stencil/ifx-chip.ifx-chip-item.ifx-pagination.entry.esm.js.map +1 -1
  528. package/dist/infineon-design-system-stencil/ifx-dropdown-header.entry.esm.js.map +1 -1
  529. package/dist/infineon-design-system-stencil/ifx-dropdown-item.entry.esm.js.map +1 -1
  530. package/dist/infineon-design-system-stencil/ifx-file-upload.entry.esm.js.map +1 -1
  531. package/dist/infineon-design-system-stencil/ifx-footer-column.entry.esm.js.map +1 -1
  532. package/dist/infineon-design-system-stencil/ifx-footer.entry.esm.js.map +1 -1
  533. package/dist/infineon-design-system-stencil/ifx-indicator.entry.esm.js.map +1 -1
  534. package/dist/infineon-design-system-stencil/ifx-link.entry.esm.js.map +1 -1
  535. package/dist/infineon-design-system-stencil/ifx-modal.entry.esm.js.map +1 -1
  536. package/dist/infineon-design-system-stencil/ifx-multiselect.ifx-multiselect-option.entry.esm.js.map +1 -1
  537. package/dist/infineon-design-system-stencil/ifx-navbar.entry.esm.js.map +1 -1
  538. package/dist/infineon-design-system-stencil/ifx-notification.entry.esm.js.map +1 -1
  539. package/dist/infineon-design-system-stencil/ifx-progress-bar.entry.esm.js.map +1 -1
  540. package/dist/infineon-design-system-stencil/ifx-radio-button-group.entry.esm.js.map +1 -1
  541. package/dist/infineon-design-system-stencil/ifx-radio-button.entry.esm.js.map +1 -1
  542. package/dist/infineon-design-system-stencil/ifx-search-bar.entry.esm.js.map +1 -1
  543. package/dist/infineon-design-system-stencil/ifx-search-field.entry.esm.js.map +1 -1
  544. package/dist/infineon-design-system-stencil/ifx-segment.entry.esm.js.map +1 -1
  545. package/dist/infineon-design-system-stencil/ifx-segmented-control.entry.esm.js.map +1 -1
  546. package/dist/infineon-design-system-stencil/ifx-select.entry.esm.js.map +1 -1
  547. package/dist/infineon-design-system-stencil/ifx-sidebar-item.entry.esm.js.map +1 -1
  548. package/dist/infineon-design-system-stencil/ifx-sidebar-title.entry.esm.js.map +1 -1
  549. package/dist/infineon-design-system-stencil/ifx-sidebar.entry.esm.js.map +1 -1
  550. package/dist/infineon-design-system-stencil/ifx-slider.entry.esm.js.map +1 -1
  551. package/dist/infineon-design-system-stencil/ifx-spinner.ifx-text-field.entry.esm.js.map +1 -1
  552. package/dist/infineon-design-system-stencil/ifx-status.entry.esm.js.map +1 -1
  553. package/dist/infineon-design-system-stencil/ifx-step.entry.esm.js.map +1 -1
  554. package/dist/infineon-design-system-stencil/ifx-stepper.entry.esm.js.map +1 -1
  555. package/dist/infineon-design-system-stencil/ifx-switch.entry.esm.js.map +1 -1
  556. package/dist/infineon-design-system-stencil/ifx-table.entry.esm.js.map +1 -1
  557. package/dist/infineon-design-system-stencil/ifx-tabs.entry.esm.js.map +1 -1
  558. package/dist/infineon-design-system-stencil/ifx-textarea.entry.esm.js.map +1 -1
  559. package/dist/infineon-design-system-stencil/ifx-tooltip.entry.esm.js.map +1 -1
  560. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.css +1 -1
  561. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  562. package/dist/infineon-design-system-stencil/p-0100cbfb.entry.js +2 -0
  563. package/dist/infineon-design-system-stencil/{p-39561a49.entry.js.map → p-0100cbfb.entry.js.map} +1 -1
  564. package/dist/infineon-design-system-stencil/{p-9517d1b0.entry.js → p-0d4211db.entry.js} +2 -2
  565. package/dist/infineon-design-system-stencil/{p-39e3ee45.entry.js → p-0d9da371.entry.js} +2 -2
  566. package/dist/infineon-design-system-stencil/{p-39e3ee45.entry.js.map → p-0d9da371.entry.js.map} +1 -1
  567. package/dist/infineon-design-system-stencil/{p-060845fd.entry.js → p-0dbe2818.entry.js} +2 -2
  568. package/dist/infineon-design-system-stencil/p-13fed6df.entry.js +2 -0
  569. package/dist/infineon-design-system-stencil/{p-06d2f85b.entry.js.map → p-13fed6df.entry.js.map} +1 -1
  570. package/dist/infineon-design-system-stencil/p-1c2d0b17.entry.js +2 -0
  571. package/dist/infineon-design-system-stencil/{p-9deaa65e.entry.js.map → p-1c2d0b17.entry.js.map} +1 -1
  572. package/dist/infineon-design-system-stencil/p-1df9b181.entry.js +2 -0
  573. package/dist/infineon-design-system-stencil/{p-169f26ae.entry.js.map → p-1df9b181.entry.js.map} +1 -1
  574. package/dist/infineon-design-system-stencil/{p-d2b076fe.entry.js → p-213a4829.entry.js} +2 -2
  575. package/dist/infineon-design-system-stencil/{p-c6826c1e.entry.js → p-2151de2a.entry.js} +2 -2
  576. package/dist/infineon-design-system-stencil/{p-e6c4c4cf.entry.js → p-22a45c93.entry.js} +2 -2
  577. package/dist/infineon-design-system-stencil/p-240a4cb3.entry.js +2 -0
  578. package/dist/infineon-design-system-stencil/{p-1c1b1a1f.entry.js.map → p-240a4cb3.entry.js.map} +1 -1
  579. package/dist/infineon-design-system-stencil/{p-8df7755e.entry.js → p-242fc6b0.entry.js} +3 -3
  580. package/dist/infineon-design-system-stencil/{p-8df7755e.entry.js.map → p-242fc6b0.entry.js.map} +1 -1
  581. package/dist/infineon-design-system-stencil/p-249372a1.entry.js +2 -0
  582. package/dist/infineon-design-system-stencil/{p-2813423a.entry.js.map → p-249372a1.entry.js.map} +1 -1
  583. package/dist/infineon-design-system-stencil/{p-beaba918.entry.js → p-27808b00.entry.js} +2 -2
  584. package/dist/infineon-design-system-stencil/p-29d78bf2.entry.js +2 -0
  585. package/dist/infineon-design-system-stencil/{p-6a07106e.entry.js.map → p-29d78bf2.entry.js.map} +1 -1
  586. package/dist/infineon-design-system-stencil/{p-dcd0af23.entry.js → p-372fa9eb.entry.js} +2 -2
  587. package/dist/infineon-design-system-stencil/p-3cdd03ed.entry.js +2 -0
  588. package/dist/infineon-design-system-stencil/{p-fc359efa.entry.js.map → p-3cdd03ed.entry.js.map} +1 -1
  589. package/dist/infineon-design-system-stencil/p-3f29b8fd.entry.js +2 -0
  590. package/dist/infineon-design-system-stencil/{p-ca870353.entry.js.map → p-3f29b8fd.entry.js.map} +1 -1
  591. package/dist/infineon-design-system-stencil/p-3f3a5140.entry.js +2 -0
  592. package/dist/infineon-design-system-stencil/{p-f2c8c7a6.entry.js.map → p-3f3a5140.entry.js.map} +1 -1
  593. package/dist/infineon-design-system-stencil/p-4016e7cf.entry.js +2 -0
  594. package/dist/infineon-design-system-stencil/{p-35d2266a.entry.js.map → p-4016e7cf.entry.js.map} +1 -1
  595. package/dist/infineon-design-system-stencil/p-412f510b.entry.js +2 -0
  596. package/dist/infineon-design-system-stencil/{p-05f66dcb.entry.js.map → p-412f510b.entry.js.map} +1 -1
  597. package/dist/infineon-design-system-stencil/p-43943864.entry.js +2 -0
  598. package/dist/infineon-design-system-stencil/{p-58dd6f5c.entry.js.map → p-43943864.entry.js.map} +1 -1
  599. package/dist/infineon-design-system-stencil/p-453bd9bd.entry.js +2 -0
  600. package/dist/infineon-design-system-stencil/{p-a4dd2fe1.entry.js.map → p-453bd9bd.entry.js.map} +1 -1
  601. package/dist/infineon-design-system-stencil/p-4850e2df.entry.js +2 -0
  602. package/dist/infineon-design-system-stencil/{p-0929589d.entry.js.map → p-4850e2df.entry.js.map} +1 -1
  603. package/dist/infineon-design-system-stencil/{p-5e3d0ff0.entry.js → p-49eb8d14.entry.js} +2 -2
  604. package/dist/infineon-design-system-stencil/p-49eb8d14.entry.js.map +1 -0
  605. package/dist/infineon-design-system-stencil/p-4afddabf.entry.js +2 -0
  606. package/dist/infineon-design-system-stencil/p-4c846056.entry.js +2 -0
  607. package/dist/infineon-design-system-stencil/{p-380368ca.entry.js.map → p-4c846056.entry.js.map} +1 -1
  608. package/dist/infineon-design-system-stencil/{p-fcae5dc1.entry.js → p-54785004.entry.js} +2 -2
  609. package/dist/infineon-design-system-stencil/{p-fcae5dc1.entry.js.map → p-54785004.entry.js.map} +1 -1
  610. package/dist/infineon-design-system-stencil/p-550283fa.entry.js +2 -0
  611. package/dist/infineon-design-system-stencil/{p-bd8c6834.entry.js.map → p-550283fa.entry.js.map} +1 -1
  612. package/dist/infineon-design-system-stencil/{p-d4373c36.entry.js → p-55227732.entry.js} +2 -2
  613. package/dist/infineon-design-system-stencil/p-58552d96.entry.js +2 -0
  614. package/dist/infineon-design-system-stencil/{p-0be8f0c9.entry.js.map → p-58552d96.entry.js.map} +1 -1
  615. package/dist/infineon-design-system-stencil/{p-9b06df76.entry.js → p-5c673497.entry.js} +2 -2
  616. package/dist/infineon-design-system-stencil/p-6407c496.entry.js +2 -0
  617. package/dist/infineon-design-system-stencil/{p-ca312cbb.entry.js.map → p-6407c496.entry.js.map} +1 -1
  618. package/dist/infineon-design-system-stencil/p-6504f8d0.entry.js +2 -0
  619. package/dist/infineon-design-system-stencil/{p-ee04eb6e.entry.js.map → p-6504f8d0.entry.js.map} +1 -1
  620. package/dist/infineon-design-system-stencil/p-6af7d062.entry.js +2 -0
  621. package/dist/infineon-design-system-stencil/{p-f06b0ae3.entry.js.map → p-6af7d062.entry.js.map} +1 -1
  622. package/dist/infineon-design-system-stencil/p-6ceae9a3.entry.js +2 -0
  623. package/dist/infineon-design-system-stencil/{p-e7c656cd.entry.js.map → p-6ceae9a3.entry.js.map} +1 -1
  624. package/dist/infineon-design-system-stencil/{p-4669e01f.entry.js → p-7468590a.entry.js} +2 -2
  625. package/dist/infineon-design-system-stencil/p-765dd1b4.entry.js +2 -0
  626. package/dist/infineon-design-system-stencil/{p-760cfc7e.entry.js.map → p-765dd1b4.entry.js.map} +1 -1
  627. package/dist/infineon-design-system-stencil/{p-86945915.entry.js → p-76e88a63.entry.js} +2 -2
  628. package/dist/infineon-design-system-stencil/p-7910df8a.entry.js +2 -0
  629. package/dist/infineon-design-system-stencil/{p-dac7d817.entry.js.map → p-7910df8a.entry.js.map} +1 -1
  630. package/dist/infineon-design-system-stencil/{p-e3c11b6c.entry.js → p-83816596.entry.js} +2 -2
  631. package/dist/infineon-design-system-stencil/p-84735ae2.entry.js +2 -0
  632. package/dist/infineon-design-system-stencil/{p-2503d869.entry.js.map → p-84735ae2.entry.js.map} +1 -1
  633. package/dist/infineon-design-system-stencil/{p-e78ffc43.entry.js → p-8a9d3e04.entry.js} +2 -2
  634. package/dist/infineon-design-system-stencil/p-8ab64504.entry.js +2 -0
  635. package/dist/infineon-design-system-stencil/{p-6e115707.entry.js.map → p-8ab64504.entry.js.map} +1 -1
  636. package/dist/infineon-design-system-stencil/{p-2e172019.entry.js → p-8c44be53.entry.js} +2 -2
  637. package/dist/infineon-design-system-stencil/p-913a8693.entry.js +2 -0
  638. package/dist/infineon-design-system-stencil/{p-ce799b3d.entry.js.map → p-913a8693.entry.js.map} +1 -1
  639. package/dist/infineon-design-system-stencil/{p-ff4cc197.entry.js → p-91ce7e7b.entry.js} +2 -2
  640. package/dist/infineon-design-system-stencil/p-933da006.entry.js +2 -0
  641. package/dist/infineon-design-system-stencil/{p-97b2ac42.entry.js.map → p-933da006.entry.js.map} +1 -1
  642. package/dist/infineon-design-system-stencil/p-98c2e3a9.entry.js +2 -0
  643. package/dist/infineon-design-system-stencil/{p-edbfa46e.entry.js.map → p-98c2e3a9.entry.js.map} +1 -1
  644. package/dist/infineon-design-system-stencil/p-9ea43bb7.entry.js +2 -0
  645. package/dist/infineon-design-system-stencil/{p-5b571505.entry.js.map → p-9ea43bb7.entry.js.map} +1 -1
  646. package/dist/infineon-design-system-stencil/{p-PqnYwNKt.js → p-DtIEDtZ8.js} +2 -2
  647. package/dist/infineon-design-system-stencil/p-DtIEDtZ8.js.map +1 -0
  648. package/dist/infineon-design-system-stencil/p-a1c63832.entry.js +2 -0
  649. package/dist/infineon-design-system-stencil/{p-273907cb.entry.js.map → p-a1c63832.entry.js.map} +1 -1
  650. package/dist/infineon-design-system-stencil/p-ad702dcc.entry.js +2 -0
  651. package/dist/infineon-design-system-stencil/{p-5fb3eb8b.entry.js.map → p-ad702dcc.entry.js.map} +1 -1
  652. package/dist/infineon-design-system-stencil/p-ae513612.entry.js +2 -0
  653. package/dist/infineon-design-system-stencil/{p-4da5a2a5.entry.js.map → p-ae513612.entry.js.map} +1 -1
  654. package/dist/infineon-design-system-stencil/p-af1e0cb5.entry.js +2 -0
  655. package/dist/infineon-design-system-stencil/{p-f1ba768a.entry.js.map → p-af1e0cb5.entry.js.map} +1 -1
  656. package/dist/infineon-design-system-stencil/p-b23596f4.entry.js +2 -0
  657. package/dist/infineon-design-system-stencil/{p-4fba0543.entry.js.map → p-b23596f4.entry.js.map} +1 -1
  658. package/dist/infineon-design-system-stencil/p-b5db443a.entry.js +2 -0
  659. package/dist/infineon-design-system-stencil/{p-8fe80a72.entry.js.map → p-b5db443a.entry.js.map} +1 -1
  660. package/dist/infineon-design-system-stencil/{p-c578a728.entry.js → p-b5efb1d6.entry.js} +2 -2
  661. package/dist/infineon-design-system-stencil/{p-b7672947.entry.js → p-b969b2c0.entry.js} +2 -2
  662. package/dist/infineon-design-system-stencil/{p-45dad0d1.entry.js → p-ba4ee343.entry.js} +2 -2
  663. package/dist/infineon-design-system-stencil/{p-acd0cede.entry.js → p-bbd819a8.entry.js} +2 -2
  664. package/dist/infineon-design-system-stencil/p-c6fa6fd3.entry.js +2 -0
  665. package/dist/infineon-design-system-stencil/{p-3eeacac9.entry.js.map → p-c6fa6fd3.entry.js.map} +1 -1
  666. package/dist/infineon-design-system-stencil/{p-94dfe026.entry.js → p-c9d594e1.entry.js} +2 -2
  667. package/dist/infineon-design-system-stencil/p-cae1ea22.entry.js +2 -0
  668. package/dist/infineon-design-system-stencil/{p-dbc6ae20.entry.js.map → p-cae1ea22.entry.js.map} +1 -1
  669. package/dist/infineon-design-system-stencil/p-d3236a63.entry.js +2 -0
  670. package/dist/infineon-design-system-stencil/{p-3d77ef02.entry.js.map → p-d3236a63.entry.js.map} +1 -1
  671. package/dist/infineon-design-system-stencil/{p-116c853e.entry.js → p-d3a6bbf7.entry.js} +2 -2
  672. package/dist/infineon-design-system-stencil/{p-92ee6f73.entry.js → p-d4fea918.entry.js} +2 -2
  673. package/dist/infineon-design-system-stencil/p-d56ee584.entry.js +2 -0
  674. package/dist/infineon-design-system-stencil/{p-9ba730bb.entry.js.map → p-d56ee584.entry.js.map} +1 -1
  675. package/dist/infineon-design-system-stencil/p-dcc7240e.entry.js +2 -0
  676. package/dist/infineon-design-system-stencil/{p-d65a334c.entry.js.map → p-dcc7240e.entry.js.map} +1 -1
  677. package/dist/infineon-design-system-stencil/p-dd1b2b14.entry.js +2 -0
  678. package/dist/infineon-design-system-stencil/{p-d267f6d2.entry.js.map → p-dd1b2b14.entry.js.map} +1 -1
  679. package/dist/infineon-design-system-stencil/{p-0fb9f42b.entry.js → p-dfd77261.entry.js} +2 -2
  680. package/dist/infineon-design-system-stencil/{p-744c1c8e.entry.js → p-e7b72d33.entry.js} +2 -2
  681. package/dist/infineon-design-system-stencil/p-ee2ca575.entry.js +2 -0
  682. package/dist/infineon-design-system-stencil/{p-5367db9d.entry.js.map → p-ee2ca575.entry.js.map} +1 -1
  683. package/dist/infineon-design-system-stencil/{p-8ceb2ccc.entry.js → p-eed36710.entry.js} +2 -2
  684. package/dist/infineon-design-system-stencil/p-f5811026.entry.js +2 -0
  685. package/dist/infineon-design-system-stencil/{p-22e9960d.entry.js.map → p-f5811026.entry.js.map} +1 -1
  686. package/dist/infineon-design-system-stencil/p-f68887c5.entry.js +2 -0
  687. package/dist/infineon-design-system-stencil/{p-1d494424.entry.js → p-fd206fce.entry.js} +2 -2
  688. package/dist/infineon-design-system-stencil/p-fe373208.entry.js +2 -0
  689. package/dist/infineon-design-system-stencil/{p-2b4b2b06.entry.js.map → p-fe373208.entry.js.map} +1 -1
  690. package/dist/types/components/checkbox/checkbox.d.ts +0 -1
  691. package/package.json +1 -1
  692. package/dist/cjs/index-Dc5gCGlQ.js.map +0 -1
  693. package/dist/components/p-CROLVxZq.js.map +0 -1
  694. package/dist/esm/index-PqnYwNKt.js.map +0 -1
  695. package/dist/infineon-design-system-stencil/p-05f66dcb.entry.js +0 -2
  696. package/dist/infineon-design-system-stencil/p-06d2f85b.entry.js +0 -2
  697. package/dist/infineon-design-system-stencil/p-0929589d.entry.js +0 -2
  698. package/dist/infineon-design-system-stencil/p-0be8f0c9.entry.js +0 -2
  699. package/dist/infineon-design-system-stencil/p-169f26ae.entry.js +0 -2
  700. package/dist/infineon-design-system-stencil/p-1c1b1a1f.entry.js +0 -2
  701. package/dist/infineon-design-system-stencil/p-22e9960d.entry.js +0 -2
  702. package/dist/infineon-design-system-stencil/p-2503d869.entry.js +0 -2
  703. package/dist/infineon-design-system-stencil/p-273907cb.entry.js +0 -2
  704. package/dist/infineon-design-system-stencil/p-2813423a.entry.js +0 -2
  705. package/dist/infineon-design-system-stencil/p-2b4b2b06.entry.js +0 -2
  706. package/dist/infineon-design-system-stencil/p-307e6a72.entry.js +0 -2
  707. package/dist/infineon-design-system-stencil/p-35d2266a.entry.js +0 -2
  708. package/dist/infineon-design-system-stencil/p-380368ca.entry.js +0 -2
  709. package/dist/infineon-design-system-stencil/p-39561a49.entry.js +0 -2
  710. package/dist/infineon-design-system-stencil/p-3d77ef02.entry.js +0 -2
  711. package/dist/infineon-design-system-stencil/p-3eeacac9.entry.js +0 -2
  712. package/dist/infineon-design-system-stencil/p-4da5a2a5.entry.js +0 -2
  713. package/dist/infineon-design-system-stencil/p-4fba0543.entry.js +0 -2
  714. package/dist/infineon-design-system-stencil/p-5367db9d.entry.js +0 -2
  715. package/dist/infineon-design-system-stencil/p-58dd6f5c.entry.js +0 -2
  716. package/dist/infineon-design-system-stencil/p-5b571505.entry.js +0 -2
  717. package/dist/infineon-design-system-stencil/p-5e3d0ff0.entry.js.map +0 -1
  718. package/dist/infineon-design-system-stencil/p-5fb3eb8b.entry.js +0 -2
  719. package/dist/infineon-design-system-stencil/p-6a07106e.entry.js +0 -2
  720. package/dist/infineon-design-system-stencil/p-6e115707.entry.js +0 -2
  721. package/dist/infineon-design-system-stencil/p-760cfc7e.entry.js +0 -2
  722. package/dist/infineon-design-system-stencil/p-8fe80a72.entry.js +0 -2
  723. package/dist/infineon-design-system-stencil/p-97b2ac42.entry.js +0 -2
  724. package/dist/infineon-design-system-stencil/p-9ba730bb.entry.js +0 -2
  725. package/dist/infineon-design-system-stencil/p-9deaa65e.entry.js +0 -2
  726. package/dist/infineon-design-system-stencil/p-PqnYwNKt.js.map +0 -1
  727. package/dist/infineon-design-system-stencil/p-a4dd2fe1.entry.js +0 -2
  728. package/dist/infineon-design-system-stencil/p-bd8c6834.entry.js +0 -2
  729. package/dist/infineon-design-system-stencil/p-ca312cbb.entry.js +0 -2
  730. package/dist/infineon-design-system-stencil/p-ca870353.entry.js +0 -2
  731. package/dist/infineon-design-system-stencil/p-ce799b3d.entry.js +0 -2
  732. package/dist/infineon-design-system-stencil/p-d267f6d2.entry.js +0 -2
  733. package/dist/infineon-design-system-stencil/p-d65a334c.entry.js +0 -2
  734. package/dist/infineon-design-system-stencil/p-dac7d817.entry.js +0 -2
  735. package/dist/infineon-design-system-stencil/p-dbc6ae20.entry.js +0 -2
  736. package/dist/infineon-design-system-stencil/p-e7c656cd.entry.js +0 -2
  737. package/dist/infineon-design-system-stencil/p-edbfa46e.entry.js +0 -2
  738. package/dist/infineon-design-system-stencil/p-ee04eb6e.entry.js +0 -2
  739. package/dist/infineon-design-system-stencil/p-f06b0ae3.entry.js +0 -2
  740. package/dist/infineon-design-system-stencil/p-f1ba768a.entry.js +0 -2
  741. package/dist/infineon-design-system-stencil/p-f2c8c7a6.entry.js +0 -2
  742. package/dist/infineon-design-system-stencil/p-fb92000d.entry.js +0 -2
  743. package/dist/infineon-design-system-stencil/p-fc359efa.entry.js +0 -2
  744. /package/dist/infineon-design-system-stencil/{p-9517d1b0.entry.js.map → p-0d4211db.entry.js.map} +0 -0
  745. /package/dist/infineon-design-system-stencil/{p-060845fd.entry.js.map → p-0dbe2818.entry.js.map} +0 -0
  746. /package/dist/infineon-design-system-stencil/{p-d2b076fe.entry.js.map → p-213a4829.entry.js.map} +0 -0
  747. /package/dist/infineon-design-system-stencil/{p-c6826c1e.entry.js.map → p-2151de2a.entry.js.map} +0 -0
  748. /package/dist/infineon-design-system-stencil/{p-e6c4c4cf.entry.js.map → p-22a45c93.entry.js.map} +0 -0
  749. /package/dist/infineon-design-system-stencil/{p-beaba918.entry.js.map → p-27808b00.entry.js.map} +0 -0
  750. /package/dist/infineon-design-system-stencil/{p-dcd0af23.entry.js.map → p-372fa9eb.entry.js.map} +0 -0
  751. /package/dist/infineon-design-system-stencil/{p-307e6a72.entry.js.map → p-4afddabf.entry.js.map} +0 -0
  752. /package/dist/infineon-design-system-stencil/{p-d4373c36.entry.js.map → p-55227732.entry.js.map} +0 -0
  753. /package/dist/infineon-design-system-stencil/{p-9b06df76.entry.js.map → p-5c673497.entry.js.map} +0 -0
  754. /package/dist/infineon-design-system-stencil/{p-4669e01f.entry.js.map → p-7468590a.entry.js.map} +0 -0
  755. /package/dist/infineon-design-system-stencil/{p-86945915.entry.js.map → p-76e88a63.entry.js.map} +0 -0
  756. /package/dist/infineon-design-system-stencil/{p-e3c11b6c.entry.js.map → p-83816596.entry.js.map} +0 -0
  757. /package/dist/infineon-design-system-stencil/{p-e78ffc43.entry.js.map → p-8a9d3e04.entry.js.map} +0 -0
  758. /package/dist/infineon-design-system-stencil/{p-2e172019.entry.js.map → p-8c44be53.entry.js.map} +0 -0
  759. /package/dist/infineon-design-system-stencil/{p-ff4cc197.entry.js.map → p-91ce7e7b.entry.js.map} +0 -0
  760. /package/dist/infineon-design-system-stencil/{p-c578a728.entry.js.map → p-b5efb1d6.entry.js.map} +0 -0
  761. /package/dist/infineon-design-system-stencil/{p-b7672947.entry.js.map → p-b969b2c0.entry.js.map} +0 -0
  762. /package/dist/infineon-design-system-stencil/{p-45dad0d1.entry.js.map → p-ba4ee343.entry.js.map} +0 -0
  763. /package/dist/infineon-design-system-stencil/{p-acd0cede.entry.js.map → p-bbd819a8.entry.js.map} +0 -0
  764. /package/dist/infineon-design-system-stencil/{p-94dfe026.entry.js.map → p-c9d594e1.entry.js.map} +0 -0
  765. /package/dist/infineon-design-system-stencil/{p-116c853e.entry.js.map → p-d3a6bbf7.entry.js.map} +0 -0
  766. /package/dist/infineon-design-system-stencil/{p-92ee6f73.entry.js.map → p-d4fea918.entry.js.map} +0 -0
  767. /package/dist/infineon-design-system-stencil/{p-0fb9f42b.entry.js.map → p-dfd77261.entry.js.map} +0 -0
  768. /package/dist/infineon-design-system-stencil/{p-744c1c8e.entry.js.map → p-e7b72d33.entry.js.map} +0 -0
  769. /package/dist/infineon-design-system-stencil/{p-8ceb2ccc.entry.js.map → p-eed36710.entry.js.map} +0 -0
  770. /package/dist/infineon-design-system-stencil/{p-fb92000d.entry.js.map → p-f68887c5.entry.js.map} +0 -0
  771. /package/dist/infineon-design-system-stencil/{p-1d494424.entry.js.map → p-fd206fce.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["CustomNoRowsOverlay","init","params","this","eGui","document","createElement","innerHTML","noRowsMessageFunc","getGui","refresh","_params","CustomLoadingOverlay","tableCss","Table","constructor","hostRef","columnDefs","rowData","rowHeight","tableHeight","variant","gridInitialized","componentWillLoad","uniqueKey","Math","floor","random","setColsAndRows","setGridOptions","gridOptions","headerHeight","defaultColDef","resizable","autoHeight","suppressCellFocus","enableCellTextSelection","suppressDragLeaveHidesColumns","suppressRowHoverHighlight","onFirstDataRendered","loadingOverlayComponent","noRowsOverlayComponent","noRowsOverlayComponentParams","Date","toLocaleTimeString","icons","sortAscending","sortDescending","sortUnSort","rowDragManaged","some","col","dndSource","animateRows","rows","cols","JSON","parse","err","console","error","Array","isArray","getRowData","getColData","api","sizeColumnsToFit","componentWillUpdate","gridApi","setGridOption","componentDidLoad","container","isNestedInIfxComponent","host","framework","detectFramework","trackComponent","createGrid","defaultMinWidth","getClassNames","classNames","getTableStyle","height","render","h","Host","key","id","class","style","ref","el"],"sources":["src/components/table-basic-version/customNoRowsOverlay.ts","src/components/table-basic-version/customLoadingOverlay.ts","src/components/table-basic-version/table.scss?tag=ifx-basic-table","src/components/table-basic-version/table.tsx"],"sourcesContent":["import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomNoRowsOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(params: ICellRendererParams & { noRowsMessageFunc: () => string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `\n <div role=\"presentation\" class=\"ag-overlay-loading-center\" >\n ${params.noRowsMessageFunc()}\n </div>\n `;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomLoadingOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(_params: ICellRendererParams & { loadingMessage: string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `<div class=\"ag-overlay-loading-center\" role=\"presentation\">\n<ifx-spinner></ifx-spinner>\n </div>`;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n@import \"~ag-grid-community/styles/ag-grid.css\";\n// @import \"~ag-grid-community/styles/ag-theme-alpine.css\";\n\n// :host {\n// --table-height: '200px';\n// /* Default value */\n// } ag-ltr .ag-header-cell-resize\n\n.zebra {\n & .ag-row-odd {\n background-color: tokens.$ifxColorEngineering100!important;\n }\n\n & .ag-row {\n border-bottom: none!important;\n }\n}\n\n.ag-header-viewport {\n background-color: tokens.$ifxColorEngineering200!important;\n}\n\n.table-wrapper {\n overflow-x: auto;\n width: 100%;\n}\n\n.table-wrapper .ag-root-wrapper-body {\n height: auto !important;\n min-height: 100px !important;\n min-width: 100px;\n}\n\n.ifx-ag-grid {\n display: grid;\n height: 100%;\n width: 100%;\n min-width: 100px;\n padding-bottom: tokens.$ifxSpace100;\n overflow-x: auto;\n}\n\n\n.ifx-ag-grid .ag-header-cell::after {\n outline: none !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.ifx-ag-grid .ag-header-cell:focus {\n outline: none !important;\n}\n\n.ifx-ag-grid *:not(.ag-header-cell):focus {\n outline: none;\n}\n\n.ifx-ag-grid .ag-header-cell:not(:last-child)::before {\n content: '';\n position: absolute;\n right: 0;\n top: calc(50% - 12px);\n height: 24px;\n width: 1px;\n background-color: tokens.$ifxColorEngineering300;\n}\n\n.ag-overlay-loading-center {\n border: none;\n background: none;\n border-radius: none;\n box-shadow: none;\n}\n\n\n.ag-root-wrapper {\n border: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.ag-header {\n background-color: tokens.$ifxColorEngineering100;\n border-bottom: none;\n\n &.ag-header-active {\n outline: none !important;\n border-color: #0A8276 !important;\n }\n}\n\n.ag-header-cell {\n padding-left: 16px;\n padding-right: 16px;\n gap: 4px;\n}\n\n\n.ag-header-cell-focus {\n border: none !important;\n outline: none !important;\n}\n\n.ag-header-cell-text {\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n color: tokens.$ifxColorBaseBlack;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n}\n\n.ag-row-focus {\n background-color: inherit !important;\n /* Reset the hover color to the row's original color */\n}\n\n.ag-row-hover {\n background-color: tokens.$ifxColorBaseWhite !important; //inherit !important;\n /* Reset the hover color to the row's original color */\n}\n\n\n.ag-cell-focus {\n border: none !important;\n outline: none !important;\n background-color: inherit !important;\n}\n\n\n\n.ag-row {\n background-color: tokens.$ifxColorBaseWhite;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n z-index: 1; //ensure the stacking order when used inside js frameworks\n}\n\n.ag-row-odd {\n background-color: tokens.$ifxColorBaseWhite;\n}\n\n.ag-cell {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n white-space: pre-line;\n min-height: 40px; \n height: auto;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: 0px;\n vertical-align: bottom;\n line-height: 12px;\n}\n\n.unsort-icon-custom-color {\n color: tokens.$ifxColorEngineering400;\n}\n\n// Mobile optimization for horizontal scrolling\n@media (max-width: tokens.$ifxBreakpointM) {\n .table-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .ifx-ag-grid {\n min-width: 400px;\n }\n\n .ag-root-wrapper {\n min-width: 100%;\n }\n\n .ag-header-cell,\n .ag-cell {\n min-width: 100px;\n white-space: nowrap;\n }\n\n .table-wrapper {\n margin-bottom: tokens.$ifxSpace200;\n }\n}\n","import { Component, h, Element, Host, Prop, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { createGrid, FirstDataRenderedEvent, GridApi, GridOptions } from 'ag-grid-community';\nimport { CustomNoRowsOverlay } from './customNoRowsOverlay';\nimport { CustomLoadingOverlay } from './customLoadingOverlay';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-basic-table',\n styleUrl: 'table.scss',\n shadow: false // only works with shadowdom off because we are using an external library\n})\nexport class Table {\n @State() gridOptions: GridOptions;\n @Prop() cols: any[] | string;\n @Prop() rows: any[] | string;\n @State() columnDefs: any[] = [];\n @State() rowData: any[] = [];\n @Prop() rowHeight: string = 'default';\n @Prop() tableHeight: string = 'auto';\n @Prop() variant: string = 'default'\n @State() uniqueKey: string;\n @Element() host: HTMLElement;\n \n private container: HTMLDivElement;\n private gridApi: GridApi; \n private gridInitialized = false;\n\n componentWillLoad() {\n this.uniqueKey = `unique-${Math.floor(Math.random() * 1000000)}`;\n this.setColsAndRows(); //needed?\n this.setGridOptions();\n }\n\n setGridOptions() {\n this.gridOptions = {\n rowHeight: this.rowHeight === 'default' ? 40 : 32,\n headerHeight: 40,\n defaultColDef: {\n resizable: true,\n autoHeight: true,\n },\n suppressCellFocus: false,\n enableCellTextSelection: true,\n suppressDragLeaveHidesColumns: true,\n suppressRowHoverHighlight: true,\n onFirstDataRendered: this.onFirstDataRendered,\n columnDefs: this.columnDefs,\n rowData: this.rowData,\n loadingOverlayComponent: CustomLoadingOverlay,\n noRowsOverlayComponent: CustomNoRowsOverlay,\n noRowsOverlayComponentParams: {\n noRowsMessageFunc: () =>\n 'No rows found at: ' + new Date().toLocaleTimeString(),\n },\n icons: {\n sortAscending: '<ifx-icon icon=\"arrow-triangle-up-16\"></ifx-icon>',\n sortDescending: '<ifx-icon icon=\"arrow-triangle-down-16\"></ifx-icon>',\n sortUnSort: '<a class=\"unsort-icon-custom-color\"><ifx-icon icon=\"arrow-triangle-vertikal-16\"></ifx-icon></a>',\n },\n rowDragManaged: this.columnDefs.some((col) => col.dndSource === true) ? true : false,\n animateRows: this.columnDefs.some((col) => col.dndSource === true) ? true : false,\n };\n }\n\n setColsAndRows() {\n if (typeof this.rows === 'string' && typeof this.cols === 'string') {\n try {\n if(this.cols) {\n this.columnDefs = JSON.parse(this.cols);\n }\n if(this.rows) {\n this.rowData = JSON.parse(this.rows);\n }\n } catch (err) {\n console.error('Failed to parse input:', err);\n }\n } else if ((Array.isArray(this.rows) || typeof this.rows === 'object') && (Array.isArray(this.cols) || typeof this.cols === 'object')) {\n this.columnDefs = this.cols;\n this.rowData = this.rows;\n } else {\n console.error('Unexpected value for cols and rows:', this.rows, this.cols);\n }\n }\n\n getRowData() {\n let rows: any[] = [];\n if (typeof this.rows === 'string') {\n try {\n if(this.rows) {\n rows = JSON.parse(this.rows);\n }\n } catch (err) {\n console.error('Failed to parse input:', err);\n }\n } else if (Array.isArray(this.rows) || typeof this.rows === 'object') {\n rows = this.rows;\n } else {\n console.error('Unexpected value for rows: ', this.rows);\n }\n\n return rows;\n }\n\n getColData() {\n let cols: any[] = [];\n\n if (typeof this.cols === 'string') {\n try {\n if(this.cols) { \n cols = JSON.parse(this.cols);\n }\n } catch (err) {\n console.error('Failed to parse input:', err);\n }\n } else if (Array.isArray(this.cols) || typeof this.cols === 'object') {\n cols = this.cols;\n } else {\n console.error('Unexpected value for cols: ', this.cols);\n }\n return cols;\n }\n\n onFirstDataRendered(params: FirstDataRenderedEvent) {\n params.api.sizeColumnsToFit();\n }\n\n componentWillUpdate() {\n this.setColsAndRows();\n this.gridOptions.columnDefs = this.columnDefs;\n this.gridOptions.rowData = this.rowData;\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n this.gridApi.setGridOption('columnDefs', this.columnDefs);\n }\n }\n\n async componentDidLoad() {\n if (this.container && !this.gridInitialized) {\n if(!isNestedInIfxComponent(this.host)) { \n const framework = detectFramework();\n trackComponent('ifx-basic-table', await framework)\n }\n this.gridApi = createGrid(this.container, this.gridOptions);\n if (this.gridApi) {\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n this.gridApi.setGridOption('columnDefs', this.getColData());\n this.gridApi.setGridOption('rowData', this.getRowData());\n this.gridInitialized = true; \n }\n }\n }\n\n getClassNames() {\n return classNames(\n this.tableHeight === 'auto' && 'table-wrapper ag-root-wrapper-body',\n 'table-wrapper',\n );\n }\n\n getTableStyle() {\n if (this.tableHeight !== 'auto') {\n return {\n height: this.tableHeight,\n };\n }\n return {};\n }\n\n render() {\n return (\n <Host>\n <div id=\"table-wrapper\" class={this.getClassNames()}>\n <div id={`ifxTable-${this.uniqueKey}`} class={`ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : \"\"}`} style={this.getTableStyle()} ref={(el) => (this.container = el)}></div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CustomNoRowsOverlay","init","params","this","eGui","document","createElement","innerHTML","noRowsMessageFunc","getGui","refresh","_params","CustomLoadingOverlay","tableCss","Table","constructor","hostRef","columnDefs","rowData","rowHeight","tableHeight","variant","gridInitialized","componentWillLoad","uniqueKey","Math","floor","random","setColsAndRows","setGridOptions","gridOptions","headerHeight","defaultColDef","resizable","autoHeight","suppressCellFocus","enableCellTextSelection","suppressDragLeaveHidesColumns","suppressRowHoverHighlight","onFirstDataRendered","loadingOverlayComponent","noRowsOverlayComponent","noRowsOverlayComponentParams","Date","toLocaleTimeString","icons","sortAscending","sortDescending","sortUnSort","rowDragManaged","some","col","dndSource","animateRows","rows","cols","JSON","parse","err","console","error","Array","isArray","getRowData","getColData","api","sizeColumnsToFit","componentWillUpdate","gridApi","setGridOption","componentDidLoad","container","isNestedInIfxComponent","host","framework","detectFramework","trackComponent","createGrid","defaultMinWidth","getClassNames","classNames","getTableStyle","height","render","h","Host","key","id","class","style","ref","el"],"sources":["src/components/table-basic-version/customNoRowsOverlay.ts","src/components/table-basic-version/customLoadingOverlay.ts","src/components/table-basic-version/table.scss?tag=ifx-basic-table","src/components/table-basic-version/table.tsx"],"sourcesContent":["import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomNoRowsOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(params: ICellRendererParams & { noRowsMessageFunc: () => string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `\n <div role=\"presentation\" class=\"ag-overlay-loading-center\" >\n ${params.noRowsMessageFunc()}\n </div>\n `;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\nexport class CustomLoadingOverlay implements ICellRendererComp {\n eGui!: HTMLElement;\n\n init(_params: ICellRendererParams & { loadingMessage: string }) {\n this.eGui = document.createElement('div');\n this.eGui.innerHTML = `<div class=\"ag-overlay-loading-center\" role=\"presentation\">\n<ifx-spinner></ifx-spinner>\n </div>`;\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(_params: ICellRendererParams): boolean {\n return false;\n }\n}","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n@import \"~ag-grid-community/styles/ag-grid.css\";\n// @import \"~ag-grid-community/styles/ag-theme-alpine.css\";\n\n// :host {\n// --table-height: '200px';\n// /* Default value */\n// } ag-ltr .ag-header-cell-resize\n\n.zebra {\n & .ag-row-odd {\n background-color: tokens.$ifxColorEngineering100!important;\n }\n\n & .ag-row {\n border-bottom: none!important;\n }\n}\n\n.ag-header-viewport {\n background-color: tokens.$ifxColorEngineering200!important;\n}\n\n.table-wrapper {\n overflow-x: auto;\n width: 100%;\n}\n\n.table-wrapper .ag-root-wrapper-body {\n height: auto !important;\n min-height: 100px !important;\n min-width: 100px;\n}\n\n.ifx-ag-grid {\n display: grid;\n height: 100%;\n width: 100%;\n min-width: 100px;\n padding-bottom: tokens.$ifxSpace100;\n overflow-x: auto;\n}\n\n\n.ifx-ag-grid .ag-header-cell::after {\n outline: none !important;\n border: none !important;\n box-shadow: none !important;\n}\n\n.ifx-ag-grid .ag-header-cell:focus {\n outline: none !important;\n}\n\n.ifx-ag-grid *:not(.ag-header-cell):focus {\n outline: none;\n}\n\n.ifx-ag-grid .ag-header-cell:not(:last-child)::before {\n content: '';\n position: absolute;\n right: 0;\n top: calc(50% - 12px);\n height: 24px;\n width: 1px;\n background-color: tokens.$ifxColorEngineering300;\n}\n\n.ag-overlay-loading-center {\n border: none;\n background: none;\n border-radius: none;\n box-shadow: none;\n}\n\n\n.ag-root-wrapper {\n border: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.ag-header {\n background-color: tokens.$ifxColorEngineering100;\n border-bottom: none;\n\n &.ag-header-active {\n outline: none !important;\n border-color: #0A8276 !important;\n }\n}\n\n.ag-header-cell {\n padding-left: 16px;\n padding-right: 16px;\n gap: 4px;\n}\n\n\n.ag-header-cell-focus {\n border: none !important;\n outline: none !important;\n}\n\n.ag-header-cell-text {\n font-size: 13px;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n color: tokens.$ifxColorBaseBlack;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n}\n\n.ag-row-focus {\n background-color: inherit !important;\n /* Reset the hover color to the row's original color */\n}\n\n.ag-row-hover {\n background-color: tokens.$ifxColorBaseWhite !important; //inherit !important;\n /* Reset the hover color to the row's original color */\n}\n\n\n.ag-cell-focus {\n border: none !important;\n outline: none !important;\n background-color: inherit !important;\n}\n\n\n\n.ag-row {\n background-color: tokens.$ifxColorBaseWhite;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n font-size: 13px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n z-index: 1; //ensure the stacking order when used inside js frameworks\n}\n\n.ag-row-odd {\n background-color: tokens.$ifxColorBaseWhite;\n}\n\n.ag-cell {\n display: flex;\n padding-left: 16px;\n padding-right: 16px;\n white-space: pre-line;\n min-height: 40px; \n height: auto;\n}\n\n.ag-ltr .ag-sort-indicator-icon {\n padding-left: 0px;\n vertical-align: bottom;\n line-height: 12px;\n}\n\n.unsort-icon-custom-color {\n color: tokens.$ifxColorEngineering400;\n}\n\n// Mobile optimization for horizontal scrolling\n@media (max-width: tokens.$ifxBreakpointM) {\n .table-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .ifx-ag-grid {\n min-width: 400px;\n }\n\n .ag-root-wrapper {\n min-width: 100%;\n }\n\n .ag-header-cell,\n .ag-cell {\n min-width: 100px;\n white-space: nowrap;\n }\n\n .table-wrapper {\n margin-bottom: tokens.$ifxSpace200;\n }\n}\n","import { Component, h, Element, Host, Prop, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { createGrid, FirstDataRenderedEvent, GridApi, GridOptions } from 'ag-grid-community';\nimport { CustomNoRowsOverlay } from './customNoRowsOverlay';\nimport { CustomLoadingOverlay } from './customLoadingOverlay';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-basic-table',\n styleUrl: 'table.scss',\n shadow: false // only works with shadowdom off because we are using an external library\n})\nexport class Table {\n @State() gridOptions: GridOptions;\n @Prop() cols: any[] | string;\n @Prop() rows: any[] | string;\n @State() columnDefs: any[] = [];\n @State() rowData: any[] = [];\n @Prop() rowHeight: string = 'default';\n @Prop() tableHeight: string = 'auto';\n @Prop() variant: string = 'default'\n @State() uniqueKey: string;\n @Element() host: HTMLElement;\n \n private container: HTMLDivElement;\n private gridApi: GridApi; \n private gridInitialized = false;\n\n componentWillLoad() {\n this.uniqueKey = `unique-${Math.floor(Math.random() * 1000000)}`;\n this.setColsAndRows(); //needed?\n this.setGridOptions();\n }\n\n setGridOptions() {\n this.gridOptions = {\n rowHeight: this.rowHeight === 'default' ? 40 : 32,\n headerHeight: 40,\n defaultColDef: {\n resizable: true,\n autoHeight: true,\n },\n suppressCellFocus: false,\n enableCellTextSelection: true,\n suppressDragLeaveHidesColumns: true,\n suppressRowHoverHighlight: true,\n onFirstDataRendered: this.onFirstDataRendered,\n columnDefs: this.columnDefs,\n rowData: this.rowData,\n loadingOverlayComponent: CustomLoadingOverlay,\n noRowsOverlayComponent: CustomNoRowsOverlay,\n noRowsOverlayComponentParams: {\n noRowsMessageFunc: () =>\n 'No rows found at: ' + new Date().toLocaleTimeString(),\n },\n icons: {\n sortAscending: '<ifx-icon icon=\"arrow-triangle-up-16\"></ifx-icon>',\n sortDescending: '<ifx-icon icon=\"arrow-triangle-down-16\"></ifx-icon>',\n sortUnSort: '<a class=\"unsort-icon-custom-color\"><ifx-icon icon=\"arrow-triangle-vertikal-16\"></ifx-icon></a>',\n },\n rowDragManaged: this.columnDefs.some((col) => col.dndSource === true) ? true : false,\n animateRows: this.columnDefs.some((col) => col.dndSource === true) ? true : false,\n };\n }\n\n setColsAndRows() {\n if (typeof this.rows === 'string' && typeof this.cols === 'string') {\n try {\n if(this.cols) {\n this.columnDefs = JSON.parse(this.cols);\n }\n if(this.rows) {\n this.rowData = JSON.parse(this.rows);\n }\n } catch (err) {\n console.error('Failed to parse input:', err);\n }\n } else if ((Array.isArray(this.rows) || typeof this.rows === 'object') && (Array.isArray(this.cols) || typeof this.cols === 'object')) {\n this.columnDefs = this.cols;\n this.rowData = this.rows;\n } else {\n console.error('Unexpected value for cols and rows:', this.rows, this.cols);\n }\n }\n\n getRowData() {\n let rows: any[] = [];\n if (typeof this.rows === 'string') {\n try {\n if(this.rows) {\n rows = JSON.parse(this.rows);\n }\n } catch (err) {\n console.error('Failed to parse input:', err);\n }\n } else if (Array.isArray(this.rows) || typeof this.rows === 'object') {\n rows = this.rows;\n } else {\n console.error('Unexpected value for rows: ', this.rows);\n }\n\n return rows;\n }\n\n getColData() {\n let cols: any[] = [];\n\n if (typeof this.cols === 'string') {\n try {\n if(this.cols) { \n cols = JSON.parse(this.cols);\n }\n } catch (err) {\n console.error('Failed to parse input:', err);\n }\n } else if (Array.isArray(this.cols) || typeof this.cols === 'object') {\n cols = this.cols;\n } else {\n console.error('Unexpected value for cols: ', this.cols);\n }\n return cols;\n }\n\n onFirstDataRendered(params: FirstDataRenderedEvent) {\n params.api.sizeColumnsToFit();\n }\n\n componentWillUpdate() {\n this.setColsAndRows();\n this.gridOptions.columnDefs = this.columnDefs;\n this.gridOptions.rowData = this.rowData;\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n this.gridApi.setGridOption('columnDefs', this.columnDefs);\n }\n }\n\n async componentDidLoad() {\n if (this.container && !this.gridInitialized) {\n if(!isNestedInIfxComponent(this.host)) { \n const framework = detectFramework();\n trackComponent('ifx-basic-table', await framework)\n }\n this.gridApi = createGrid(this.container, this.gridOptions);\n if (this.gridApi) {\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n this.gridApi.setGridOption('columnDefs', this.getColData());\n this.gridApi.setGridOption('rowData', this.getRowData());\n this.gridInitialized = true; \n }\n }\n }\n\n getClassNames() {\n return classNames(\n this.tableHeight === 'auto' && 'table-wrapper ag-root-wrapper-body',\n 'table-wrapper',\n );\n }\n\n getTableStyle() {\n if (this.tableHeight !== 'auto') {\n return {\n height: this.tableHeight,\n };\n }\n return {};\n }\n\n render() {\n return (\n <Host>\n <div id=\"table-wrapper\" class={this.getClassNames()}>\n <div id={`ifxTable-${this.uniqueKey}`} class={`ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : \"\"}`} style={this.getTableStyle()} ref={(el) => (this.container = el)}></div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as e,c as t,h as o,d as i,a as n}from"./p-DtIEDtZ8.js";import{d as a,t as s}from"./p-DcmcuUOA.js";import{i as r}from"./p-Bw2fh5LT.js";function c(e,t,o,i=20,n=0){const a=[];if(n>=i){return a}const s=e=>{const a=e.assignedNodes().filter((e=>e.nodeType===1));if(a.length>0){const e=a[0].parentElement;return c(e,t,o,i,n+1)}return[]};const r=Array.from(e.children||[]);for(const e of r){if(t(e)){continue}if(o(e)){a.push(e)}if(e.shadowRoot!=null){a.push(...c(e.shadowRoot,t,o,i,n+1))}else if(e.tagName==="SLOT"){a.push(...s(e))}else{a.push(...c(e,t,o,i,n+1))}}return a}function d(e){return e.hasAttribute("hidden")||e.hasAttribute("aria-hidden")&&e.getAttribute("aria-hidden")!=="false"||e.style.display===`none`||e.style.opacity===`0`||e.style.visibility===`hidden`||e.style.visibility===`collapse`}function l(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&e.getAttribute("aria-disabled")!=="false"}function h(e){if(e.getAttribute("tabindex")==="-1"||d(e)||l(e)){return false}return e.hasAttribute("tabindex")||(e instanceof HTMLAnchorElement||e instanceof HTMLAreaElement)&&e.hasAttribute("href")||e instanceof HTMLButtonElement||e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e instanceof HTMLIFrameElement}function f(e,t,o){const i=e.animate(t,Object.assign(Object.assign({},o),{fill:"both"}));i.addEventListener("finish",(()=>{i.commitStyles();i.cancel()}));return i}const b={easing:"cubic-bezier(0.390, 0.575, 0.565, 1.000)"};const m={fadeIn:[Object.assign(Object.assign({offset:0},b),{opacity:0}),Object.assign(Object.assign({offset:1},b),{opacity:1})],fadeOut:[Object.assign(Object.assign({offset:0},b),{opacity:1}),Object.assign(Object.assign({offset:1},b),{opacity:0})]};const u=":root{--ifx-font-family:\"Source Sans 3\", 'Arial, sans-serif'}:host{display:block}.modal-container{display:none;justify-content:center;align-items:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1060;overflow-y:auto;font-family:var(--ifx-font-family)}.modal-container.open{display:flex}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#1D1D1D;opacity:0.5;z-index:0}.modal-content-container{position:absolute;display:flex;justify-content:center;width:90%;min-height:218px;background-color:#fff;border-radius:0;box-shadow:0 2px 10px rgba(0, 0, 0, 0.1);box-sizing:border-box;align-items:stretch}.modal-content-container.no-overflow{overflow:hidden}.modal-content-container.no-overflow .modal-body{overflow-y:auto}@media screen and (min-width: 768px){.modal-content-container{width:540px;min-height:132px}.modal-content-container.m,.modal-content-container.l,.modal-content-container.s{width:90%}}@media screen and (min-width: 1024px){.modal-content-container.s{width:47vw}.modal-content-container.m{width:63vw}.modal-content-container.l{width:80%}}.modal-content{display:flex;flex-direction:column;width:100%;max-height:90vh}.modal-icon-container{display:flex;align-items:center;justify-content:center;width:32px;background-color:#0A8276;align-self:stretch}.modal-icon-container.danger{background-color:#CD002F}.modal-icon-container ifx-icon{color:#FFFFFF}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;min-height:76px;max-height:105px;box-sizing:border-box;border-radius:1px 1px 0px 0px;border-bottom:1px solid #EEEDED}.modal-caption{max-height:56px;display:-webkit-box;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.modal-header h2{margin:0;font-weight:600;font-size:1.25rem;line-height:28px}.modal-header button{background:none;border:none;font-size:1.5em;padding:0;cursor:pointer}.modal-close-button{align-self:flex-start;margin-right:-8px}.modal-body{padding:16px 24px;min-height:56px;box-sizing:border-box;flex:1}.modal-footer.buttons-present ::slotted(*){display:flex;justify-content:flex-end;gap:16px;padding:16px 24px 32px 16px}.modal-border{display:flex;align-items:center;justify-content:center;width:100%;font-size:1.5em;flex-grow:1}.modal-border.primary{background-color:#0A8276}.modal-border.secondary{background-color:#575352}.modal-border.danger{background-color:#CD002F}.modal-border.success{background-color:#4CA460}.modal-border.warning{background-color:#E16B25}.modal-border.orange{background-color:#E16B25}.modal-border.ocean{background-color:#0A8276}.modal-border.grey{background-color:#575352}.modal-border.grey-200{background-color:#EEEDED}.modal-border.red{background-color:#CD002F}.modal-border.green{background-color:#4CA460}.modal-border.berry{background-color:#9C216E}";const p=class{constructor(o){e(this,o);this.ifxOpen=t(this,"ifxOpen",7);this.ifxClose=t(this,"ifxClose",7);this.opened=false;this.showModal=this.opened||false;this.caption="Modal Title";this.closeOnOverlayClick=true;this.variant="default";this.size="s";this.alertIcon="";this.okButtonLabel="OK";this.cancelButtonLabel="Cancel";this.slotButtonsPresent=false;this.showCloseButton=true;this.focusableElements=[];this.handleResize=()=>{clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout((()=>{if(this.showModal){this.handleComponentOverflow()}}),100)};this.handleTopFocus=()=>{this.attemptFocus(this.getLastFocusableElement())};this.handleBottomFocus=()=>{this.attemptFocus(this.getFirstFocusableElement())};this.handleKeypress=e=>{if(!this.showModal){return}if(e.key==="Escape"){this.doBeforeClose("ESCAPE_KEY")}}}async componentDidLoad(){if(!r(this.hostElement)){const e=a();s("ifx-modal",await e)}this.focusableElements=c(this.hostElement.shadowRoot,(e=>d(e)||e.matches("[data-focus-trap-edge]")),h);window.addEventListener("resize",this.handleResize)}disconnectedCallback(){window.removeEventListener("resize",this.handleResize)}componentWillRender(){if(this.showModal){this.handleComponentOverflow()}}async handleComponentOverflow(){const e=this.hostElement.shadowRoot.querySelector(".modal-content-container");if(this.showModal&&await this.isModalContentContainerHeightReachedViewport()){e.classList.add("no-overflow")}else if(e===null||e===void 0?void 0:e.classList.contains("no-overflow")){e===null||e===void 0?void 0:e.classList.remove("no-overflow")}}getFirstFocusableElement(){return this.focusableElements[0]}getLastFocusableElement(){return this.focusableElements[this.focusableElements.length-1]}attemptFocus(e){if(e==null){setTimeout((()=>{this.closeButton.focus()}));return}setTimeout((()=>{e.focus()}),0)}open(){this.showModal=true;try{const e=f(this.modalContainer,m.fadeIn,{duration:200});e.addEventListener("finish",(()=>{setTimeout((()=>{var e,t;(e=this.getLastFocusableElement())===null||e===void 0?void 0:e.focus();(t=this.getLastFocusableElement())===null||t===void 0?void 0:t.blur()}),0);this.ifxOpen.emit()}));this.hostElement.addEventListener("keydown",this.handleKeypress)}catch(e){this.ifxOpen.emit()}}close(){try{const e=f(this.modalContainer,m.fadeOut,{duration:200});e.addEventListener("finish",(()=>{this.showModal=false;this.ifxClose.emit()}));this.hostElement.removeEventListener("keydown",this.handleKeypress)}catch(e){this.showModal=false;this.ifxClose.emit()}}doBeforeClose(e){const t=[];t.push(e);const o=t.some((e=>e.defaultPrevented));if(!o){this.opened=false}}openedChanged(e){if(e===true){this.open()}else{this.close()}}handleOverlayClick(){if(this.closeOnOverlayClick){this.doBeforeClose("BACKDROP")}}handleContentUpdate(e){const t=e.target;const o=t.assignedNodes();if(o.length>0){o.forEach((e=>{if(e.observer){e.observer.disconnect();delete e.observer}const t=new MutationObserver(((e,t)=>{for(let t of e){if(t.type==="childList"){if(this.showModal){this.handleComponentOverflow()}}}}));t.observe(e,{attributes:true,childList:true,subtree:true});e.observer=t}))}}handleButtonsSlotChange(e){var t;if(((t=e.currentTarget.assignedElements()[0])===null||t===void 0?void 0:t.childElementCount)>0){this.slotButtonsPresent=true}else{this.slotButtonsPresent=false}}isModalContentContainerHeightReachedViewport(){return new Promise((e=>{setTimeout((()=>{const t=this.hostElement.shadowRoot.querySelector(".modal-content");const o=t.offsetHeight;const i=window.innerHeight;const n=3;e(o+n>=i*.9)}),100)}))}render(){const e=this.variant!=="default";return o(i,{key:"8927c0356e8b8987acf9310b559c1568c6de4f37"},o("div",{key:"df0f8b0be2953a4974ca739120c7b7495c52fc1f",ref:e=>this.modalContainer=e,class:`modal-container ${this.showModal?"open":""}`},o("div",{key:"8e6d35ddf390200573b38c6b2057bdf382838428",class:"modal-overlay",onClick:()=>this.handleOverlayClick()}),o("div",{key:"324587e244e5519f7e0d755cbf1b43b1ca998ce7","data-focus-trap-edge":true,onFocus:this.handleTopFocus,tabindex:"0"}),o("div",{key:"11cb80157d6ae5e0c57b786c0a295722b6c94d85",class:`modal-content-container ${this.size}`,role:"dialog","aria-modal":"true","aria-label":this.captionAriaLabel},e?o("div",{class:`modal-icon-container ${this.variant==="alert-brand"?"":"danger"}`},this.alertIcon?o("ifx-icon",{icon:this.alertIcon}):null):null,o("div",{key:"ec6865df02bd71ac1b8513e147bf48bab522479b",class:"modal-content"},o("div",{key:"c9591304fc6ee447a60d16eea4c5017903397691",class:"modal-header"},o("h2",{key:"de9241b726711243ca5101ce3e49250f743c994b",class:"modal-caption"},this.caption),this.showCloseButton&&o("ifx-icon-button",{key:"561e1f6783efc4f54f422856cc4cb36c89503529",class:"modal-close-button",ref:e=>this.closeButton=e,icon:"cross-16",variant:"tertiary",onClick:()=>this.doBeforeClose("CLOSE_BUTTON")})),o("div",{key:"12788241b957ea98433872238c15a8d2ad9c13f6",class:"modal-body"},o("slot",{key:"1dab9a551e1dbe7e90334869282ef0c6597104a7",name:"content",onSlotchange:e=>this.handleContentUpdate(e)})),o("div",{key:"215c3be2970c6191a97a878d8fb97d5c8a2a40e6",class:`modal-footer ${this.slotButtonsPresent?"buttons-present":""}`},o("slot",{key:"221bf1f5442baa42a6e098505baa32b5aa343ba0",name:"buttons",onSlotchange:e=>this.handleButtonsSlotChange(e)})))),o("div",{key:"516f850b612376cde60c4cff6f7e04927bda5e7e","data-focus-trap-edge":true,onFocus:this.handleBottomFocus,tabindex:"0"})))}get hostElement(){return n(this)}static get watchers(){return{opened:["openedChanged"]}}};p.style=u;export{p as ifx_modal};
2
+ //# sourceMappingURL=p-550283fa.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["queryShadowRoot","root","skipNode","isMatch","maxDepth","depth","matches","traverseSlot","$slot","assignedNodes","filter","node","nodeType","length","$slotParent","parentElement","children","Array","from","$child","push","shadowRoot","tagName","isHidden","$elem","hasAttribute","getAttribute","style","display","opacity","visibility","isDisabled","isFocusable","HTMLAnchorElement","HTMLAreaElement","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLIFrameElement","animationTo","element","keyframes","options","animated","animate","Object","assign","fill","addEventListener","commitStyles","cancel","keyframeDefaults","easing","KEYFRAMES","fadeIn","offset","fadeOut","modalCss","IfxModal","constructor","hostRef","this","opened","showModal","caption","closeOnOverlayClick","variant","size","alertIcon","okButtonLabel","cancelButtonLabel","slotButtonsPresent","showCloseButton","focusableElements","handleResize","clearTimeout","resizeTimeout","setTimeout","handleComponentOverflow","handleTopFocus","attemptFocus","getLastFocusableElement","handleBottomFocus","getFirstFocusableElement","handleKeypress","event","key","doBeforeClose","componentDidLoad","isNestedInIfxComponent","hostElement","framework","detectFramework","trackComponent","el","window","disconnectedCallback","removeEventListener","componentWillRender","modalContentContainer","querySelector","isModalContentContainerHeightReachedViewport","classList","add","contains","remove","closeButton","focus","open","anim","modalContainer","duration","_a","_b","blur","ifxOpen","emit","err","close","ifxClose","trigger","triggers","prevented","some","defaultPrevented","openedChanged","newValue","handleOverlayClick","handleContentUpdate","e","slotElement","target","nodes","forEach","observer","disconnect","MutationObserver","mutationsList","_","mutation","type","observe","attributes","childList","subtree","handleButtonsSlotChange","currentTarget","assignedElements","childElementCount","Promise","resolve","modalContent","modalContentHeight","offsetHeight","viewportHeight","innerHeight","extraMarginForEdgeBrowser","render","isAlertVariant","h","Host","ref","class","onClick","onFocus","tabindex","role","captionAriaLabel","icon","name","onSlotchange"],"sources":["src/global/utils/focus-trap.ts","src/global/utils/animation.ts","src/components/modal/modal.scss?tag=ifx-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["/**\n * Copy/pasted from https://github.com/andreasbm/focus-trap\n */\n\n/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * We need to traverse each child-depth one at a time because if an element should be skipped\n * (for example because it is hidden) we need to skip all of it's children. If we use querySelectorAll(\"*\")\n * the information of whether the children is within a hidden parent is lost.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(\n root: ShadowRoot | HTMLElement,\n skipNode: ($elem: HTMLElement) => boolean,\n isMatch: ($elem: HTMLElement) => boolean,\n maxDepth: number = 20,\n depth: number = 0\n): HTMLElement[] {\n const matches: HTMLElement[] = [];\n\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return matches;\n }\n\n // Traverses a slot element\n const traverseSlot = ($slot: HTMLSlotElement) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot\n .assignedNodes()\n .filter((node) => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n const $slotParent = assignedNodes[0].parentElement!;\n return queryShadowRoot(\n $slotParent,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n );\n }\n\n return [];\n };\n\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []) as HTMLElement[];\n for (const $child of children) {\n // Check if the element and its descendants should be skipped\n if (skipNode($child)) {\n // console.log('-- SKIP', $child);\n continue;\n }\n\n // console.log('$child', $child);\n\n // If the element matches we always add it\n if (isMatch($child)) {\n matches.push($child);\n }\n\n if ($child.shadowRoot != null) {\n // If the element has a shadow root we need to traverse it\n matches.push(\n ...queryShadowRoot(\n $child.shadowRoot,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n )\n );\n } else if ($child.tagName === 'SLOT') {\n // If the child is a slot we need to traverse each assigned node\n matches.push(...traverseSlot($child as HTMLSlotElement));\n } else {\n // Traverse the children of the element\n matches.push(\n ...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1)\n );\n }\n }\n\n return matches;\n}\n\n/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('hidden') ||\n ($elem.hasAttribute('aria-hidden') &&\n $elem.getAttribute('aria-hidden') !== 'false') ||\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n $elem.style.display === `none` ||\n $elem.style.opacity === `0` ||\n $elem.style.visibility === `hidden` ||\n $elem.style.visibility === `collapse`\n );\n\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n // || $elem.offsetParent == null;\n}\n\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('disabled') ||\n ($elem.hasAttribute('aria-disabled') &&\n $elem.getAttribute('aria-disabled') !== 'false')\n );\n}\n\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem: HTMLElement): boolean {\n // Discard elements that are removed from the tab order.\n if (\n $elem.getAttribute('tabindex') === '-1' ||\n isHidden($elem) ||\n isDisabled($elem)\n ) {\n return false;\n }\n\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute('tabindex') ||\n // Anchor tags or area tags with a href set\n (($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) &&\n $elem.hasAttribute('href')) ||\n // Form elements which are not disabled\n $elem instanceof HTMLButtonElement ||\n $elem instanceof HTMLInputElement ||\n $elem instanceof HTMLTextAreaElement ||\n $elem instanceof HTMLSelectElement ||\n // IFrames\n $elem instanceof HTMLIFrameElement\n );\n}","export function animationTo(\n element: HTMLElement,\n keyframes: Keyframe | Keyframe[],\n options?: KeyframeAnimationOptions\n) {\n const animated = element.animate(keyframes, { ...options, fill: 'both' });\n animated.addEventListener('finish', () => {\n // @ts-ignore\n animated.commitStyles();\n animated.cancel();\n });\n\n return animated;\n}\n\nconst keyframeDefaults = {\n easing: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n};\n\nexport const KEYFRAMES = {\n fadeIn: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 0,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 1,\n },\n ],\n fadeOut: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 1,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 0,\n },\n ],\n};","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: block;\n}\n\n.modal-container {\n display: none;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1060;\n overflow-y: auto;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n}\n\n.modal-container.open {\n display: flex;\n}\n\n.modal-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: tokens.$ifxColorBaseBlack;\n opacity: 0.5;\n z-index: 0;\n}\n\n.modal-content-container {\n position: absolute;\n display: flex;\n justify-content: center;\n width: 90%;\n min-height: 218px;\n background-color: #fff;\n border-radius: tokens.$ifxBorderRadiusNone;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n \n //overflow: hidden;\n\n box-sizing: border-box;\n align-items: stretch;\n}\n\n.modal-content-container {\n &.no-overflow { \n overflow: hidden;\n & .modal-body { \n overflow-y: auto;\n }\n }\n}\n\n/* Add desktop size here */\n@media screen and (min-width: 768px) {\n .modal-content-container {\n width: 540px;\n min-height: 132px;\n\n &.m,\n &.l,\n &.s {\n width: 90%;\n }\n }\n}\n\n@media screen and (min-width: 1024px) {\n .modal-content-container {\n\n &.s {\n width: 47vw;\n }\n\n &.m {\n width: 63vw;\n }\n\n &.l {\n width: 80%;\n }\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: 90vh;\n}\n\n.modal-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n background-color: tokens.$ifxColorOcean500;\n align-self: stretch;\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n & ifx-icon {\n color: tokens.$ifxColorBaseWhite;\n }\n}\n\n.modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n min-height: 76px;\n max-height: 105px;\n box-sizing: border-box;\n border-radius: 1px 1px 0px 0px;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.modal-caption {\n max-height: 56px;\n display: -webkit-box;\n overflow: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; \n}\n\n.modal-header h2 {\n margin: 0;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n}\n\n.modal-header button {\n background: none;\n border: none;\n font-size: 1.5em;\n padding: 0;\n cursor: pointer;\n}\n\n.modal-close-button {\n align-self: flex-start;\n margin-right: -8px;\n}\n\n.modal-body {\n padding: 16px 24px;\n min-height: 56px;\n box-sizing: border-box;\n flex: 1;\n \n //overflow-y: auto;\n}\n\n.modal-footer.buttons-present ::slotted(*){\n display: flex;\n justify-content: flex-end;\n gap: 16px;\n padding: 16px 24px 32px 16px\n}\n\n.modal-border {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n font-size: 1.5em;\n flex-grow: 1;\n\n &.primary {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.secondary {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.success {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.warning {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.orange {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.ocean {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.grey {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.grey-200 {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.red {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.green {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.berry {\n background-color: tokens.$ifxColorBerry500;\n }\n}","import { Component, Prop, Element, State, Event, Host, EventEmitter, h, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { queryShadowRoot, isHidden, isFocusable } from '../../global/utils/focus-trap';\nimport { animationTo, KEYFRAMES } from '../../global/utils/animation';\n \ntype CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP';\n\nexport interface BeforeCloseEventDetail {\n trigger: CloseEventTrigger;\n}\n@Component({\n tag: 'ifx-modal',\n styleUrl: 'modal.scss',\n shadow: true\n})\nexport class IfxModal {\n @Prop({ reflect: true, mutable: true }) opened?: boolean = false;\n @State() showModal: boolean = this.opened || false;\n\n @Prop() caption: string = 'Modal Title';\n @Prop() captionAriaLabel: string | null;\n\n @Prop() closeOnOverlayClick: boolean = true;\n\n @Event() ifxOpen: EventEmitter;\n @Event() ifxClose: EventEmitter;\n\n @Prop() variant: 'default' | 'alert-brand' | 'alert-danger' = 'default';\n\n @Prop() size: 's' | 'm' | 'l' = 's';\n\n @Prop() alertIcon: string = '';\n @Prop() okButtonLabel: string = 'OK';\n @Prop() cancelButtonLabel: string = 'Cancel';\n @Prop() closeButtonAriaLabel: string | null;\n\n @Element() hostElement: HTMLElement;\n\n @State() slotButtonsPresent: boolean = false;\n\n @Prop() showCloseButton: boolean = true;\n\n private modalContainer: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n private closeButton: HTMLButtonElement | HTMLIfxIconButtonElement;\n private resizeTimeout: ReturnType<typeof setTimeout>;\n\n handleResize = () => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n if (this.showModal) {\n this.handleComponentOverflow();\n }\n }, 100);\n};\n\n async componentDidLoad() {\n if(!isNestedInIfxComponent(this.hostElement)) { \n const framework = detectFramework();\n trackComponent('ifx-modal', await framework)\n }\n // Query all focusable elements and store them in `focusableElements`.\n // Needed for the \"focus trap\" functionality.\n this.focusableElements = queryShadowRoot(\n this.hostElement.shadowRoot,\n (el) => isHidden(el) || el.matches('[data-focus-trap-edge]'),\n isFocusable\n );\n window.addEventListener('resize', this.handleResize);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize);\n}\n\n componentWillRender() { \n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n\n async handleComponentOverflow() { \n const modalContentContainer = this.hostElement.shadowRoot.querySelector('.modal-content-container');\n if (this.showModal && await this.isModalContentContainerHeightReachedViewport()) {\n modalContentContainer.classList.add('no-overflow')\n } else if (modalContentContainer?.classList.contains('no-overflow')) {\n modalContentContainer?.classList.remove('no-overflow')\n }\n }\n\n getFirstFocusableElement(): HTMLElement | null {\n return this.focusableElements[0];\n }\n\n getLastFocusableElement(): HTMLElement | null {\n return this.focusableElements[this.focusableElements.length - 1];\n }\n\n handleTopFocus = () => {\n this.attemptFocus(this.getLastFocusableElement());\n };\n\n handleBottomFocus = () => {\n this.attemptFocus(this.getFirstFocusableElement());\n };\n\n attemptFocus(element: HTMLElement | null) {\n if (element == null) {\n setTimeout(() => { //wait until DOM is fully loaded\n this.closeButton.focus();\n },);\n return;\n }\n\n setTimeout(() => { //wait until DOM is fully loaded\n element.focus();\n }, 0);\n }\n\n open() {\n this.showModal = true;\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeIn, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n // Setting focus on last item and removing immediately\n // so, on tab press first element is focused\n setTimeout(() => {\n this.getLastFocusableElement()?.focus();\n this.getLastFocusableElement()?.blur();\n }, 0);\n\n this.ifxOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxOpen.emit();\n }\n }\n\n close() {\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeOut, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n this.showModal = false;\n this.ifxClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxClose.emit();\n }\n }\n\n handleKeypress = (event: KeyboardEvent) => {\n if (!this.showModal) {\n return;\n }\n if (event.key === 'Escape') {\n this.doBeforeClose('ESCAPE_KEY');\n }\n };\n\n doBeforeClose(trigger: CloseEventTrigger) {\n const triggers = [];\n triggers.push(trigger);\n const prevented = triggers.some((event) => event.defaultPrevented);\n if (!prevented) {\n this.opened = false;\n }\n }\n\n @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n handleContentUpdate(e) {\n const slotElement = e.target;\n const nodes = slotElement.assignedNodes();\n if (nodes.length > 0) {\n nodes.forEach(node => {\n if (node.observer) {\n node.observer.disconnect();\n delete node.observer;\n }\n const observer = new MutationObserver((mutationsList, _) => {\n for (let mutation of mutationsList) {\n if (mutation.type === 'childList') {\n if (this.showModal) {\n this.handleComponentOverflow();\n }\n }\n }\n });\n observer.observe(node, { attributes: true, childList: true, subtree: true });\n node.observer = observer;\n });\n }\n }\n\n handleButtonsSlotChange(e) {\n if (e.currentTarget.assignedElements()[0]?.childElementCount > 0) {\n this.slotButtonsPresent = true;\n } else {\n this.slotButtonsPresent = false;\n }\n }\n\n isModalContentContainerHeightReachedViewport() {\n //Adding timeout for proper height detection on Edge browser\n return new Promise(resolve => {\n setTimeout(() => {\n const modalContent = this.hostElement.shadowRoot.querySelector('.modal-content') as HTMLElement;\n const modalContentHeight = modalContent.offsetHeight;\n const viewportHeight = window.innerHeight;\n const extraMarginForEdgeBrowser = 3;\n resolve(modalContentHeight + extraMarginForEdgeBrowser >= viewportHeight * 0.9);\n }, 100);\n });\n}\n\n\n render() {\n const isAlertVariant = this.variant !== 'default';\n return (\n <Host>\n <div\n ref={(el) => (this.modalContainer = el)}\n class={`modal-container ${this.showModal ? 'open' : ''}`}\n >\n <div\n class=\"modal-overlay\"\n onClick={() => this.handleOverlayClick()}\n ></div>\n <div\n data-focus-trap-edge\n onFocus={this.handleTopFocus}\n tabindex=\"0\"\n ></div>\n <div\n class={`modal-content-container ${this.size}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.captionAriaLabel}>\n {isAlertVariant ? (\n <div class={`modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}`}>\n {this.alertIcon ? <ifx-icon icon={this.alertIcon} /> : null}\n </div>\n ) : null}\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-caption\">{this.caption}</h2>\n {\n this.showCloseButton &&\n <ifx-icon-button class='modal-close-button' ref={(el) => (this.closeButton = el)} icon=\"cross-16\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON')}>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" onSlotchange={(e) => this.handleContentUpdate(e)} />\n </div>\n <div class={`modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}`}>\n <slot name=\"buttons\" onSlotchange={(e) => this.handleButtonsSlotChange(e)}>\n </slot>\n </div>\n </div>\n </div>\n <div\n data-focus-trap-edge\n onFocus={this.handleBottomFocus}\n tabindex=\"0\"\n ></div>\n </div>\n </Host>\n\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["queryShadowRoot","root","skipNode","isMatch","maxDepth","depth","matches","traverseSlot","$slot","assignedNodes","filter","node","nodeType","length","$slotParent","parentElement","children","Array","from","$child","push","shadowRoot","tagName","isHidden","$elem","hasAttribute","getAttribute","style","display","opacity","visibility","isDisabled","isFocusable","HTMLAnchorElement","HTMLAreaElement","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLIFrameElement","animationTo","element","keyframes","options","animated","animate","Object","assign","fill","addEventListener","commitStyles","cancel","keyframeDefaults","easing","KEYFRAMES","fadeIn","offset","fadeOut","modalCss","IfxModal","constructor","hostRef","this","opened","showModal","caption","closeOnOverlayClick","variant","size","alertIcon","okButtonLabel","cancelButtonLabel","slotButtonsPresent","showCloseButton","focusableElements","handleResize","clearTimeout","resizeTimeout","setTimeout","handleComponentOverflow","handleTopFocus","attemptFocus","getLastFocusableElement","handleBottomFocus","getFirstFocusableElement","handleKeypress","event","key","doBeforeClose","componentDidLoad","isNestedInIfxComponent","hostElement","framework","detectFramework","trackComponent","el","window","disconnectedCallback","removeEventListener","componentWillRender","modalContentContainer","querySelector","isModalContentContainerHeightReachedViewport","classList","add","contains","remove","closeButton","focus","open","anim","modalContainer","duration","_a","_b","blur","ifxOpen","emit","err","close","ifxClose","trigger","triggers","prevented","some","defaultPrevented","openedChanged","newValue","handleOverlayClick","handleContentUpdate","e","slotElement","target","nodes","forEach","observer","disconnect","MutationObserver","mutationsList","_","mutation","type","observe","attributes","childList","subtree","handleButtonsSlotChange","currentTarget","assignedElements","childElementCount","Promise","resolve","modalContent","modalContentHeight","offsetHeight","viewportHeight","innerHeight","extraMarginForEdgeBrowser","render","isAlertVariant","h","Host","ref","class","onClick","onFocus","tabindex","role","captionAriaLabel","icon","name","onSlotchange"],"sources":["src/global/utils/focus-trap.ts","src/global/utils/animation.ts","src/components/modal/modal.scss?tag=ifx-modal&encapsulation=shadow","src/components/modal/modal.tsx"],"sourcesContent":["/**\n * Copy/pasted from https://github.com/andreasbm/focus-trap\n */\n\n/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * We need to traverse each child-depth one at a time because if an element should be skipped\n * (for example because it is hidden) we need to skip all of it's children. If we use querySelectorAll(\"*\")\n * the information of whether the children is within a hidden parent is lost.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(\n root: ShadowRoot | HTMLElement,\n skipNode: ($elem: HTMLElement) => boolean,\n isMatch: ($elem: HTMLElement) => boolean,\n maxDepth: number = 20,\n depth: number = 0\n): HTMLElement[] {\n const matches: HTMLElement[] = [];\n\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return matches;\n }\n\n // Traverses a slot element\n const traverseSlot = ($slot: HTMLSlotElement) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot\n .assignedNodes()\n .filter((node) => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n const $slotParent = assignedNodes[0].parentElement!;\n return queryShadowRoot(\n $slotParent,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n );\n }\n\n return [];\n };\n\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []) as HTMLElement[];\n for (const $child of children) {\n // Check if the element and its descendants should be skipped\n if (skipNode($child)) {\n // console.log('-- SKIP', $child);\n continue;\n }\n\n // console.log('$child', $child);\n\n // If the element matches we always add it\n if (isMatch($child)) {\n matches.push($child);\n }\n\n if ($child.shadowRoot != null) {\n // If the element has a shadow root we need to traverse it\n matches.push(\n ...queryShadowRoot(\n $child.shadowRoot,\n skipNode,\n isMatch,\n maxDepth,\n depth + 1\n )\n );\n } else if ($child.tagName === 'SLOT') {\n // If the child is a slot we need to traverse each assigned node\n matches.push(...traverseSlot($child as HTMLSlotElement));\n } else {\n // Traverse the children of the element\n matches.push(\n ...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1)\n );\n }\n }\n\n return matches;\n}\n\n/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('hidden') ||\n ($elem.hasAttribute('aria-hidden') &&\n $elem.getAttribute('aria-hidden') !== 'false') ||\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n $elem.style.display === `none` ||\n $elem.style.opacity === `0` ||\n $elem.style.visibility === `hidden` ||\n $elem.style.visibility === `collapse`\n );\n\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n // || $elem.offsetParent == null;\n}\n\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem: HTMLElement): boolean {\n return (\n $elem.hasAttribute('disabled') ||\n ($elem.hasAttribute('aria-disabled') &&\n $elem.getAttribute('aria-disabled') !== 'false')\n );\n}\n\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem: HTMLElement): boolean {\n // Discard elements that are removed from the tab order.\n if (\n $elem.getAttribute('tabindex') === '-1' ||\n isHidden($elem) ||\n isDisabled($elem)\n ) {\n return false;\n }\n\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute('tabindex') ||\n // Anchor tags or area tags with a href set\n (($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) &&\n $elem.hasAttribute('href')) ||\n // Form elements which are not disabled\n $elem instanceof HTMLButtonElement ||\n $elem instanceof HTMLInputElement ||\n $elem instanceof HTMLTextAreaElement ||\n $elem instanceof HTMLSelectElement ||\n // IFrames\n $elem instanceof HTMLIFrameElement\n );\n}","export function animationTo(\n element: HTMLElement,\n keyframes: Keyframe | Keyframe[],\n options?: KeyframeAnimationOptions\n) {\n const animated = element.animate(keyframes, { ...options, fill: 'both' });\n animated.addEventListener('finish', () => {\n // @ts-ignore\n animated.commitStyles();\n animated.cancel();\n });\n\n return animated;\n}\n\nconst keyframeDefaults = {\n easing: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n};\n\nexport const KEYFRAMES = {\n fadeIn: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 0,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 1,\n },\n ],\n fadeOut: [\n {\n offset: 0,\n ...keyframeDefaults,\n opacity: 1,\n },\n {\n offset: 1,\n ...keyframeDefaults,\n opacity: 0,\n },\n ],\n};","@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: block;\n}\n\n.modal-container {\n display: none;\n justify-content: center;\n align-items: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1060;\n overflow-y: auto;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n}\n\n.modal-container.open {\n display: flex;\n}\n\n.modal-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: tokens.$ifxColorBaseBlack;\n opacity: 0.5;\n z-index: 0;\n}\n\n.modal-content-container {\n position: absolute;\n display: flex;\n justify-content: center;\n width: 90%;\n min-height: 218px;\n background-color: #fff;\n border-radius: tokens.$ifxBorderRadiusNone;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n \n //overflow: hidden;\n\n box-sizing: border-box;\n align-items: stretch;\n}\n\n.modal-content-container {\n &.no-overflow { \n overflow: hidden;\n & .modal-body { \n overflow-y: auto;\n }\n }\n}\n\n/* Add desktop size here */\n@media screen and (min-width: 768px) {\n .modal-content-container {\n width: 540px;\n min-height: 132px;\n\n &.m,\n &.l,\n &.s {\n width: 90%;\n }\n }\n}\n\n@media screen and (min-width: 1024px) {\n .modal-content-container {\n\n &.s {\n width: 47vw;\n }\n\n &.m {\n width: 63vw;\n }\n\n &.l {\n width: 80%;\n }\n }\n}\n\n.modal-content {\n display: flex;\n flex-direction: column;\n width: 100%;\n max-height: 90vh;\n}\n\n.modal-icon-container {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n background-color: tokens.$ifxColorOcean500;\n align-self: stretch;\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n & ifx-icon {\n color: tokens.$ifxColorBaseWhite;\n }\n}\n\n.modal-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 24px;\n min-height: 76px;\n max-height: 105px;\n box-sizing: border-box;\n border-radius: 1px 1px 0px 0px;\n border-bottom: 1px solid tokens.$ifxColorEngineering200;\n}\n\n.modal-caption {\n max-height: 56px;\n display: -webkit-box;\n overflow: hidden;\n white-space: pre-wrap;\n word-wrap: break-word;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical; \n}\n\n.modal-header h2 {\n margin: 0;\n font-weight: tokens.$ifxFontWeightSemibold;\n font-size: tokens.$ifxFontSizeXl;\n line-height: 28px;\n}\n\n.modal-header button {\n background: none;\n border: none;\n font-size: 1.5em;\n padding: 0;\n cursor: pointer;\n}\n\n.modal-close-button {\n align-self: flex-start;\n margin-right: -8px;\n}\n\n.modal-body {\n padding: 16px 24px;\n min-height: 56px;\n box-sizing: border-box;\n flex: 1;\n \n //overflow-y: auto;\n}\n\n.modal-footer.buttons-present ::slotted(*){\n display: flex;\n justify-content: flex-end;\n gap: 16px;\n padding: 16px 24px 32px 16px\n}\n\n.modal-border {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n font-size: 1.5em;\n flex-grow: 1;\n\n &.primary {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.secondary {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.danger {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.success {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.warning {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.orange {\n background-color: tokens.$ifxColorOrange500;\n }\n\n &.ocean {\n background-color: tokens.$ifxColorOcean500;\n }\n\n &.grey {\n background-color: tokens.$ifxColorEngineering500;\n }\n\n &.grey-200 {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.red {\n background-color: tokens.$ifxColorRed500;\n }\n\n &.green {\n background-color: tokens.$ifxColorGreen500;\n }\n\n &.berry {\n background-color: tokens.$ifxColorBerry500;\n }\n}","import { Component, Prop, Element, State, Event, Host, EventEmitter, h, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { queryShadowRoot, isHidden, isFocusable } from '../../global/utils/focus-trap';\nimport { animationTo, KEYFRAMES } from '../../global/utils/animation';\n \ntype CloseEventTrigger = 'CLOSE_BUTTON' | 'ESCAPE_KEY' | 'BACKDROP';\n\nexport interface BeforeCloseEventDetail {\n trigger: CloseEventTrigger;\n}\n@Component({\n tag: 'ifx-modal',\n styleUrl: 'modal.scss',\n shadow: true\n})\nexport class IfxModal {\n @Prop({ reflect: true, mutable: true }) opened?: boolean = false;\n @State() showModal: boolean = this.opened || false;\n\n @Prop() caption: string = 'Modal Title';\n @Prop() captionAriaLabel: string | null;\n\n @Prop() closeOnOverlayClick: boolean = true;\n\n @Event() ifxOpen: EventEmitter;\n @Event() ifxClose: EventEmitter;\n\n @Prop() variant: 'default' | 'alert-brand' | 'alert-danger' = 'default';\n\n @Prop() size: 's' | 'm' | 'l' = 's';\n\n @Prop() alertIcon: string = '';\n @Prop() okButtonLabel: string = 'OK';\n @Prop() cancelButtonLabel: string = 'Cancel';\n @Prop() closeButtonAriaLabel: string | null;\n\n @Element() hostElement: HTMLElement;\n\n @State() slotButtonsPresent: boolean = false;\n\n @Prop() showCloseButton: boolean = true;\n\n private modalContainer: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n private closeButton: HTMLButtonElement | HTMLIfxIconButtonElement;\n private resizeTimeout: ReturnType<typeof setTimeout>;\n\n handleResize = () => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(() => {\n if (this.showModal) {\n this.handleComponentOverflow();\n }\n }, 100);\n};\n\n async componentDidLoad() {\n if(!isNestedInIfxComponent(this.hostElement)) { \n const framework = detectFramework();\n trackComponent('ifx-modal', await framework)\n }\n // Query all focusable elements and store them in `focusableElements`.\n // Needed for the \"focus trap\" functionality.\n this.focusableElements = queryShadowRoot(\n this.hostElement.shadowRoot,\n (el) => isHidden(el) || el.matches('[data-focus-trap-edge]'),\n isFocusable\n );\n window.addEventListener('resize', this.handleResize);\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize);\n}\n\n componentWillRender() { \n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n\n async handleComponentOverflow() { \n const modalContentContainer = this.hostElement.shadowRoot.querySelector('.modal-content-container');\n if (this.showModal && await this.isModalContentContainerHeightReachedViewport()) {\n modalContentContainer.classList.add('no-overflow')\n } else if (modalContentContainer?.classList.contains('no-overflow')) {\n modalContentContainer?.classList.remove('no-overflow')\n }\n }\n\n getFirstFocusableElement(): HTMLElement | null {\n return this.focusableElements[0];\n }\n\n getLastFocusableElement(): HTMLElement | null {\n return this.focusableElements[this.focusableElements.length - 1];\n }\n\n handleTopFocus = () => {\n this.attemptFocus(this.getLastFocusableElement());\n };\n\n handleBottomFocus = () => {\n this.attemptFocus(this.getFirstFocusableElement());\n };\n\n attemptFocus(element: HTMLElement | null) {\n if (element == null) {\n setTimeout(() => { //wait until DOM is fully loaded\n this.closeButton.focus();\n },);\n return;\n }\n\n setTimeout(() => { //wait until DOM is fully loaded\n element.focus();\n }, 0);\n }\n\n open() {\n this.showModal = true;\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeIn, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n // Setting focus on last item and removing immediately\n // so, on tab press first element is focused\n setTimeout(() => {\n this.getLastFocusableElement()?.focus();\n this.getLastFocusableElement()?.blur();\n }, 0);\n\n this.ifxOpen.emit();\n });\n\n this.hostElement.addEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.ifxOpen.emit();\n }\n }\n\n close() {\n try {\n const anim = animationTo(this.modalContainer, KEYFRAMES.fadeOut, {\n duration: 200,\n });\n anim.addEventListener('finish', () => {\n this.showModal = false;\n this.ifxClose.emit();\n });\n this.hostElement.removeEventListener('keydown', this.handleKeypress);\n } catch (err) {\n this.showModal = false;\n this.ifxClose.emit();\n }\n }\n\n handleKeypress = (event: KeyboardEvent) => {\n if (!this.showModal) {\n return;\n }\n if (event.key === 'Escape') {\n this.doBeforeClose('ESCAPE_KEY');\n }\n };\n\n doBeforeClose(trigger: CloseEventTrigger) {\n const triggers = [];\n triggers.push(trigger);\n const prevented = triggers.some((event) => event.defaultPrevented);\n if (!prevented) {\n this.opened = false;\n }\n }\n\n @Watch('opened')\n openedChanged(newValue) {\n if (newValue === true) {\n this.open();\n } else {\n this.close()\n }\n }\n\n handleOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.doBeforeClose('BACKDROP')\n }\n }\n\n handleContentUpdate(e) {\n const slotElement = e.target;\n const nodes = slotElement.assignedNodes();\n if (nodes.length > 0) {\n nodes.forEach(node => {\n if (node.observer) {\n node.observer.disconnect();\n delete node.observer;\n }\n const observer = new MutationObserver((mutationsList, _) => {\n for (let mutation of mutationsList) {\n if (mutation.type === 'childList') {\n if (this.showModal) {\n this.handleComponentOverflow();\n }\n }\n }\n });\n observer.observe(node, { attributes: true, childList: true, subtree: true });\n node.observer = observer;\n });\n }\n }\n\n handleButtonsSlotChange(e) {\n if (e.currentTarget.assignedElements()[0]?.childElementCount > 0) {\n this.slotButtonsPresent = true;\n } else {\n this.slotButtonsPresent = false;\n }\n }\n\n isModalContentContainerHeightReachedViewport() {\n //Adding timeout for proper height detection on Edge browser\n return new Promise(resolve => {\n setTimeout(() => {\n const modalContent = this.hostElement.shadowRoot.querySelector('.modal-content') as HTMLElement;\n const modalContentHeight = modalContent.offsetHeight;\n const viewportHeight = window.innerHeight;\n const extraMarginForEdgeBrowser = 3;\n resolve(modalContentHeight + extraMarginForEdgeBrowser >= viewportHeight * 0.9);\n }, 100);\n });\n}\n\n\n render() {\n const isAlertVariant = this.variant !== 'default';\n return (\n <Host>\n <div\n ref={(el) => (this.modalContainer = el)}\n class={`modal-container ${this.showModal ? 'open' : ''}`}\n >\n <div\n class=\"modal-overlay\"\n onClick={() => this.handleOverlayClick()}\n ></div>\n <div\n data-focus-trap-edge\n onFocus={this.handleTopFocus}\n tabindex=\"0\"\n ></div>\n <div\n class={`modal-content-container ${this.size}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={this.captionAriaLabel}>\n {isAlertVariant ? (\n <div class={`modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}`}>\n {this.alertIcon ? <ifx-icon icon={this.alertIcon} /> : null}\n </div>\n ) : null}\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-caption\">{this.caption}</h2>\n {\n this.showCloseButton &&\n <ifx-icon-button class='modal-close-button' ref={(el) => (this.closeButton = el)} icon=\"cross-16\" variant=\"tertiary\" onClick={() => this.doBeforeClose('CLOSE_BUTTON')}>\n </ifx-icon-button>\n }\n </div>\n <div class=\"modal-body\">\n <slot name=\"content\" onSlotchange={(e) => this.handleContentUpdate(e)} />\n </div>\n <div class={`modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}`}>\n <slot name=\"buttons\" onSlotchange={(e) => this.handleButtonsSlotChange(e)}>\n </slot>\n </div>\n </div>\n </div>\n <div\n data-focus-trap-edge\n onFocus={this.handleBottomFocus}\n tabindex=\"0\"\n ></div>\n </div>\n </Host>\n\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as t,h as e}from"./p-PqnYwNKt.js";const s=":host{display:inline-block}.rotate{transition:transform 0.2s ease-in-out;transform:rotate(-180deg);margin-top:0em}.icon{margin-top:0em;transition:transform 0.2s ease-in-out}";const i=class{constructor(e){t(this,e);this.isOpen=false;this.theme="default";this.size="m";this.hideArrow=false}render(){return e("ifx-button",{key:"cba835345a4dcbec963deb2589bb26a1294908da",variant:this.variant,theme:this.theme,size:this.size,disabled:this.disabled,class:"dropdown-trigger-button"},e("slot",{key:"b8f6d30967aaa2ced90815c96081353f9ec0c7d1"}),!this.hideArrow&&e("ifx-icon",{key:"41a60ee566d9be237bbe05e3ede8402f9d4e3f6e",icon:"chevron-down-16",class:`icon${this.isOpen?" rotate":""}`}))}};i.style=s;export{i as ifx_dropdown_trigger_button};
2
- //# sourceMappingURL=p-d4373c36.entry.js.map
1
+ import{r as t,h as e}from"./p-DtIEDtZ8.js";const s=":host{display:inline-block}.rotate{transition:transform 0.2s ease-in-out;transform:rotate(-180deg);margin-top:0em}.icon{margin-top:0em;transition:transform 0.2s ease-in-out}";const i=class{constructor(e){t(this,e);this.isOpen=false;this.theme="default";this.size="m";this.hideArrow=false}render(){return e("ifx-button",{key:"cba835345a4dcbec963deb2589bb26a1294908da",variant:this.variant,theme:this.theme,size:this.size,disabled:this.disabled,class:"dropdown-trigger-button"},e("slot",{key:"b8f6d30967aaa2ced90815c96081353f9ec0c7d1"}),!this.hideArrow&&e("ifx-icon",{key:"41a60ee566d9be237bbe05e3ede8402f9d4e3f6e",icon:"chevron-down-16",class:`icon${this.isOpen?" rotate":""}`}))}};i.style=s;export{i as ifx_dropdown_trigger_button};
2
+ //# sourceMappingURL=p-55227732.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as e,c as i,h as t,a as s}from"./p-DtIEDtZ8.js";const a=':root{--ifx-font-family:"Source Sans 3", \'Arial, sans-serif\'}:host{position:relative;display:block}:host([data-has-icon=false]){display:var(--ifx-sidebar-item-without-icon-display, block)}.sidebar__nav-item:focus-visible,.sidebar__nav-item.header__section:focus-visible{outline:none;box-shadow:0 0 0 2px #FFFFFF, 0 0 0 4px #0A8276}.sidebar__nav-item:focus-visible .sidebar__nav-item-icon-wrapper,.sidebar__nav-item.header__section:focus-visible .sidebar__nav-item-icon-wrapper{color:#08665C}.sidebar__nav-item:focus-visible .sidebar__nav-item-label,.sidebar__nav-item.header__section:focus-visible .sidebar__nav-item-label{outline:none;color:#08665C}.sidebar__nav-item:focus-visible .sidebar__nav-item-indicator .item__arrow-wrapper ifx-icon,.sidebar__nav-item.header__section:focus-visible .sidebar__nav-item-indicator .item__arrow-wrapper ifx-icon{color:#08665C}.sidebar__nav-item:hover,.sidebar__nav-item.header__section:hover{outline:none}.sidebar__nav-item:hover .sidebar__nav-item-icon-wrapper,.sidebar__nav-item.header__section:hover .sidebar__nav-item-icon-wrapper{color:#08665C}.sidebar__nav-item:hover .sidebar__nav-item-label,.sidebar__nav-item.header__section:hover .sidebar__nav-item-label{outline:none;color:#08665C}.sidebar__nav-item:hover .sidebar__nav-item-indicator .item__arrow-wrapper ifx-icon,.sidebar__nav-item.header__section:hover .sidebar__nav-item-indicator .item__arrow-wrapper ifx-icon{color:#08665C}.sidebar__nav-item{display:flex;flex-direction:var(--ifx-sidebar-item-flex-direction, row);align-items:center;width:100%;padding:8px 0px;gap:4px;flex:none;order:0;flex-grow:0;text-decoration:none;color:#1D1D1D;cursor:pointer;font-family:var(--ifx-font-family)}.sidebar__nav-item.extra-padding__bottom{padding:8px 0px 16px 0px}.sidebar__nav-item.active{color:#0A8276}.sidebar__nav-item.active-section::before{content:"";position:absolute;left:-32px;height:40px;width:2px;background:#0A8276}.sidebar__nav-item.open{padding:8px 0px}.sidebar__nav-item.open .sidebar__nav-item-label{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.sidebar__nav-item.open .sidebar__nav-item-indicator .item__arrow-wrapper ifx-icon{transform:rotate(-180deg)}.sidebar__nav-item.header__section{box-sizing:padding-box;border-top:1px solid #EEEDED;padding:16px 0px;display:-webkit-flex;-webkit-line-clamp:1;-webkit-box-orient:horizontal;overflow:hidden;text-overflow:ellipsis}.sidebar__nav-item.header__section.no-top-border{border-top:none}.sidebar__nav-item.header__section.active-section::before{content:"";position:absolute;left:-32px;height:40px;width:2px;background:#0A8276}.sidebar__nav-item.header__section.open{padding:16px 0px 8px 0px}.sidebar__nav-item.header__section.open .sidebar__nav-item-indicator .item__arrow-wrapper ifx-icon{transform:rotate(-180deg)}.sidebar__nav-item.header__section .sidebar__nav-item-label{color:#1D1D1D;font-family:Source Sans 3;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.sidebar__nav-item.submenu__item{padding:4px 0px}.sidebar__nav-item.submenu__item.extra-padding__bottom{padding:4px 0px 16px 0px}.sidebar__nav-item .sidebar__nav-item-icon-wrapper{display:flex;width:24px;height:24px;justify-content:center;align-items:center;gap:8px;flex-shrink:0}.sidebar__nav-item .sidebar__nav-item-icon-wrapper.noIcon{display:none}.sidebar__nav-item .sidebar__nav-item-icon-wrapper ifx-icon{width:16px;height:16px}.sidebar__nav-item .sidebar__nav-item-label{font-style:normal;font-weight:400;font-size:1rem;line-height:1.5rem;display:flex;align-items:center;flex:none;order:1;flex-grow:1;cursor:pointer;display:var(--ifx-sidebar-item-text-display, flex)}.sidebar__nav-item .sidebar__nav-item-indicator{display:var(--ifx-sidebar-item-text-display, flex);flex-direction:row;justify-content:center;align-items:center;padding:0px 4px;flex:none;order:2;flex-grow:0;position:relative}:host([data-sidebar-collapsed]) .sidebar__nav-item .sidebar__nav-item-indicator{position:absolute;top:0;right:0;z-index:10;padding:0}.expandable__submenu{display:none;list-style-type:none;flex-direction:column;padding:0;margin:0;padding-left:40px}.expandable__submenu.open{display:flex}.header__section+.expandable__submenu{padding-left:0}';const n=class{constructor(t){e(this,t);this.ifxSidebarMenu=i(this,"ifxSidebarMenu",7);this.ifxSidebarNavigationItem=i(this,"ifxSidebarNavigationItem",7);this.ifxSidebarActionItem=i(this,"ifxSidebarActionItem",7);this.icon="";this.showIcon=true;this.showIconWrapper=false;this.href="";this.internalHref="";this.target="_self";this.isExpandable=false;this.isNested=true;this.isSubMenuItem=false;this.active=false;this.isActionItem=false;this.indicatorVariant="number";this.internalActiveState=false;this.titleText=""}handleActiveChange(e,i){if(this.isActionItem){this.internalActiveState=false;return}this.internalActiveState=e;if(e!==i){let i=this.getNavItem(this.el.shadowRoot);if(!this.isExpandable&&!e){this.handleClassList(i,"remove","active")}if(!this.isExpandable&&e){this.handleClassList(i,"add","active")}}}handleNumberIndicatorChange(){this.updateIndicatorVariant()}handleConsoleError(e){if(e.detail){this.showIcon=false}else{this.showIcon=true}}handleEventEmission(){this.ifxSidebarMenu.emit(this.el)}handleClassList(e,i,t){e.classList[i](t);if(i==="contains"){return e.classList.contains(t)}}getExpandableMenu(){const e=this.el.shadowRoot.querySelector(".expandable__submenu");return e}getNavItem(e){return e===null||e===void 0?void 0:e.querySelector(".sidebar__nav-item")}getSidebarMenuItems(e=this.el){const i=e.querySelectorAll("ifx-sidebar-item");if(i.length===0){return e.shadowRoot.querySelectorAll("ifx-sidebar-item")}return i}getSidebarMenuItem(){const e=this.el.shadowRoot.querySelector(".sidebar__nav-item");return e}toggleSubmenu(){if(this.isExpandable){const e=this.getSidebarMenuItem();const i=this.getExpandableMenu();this.handleClassList(i,"toggle","open");this.handleClassList(e,"toggle","open");this.handleEventEmission()}else{if(this.isActionItem){this.ifxSidebarActionItem.emit(this.el);return}else{this.handleActiveChange(true,this.internalActiveState);this.ifxSidebarNavigationItem.emit(this.el)}if(this.handleItemClick){this.handleItemClick(this.el)}}}handleExpandableMenu(e){const i=this.getExpandableMenu();e.forEach((e=>{const t=document.createElement("li");t.appendChild(e);i.appendChild(t)}))}parentElementIsSidebar(){const e=this.el.parentElement;if(e.tagName.toUpperCase()==="IFX-SIDEBAR"){return true}else return false}checkIfMenuItemIsNested(){const e=this.parentElementIsSidebar();if(e){this.isNested=false}}checkIfMenuItemIsSubMenu(){const e=this.el.parentElement;const i=this.getNavItem(e.shadowRoot);if(e.tagName.toUpperCase()==="IFX-SIDEBAR-ITEM"&&!this.handleClassList(i,"contains","header__section")){this.isSubMenuItem=true}else{this.isSubMenuItem=false}}isActive(e){const i=e.getAttribute("active");const t=i==="true";return t}getParentSection(e){let i=e.parentElement;while(i&&i.tagName.toUpperCase()!=="IFX-SIDEBAR"){if(i.tagName.toUpperCase()==="IFX-SIDEBAR-ITEM"){return i}i=i.parentElement}return null}handleBorderIndicatorDisplacement(e){const i=(e,t)=>{const s=this.isActive(e);if(s){const e=this.handleClassList(t,"contains","open");const i=this.getActiveItemSection();if(!e){this.handleClassList(i,"add","active-section")}else{this.handleClassList(i,"remove","active-section")}}const a=this.getSidebarMenuItems(e);a.forEach((e=>i(e,t)))};const t=this.getSidebarMenuItems();t.forEach((t=>i(t,e)))}setHref(){if(this.href.toLowerCase().trim()===""){this.internalHref=undefined}else this.internalHref=this.href}getActiveItemSection(){const e=this.parentElementIsSidebar();if(e){const e=this.getNavItem(this.el.shadowRoot);return e}else{const e=this.getNavItem(this.el.shadowRoot);return e}}async setActiveClasses(){const e=this.getNavItem(this.el.shadowRoot);this.handleClassList(e,"add","active")}async expandMenu(e){const i=this.getSidebarMenuItem();const t=this.getExpandableMenu();this.handleClassList(t,"add","open");this.handleClassList(i,"add","open");if(e){this.handleClassList(t,"remove","active-section");this.handleClassList(i,"remove","active-section")}}async isItemExpandable(){return this.isExpandable}handleActiveState(){if(this.internalActiveState){this.setActiveClasses()}}handleKeyDown(e){if(e.key==="Enter"){this.toggleSubmenu()}}componentDidLoad(){this.handleActiveState();if(this.isExpandable){const e=this.getSidebarMenuItems();this.handleExpandableMenu(e)}this.updateIndicatorVariant();this.observeCollapsedState();this.extractTitleText()}extractTitleText(){const e=this.el.shadowRoot.querySelector("slot");if(e){const i=e.assignedNodes();this.titleText=i.filter((e=>e.nodeType===Node.TEXT_NODE||e.nodeType===Node.ELEMENT_NODE)).map((e=>{var i;return((i=e.textContent)===null||i===void 0?void 0:i.trim())||""})).join(" ").trim()}}updateIndicatorVariant(){const e=this.el.hasAttribute("data-sidebar-collapsed");if(this.numberIndicator>0){this.indicatorVariant=e?"dot":"number"}}observeCollapsedState(){const e=new MutationObserver((()=>{this.updateIndicatorVariant()}));e.observe(this.el,{attributes:true,attributeFilter:["data-sidebar-collapsed"]})}componentWillLoad(){this.internalActiveState=this.active;this.checkIfMenuItemIsNested();this.checkIfMenuItemIsSubMenu();this.setHref();this.el.setAttribute("data-has-icon",this.icon?"true":"false");const e=this.getSidebarMenuItems();if(e.length!==0){this.isExpandable=true}else{this.isExpandable=false}}componentWillUpdate(){if(this.active&&!this.internalActiveState){this.internalActiveState=this.active;this.ifxSidebarNavigationItem.emit(this.el)}}render(){const e=this.el.hasAttribute("data-sidebar-collapsed");const i=this.el.hasAttribute("data-hide-in-collapsed");return t("div",{key:"491cbffba289bab9d633a08724a2bf1575b92d9f",style:{display:i?"none":"block"}},t("a",{key:"50a8e5dd2298c86711260427549b7d86601d5b46",tabIndex:1,onKeyDown:e=>this.handleKeyDown(e),href:this.internalHref,onClick:()=>this.toggleSubmenu(),target:this.target,class:`sidebar__nav-item ${!this.isNested&&this.isExpandable?"header__section":""} ${this.isSubMenuItem?"submenu__item":""}`,title:this.titleText},this.icon&&t("div",{key:"b27c805c73bd5404b648f493c4ded4d689b9eb3c",class:`sidebar__nav-item-icon-wrapper ${!this.showIcon&&!e?"noIcon":""}`},t("ifx-icon",{key:"2049a5d0f58106ad977b68c848c8c0f21182a86d",icon:this.icon})),t("div",{key:"c140a72eb126c87989c71066f287cea862060562",class:"sidebar__nav-item-label"},t("slot",{key:"ee9708e5f3591b34e7251546cab50224967abffe"})),(this.isExpandable||!isNaN(this.numberIndicator))&&t("div",{key:"d5ac6af6cf668e3463626c7b0f8f5694d23d2d1f",class:"sidebar__nav-item-indicator",style:{display:!e||this.icon?"flex":"none"}},this.isExpandable&&t("span",{key:"7ff6bd7e736d73392e8786980b740b0d1f1b1ac2",class:"item__arrow-wrapper"},t("ifx-icon",{key:"dc62663bee631edbb5a1126b5b2cd4bfb6125c98",icon:"chevron-down-16"})),this.numberIndicator>0&&!this.isExpandable&&!this.isNested&&t("span",{key:"2a02e2d009f260b57c7fb75cdce87366e56e5a53",class:"item__number-indicator"},t("ifx-indicator",{key:"8dcaf820d27afd21722e4f02f81e4d52441d5458",variant:this.indicatorVariant,number:this.numberIndicator})))),this.isExpandable&&t("ul",{key:"c55eb1c02512807fe889dff1e2b9e3455bc5cc23",class:"expandable__submenu"}))}get el(){return s(this)}static get watchers(){return{active:["handleActiveChange"],numberIndicator:["handleNumberIndicatorChange"]}}};n.style=a;export{n as ifx_sidebar_item};
2
+ //# sourceMappingURL=p-58552d96.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["sidebarItemCss","SidebarItem","constructor","hostRef","this","icon","showIcon","showIconWrapper","href","internalHref","target","isExpandable","isNested","isSubMenuItem","active","isActionItem","indicatorVariant","internalActiveState","titleText","handleActiveChange","newValue","oldValue","labelElement","getNavItem","el","shadowRoot","handleClassList","handleNumberIndicatorChange","updateIndicatorVariant","handleConsoleError","event","detail","handleEventEmission","ifxSidebarMenu","emit","type","className","classList","contains","getExpandableMenu","expandableSubmenu","querySelector","getSidebarMenuItems","sidebarItems","querySelectorAll","length","getSidebarMenuItem","sidebarItem","toggleSubmenu","menuItem","expandableMenu","ifxSidebarActionItem","ifxSidebarNavigationItem","handleItemClick","handleExpandableMenu","sidebarExpandableMenu","forEach","li","document","createElement","appendChild","parentElementIsSidebar","parentElement","tagName","toUpperCase","checkIfMenuItemIsNested","parentIsSidebar","checkIfMenuItemIsSubMenu","navItem","isActive","iteratedComponent","activeAttributeValue","getAttribute","getParentSection","handleBorderIndicatorDisplacement","handleItem","item","isOpen","activeMenuItemSection","getActiveItemSection","children","child","topLevelItems","setHref","toLowerCase","trim","undefined","setActiveClasses","activeMenuItem","expandMenu","ac","isItemExpandable","handleActiveState","handleKeyDown","key","componentDidLoad","observeCollapsedState","extractTitleText","slotElement","assignedNodes","filter","node","nodeType","Node","TEXT_NODE","ELEMENT_NODE","map","_a","textContent","join","isCollapsed","hasAttribute","numberIndicator","observer","MutationObserver","observe","attributes","attributeFilter","componentWillLoad","setAttribute","componentWillUpdate","render","shouldHide","h","style","display","tabIndex","onKeyDown","onClick","class","title","isNaN","variant","number"],"sources":["src/components/navigation/sidebar/sidebar-item.scss?tag=ifx-sidebar-item&encapsulation=shadow","src/components/navigation/sidebar/sidebar-item.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n:host {\n position: relative;\n display: block;\n}\n\n:host([data-has-icon=\"false\"]) {\n display: var(--ifx-sidebar-item-without-icon-display, block);\n}\n\n.sidebar__nav-item,\n.sidebar__nav-item.header__section {\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n\n & .sidebar__nav-item-icon-wrapper {\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-label {\n outline: none;\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n color: tokens.$ifxColorOcean600;\n }\n }\n }\n }\n\n\n\n &:hover {\n outline: none;\n\n & .sidebar__nav-item-icon-wrapper {\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-label {\n outline: none;\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n color: tokens.$ifxColorOcean600;\n }\n }\n }\n }\n}\n\n.sidebar__nav-item {\n display: flex;\n flex-direction: var(--ifx-sidebar-item-flex-direction, row);\n align-items: center;\n width: 100%;\n padding: 8px 0px;\n gap: 4px;\n flex: none;\n order: 0;\n flex-grow: 0;\n text-decoration: none;\n color: tokens.$ifxColorBaseBlack;\n cursor: pointer;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n &.extra-padding__bottom {\n padding: 8px 0px 16px 0px;\n }\n\n &.active {\n color: tokens.$ifxColorOcean500;\n }\n\n &.active-section {\n &::before {\n content: \"\";\n position: absolute;\n left: -32px;\n height: 40px;\n width: 2px;\n background: tokens.$ifxColorOcean500;\n }\n }\n\n\n &.open {\n padding: 8px 0px;\n\n & .sidebar__nav-item-label {\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n transform: rotate(-180deg);\n }\n }\n }\n }\n\n &.header__section {\n box-sizing: padding-box;\n border-top: 1px solid tokens.$ifxColorEngineering200;\n padding: 16px 0px;\n display: -webkit-flex;\n -webkit-line-clamp: 1;\n -webkit-box-orient: horizontal;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.no-top-border {\n border-top: none;\n }\n\n &.active-section {\n &::before {\n content: \"\";\n position: absolute;\n left: -32px;\n height: 40px;\n width: 2px;\n background: tokens.$ifxColorOcean500;\n }\n }\n\n &.open {\n\n padding: 16px 0px 8px 0px;\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n transform: rotate(-180deg);\n }\n }\n }\n }\n\n & .sidebar__nav-item-label {\n color: tokens.$ifxColorBaseBlack;\n font-family: Source Sans 3;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px;\n }\n }\n\n &.submenu__item {\n padding: 4px 0px;\n\n &.extra-padding__bottom {\n padding: 4px 0px 16px 0px;\n }\n }\n\n & .sidebar__nav-item-icon-wrapper {\n display: flex;\n width: tokens.$ifxSize300;\n height: tokens.$ifxSize300;\n justify-content: center;\n align-items: center;\n gap: tokens.$ifxSpace100;\n flex-shrink: 0;\n\n &.noIcon {\n display: none;\n }\n\n & ifx-icon {\n width: tokens.$ifxSize200;\n height: tokens.$ifxSize200;\n }\n }\n\n & .sidebar__nav-item-label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n display: flex;\n align-items: center;\n flex: none;\n order: 1;\n flex-grow: 1;\n cursor: pointer;\n display: var(--ifx-sidebar-item-text-display, flex);\n }\n\n & .sidebar__nav-item-indicator {\n display: var(--ifx-sidebar-item-text-display, flex);\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 0px 4px;\n flex: none;\n order: 2;\n flex-grow: 0;\n position: relative;\n\n // Collapsed state styling - position indicator over icon\n :host([data-sidebar-collapsed]) & {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n }\n }\n}\n\n.expandable__submenu {\n display: none;\n list-style-type: none;\n flex-direction: column;\n padding: 0;\n margin: 0;\n padding-left: 40px;\n\n &.open {\n display: flex;\n }\n}\n\n.header__section+.expandable__submenu {\n padding-left: 0;\n}","import { Component, h, Prop, Element, State, Listen, Watch, Event, EventEmitter, Method } from '@stencil/core';\n\n@Component({\n tag: 'ifx-sidebar-item',\n styleUrl: 'sidebar-item.scss',\n shadow: true\n})\nexport class SidebarItem {\n @Element() el;\n @Prop() icon: string = \"\"\n @State() showIcon: boolean = true;\n @State() showIconWrapper: boolean = false;\n @Prop() href: string = \"\";\n @State() internalHref: string = \"\";\n @Prop() target: string = \"_self\";\n @State() isExpandable: boolean = false;\n @State() isNested: boolean = true;\n @State() isSubMenuItem: boolean = false;\n @Prop() numberIndicator: number;\n @Prop() active: boolean = false; // set to true manually or by clicking on a navigation item\n @Prop() isActionItem: boolean = false; // if an item is an action item, it can not become active\n @State() indicatorVariant: 'number' | 'dot' = 'number';\n\n @State() internalActiveState: boolean = false;\n \n @Event({ bubbles: true, composed: true }) ifxSidebarMenu: EventEmitter;\n @Event({ bubbles: true, composed: true }) ifxSidebarNavigationItem: EventEmitter;\n @Event({ bubbles: true, composed: true }) ifxSidebarActionItem: EventEmitter;\n\n @Prop() handleItemClick: (item: HTMLElement) => void;\n\n private titleText: string = '';\n\n @Watch('active')\n handleActiveChange(newValue: boolean, oldValue: boolean) {\n // If the item is an action item, ignore the active prop\n if (this.isActionItem) {\n this.internalActiveState = false;\n return;\n }\n this.internalActiveState = newValue;\n if (newValue !== oldValue) {\n let labelElement = this.getNavItem(this.el.shadowRoot)\n if (!this.isExpandable && !newValue) {\n this.handleClassList(labelElement, 'remove', 'active');\n }\n if (!this.isExpandable && newValue) {\n this.handleClassList(labelElement, 'add', 'active');\n }\n }\n }\n\n @Watch('numberIndicator') \n handleNumberIndicatorChange() {\n this.updateIndicatorVariant();\n }\n\n @Listen('consoleError')\n handleConsoleError(event: CustomEvent<boolean>) {\n if (event.detail) {\n this.showIcon = false;\n } else {\n this.showIcon = true;\n }\n }\n\n handleEventEmission() {\n // Get the active item section\n this.ifxSidebarMenu.emit(this.el)\n }\n\n handleClassList(el, type, className) {\n el.classList[type](className)\n if (type === 'contains') {\n return el.classList.contains(className)\n }\n }\n\n getExpandableMenu() {\n const expandableSubmenu = this.el.shadowRoot.querySelector('.expandable__submenu')\n return expandableSubmenu\n }\n\n getNavItem(el) {\n return el?.querySelector('.sidebar__nav-item')\n }\n\n\n\n getSidebarMenuItems(el = this.el) {\n const sidebarItems = el.querySelectorAll('ifx-sidebar-item');\n if (sidebarItems.length === 0) {\n return el.shadowRoot.querySelectorAll('ifx-sidebar-item');\n }\n return sidebarItems;\n }\n\n getSidebarMenuItem() {\n const sidebarItem = this.el.shadowRoot.querySelector('.sidebar__nav-item')\n return sidebarItem;\n }\n\n\n toggleSubmenu() {\n if (this.isExpandable) {\n const menuItem = this.getSidebarMenuItem();\n const expandableMenu = this.getExpandableMenu();\n this.handleClassList(expandableMenu, 'toggle', 'open');\n this.handleClassList(menuItem, 'toggle', 'open');\n // Emit an event with the current component\n this.handleEventEmission();\n } else {\n // If the sidebar item is not expandable, it's a leaf item without a submenu.\n // Emit an event to the parent `ifx-sidebar` component to notify it that a leaf item has been clicked.\n if (this.isActionItem) { //its an action item that eg opens an overlay etc and should not influence the active state of the item\n this.ifxSidebarActionItem.emit(this.el); // emit new event if isActionItem is true\n return;\n } else { //its a navigation item which becomes active after clicking it\n this.handleActiveChange(true, this.internalActiveState)\n this.ifxSidebarNavigationItem.emit(this.el);\n }\n // If the sidebar item is selectable (not expandable), then call the handler function with the current element.\n if (this.handleItemClick) {\n this.handleItemClick(this.el);\n }\n }\n // // Emit an event with the current component\n // this.handleEventEmission();\n }\n\n\n\n handleExpandableMenu(sidebarItems) {\n const sidebarExpandableMenu = this.getExpandableMenu();\n sidebarItems.forEach((el: HTMLElement) => {\n const li = document.createElement('li')\n li.appendChild(el)\n sidebarExpandableMenu.appendChild(li)\n })\n }\n\n parentElementIsSidebar() {\n const parentElement = this.el.parentElement;\n if (parentElement.tagName.toUpperCase() === 'IFX-SIDEBAR') {\n return true;\n } else return false;\n }\n\n checkIfMenuItemIsNested() {\n const parentIsSidebar = this.parentElementIsSidebar()\n if (parentIsSidebar) {\n this.isNested = false;\n }\n }\n\n checkIfMenuItemIsSubMenu() {\n const parentElement = this.el.parentElement;\n const navItem = this.getNavItem(parentElement.shadowRoot);\n if(parentElement.tagName.toUpperCase() === 'IFX-SIDEBAR-ITEM' && !this.handleClassList(navItem, 'contains', 'header__section')) {\n this.isSubMenuItem = true;\n }else {\n this.isSubMenuItem = false;\n }\n }\n\n isActive(iteratedComponent) {\n const activeAttributeValue = iteratedComponent.getAttribute('active');\n const isActive = activeAttributeValue === 'true';\n return isActive\n }\n\n getParentSection(el: HTMLElement) {\n let parentElement = el.parentElement;\n\n while (parentElement && parentElement.tagName.toUpperCase() !== 'IFX-SIDEBAR') {\n if (parentElement.tagName.toUpperCase() === 'IFX-SIDEBAR-ITEM') {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n\n return null;\n }\n\n\n\n handleBorderIndicatorDisplacement(menuItem) {\n // Recursive function to handle each item\n const handleItem = (item, menuItem) => {\n const isActive = this.isActive(item);\n if (isActive) {\n const isOpen = this.handleClassList(menuItem, 'contains', 'open');\n const activeMenuItemSection = this.getActiveItemSection();\n if (!isOpen) {\n this.handleClassList(activeMenuItemSection, 'add', 'active-section');\n } else {\n this.handleClassList(activeMenuItemSection, 'remove', 'active-section');\n }\n }\n\n // Process each child item\n const children = this.getSidebarMenuItems(item);\n children.forEach((child) => handleItem(child, menuItem));\n }\n\n // Start with the top-level items\n const topLevelItems = this.getSidebarMenuItems();\n topLevelItems.forEach((item) => handleItem(item, menuItem));\n }\n\n\n setHref() {\n if (this.href.toLowerCase().trim() === \"\") {\n this.internalHref = undefined;\n } else this.internalHref = this.href;\n }\n\n getActiveItemSection() {\n const parentIsSidebar = this.parentElementIsSidebar()\n if (parentIsSidebar) {\n const labelElement = this.getNavItem(this.el.shadowRoot)\n return labelElement;\n } else {\n const labelElement = this.getNavItem(this.el.shadowRoot)\n return labelElement;\n }\n }\n\n @Method()\n async setActiveClasses() {\n const activeMenuItem = this.getNavItem(this.el.shadowRoot)\n this.handleClassList(activeMenuItem, 'add', 'active')\n }\n\n @Method()\n async expandMenu(ac: boolean){\n const menuItem = this.getSidebarMenuItem();\n const expandableMenu = this.getExpandableMenu();\n this.handleClassList(expandableMenu, 'add', 'open');\n this.handleClassList(menuItem, 'add', 'open');\n if(ac){\n this.handleClassList(expandableMenu, 'remove', 'active-section')\n this.handleClassList(menuItem, 'remove', 'active-section')\n }\n }\n\n @Method()\n async isItemExpandable(){\n return this.isExpandable;\n }\n\n handleActiveState() {\n if (this.internalActiveState) {\n this.setActiveClasses()\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.toggleSubmenu()\n }\n }\n\n componentDidLoad() {\n this.handleActiveState();\n if (this.isExpandable) {\n const sidebarItems = this.getSidebarMenuItems();\n this.handleExpandableMenu(sidebarItems)\n }\n // Listen for collapsed state changes\n this.updateIndicatorVariant();\n // Set up MutationObserver to watch for CSS custom property changes\n this.observeCollapsedState();\n // Extract text content for title attribute\n this.extractTitleText();\n }\n\n private extractTitleText() {\n // Get the text content from the slot\n const slotElement = this.el.shadowRoot.querySelector('slot');\n if (slotElement) {\n const assignedNodes = slotElement.assignedNodes();\n this.titleText = assignedNodes\n .filter(node => node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE)\n .map(node => node.textContent?.trim() || '')\n .join(' ')\n .trim();\n }\n }\n\n private updateIndicatorVariant() {\n // Check the data attribute on this element\n const isCollapsed = this.el.hasAttribute('data-sidebar-collapsed');\n //this.indicatorVariant = isCollapsed ? 'dot' : 'number';\n if (this.numberIndicator > 0) {\n this.indicatorVariant = isCollapsed ? 'dot' : 'number';\n }\n }\n\n private observeCollapsedState() {\n // Create a MutationObserver to watch for data-sidebar-collapsed attribute changes\n const observer = new MutationObserver(() => {\n this.updateIndicatorVariant();\n });\n\n observer.observe(this.el, {\n attributes: true,\n attributeFilter: ['data-sidebar-collapsed']\n });\n }\n\n componentWillLoad() {\n this.internalActiveState = this.active;\n this.checkIfMenuItemIsNested();\n this.checkIfMenuItemIsSubMenu();\n this.setHref()\n\n // Set attribute to track if item has icon\n this.el.setAttribute('data-has-icon', this.icon ? 'true' : 'false');\n\n const sidebarItems = this.getSidebarMenuItems();\n if (sidebarItems.length !== 0) {\n this.isExpandable = true;\n } else {\n this.isExpandable = false;\n }\n }\n\n componentWillUpdate() {\n // If the active prop has been set to true and the internalActiveState has not been set to true yet\n if (this.active && !this.internalActiveState) {\n // Set the internal active state to true\n this.internalActiveState = this.active;\n\n // Emit the event to notify the parent Sidebar\n this.ifxSidebarNavigationItem.emit(this.el);\n }\n }\n\n\nrender() {\n const isCollapsed = this.el.hasAttribute('data-sidebar-collapsed');\n const shouldHide = this.el.hasAttribute('data-hide-in-collapsed');\n\n return (\n <div style={{ display: shouldHide ? 'none' : 'block' }}>\n <a\n tabIndex={1}\n onKeyDown={(event) => this.handleKeyDown(event)}\n href={this.internalHref}\n onClick={() => this.toggleSubmenu()}\n target={this.target}\n class={`sidebar__nav-item ${!this.isNested && this.isExpandable ? 'header__section' : \"\"} ${this.isSubMenuItem ? 'submenu__item' : \"\"}`}\n title={this.titleText}\n >\n {this.icon &&\n <div class={`sidebar__nav-item-icon-wrapper ${!this.showIcon && !isCollapsed ? 'noIcon' : \"\"}`}>\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>}\n <div class=\"sidebar__nav-item-label\">\n <slot />\n </div>\n {\n (this.isExpandable || !isNaN(this.numberIndicator)) &&\n <div class=\"sidebar__nav-item-indicator\" style={{\n display: (!isCollapsed || this.icon) ? 'flex' : 'none'\n }}>\n {this.isExpandable &&\n <span class='item__arrow-wrapper'>\n <ifx-icon icon=\"chevron-down-16\" />\n </span>\n }\n\n {this.numberIndicator > 0 && !this.isExpandable && !this.isNested &&\n <span class=\"item__number-indicator\">\n <ifx-indicator\n variant={this.indicatorVariant}\n number={this.numberIndicator}>\n </ifx-indicator>\n </span>}\n\n </div>\n }\n </a>\n {this.isExpandable && <ul class='expandable__submenu'></ul>}\n\n </div>\n );\n}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["sidebarItemCss","SidebarItem","constructor","hostRef","this","icon","showIcon","showIconWrapper","href","internalHref","target","isExpandable","isNested","isSubMenuItem","active","isActionItem","indicatorVariant","internalActiveState","titleText","handleActiveChange","newValue","oldValue","labelElement","getNavItem","el","shadowRoot","handleClassList","handleNumberIndicatorChange","updateIndicatorVariant","handleConsoleError","event","detail","handleEventEmission","ifxSidebarMenu","emit","type","className","classList","contains","getExpandableMenu","expandableSubmenu","querySelector","getSidebarMenuItems","sidebarItems","querySelectorAll","length","getSidebarMenuItem","sidebarItem","toggleSubmenu","menuItem","expandableMenu","ifxSidebarActionItem","ifxSidebarNavigationItem","handleItemClick","handleExpandableMenu","sidebarExpandableMenu","forEach","li","document","createElement","appendChild","parentElementIsSidebar","parentElement","tagName","toUpperCase","checkIfMenuItemIsNested","parentIsSidebar","checkIfMenuItemIsSubMenu","navItem","isActive","iteratedComponent","activeAttributeValue","getAttribute","getParentSection","handleBorderIndicatorDisplacement","handleItem","item","isOpen","activeMenuItemSection","getActiveItemSection","children","child","topLevelItems","setHref","toLowerCase","trim","undefined","setActiveClasses","activeMenuItem","expandMenu","ac","isItemExpandable","handleActiveState","handleKeyDown","key","componentDidLoad","observeCollapsedState","extractTitleText","slotElement","assignedNodes","filter","node","nodeType","Node","TEXT_NODE","ELEMENT_NODE","map","_a","textContent","join","isCollapsed","hasAttribute","numberIndicator","observer","MutationObserver","observe","attributes","attributeFilter","componentWillLoad","setAttribute","componentWillUpdate","render","shouldHide","h","style","display","tabIndex","onKeyDown","onClick","class","title","isNaN","variant","number"],"sources":["src/components/navigation/sidebar/sidebar-item.scss?tag=ifx-sidebar-item&encapsulation=shadow","src/components/navigation/sidebar/sidebar-item.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n:host {\n position: relative;\n display: block;\n}\n\n:host([data-has-icon=\"false\"]) {\n display: var(--ifx-sidebar-item-without-icon-display, block);\n}\n\n.sidebar__nav-item,\n.sidebar__nav-item.header__section {\n &:focus-visible {\n outline: none;\n box-shadow: 0 0 0 2px tokens.$ifxColorBaseWhite, 0 0 0 4px tokens.$ifxColorOcean500;\n\n & .sidebar__nav-item-icon-wrapper {\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-label {\n outline: none;\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n color: tokens.$ifxColorOcean600;\n }\n }\n }\n }\n\n\n\n &:hover {\n outline: none;\n\n & .sidebar__nav-item-icon-wrapper {\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-label {\n outline: none;\n color: tokens.$ifxColorOcean600;\n }\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n color: tokens.$ifxColorOcean600;\n }\n }\n }\n }\n}\n\n.sidebar__nav-item {\n display: flex;\n flex-direction: var(--ifx-sidebar-item-flex-direction, row);\n align-items: center;\n width: 100%;\n padding: 8px 0px;\n gap: 4px;\n flex: none;\n order: 0;\n flex-grow: 0;\n text-decoration: none;\n color: tokens.$ifxColorBaseBlack;\n cursor: pointer;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n &.extra-padding__bottom {\n padding: 8px 0px 16px 0px;\n }\n\n &.active {\n color: tokens.$ifxColorOcean500;\n }\n\n &.active-section {\n &::before {\n content: \"\";\n position: absolute;\n left: -32px;\n height: 40px;\n width: 2px;\n background: tokens.$ifxColorOcean500;\n }\n }\n\n\n &.open {\n padding: 8px 0px;\n\n & .sidebar__nav-item-label {\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n transform: rotate(-180deg);\n }\n }\n }\n }\n\n &.header__section {\n box-sizing: padding-box;\n border-top: 1px solid tokens.$ifxColorEngineering200;\n padding: 16px 0px;\n display: -webkit-flex;\n -webkit-line-clamp: 1;\n -webkit-box-orient: horizontal;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.no-top-border {\n border-top: none;\n }\n\n &.active-section {\n &::before {\n content: \"\";\n position: absolute;\n left: -32px;\n height: 40px;\n width: 2px;\n background: tokens.$ifxColorOcean500;\n }\n }\n\n &.open {\n\n padding: 16px 0px 8px 0px;\n\n & .sidebar__nav-item-indicator {\n & .item__arrow-wrapper {\n & ifx-icon {\n transform: rotate(-180deg);\n }\n }\n }\n }\n\n & .sidebar__nav-item-label {\n color: tokens.$ifxColorBaseBlack;\n font-family: Source Sans 3;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 24px;\n }\n }\n\n &.submenu__item {\n padding: 4px 0px;\n\n &.extra-padding__bottom {\n padding: 4px 0px 16px 0px;\n }\n }\n\n & .sidebar__nav-item-icon-wrapper {\n display: flex;\n width: tokens.$ifxSize300;\n height: tokens.$ifxSize300;\n justify-content: center;\n align-items: center;\n gap: tokens.$ifxSpace100;\n flex-shrink: 0;\n\n &.noIcon {\n display: none;\n }\n\n & ifx-icon {\n width: tokens.$ifxSize200;\n height: tokens.$ifxSize200;\n }\n }\n\n & .sidebar__nav-item-label {\n font-style: normal;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n display: flex;\n align-items: center;\n flex: none;\n order: 1;\n flex-grow: 1;\n cursor: pointer;\n display: var(--ifx-sidebar-item-text-display, flex);\n }\n\n & .sidebar__nav-item-indicator {\n display: var(--ifx-sidebar-item-text-display, flex);\n flex-direction: row;\n justify-content: center;\n align-items: center;\n padding: 0px 4px;\n flex: none;\n order: 2;\n flex-grow: 0;\n position: relative;\n\n // Collapsed state styling - position indicator over icon\n :host([data-sidebar-collapsed]) & {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 10;\n padding: 0;\n }\n }\n}\n\n.expandable__submenu {\n display: none;\n list-style-type: none;\n flex-direction: column;\n padding: 0;\n margin: 0;\n padding-left: 40px;\n\n &.open {\n display: flex;\n }\n}\n\n.header__section+.expandable__submenu {\n padding-left: 0;\n}","import { Component, h, Prop, Element, State, Listen, Watch, Event, EventEmitter, Method } from '@stencil/core';\n\n@Component({\n tag: 'ifx-sidebar-item',\n styleUrl: 'sidebar-item.scss',\n shadow: true\n})\nexport class SidebarItem {\n @Element() el;\n @Prop() icon: string = \"\"\n @State() showIcon: boolean = true;\n @State() showIconWrapper: boolean = false;\n @Prop() href: string = \"\";\n @State() internalHref: string = \"\";\n @Prop() target: string = \"_self\";\n @State() isExpandable: boolean = false;\n @State() isNested: boolean = true;\n @State() isSubMenuItem: boolean = false;\n @Prop() numberIndicator: number;\n @Prop() active: boolean = false; // set to true manually or by clicking on a navigation item\n @Prop() isActionItem: boolean = false; // if an item is an action item, it can not become active\n @State() indicatorVariant: 'number' | 'dot' = 'number';\n\n @State() internalActiveState: boolean = false;\n \n @Event({ bubbles: true, composed: true }) ifxSidebarMenu: EventEmitter;\n @Event({ bubbles: true, composed: true }) ifxSidebarNavigationItem: EventEmitter;\n @Event({ bubbles: true, composed: true }) ifxSidebarActionItem: EventEmitter;\n\n @Prop() handleItemClick: (item: HTMLElement) => void;\n\n private titleText: string = '';\n\n @Watch('active')\n handleActiveChange(newValue: boolean, oldValue: boolean) {\n // If the item is an action item, ignore the active prop\n if (this.isActionItem) {\n this.internalActiveState = false;\n return;\n }\n this.internalActiveState = newValue;\n if (newValue !== oldValue) {\n let labelElement = this.getNavItem(this.el.shadowRoot)\n if (!this.isExpandable && !newValue) {\n this.handleClassList(labelElement, 'remove', 'active');\n }\n if (!this.isExpandable && newValue) {\n this.handleClassList(labelElement, 'add', 'active');\n }\n }\n }\n\n @Watch('numberIndicator') \n handleNumberIndicatorChange() {\n this.updateIndicatorVariant();\n }\n\n @Listen('consoleError')\n handleConsoleError(event: CustomEvent<boolean>) {\n if (event.detail) {\n this.showIcon = false;\n } else {\n this.showIcon = true;\n }\n }\n\n handleEventEmission() {\n // Get the active item section\n this.ifxSidebarMenu.emit(this.el)\n }\n\n handleClassList(el, type, className) {\n el.classList[type](className)\n if (type === 'contains') {\n return el.classList.contains(className)\n }\n }\n\n getExpandableMenu() {\n const expandableSubmenu = this.el.shadowRoot.querySelector('.expandable__submenu')\n return expandableSubmenu\n }\n\n getNavItem(el) {\n return el?.querySelector('.sidebar__nav-item')\n }\n\n\n\n getSidebarMenuItems(el = this.el) {\n const sidebarItems = el.querySelectorAll('ifx-sidebar-item');\n if (sidebarItems.length === 0) {\n return el.shadowRoot.querySelectorAll('ifx-sidebar-item');\n }\n return sidebarItems;\n }\n\n getSidebarMenuItem() {\n const sidebarItem = this.el.shadowRoot.querySelector('.sidebar__nav-item')\n return sidebarItem;\n }\n\n\n toggleSubmenu() {\n if (this.isExpandable) {\n const menuItem = this.getSidebarMenuItem();\n const expandableMenu = this.getExpandableMenu();\n this.handleClassList(expandableMenu, 'toggle', 'open');\n this.handleClassList(menuItem, 'toggle', 'open');\n // Emit an event with the current component\n this.handleEventEmission();\n } else {\n // If the sidebar item is not expandable, it's a leaf item without a submenu.\n // Emit an event to the parent `ifx-sidebar` component to notify it that a leaf item has been clicked.\n if (this.isActionItem) { //its an action item that eg opens an overlay etc and should not influence the active state of the item\n this.ifxSidebarActionItem.emit(this.el); // emit new event if isActionItem is true\n return;\n } else { //its a navigation item which becomes active after clicking it\n this.handleActiveChange(true, this.internalActiveState)\n this.ifxSidebarNavigationItem.emit(this.el);\n }\n // If the sidebar item is selectable (not expandable), then call the handler function with the current element.\n if (this.handleItemClick) {\n this.handleItemClick(this.el);\n }\n }\n // // Emit an event with the current component\n // this.handleEventEmission();\n }\n\n\n\n handleExpandableMenu(sidebarItems) {\n const sidebarExpandableMenu = this.getExpandableMenu();\n sidebarItems.forEach((el: HTMLElement) => {\n const li = document.createElement('li')\n li.appendChild(el)\n sidebarExpandableMenu.appendChild(li)\n })\n }\n\n parentElementIsSidebar() {\n const parentElement = this.el.parentElement;\n if (parentElement.tagName.toUpperCase() === 'IFX-SIDEBAR') {\n return true;\n } else return false;\n }\n\n checkIfMenuItemIsNested() {\n const parentIsSidebar = this.parentElementIsSidebar()\n if (parentIsSidebar) {\n this.isNested = false;\n }\n }\n\n checkIfMenuItemIsSubMenu() {\n const parentElement = this.el.parentElement;\n const navItem = this.getNavItem(parentElement.shadowRoot);\n if(parentElement.tagName.toUpperCase() === 'IFX-SIDEBAR-ITEM' && !this.handleClassList(navItem, 'contains', 'header__section')) {\n this.isSubMenuItem = true;\n }else {\n this.isSubMenuItem = false;\n }\n }\n\n isActive(iteratedComponent) {\n const activeAttributeValue = iteratedComponent.getAttribute('active');\n const isActive = activeAttributeValue === 'true';\n return isActive\n }\n\n getParentSection(el: HTMLElement) {\n let parentElement = el.parentElement;\n\n while (parentElement && parentElement.tagName.toUpperCase() !== 'IFX-SIDEBAR') {\n if (parentElement.tagName.toUpperCase() === 'IFX-SIDEBAR-ITEM') {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n\n return null;\n }\n\n\n\n handleBorderIndicatorDisplacement(menuItem) {\n // Recursive function to handle each item\n const handleItem = (item, menuItem) => {\n const isActive = this.isActive(item);\n if (isActive) {\n const isOpen = this.handleClassList(menuItem, 'contains', 'open');\n const activeMenuItemSection = this.getActiveItemSection();\n if (!isOpen) {\n this.handleClassList(activeMenuItemSection, 'add', 'active-section');\n } else {\n this.handleClassList(activeMenuItemSection, 'remove', 'active-section');\n }\n }\n\n // Process each child item\n const children = this.getSidebarMenuItems(item);\n children.forEach((child) => handleItem(child, menuItem));\n }\n\n // Start with the top-level items\n const topLevelItems = this.getSidebarMenuItems();\n topLevelItems.forEach((item) => handleItem(item, menuItem));\n }\n\n\n setHref() {\n if (this.href.toLowerCase().trim() === \"\") {\n this.internalHref = undefined;\n } else this.internalHref = this.href;\n }\n\n getActiveItemSection() {\n const parentIsSidebar = this.parentElementIsSidebar()\n if (parentIsSidebar) {\n const labelElement = this.getNavItem(this.el.shadowRoot)\n return labelElement;\n } else {\n const labelElement = this.getNavItem(this.el.shadowRoot)\n return labelElement;\n }\n }\n\n @Method()\n async setActiveClasses() {\n const activeMenuItem = this.getNavItem(this.el.shadowRoot)\n this.handleClassList(activeMenuItem, 'add', 'active')\n }\n\n @Method()\n async expandMenu(ac: boolean){\n const menuItem = this.getSidebarMenuItem();\n const expandableMenu = this.getExpandableMenu();\n this.handleClassList(expandableMenu, 'add', 'open');\n this.handleClassList(menuItem, 'add', 'open');\n if(ac){\n this.handleClassList(expandableMenu, 'remove', 'active-section')\n this.handleClassList(menuItem, 'remove', 'active-section')\n }\n }\n\n @Method()\n async isItemExpandable(){\n return this.isExpandable;\n }\n\n handleActiveState() {\n if (this.internalActiveState) {\n this.setActiveClasses()\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.toggleSubmenu()\n }\n }\n\n componentDidLoad() {\n this.handleActiveState();\n if (this.isExpandable) {\n const sidebarItems = this.getSidebarMenuItems();\n this.handleExpandableMenu(sidebarItems)\n }\n // Listen for collapsed state changes\n this.updateIndicatorVariant();\n // Set up MutationObserver to watch for CSS custom property changes\n this.observeCollapsedState();\n // Extract text content for title attribute\n this.extractTitleText();\n }\n\n private extractTitleText() {\n // Get the text content from the slot\n const slotElement = this.el.shadowRoot.querySelector('slot');\n if (slotElement) {\n const assignedNodes = slotElement.assignedNodes();\n this.titleText = assignedNodes\n .filter(node => node.nodeType === Node.TEXT_NODE || node.nodeType === Node.ELEMENT_NODE)\n .map(node => node.textContent?.trim() || '')\n .join(' ')\n .trim();\n }\n }\n\n private updateIndicatorVariant() {\n // Check the data attribute on this element\n const isCollapsed = this.el.hasAttribute('data-sidebar-collapsed');\n //this.indicatorVariant = isCollapsed ? 'dot' : 'number';\n if (this.numberIndicator > 0) {\n this.indicatorVariant = isCollapsed ? 'dot' : 'number';\n }\n }\n\n private observeCollapsedState() {\n // Create a MutationObserver to watch for data-sidebar-collapsed attribute changes\n const observer = new MutationObserver(() => {\n this.updateIndicatorVariant();\n });\n\n observer.observe(this.el, {\n attributes: true,\n attributeFilter: ['data-sidebar-collapsed']\n });\n }\n\n componentWillLoad() {\n this.internalActiveState = this.active;\n this.checkIfMenuItemIsNested();\n this.checkIfMenuItemIsSubMenu();\n this.setHref()\n\n // Set attribute to track if item has icon\n this.el.setAttribute('data-has-icon', this.icon ? 'true' : 'false');\n\n const sidebarItems = this.getSidebarMenuItems();\n if (sidebarItems.length !== 0) {\n this.isExpandable = true;\n } else {\n this.isExpandable = false;\n }\n }\n\n componentWillUpdate() {\n // If the active prop has been set to true and the internalActiveState has not been set to true yet\n if (this.active && !this.internalActiveState) {\n // Set the internal active state to true\n this.internalActiveState = this.active;\n\n // Emit the event to notify the parent Sidebar\n this.ifxSidebarNavigationItem.emit(this.el);\n }\n }\n\n\nrender() {\n const isCollapsed = this.el.hasAttribute('data-sidebar-collapsed');\n const shouldHide = this.el.hasAttribute('data-hide-in-collapsed');\n\n return (\n <div style={{ display: shouldHide ? 'none' : 'block' }}>\n <a\n tabIndex={1}\n onKeyDown={(event) => this.handleKeyDown(event)}\n href={this.internalHref}\n onClick={() => this.toggleSubmenu()}\n target={this.target}\n class={`sidebar__nav-item ${!this.isNested && this.isExpandable ? 'header__section' : \"\"} ${this.isSubMenuItem ? 'submenu__item' : \"\"}`}\n title={this.titleText}\n >\n {this.icon &&\n <div class={`sidebar__nav-item-icon-wrapper ${!this.showIcon && !isCollapsed ? 'noIcon' : \"\"}`}>\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>}\n <div class=\"sidebar__nav-item-label\">\n <slot />\n </div>\n {\n (this.isExpandable || !isNaN(this.numberIndicator)) &&\n <div class=\"sidebar__nav-item-indicator\" style={{\n display: (!isCollapsed || this.icon) ? 'flex' : 'none'\n }}>\n {this.isExpandable &&\n <span class='item__arrow-wrapper'>\n <ifx-icon icon=\"chevron-down-16\" />\n </span>\n }\n\n {this.numberIndicator > 0 && !this.isExpandable && !this.isNested &&\n <span class=\"item__number-indicator\">\n <ifx-indicator\n variant={this.indicatorVariant}\n number={this.numberIndicator}>\n </ifx-indicator>\n </span>}\n\n </div>\n }\n </a>\n {this.isExpandable && <ul class='expandable__submenu'></ul>}\n\n </div>\n );\n}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as e,h as t,a as n}from"./p-PqnYwNKt.js";const i=':host(.hidden){display:none}.navbar__item{position:relative;display:flex;flex-direction:row;align-items:center;padding:0px 8px;flex:none;order:0;flex-grow:0;font-family:var(--ifx-font-family);text-decoration:none;font-weight:400;font-size:16px;color:#1D1D1D}.navbar__item.hide{display:none}.navbar__item.isParent{gap:8px}.navbar__item .navItemIconWrapper{transition:0.3s;display:flex}.navbar__item.open .navItemIconWrapper{transform:rotate(-180deg);transition:0.3s}.navbar__item:hover{color:#0A8276;cursor:pointer}.navbar__item:hover .username__tooltip{display:block}.navbar__item:hover .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{cursor:pointer;background-color:#08665C}.navbar__item.remove{display:none}.navbar__item.removeLabel .label__wrapper{display:none}.navbar__item .number__indicator-wrapper{position:relative;top:-11px}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:0px;gap:8px;flex:none;order:0;flex-grow:0}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .username__tooltip{display:none;position:absolute;top:35px;right:0;text-wrap:nowrap;padding:1px 5px;font-size:13px;font-family:"Source Sans 3";background-color:black;color:#fff;z-index:99}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper:hover .username__tooltip{display:block}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{display:flex;width:24px;height:24px;justify-content:center;align-items:center;border-radius:100%;background-color:#0A8276}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper .initials{color:#FFF;text-align:center;font-family:"Source Sans 3";font-size:14px;font-style:normal;font-weight:600;line-height:20px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper img{width:24px;height:24px;border-radius:100%}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.removeWrapper{display:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.hide{display:none}.container{position:relative}.container:focus{outline:none;box-shadow:0 0 0 2px #FFFFFF, 0 0 0 4px #0A8276}.container .sub__layer-back-button{display:none}.container .sub__layer-back-button.show{display:flex;justify-content:flex-start}.container .sub__layer-back-button.show .back__button-wrapper{display:flex;align-items:center;gap:8px;padding:8px 0 16px 0;color:#0A8276;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.container .sub__layer-back-button.show .back__button-wrapper span:hover,.container .sub__layer-back-button.show .back__button-wrapper ifx-icon:hover{cursor:pointer}.container.hide{display:none}.container .inner__content-wrapper{position:relative;display:flex;justify-content:space-between;align-items:center;gap:8px}.container .inner__content-wrapper.no-gap{gap:0px}.container .inner__content-wrapper .navbar__container-right-content-navigation-item-icon-wrapper.no-gap{gap:0px}.container .inner__content-wrapper .number__indicator-wrapper{position:relative;top:-11px}.navbar-menu{position:absolute;display:none;list-style-type:none;visibility:visible;flex-direction:column;width:224px;min-width:224px;background:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;padding:8px 0px;font-family:var(--ifx-font-family)}.navbar-menu.open:not(.itemInMobileMenu){display:flex}.navbar-menu.itemInMobileMenu{display:none}.navbar-menu.right{left:100%;top:-40%}.navbar-menu.left{top:-40%;right:100%}.navbar-menu.rightSideItemMenu{left:initial;right:0px}.navbar__item.layer__item-parent{color:#1D1D1D;font-size:24px;font-style:normal;font-weight:600;line-height:32px;letter-spacing:-0.24px;cursor:initial}.navbar__item.layer__item-parent .navbar__container-right-content-navigation-item-icon-wrapper ifx-icon svg{width:24px;height:24px}.navbar__item.sidebarMenuItem{justify-content:space-between;padding:0}.navbar__item.menuItem{text-decoration:none;color:#1D1D1D;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:8px;font-family:var(--ifx-font-family)}.navbar__item.menuItem.hide{display:none}.navbar__item.menuItem .label__wrapper{color:#1D1D1D;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.navbar__item.menuItem:hover{cursor:pointer;background-color:#EEEDED}.navbar__item.menuItem:active{background-color:#BFBBBB}.sub__layer-menu{padding:5px;display:none}.sub__layer-menu.remove__margin{margin:0;padding:0}.sub__layer-menu.open{display:block}.navbar__item.hide{display:none}.menuItemRightIconWrapper.hide{display:none}.navItemIconWrapper.hide{display:none}';const a=class{constructor(t){e(this,t);this.showLabel=true;this.href="";this.imageUrl="";this.target="_self";this.alt="";this.userName="";this.internalHref="";this.isMenuItem=false;this.hasChildNavItems=false;this.internalImageUrl={type:"",value:""};this.defaultProfileImage=`<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">\n<rect width="48" height="48" fill="#0A8276"/>\n<path fill-rule="evenodd" clip-rule="evenodd" d="M24 14C21.7909 14 20 15.7909 20 18C20 20.2091 21.7909 22 24 22C26.2091 22 28 20.2091 28 18C28 15.7909 26.2091 14 24 14ZM18 18C18 14.6863 20.6863 12 24 12C27.3137 12 30 14.6863 30 18C30 21.3137 27.3137 24 24 24C20.6863 24 18 21.3137 18 18ZM16.5869 28.3984C18.2683 27.0179 20.7466 26 24 26C27.2541 26 29.7324 27.0209 31.4134 28.4024C33.0562 29.7526 34 31.5119 34 33V35C34 35.5523 33.5523 36 33 36H15C14.4477 36 14 35.5523 14 35V33C14 31.5074 14.9433 29.7479 16.5869 28.3984ZM17.8561 29.9441C16.5187 31.0421 16 32.2826 16 33V34H32V33C32 32.2881 31.4818 31.0474 30.1436 29.9476C28.8436 28.8791 26.8219 28 24 28C21.1774 28 19.1557 28.8771 17.8561 29.9441Z" fill="white"/>\n</svg>`}handleOutsideClick(e){const t=e.composedPath();const n=this.getItemMenu();if(n){if(n.classList.contains("open")){if(!t.includes(this.el)){this.closeItemMenu()}}}}componentWillLoad(){this.setHref();this.setImage();const e=this.getNavbarItems();if(e.length!==0){this.hasChildNavItems=true}else{this.hasChildNavItems=false}}componentDidLoad(){this.setProfileGap();if(this.hasChildNavItems){const e=this.getNavbarItems();this.appendNavItemToMenu(e)}}async hideComponent(){this.el.style.display="none"}async showComponent(){this.el.style.display=""}handleClassList(e,t,n){e.classList[t](n);if(t==="contains"){return e.classList.contains(n)}}getNavbarItems(){const e=this.el.querySelectorAll("ifx-navbar-item");return e}getNavBarItem(){const e=this.el.shadowRoot.querySelector(".navbar__item");return e}relocateUsingSlot(e){e.forEach((e=>{e.setAttribute("slot","first__layer")}))}appendNavItemToMenu(e){this.relocateUsingSlot(e)}isValidHttpUrl(e){let t;try{t=new URL(e)}catch(e){return false}return t.protocol==="http:"||t.protocol==="https:"}setImage(){if(this.imageUrl.toLowerCase().trim()===""){this.internalImageUrl={type:undefined,value:""}}else if(this.isValidHttpUrl(this.imageUrl)){this.internalImageUrl={type:"url",value:this.imageUrl}}else{this.internalImageUrl={type:"initials",value:this.imageUrl}}}setHref(){if(this.href.toLowerCase().trim()===""){this.internalHref=undefined}else this.internalHref=this.href}setProfileGap(){const e=this.el.shadowRoot.querySelector(".inner__content-wrapper");const t=this.el.shadowRoot.querySelector(".label__wrapper");const n=t.querySelector("slot");const i=n.assignedNodes();if(!i.length){this.handleClassList(e,"add","no-gap")}else{this.handleClassList(e,"remove","no-gap")}}getItemMenu(){const e=this.el.shadowRoot.querySelector(".navbar-menu");return e}closeItemMenu(){const e=this.getItemMenu();const t=this.getNavBarItem();if(e){this.handleClassList(e,"remove","open");this.handleClassList(t,"remove","open")}}toggleItemMenu(){if(!this.internalHref){if(this.isMenuItem&&this.hasChildNavItems){const e=this.getItemMenu();this.handleClassList(e,"add","right")}if(this.hasChildNavItems){const e=this.getItemMenu();const t=this.getNavBarItem();this.handleClassList(e,"toggle","open");this.handleClassList(t,"toggle","open")}}}itemHasNestedItems(){const e=this.el.shadowRoot.querySelector("ifx-navbar-item");if(e){return true}else{return false}}render(){return t("div",{key:"837122b11b554e17b60c07c303944a11b17a1eae",class:"container"},t("a",{key:"fde977c00f830b4a070edad21927393d5a79c117",href:this.internalHref,target:this.target,onClick:()=>this.toggleItemMenu(),class:`navbar__item ${!this.showLabel?"removeLabel":""} ${this.hasChildNavItems?"isParent":""}`},t("div",{key:"d4d190de3cf180bef8579d362a28519ddaa5fe3b",class:"inner__content-wrapper"},t("div",{key:"af01f7621f00de51db3ce906164c008778324ef5",class:`navbar__container-right-content-navigation-item-icon-wrapper`},this.userName.trim()!==""&&t("div",{key:"5df6af9768a82cc9265b252b36f7927c37b51539",class:"username__tooltip"},this.userName),this.internalImageUrl.type!=="initials"&&t("img",{key:"c9748a87892e169c9b472d21fbdb2d4957bb6bfb",src:this.internalImageUrl.type==="url"?this.internalImageUrl.value:`data:image/svg+xml,${encodeURIComponent(this.defaultProfileImage)}`,alt:this.alt}),this.internalImageUrl.type==="initials"&&t("div",{key:"604c7d5245f09daba9b19a890eaabbde87951d8b",class:"initials__wrapper"},t("span",{key:"2bc213ff673fc4af3d10da3caa99275ba38d276c",class:"initials"},this.internalImageUrl.value))),t("span",{key:"e073d5b6763d3b716980c598b78f0ed099fc4791",class:"label__wrapper"},t("slot",{key:"051f2cc80248b847944a03b04651786785d2fa4f",onSlotchange:()=>this.setProfileGap()})))),this.hasChildNavItems&&t("ul",{key:"cefecb5bef10e87e336aa8c0620cb996da674ea3",class:"navbar-menu rightSideItemMenu"}," ",t("slot",{key:"ae09e66ce2dedcec664c7d1d8c351cfca2c6a647",name:"first__layer"})," "))}static get assetsDirs(){return["assets"]}get el(){return n(this)}};a.style=i;export{a as ifx_navbar_profile};
2
- //# sourceMappingURL=p-9b06df76.entry.js.map
1
+ import{r as e,h as t,a as n}from"./p-DtIEDtZ8.js";const i=':host(.hidden){display:none}.navbar__item{position:relative;display:flex;flex-direction:row;align-items:center;padding:0px 8px;flex:none;order:0;flex-grow:0;font-family:var(--ifx-font-family);text-decoration:none;font-weight:400;font-size:16px;color:#1D1D1D}.navbar__item.hide{display:none}.navbar__item.isParent{gap:8px}.navbar__item .navItemIconWrapper{transition:0.3s;display:flex}.navbar__item.open .navItemIconWrapper{transform:rotate(-180deg);transition:0.3s}.navbar__item:hover{color:#0A8276;cursor:pointer}.navbar__item:hover .username__tooltip{display:block}.navbar__item:hover .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{cursor:pointer;background-color:#08665C}.navbar__item.remove{display:none}.navbar__item.removeLabel .label__wrapper{display:none}.navbar__item .number__indicator-wrapper{position:relative;top:-11px}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;padding:0px;gap:8px;flex:none;order:0;flex-grow:0}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .username__tooltip{display:none;position:absolute;top:35px;right:0;text-wrap:nowrap;padding:1px 5px;font-size:13px;font-family:"Source Sans 3";background-color:black;color:#fff;z-index:99}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper:hover .username__tooltip{display:block}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper{display:flex;width:24px;height:24px;justify-content:center;align-items:center;border-radius:100%;background-color:#0A8276}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper .initials__wrapper .initials{color:#FFF;text-align:center;font-family:"Source Sans 3";font-size:14px;font-style:normal;font-weight:600;line-height:20px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper img{width:24px;height:24px;border-radius:100%}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.removeWrapper{display:none}.navbar__item .navbar__container-right-content-navigation-item-icon-wrapper.hide{display:none}.container{position:relative}.container:focus{outline:none;box-shadow:0 0 0 2px #FFFFFF, 0 0 0 4px #0A8276}.container .sub__layer-back-button{display:none}.container .sub__layer-back-button.show{display:flex;justify-content:flex-start}.container .sub__layer-back-button.show .back__button-wrapper{display:flex;align-items:center;gap:8px;padding:8px 0 16px 0;color:#0A8276;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.container .sub__layer-back-button.show .back__button-wrapper span:hover,.container .sub__layer-back-button.show .back__button-wrapper ifx-icon:hover{cursor:pointer}.container.hide{display:none}.container .inner__content-wrapper{position:relative;display:flex;justify-content:space-between;align-items:center;gap:8px}.container .inner__content-wrapper.no-gap{gap:0px}.container .inner__content-wrapper .navbar__container-right-content-navigation-item-icon-wrapper.no-gap{gap:0px}.container .inner__content-wrapper .number__indicator-wrapper{position:relative;top:-11px}.navbar-menu{position:absolute;display:none;list-style-type:none;visibility:visible;flex-direction:column;width:224px;min-width:224px;background:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;padding:8px 0px;font-family:var(--ifx-font-family)}.navbar-menu.open:not(.itemInMobileMenu){display:flex}.navbar-menu.itemInMobileMenu{display:none}.navbar-menu.right{left:100%;top:-40%}.navbar-menu.left{top:-40%;right:100%}.navbar-menu.rightSideItemMenu{left:initial;right:0px}.navbar__item.layer__item-parent{color:#1D1D1D;font-size:24px;font-style:normal;font-weight:600;line-height:32px;letter-spacing:-0.24px;cursor:initial}.navbar__item.layer__item-parent .navbar__container-right-content-navigation-item-icon-wrapper ifx-icon svg{width:24px;height:24px}.navbar__item.sidebarMenuItem{justify-content:space-between;padding:0}.navbar__item.menuItem{text-decoration:none;color:#1D1D1D;display:flex;align-items:center;justify-content:space-between;padding:8px 16px;gap:8px;font-family:var(--ifx-font-family)}.navbar__item.menuItem.hide{display:none}.navbar__item.menuItem .label__wrapper{color:#1D1D1D;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.navbar__item.menuItem:hover{cursor:pointer;background-color:#EEEDED}.navbar__item.menuItem:active{background-color:#BFBBBB}.sub__layer-menu{padding:5px;display:none}.sub__layer-menu.remove__margin{margin:0;padding:0}.sub__layer-menu.open{display:block}.navbar__item.hide{display:none}.menuItemRightIconWrapper.hide{display:none}.navItemIconWrapper.hide{display:none}';const a=class{constructor(t){e(this,t);this.showLabel=true;this.href="";this.imageUrl="";this.target="_self";this.alt="";this.userName="";this.internalHref="";this.isMenuItem=false;this.hasChildNavItems=false;this.internalImageUrl={type:"",value:""};this.defaultProfileImage=`<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">\n<rect width="48" height="48" fill="#0A8276"/>\n<path fill-rule="evenodd" clip-rule="evenodd" d="M24 14C21.7909 14 20 15.7909 20 18C20 20.2091 21.7909 22 24 22C26.2091 22 28 20.2091 28 18C28 15.7909 26.2091 14 24 14ZM18 18C18 14.6863 20.6863 12 24 12C27.3137 12 30 14.6863 30 18C30 21.3137 27.3137 24 24 24C20.6863 24 18 21.3137 18 18ZM16.5869 28.3984C18.2683 27.0179 20.7466 26 24 26C27.2541 26 29.7324 27.0209 31.4134 28.4024C33.0562 29.7526 34 31.5119 34 33V35C34 35.5523 33.5523 36 33 36H15C14.4477 36 14 35.5523 14 35V33C14 31.5074 14.9433 29.7479 16.5869 28.3984ZM17.8561 29.9441C16.5187 31.0421 16 32.2826 16 33V34H32V33C32 32.2881 31.4818 31.0474 30.1436 29.9476C28.8436 28.8791 26.8219 28 24 28C21.1774 28 19.1557 28.8771 17.8561 29.9441Z" fill="white"/>\n</svg>`}handleOutsideClick(e){const t=e.composedPath();const n=this.getItemMenu();if(n){if(n.classList.contains("open")){if(!t.includes(this.el)){this.closeItemMenu()}}}}componentWillLoad(){this.setHref();this.setImage();const e=this.getNavbarItems();if(e.length!==0){this.hasChildNavItems=true}else{this.hasChildNavItems=false}}componentDidLoad(){this.setProfileGap();if(this.hasChildNavItems){const e=this.getNavbarItems();this.appendNavItemToMenu(e)}}async hideComponent(){this.el.style.display="none"}async showComponent(){this.el.style.display=""}handleClassList(e,t,n){e.classList[t](n);if(t==="contains"){return e.classList.contains(n)}}getNavbarItems(){const e=this.el.querySelectorAll("ifx-navbar-item");return e}getNavBarItem(){const e=this.el.shadowRoot.querySelector(".navbar__item");return e}relocateUsingSlot(e){e.forEach((e=>{e.setAttribute("slot","first__layer")}))}appendNavItemToMenu(e){this.relocateUsingSlot(e)}isValidHttpUrl(e){let t;try{t=new URL(e)}catch(e){return false}return t.protocol==="http:"||t.protocol==="https:"}setImage(){if(this.imageUrl.toLowerCase().trim()===""){this.internalImageUrl={type:undefined,value:""}}else if(this.isValidHttpUrl(this.imageUrl)){this.internalImageUrl={type:"url",value:this.imageUrl}}else{this.internalImageUrl={type:"initials",value:this.imageUrl}}}setHref(){if(this.href.toLowerCase().trim()===""){this.internalHref=undefined}else this.internalHref=this.href}setProfileGap(){const e=this.el.shadowRoot.querySelector(".inner__content-wrapper");const t=this.el.shadowRoot.querySelector(".label__wrapper");const n=t.querySelector("slot");const i=n.assignedNodes();if(!i.length){this.handleClassList(e,"add","no-gap")}else{this.handleClassList(e,"remove","no-gap")}}getItemMenu(){const e=this.el.shadowRoot.querySelector(".navbar-menu");return e}closeItemMenu(){const e=this.getItemMenu();const t=this.getNavBarItem();if(e){this.handleClassList(e,"remove","open");this.handleClassList(t,"remove","open")}}toggleItemMenu(){if(!this.internalHref){if(this.isMenuItem&&this.hasChildNavItems){const e=this.getItemMenu();this.handleClassList(e,"add","right")}if(this.hasChildNavItems){const e=this.getItemMenu();const t=this.getNavBarItem();this.handleClassList(e,"toggle","open");this.handleClassList(t,"toggle","open")}}}itemHasNestedItems(){const e=this.el.shadowRoot.querySelector("ifx-navbar-item");if(e){return true}else{return false}}render(){return t("div",{key:"837122b11b554e17b60c07c303944a11b17a1eae",class:"container"},t("a",{key:"fde977c00f830b4a070edad21927393d5a79c117",href:this.internalHref,target:this.target,onClick:()=>this.toggleItemMenu(),class:`navbar__item ${!this.showLabel?"removeLabel":""} ${this.hasChildNavItems?"isParent":""}`},t("div",{key:"d4d190de3cf180bef8579d362a28519ddaa5fe3b",class:"inner__content-wrapper"},t("div",{key:"af01f7621f00de51db3ce906164c008778324ef5",class:`navbar__container-right-content-navigation-item-icon-wrapper`},this.userName.trim()!==""&&t("div",{key:"5df6af9768a82cc9265b252b36f7927c37b51539",class:"username__tooltip"},this.userName),this.internalImageUrl.type!=="initials"&&t("img",{key:"c9748a87892e169c9b472d21fbdb2d4957bb6bfb",src:this.internalImageUrl.type==="url"?this.internalImageUrl.value:`data:image/svg+xml,${encodeURIComponent(this.defaultProfileImage)}`,alt:this.alt}),this.internalImageUrl.type==="initials"&&t("div",{key:"604c7d5245f09daba9b19a890eaabbde87951d8b",class:"initials__wrapper"},t("span",{key:"2bc213ff673fc4af3d10da3caa99275ba38d276c",class:"initials"},this.internalImageUrl.value))),t("span",{key:"e073d5b6763d3b716980c598b78f0ed099fc4791",class:"label__wrapper"},t("slot",{key:"051f2cc80248b847944a03b04651786785d2fa4f",onSlotchange:()=>this.setProfileGap()})))),this.hasChildNavItems&&t("ul",{key:"cefecb5bef10e87e336aa8c0620cb996da674ea3",class:"navbar-menu rightSideItemMenu"}," ",t("slot",{key:"ae09e66ce2dedcec664c7d1d8c351cfca2c6a647",name:"first__layer"})," "))}static get assetsDirs(){return["assets"]}get el(){return n(this)}};a.style=i;export{a as ifx_navbar_profile};
2
+ //# sourceMappingURL=p-5c673497.entry.js.map
@@ -0,0 +1,2 @@
1
+ import{r as e,c as t,h as i,a as s,d as o}from"./p-DtIEDtZ8.js";import{d as n,t as l}from"./p-DcmcuUOA.js";import{i as c}from"./p-Bw2fh5LT.js";const r=':root{--ifx-font-family:"Source Sans 3", \'Arial, sans-serif\'}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:var(--ifx-font-family)}.ifx-multiselect-container.disabled .ifx-label-wrapper{color:#BFBBBB}.ifx-multiselect-container.disabled .ifx-multiselect-wrapper{background:#BFBBBB;color:#FFFFFF;border-color:#BFBBBB;cursor:default;-webkit-user-select:none;-ms-user-select:none;user-select:none}.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-label-wrapper .required{margin-left:4px}.ifx-multiselect-container .ifx-label-wrapper .required.error{color:#CD002F}.ifx-multiselect-container .multi__select-caption{font-style:normal;font-weight:400;font-size:0.75rem;line-height:1rem;color:#1D1D1D;flex:none;order:1;align-self:stretch;flex-grow:0}.ifx-multiselect-container .multi__select-caption.error{color:#CD002F}.ifx-multiselect-container .multi__select-caption.disabled{color:#BFBBBB}.ifx-multiselect-container .ifx-multiselect-wrapper{background-color:#FFFFFF;box-sizing:border-box;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;width:100%;font-weight:400;font-style:normal;height:40px;line-height:24px;padding:8px 16px;font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible{outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active){outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active)::before{content:"";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:50%;left:50%;transform:translate(-50%, -50%);border:2px solid #0A8276;border-radius:2px}.ifx-multiselect-container .ifx-multiselect-wrapper.error{border-color:#CD002F}.ifx-multiselect-container .ifx-multiselect-wrapper.active{border-color:#0A8276 !important}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-up{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-down{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-up{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-down{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.is-flipped .ifx-multiselect-dropdown-menu{top:auto;bottom:100%}.ifx-multiselect-container .ifx-multiselect-input{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ifx-multiselect-container .ifx-multiselect-input.placeholder{opacity:0.5}.ifx-multiselect-container .ifx-multiselect-icon-container{margin-left:auto;display:flex;align-items:center;gap:8px}.ifx-multiselect-container .ifx-multiselect-icon-container .ifx-multiselect-icon-container{display:flex}.ifx-multiselect-container .ifx-multiselect-icon-container .icon-wrapper{display:flex;align-items:center;transition:transform 0.2s ease-in-out}.ifx-multiselect-container .ifx-multiselect-icon-container .icon-wrapper--open{transform:rotate(180deg)}.ifx-multiselect-container .ifx-clear-button{display:flex;align-items:center}.ifx-multiselect-container .ifx-clear-button.hide{display:none}.ifx-multiselect-container .ifx-multiselect-dropdown-menu{box-sizing:border-box;position:absolute;top:100%;left:0;width:100%;margin-top:4px;border:1px solid #EEEDED;background-color:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1);max-height:300px;z-index:1000;display:flex;flex-direction:column}.ifx-multiselect-container:not(.disabled) .ifx-multiselect-wrapper:hover:not(.focus,:focus){border-color:#575352}.ifx-multiselect-dropdown-functions{padding:12px 16px;border-bottom:1px solid #EEEDED;flex-shrink:0}.ifx-multiselect-dropdown-search{margin-bottom:12px}.ifx-multiselect-dropdown-controls{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.ifx-multiselect-dropdown-controls .select-all-wrapper{display:flex}.ifx-multiselect-dropdown-controls .expand-collapse-controls{display:flex;gap:12px}.ifx-multiselect-dropdown-controls .control-item{font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-dropdown-controls .control-item:hover{color:#0A8276}.ifx-multiselect-dropdown-controls .control-item:active{color:#08665C}.ifx-multiselect-dropdown-controls .control-item:focus{outline:none}.ifx-multiselect-dropdown-controls .control-item:focus-visible{outline:2px solid #0A8276;outline-offset:2px;border-radius:1px}.ifx-multiselect-options{flex:1;overflow-y:auto;padding-top:12px;padding-bottom:12px}.ifx-multiselect-options.show-no-results .ifx-multiselect-no-results{display:block}.ifx-multiselect-no-results{padding-left:16px;padding-right:16px;display:none}';function a(e,t){let i;return function s(...o){const n=()=>{clearTimeout(i);e(...o)};clearTimeout(i);i=setTimeout(n,t)}}const h=class{constructor(i){e(this,i);this.ifxSelect=t(this,"ifxSelect",7);this.ifxOpen=t(this,"ifxOpen",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.disabled=false;this.required=false;this.error=false;this.caption="";this.label="";this.placeholder="";this.showSearch=true;this.showSelectAll=true;this.showClearButton=true;this.showExpandCollapse=true;this.noResultsMessage="No results found.";this.showNoResultsMessage=true;this.searchPlaceholder="Search";this.selectAllLabel="Select all";this.expandLabel="Expand";this.collapseLabel="Collapse";this.ariaMultiSelectLabel="Multi-select dropdown";this.ariaMultiSelectLabelledBy="";this.ariaMultiSelectDescribedBy="";this.ariaSearchLabel="Search options";this.ariaClearLabel="Clear all selections";this.ariaToggleLabel="Toggle dropdown";this.ariaSelectAllLabel="Select all options";this.ariaExpandAllLabel="Expand all categories";this.ariaCollapseAllLabel="Collapse all categories";this.internalError=false;this.persistentSelectedOptions=[];this.dropdownOpen=false;this.searchTerm="";this.handleSearch=a((e=>{const t=e.value.toLowerCase();const i=t!=="";this.searchTerm=t;const s=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper");if(s){if(i){s.classList.remove("active")}else{const e=this.el.shadowRoot.querySelector("ifx-search-field");const t=e&&e.matches(":focus-within");if(!t){s.classList.add("active")}}}const o=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(o){if(i){o.classList.add("has-search-filter")}else{o.classList.remove("has-search-filter")}}requestAnimationFrame((()=>{const e=this.el.querySelectorAll("ifx-multiselect-option");e.forEach((e=>{const s=new CustomEvent("ifx-search-filter",{detail:{searchTerm:t,isActive:i}});e.dispatchEvent(s)}));if(i){setTimeout((()=>{const e=this.el.querySelectorAll("ifx-multiselect-option");let t=0;e.forEach((e=>{const i=window.getComputedStyle(e);const s=e.getBoundingClientRect();if(i.display!=="none"&&i.visibility!=="hidden"&&i.opacity!=="0"&&s.height>0){t++}}));const i=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(i){if(t===0){i.classList.add("show-no-results")}else{i.classList.remove("show-no-results")}}}),200)}else{const e=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(e){e.classList.remove("show-no-results")}}}))}),150);this.handleDocumentClick=e=>{const t=e.composedPath();if(!t.includes(this.dropdownElement)){this.dropdownOpen=false;document.removeEventListener("click",this.handleDocumentClick);this.resetSearch();this.ifxOpen.emit(this.dropdownOpen)}}}parseChildOptions(){const e=[];const t=Array.from(this.el.children);t.forEach(((t,i)=>{if(t.tagName==="IFX-MULTISELECT-OPTION"){const s=this.parseOptionElement(t,i);if(s){e.push(s)}}}));return e}parseOptionElement(e,t){const i=e.getAttribute("value")||`option-${t}`;const s=e.hasAttribute("selected");const o=e.hasAttribute("disabled");const n=e.hasAttribute("indeterminate");const l={value:i,selected:s,disabled:o,indeterminate:n};const c=Array.from(e.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION")).map(((e,t)=>this.parseOptionElement(e,t))).filter((e=>e!==null));if(c.length>0){l.children=c}return l}loadInitialOptions(){this.internalError=this.error;const e=this.parseChildOptions();const t=this.collectSelectedOptions(e);const i=t.filter((e=>!this.persistentSelectedOptions.some((t=>t.value==e.value))));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...i]}collectSelectedOptions(e){let t=[];for(const i of e){if(i.selected){if(i.children&&i.children.length>0){t=t.concat(this.collectLeafOptions(i.children))}else{if(!t.some((e=>e.value===i.value))){t.push(i)}}}else{if(i.children&&i.children.length>0){t=t.concat(this.collectSelectedOptions(i.children))}}}return t}collectLeafOptions(e){let t=[];for(const i of e){if(i.children&&i.children.length>0){t=t.concat(this.collectLeafOptions(i.children))}else{t.push(i)}}return t}handleSearchFocus(e){const t=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper");if(t){if(e||this.searchTerm!==""){t.classList.remove("active")}else{t.classList.add("active")}}}positionDropdown(){var e;const t=(e=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper"))===null||e===void 0?void 0:e.getBoundingClientRect();const i=window.innerHeight-t.bottom;const s=t.top;if(s>i&&t.height>i||t.bottom>window.innerHeight){this.dropdownFlipped=true}else{this.dropdownFlipped=false}}updateSlotBasedSelections(e=false){const t=this.el.querySelectorAll("ifx-multiselect-option");const i=[];t.forEach((e=>{const t=e["__stencil_instance"];if(t&&t.selected&&!t.hasChildren){i.push({value:t.value,selected:true,disabled:t.disabled,label:t.getTextContent()||t.value})}}));this.persistentSelectedOptions=i;if(e){this.ifxSelect.emit(this.persistentSelectedOptions)}}updateInitialParentStates(){const e=this.el.querySelectorAll("ifx-multiselect-option");const t=Array.from(e).map((e=>({element:e,instance:e["__stencil_instance"],depth:parseInt(e.getAttribute("data-level")||"0")}))).filter((e=>e.instance)).sort(((e,t)=>t.depth-e.depth));t.forEach((({instance:e})=>{if(e.hasChildren){this.updateParentState(e)}}))}updateParentState(e){const t=Array.from(e.el.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION")).map((e=>e["__stencil_instance"])).filter((e=>e!==null));const i=t.filter((e=>e.selected)).length;const s=t.filter((e=>e.indeterminate)).length;const o=t.length;if(i===o&&s===0){e.selected=true;e.indeterminate=false}else if(i===0&&s===0){e.selected=false;e.indeterminate=false}else{e.selected=false;e.indeterminate=true}}async componentDidLoad(){if(!c(this.el)){const e=n();l("ifx-multiselect",await e)}setTimeout((()=>{this.positionDropdown()}),500);this.el.addEventListener("ifx-option-changed",(e=>{var t;const i=(t=e.target)===null||t===void 0?void 0:t.__stencil_instance;if(i&&!i.hasChildren){this.updateSlotBasedSelections(true)}}));setTimeout((()=>{this.updateSlotBasedSelections(false);this.updateInitialParentStates()}),100)}componentWillLoad(){this.loadInitialOptions()}updateInternalError(){this.internalError=this.error}onSelectionChange(e,t){const i=new FormData;e.forEach((e=>i.append(this.name,e.value)))}collapseAll(){const e=this.el.querySelectorAll("ifx-multiselect-option");e.forEach((e=>{const t=e["__stencil_instance"];if(t&&t.hasChildren){t.isExpanded=false}}))}expandAll(){const e=this.el.querySelectorAll("ifx-multiselect-option");e.forEach((e=>{const t=e["__stencil_instance"];if(t&&t.hasChildren){t.isExpanded=true}}))}selectAll(){this.resetSearch();const e=this.el.querySelectorAll("ifx-multiselect-option");e.forEach((e=>{const t=e["__stencil_instance"];if(t){if(t.hasChildren){t.isExpanded=true}else{t.selected=true}}}));setTimeout((()=>{this.updateInitialParentStates();this.updateSlotBasedSelections(false);this.ifxSelect.emit(this.persistentSelectedOptions)}),0)}async clearSelection(){const e=this.el.querySelectorAll("ifx-multiselect-option");e.forEach((e=>{const t=e["__stencil_instance"];if(t){t.selected=false;t.indeterminate=false;if(t.hasChildren){t.isExpanded=false}}}));this.persistentSelectedOptions=[];setTimeout((()=>{this.updateSlotBasedSelections(false);this.ifxSelect.emit(this.persistentSelectedOptions)}),0)}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;setTimeout((()=>{if(this.dropdownOpen){document.addEventListener("click",this.handleDocumentClick)}else{this.resetSearch()}this.ifxOpen.emit(this.dropdownOpen)}),0)}resetSearch(){this.searchTerm="";const e=this.el.shadowRoot.querySelector("ifx-search-field");if(e){e.value=""}const t=this.el.shadowRoot.querySelector(".ifx-multiselect-options");if(t){t.classList.remove("has-search-filter")}const i=this.el.querySelectorAll("ifx-multiselect-option");i.forEach((e=>{const t=new CustomEvent("ifx-search-filter",{detail:{searchTerm:"",isActive:false}});e.dispatchEvent(t)}))}handleWrapperClick(e){this.positionDropdown();if(e.currentTarget===e.target){this.toggleDropdown()}}handleKeyDown(e){if(this.disabled)return;if(!this.dropdownOpen){switch(e.code){case"Enter":case"Space":case"ArrowDown":e.preventDefault();this.toggleDropdown();break}return}switch(e.code){case"Escape":e.preventDefault();this.toggleDropdown();break;case"Enter":case"Space":const t=e.target;if(!t.closest(".ifx-multiselect-dropdown-functions")){e.preventDefault();this.toggleDropdown()}break;case"ArrowDown":case"ArrowUp":e.preventDefault();this.focusFirstOption();break}}focusFirstOption(){var e;const t=this.el.querySelector("ifx-multiselect-option:not(.search-hidden)");if(t){const i=(e=t.shadowRoot)===null||e===void 0?void 0:e.querySelector(".option-label");i===null||i===void 0?void 0:i.focus()}}renderSelectAll(){const e=this.el.querySelectorAll("ifx-multiselect-option");const t=Array.from(e).filter((e=>!e.hasChildren));const s=Array.from(e).filter((e=>!e.hasChildren&&e.selected));const o=t.length>0&&s.length===t.length;const n=e=>{if(e){e.preventDefault();e.stopPropagation()}if(o){this.clearSelection()}else{this.selectAll()}};return i("div",{class:"select-all-wrapper"},i("ifx-checkbox",{id:"selectAll",checked:o,size:"s","aria-label":this.ariaSelectAllLabel,onClick:n,onKeyDown:e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();e.stopPropagation();n(e)}}},this.selectAllLabel))}renderNoResultsMessage(){return i("div",{class:"ifx-multiselect-no-results"},i("div",{class:"no-results-content"},i("span",{class:"no-results-text"},this.noResultsMessage)))}render(){const e=this.persistentSelectedOptions.map((e=>e.label||e.value)).join(", ");const t=this.persistentSelectedOptions.length>0;let s=false;const o=this.el.querySelectorAll("ifx-multiselect-option");if(o.length>0){s=Array.from(o).every((e=>e.children.length===0))}return i("div",{key:"fd7ce64694f743334f1c4577105d9c40f084ebbf",class:`ifx-multiselect-container ${this.disabled&&!this.error?"disabled":""}`,ref:e=>this.dropdownElement=e},i("div",{key:"81abefbfc60b69bcd9c7e9b909dae93fd1767773",class:"ifx-label-wrapper"},this.label&&i("span",{key:"6de06dac0828d7831519e3c92b68095e533ae375",class:"wrapper-label"},i("span",{key:"ed9c68a25201321d0d69444e88d60d68db24e330"},this.label),this.required&&i("span",{key:"070422e2ebb9cb47fb21dcee37229b70016c0da1",class:`required ${this.error?"error":""}`},"*"))),i("div",{key:"3b5d28e2c87f472e68f1a8293daa9d5246d170b2",class:`ifx-multiselect-wrapper\n ${this.dropdownOpen?"active":""}\n ${this.dropdownFlipped?"is-flipped":""}\n ${this.internalError?"error":""}\n ${this.disabled&&!this.error?"disabled":""}`,role:"combobox","aria-label":this.ariaMultiSelectLabel,"aria-labelledby":this.ariaMultiSelectLabelledBy||undefined,"aria-describedby":this.ariaMultiSelectDescribedBy||undefined,"aria-expanded":this.dropdownOpen,"aria-haspopup":"listbox","aria-disabled":this.disabled&&!this.error,tabindex:"0",onClick:this.disabled&&!this.error?undefined:e=>this.handleWrapperClick(e),onKeyDown:this.disabled&&!this.error?undefined:e=>this.handleKeyDown(e)},i("div",{key:"1d5e621056168b08004c8efb998ff25865da2239",class:`ifx-multiselect-input\n ${t?"":"placeholder"}\n `,onClick:this.disabled&&!this.error?undefined:()=>this.toggleDropdown()},t?e:this.placeholder),this.dropdownOpen&&i("div",{key:"88762a0e7d11feb2fba793f3d4dc7fc183c161e9",class:"ifx-multiselect-dropdown-menu"},(this.showSearch||this.showSelectAll||this.showExpandCollapse&&!s)&&i("div",{key:"f47c4fd519f502997c2c8ac3611f914e628a465b",class:"ifx-multiselect-dropdown-functions",onClick:e=>e.stopPropagation()},this.showSearch&&i("div",{key:"6d34c960d1dba9eca8bf4e1c89377d736c590b20",class:"ifx-multiselect-dropdown-search"},i("ifx-search-field",{key:"37bc73b76fb6011f64566aa3ffc4b01056a0ac1b",class:"search-input",placeholder:this.searchPlaceholder,size:"s","show-delete-icon":"true","aria-label":this.ariaSearchLabel,onKeyDown:e=>{e.stopPropagation()},onIfxInput:e=>this.handleSearch(e.target),onFocus:()=>this.handleSearchFocus(true),onBlur:()=>this.handleSearchFocus(false)})),i("div",{key:"d7a0b92d7532aa2290e253172359c694a83d92e9",class:"ifx-multiselect-dropdown-controls"},this.showSelectAll&&this.renderSelectAll(),this.showExpandCollapse&&!s&&i("div",{key:"c509eb6f7b77507cf3c1207f1e912130b722f84e",class:"expand-collapse-controls"},i("span",{key:"912ffe8e593e4e0f81cff8ad03e72139b492c23f",class:"control-item",role:"button",tabIndex:0,"aria-label":this.ariaExpandAllLabel,onClick:e=>{e.stopPropagation();this.expandAll()},onKeyDown:e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();e.stopPropagation();this.expandAll()}}},this.expandLabel),i("span",{key:"e7201dfca2b2e16469778ffd922b4c64f3d06619",class:"control-item",role:"button",tabIndex:0,"aria-label":this.ariaCollapseAllLabel,onClick:e=>{e.stopPropagation();this.collapseAll()},onKeyDown:e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();e.stopPropagation();this.collapseAll()}}},this.collapseLabel)))),i("div",{key:"031e2384922144e63b528ac69a8ad1bea1420acf",class:"ifx-multiselect-options",role:"listbox","aria-multiselectable":"true"},i("slot",{key:"b5e77631b05852b7f708b92f2cdd797b7cb653a2"}),this.searchTerm&&this.showNoResultsMessage&&this.renderNoResultsMessage())),i("div",{key:"5a813087f59df7ab9dca060d5c80d158bc8d6da1",class:"ifx-multiselect-icon-container"},this.persistentSelectedOptions.length>0&&i("div",{key:"0ae8b58fa2d2ccf28962264bfaa8949114f5767d",class:`ifx-clear-button ${!this.showClearButton?"hide":""}`,onClick:this.disabled&&!this.error?undefined:()=>this.clearSelection()},i("ifx-icon",{key:"8e60813fa135b67a28ba5759c37fb000641af257",icon:"cRemove16"})),i("div",{key:"f71cc3fa883c5af46d24048320bdf822c8ceeb99",class:"icon-wrapper-up",onClick:this.disabled&&!this.error?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-up",icon:"chevron-up-16"})),i("div",{key:"fb08f6a16daebfc6e0a58fcb24e5cfdffd80b423",class:"icon-wrapper-down",onClick:this.disabled&&!this.error?undefined:()=>this.toggleDropdown()},i("ifx-icon",{key:"icon-down",icon:"chevron-down-16"})))),this.caption&&i("div",{key:"4bd2795e4eb8539f8609bf83065f2637f2f1dc1b",class:`multi__select-caption ${this.error?"error":""} ${this.disabled&&!this.error?"disabled":""}`},this.caption))}get el(){return s(this)}static get watchers(){return{error:["updateInternalError"],persistentSelectedOptions:["onSelectionChange"]}}};h.style=r;const f=":host{display:block;width:100%}.option{display:flex;flex-direction:column;position:relative;cursor:pointer;list-style:none}.option.option--expanded{position:relative}.option.option--has-children{position:relative}.option.option--has-children .option-item>.chevron-wrapper{display:flex}.option--disabled{cursor:not-allowed;pointer-events:none;color:#BFBBBB}.option.search-hidden{display:none !important}.option.search-match .option-item .option-label .search-highlight{font-weight:bold}.option-item{display:flex;flex-direction:row;align-items:center;white-space:nowrap;min-height:20px;padding:4px 16px;background-color:#FFFFFF;transition:background-color 0.2s ease-in-out}.option-item:hover{background-color:#F7F7F7}.option--disabled .option-item:hover{background-color:transparent}.option-children{display:block}.chevron-wrapper{display:none;align-items:center;justify-content:center;margin-right:8px;width:20px;height:20px;flex-shrink:0}.chevron-wrapper:focus{outline:none}.chevron-wrapper:focus-visible{outline:2px solid #0A8276;outline-offset:2px;border-radius:1px}.option--has-children .chevron-wrapper{display:flex}.chevron-wrapper .chevron{transition:transform 0.2s ease-in-out;color:#3C3A39}.chevron-wrapper .chevron.chevron--expanded{transform:rotate(90deg)}.chevron-wrapper .chevron.chevron--collapsed{transform:rotate(0deg)}.checkbox-wrapper{display:flex;align-items:center;margin-right:8px;flex-shrink:0}.option-label{flex-grow:1;display:flex;align-items:center;cursor:pointer;padding:2px 0;font-size:0.875rem}.option-label:focus{outline:none}.option-label:focus-visible{outline:2px solid #0A8276;outline-offset:2px;border-radius:1px}.option--disabled .option-label{cursor:not-allowed;color:#BFBBBB}";const d=class{constructor(t){e(this,t);this.selected=false;this.disabled=false;this.indeterminate=false;this.isExpanded=false;this.hasChildren=false;this.depth=0;this.searchTerm="";this.isSearchActive=false;this.isSearchDisabled=false;this.handleSearchFilter=e=>{const{searchTerm:t,isActive:i}=e.detail;this.searchTerm=t.toLowerCase();this.isSearchActive=i;requestAnimationFrame((()=>{this.updateSearchClasses()}))};this.handleCheckboxClick=e=>{if(this.disabled||this.isSearchActive&&this.isSearchDisabled)return;e.stopPropagation();let t;if(this.indeterminate){t=true}else{t=!this.selected}this.selected=t;this.indeterminate=false;if(this.hasChildren){this.isExpanded=t;requestAnimationFrame((()=>{this.selectAllChildren(t);this.expandAllChildren(t)}))}this.updateParentStates();this.notifyMultiselect()};this.handleHeaderClick=e=>{e.stopPropagation();if(!this.disabled&&!(this.isSearchActive&&this.isSearchDisabled)){this.handleClick(e)}}}componentWillLoad(){this.hasChildren=this.el.children.length>0;this.depth=this.calculateDepth();this.el.setAttribute("data-level",this.depth.toString());if(this.hasChildren){const e=this.hasAnySelectedChildren();if(e){this.isExpanded=true}}}componentDidLoad(){this.el["__stencil_instance"]=this;this.notifyMultiselect();this.el.addEventListener("ifx-search-filter",this.handleSearchFilter)}componentWillUpdate(){this.notifyMultiselect()}disconnectedCallback(){this.el.removeEventListener("ifx-search-filter",this.handleSearchFilter)}updateSearchClasses(){var e;const t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".option");if(!t)return;if(!this.isSearchActive){t.classList.remove("search-hidden","search-parent","search-match");this.removeHighlighting();this.isSearchDisabled=false;return}const i=this.getTextContent().toLowerCase();const s=i.includes(this.searchTerm);const o=this.hasMatchingParent();requestAnimationFrame((()=>{const e=this.hasMatchingChildren();t.classList.remove("search-hidden","search-parent","search-match");this.isSearchDisabled=false;if(s&&!this.hasChildren){t.classList.add("search-match");this.highlightSearchTerm()}else if(s&&this.hasChildren){t.classList.add("search-match");this.highlightSearchTerm();this.isExpanded=true}else if(!s&&this.hasChildren&&e){t.classList.add("search-parent");this.removeHighlighting();this.isExpanded=true;this.isSearchDisabled=true}else if(o){t.classList.add("search-match");this.removeHighlighting()}else{t.classList.add("search-hidden");this.removeHighlighting()}}))}highlightSearchTerm(){var e;if(!this.searchTerm)return;const t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".option-label");if(!t)return;const i=t.querySelector("slot");if(!i)return;this.removeHighlighting();const s=this.getTextContent();const o=this.searchTerm.toLowerCase();const n=s.toLowerCase();if(!n.includes(o))return;const l=n.indexOf(o);if(l===-1)return;const c=s.substring(0,l);const r=s.substring(l,l+o.length);const a=s.substring(l+o.length);const h=document.createElement("span");h.className="highlighted-text";if(c){h.appendChild(document.createTextNode(c))}const f=document.createElement("strong");f.className="search-highlight";f.textContent=r;h.appendChild(f);if(a){h.appendChild(document.createTextNode(a))}t.setAttribute("data-original-content","true");i.style.display="none";t.appendChild(h)}removeHighlighting(){var e;const t=(e=this.el.shadowRoot)===null||e===void 0?void 0:e.querySelector(".option-label");if(!t)return;const i=t.querySelector("slot");const s=t.querySelector(".highlighted-text");if(s){t.removeChild(s)}if(i){i.style.display=""}t.removeAttribute("data-original-content")}getTextContent(){let e="";Array.from(this.el.childNodes).forEach((t=>{var i;if(t.nodeType===Node.TEXT_NODE){e+=((i=t.textContent)===null||i===void 0?void 0:i.trim())||""}}));return e||this.value||""}hasMatchingChildren(){if(!this.hasChildren)return false;const e=Array.from(this.el.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION"));return e.some((e=>{const t=e["__stencil_instance"];if(!t)return false;const i=t.getTextContent().toLowerCase();const s=i.includes(this.searchTerm);const o=t.hasMatchingChildren();return s||o}))}hasMatchingParent(){let e=this.el.parentElement;while(e&&e.tagName==="IFX-MULTISELECT-OPTION"){const t=e["__stencil_instance"];if(t){const e=t.getTextContent().toLowerCase();if(e.includes(this.searchTerm)){return true}}e=e.parentElement}return false}calculateDepth(){let e=0;let t=this.el.parentElement;while(t&&t.tagName!=="IFX-MULTISELECT"){if(t.tagName==="IFX-MULTISELECT-OPTION"){e++}t=t.parentElement}return e}handleClick(e){if(this.disabled||this.isSearchActive&&this.isSearchDisabled)return;e.stopPropagation();if(e.type==="click"&&e.target.closest(".chevron-wrapper")){this.toggleExpansion();return}let t;if(this.indeterminate){t=true}else{t=!this.selected}this.selected=t;this.indeterminate=false;if(this.hasChildren){this.isExpanded=t;requestAnimationFrame((()=>{this.selectAllChildren(t);this.expandAllChildren(t)}))}this.updateParentStates();this.notifyMultiselect()}handleKeyDown(e){if(this.disabled||this.isSearchActive&&this.isSearchDisabled)return;const t=e.target;if(t.closest(".chevron-wrapper")||t.closest(".checkbox-wrapper")){return}if(e.key!=="ArrowUp"&&e.key!=="ArrowDown"){e.stopPropagation()}if(e.key==="ArrowRight"&&this.hasChildren){this.isExpanded=true}if(e.key==="ArrowLeft"&&this.hasChildren){this.isExpanded=false}}notifyMultiselect(){const e=new CustomEvent("ifx-option-changed",{bubbles:true,detail:{value:this.value,selected:this.selected,indeterminate:this.indeterminate}});this.el.dispatchEvent(e)}selectAllChildren(e){const t=Array.from(this.el.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION"));t.forEach((t=>{var i;const s=t["__stencil_instance"];if(s){s.selected=e;s.indeterminate=false;if(s.hasChildren){s.isExpanded=e;s.selectAllChildren(e)}(i=s.notifyMultiselect)===null||i===void 0?void 0:i.call(s)}}))}expandAllChildren(e){const t=Array.from(this.el.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION"));t.forEach((t=>{const i=t["__stencil_instance"];if(i&&i.hasChildren){i.isExpanded=e;i.expandAllChildren(e)}}))}updateParentStates(){var e;let t=this.el.parentElement;while(t&&t.tagName==="IFX-MULTISELECT-OPTION"){const i=t["__stencil_instance"];if(!i){t=t.parentElement;continue}const s=Array.from(t.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION")).map((e=>e["__stencil_instance"])).filter((e=>e!==null));const o=s.filter((e=>e.selected)).length;const n=s.filter((e=>e.indeterminate)).length;const l=s.length;if(o===l&&n===0){i.selected=true;i.indeterminate=false}else if(o===0&&n===0){i.selected=false;i.indeterminate=false}else{i.selected=false;i.indeterminate=true}(e=i.notifyMultiselect)===null||e===void 0?void 0:e.call(i);t=t.parentElement}}toggleExpansion(){this.isExpanded=!this.isExpanded}hasAnySelectedChildren(){const e=Array.from(this.el.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION"));return e.some((e=>{const t=e.hasAttribute("selected");const i=this.checkForSelectedDescendants(e);return t||i}))}checkForSelectedDescendants(e){const t=Array.from(e.children).filter((e=>e.tagName==="IFX-MULTISELECT-OPTION"));return t.some((e=>{const t=e.hasAttribute("selected");const i=this.checkForSelectedDescendants(e);return t||i}))}render(){let e=false;const t=this.el.closest("ifx-multiselect");if(t){const i=Array.from(t.querySelectorAll("ifx-multiselect-option"));e=i.every((e=>e.children.length===0))}const s=this.depth*28+16;const n=this.hasChildren?0:28;let l=s+n;const c=e?undefined:{paddingLeft:`${l}px`};return i(o,{key:"4dd008dabc4aec3070ad355aa877ff391e3883df"},i("div",{key:"848afd2fa2a34c2b5763dc8c979d898b498b39b1",class:{option:true,"option--has-children":this.hasChildren,"option--expanded":this.isExpanded,"option--disabled":this.disabled,"option--selected":this.selected},role:"option","aria-expanded":this.hasChildren?this.isExpanded?"true":"false":undefined,"aria-selected":this.selected?"true":"false","aria-disabled":this.disabled?"true":"false","data-level":this.depth,"data-value":this.value},i("div",{key:"28fe299c78e8f42d9ef763ba14c84e0123276de8",class:"option-item",style:c},i("div",{key:"891cd1a5c09c53df6c8079642aab48a893295cd8",class:"chevron-wrapper",tabIndex:this.hasChildren?0:-1,role:this.hasChildren?"button":undefined,"aria-label":this.hasChildren?this.isExpanded?"Collapse":"Expand":undefined,onClick:e=>{e.stopPropagation();this.toggleExpansion()},onKeyDown:e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();e.stopPropagation();this.toggleExpansion()}}},this.hasChildren&&i("ifx-icon",{key:"7ddb0f0245f14fd8bc64fbfb3278c1d3a53f3834",class:`chevron ${this.isExpanded?"chevron--expanded":"chevron--collapsed"}`,icon:"chevron-right-16"})),i("div",{key:"a688fb56fd51cc1aefccf9b42d8f5c2a6ac271f8",class:"checkbox-wrapper",onClick:e=>e.stopPropagation()},i("ifx-checkbox",{key:"6ba8ea62a25285a59f3866dc0e7911b658477b3d",size:"s",checked:this.isSearchActive&&this.isSearchDisabled?false:this.indeterminate?false:this.selected,indeterminate:this.isSearchActive&&this.isSearchDisabled?false:this.indeterminate,onClick:this.handleCheckboxClick,disabled:this.disabled||this.isSearchActive&&this.isSearchDisabled,onKeyDown:e=>{if(e.key==="Enter"||e.key===" "){e.preventDefault();e.stopPropagation();this.handleCheckboxClick(e)}}})),i("div",{key:"63d0d6313ee94b3e80a2a0058fa1e79431becb29",class:"option-label",onClick:this.handleHeaderClick,tabIndex:-1},i("slot",{key:"f503e85ef020cedec37931b6079a9164c1ce8d5d"}))),this.isExpanded&&i("div",{key:"75297050484cdc4a9c80b2bff614119a7c18ff3f",class:"option-children"},i("slot",{key:"f33fbe0abb5e7c9277e24e0445838d8e4d0a6910",name:"children"}))))}get el(){return s(this)}};d.style=f;export{h as ifx_multiselect,d as ifx_multiselect_option};
2
+ //# sourceMappingURL=p-6407c496.entry.js.map