@infineon/infineon-design-system-stencil 39.4.4--canary.2130.4e289d5eee4c0769b9458514c7fb228750796ed6.0 → 39.4.4--canary.1723.72d4b66375fecde1ebf334fa524d5d0f7ab3c974.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 (786) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +3 -1
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -0
  3. package/dist/cjs/ifx-action-list-item.cjs.entry.js +3 -1
  4. package/dist/cjs/ifx-action-list-item.cjs.entry.js.map +1 -0
  5. package/dist/cjs/ifx-action-list.cjs.entry.js +3 -1
  6. package/dist/cjs/ifx-action-list.cjs.entry.js.map +1 -0
  7. package/dist/cjs/ifx-alert_2.cjs.entry.js +3 -1
  8. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/ifx-basic-table.cjs.entry.js +3 -1
  10. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -0
  11. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +3 -1
  12. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -0
  13. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +3 -1
  14. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -0
  15. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +3 -1
  16. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -0
  17. package/dist/cjs/ifx-button.cjs.entry.js +3 -1
  18. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -0
  19. package/dist/cjs/ifx-card-headline.cjs.entry.js +3 -1
  20. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -0
  21. package/dist/cjs/ifx-card-image.cjs.entry.js +3 -1
  22. package/dist/cjs/ifx-card-image.cjs.entry.js.map +1 -0
  23. package/dist/cjs/ifx-card-links.cjs.entry.js +3 -1
  24. package/dist/cjs/ifx-card-links.cjs.entry.js.map +1 -0
  25. package/dist/cjs/ifx-card-overline.cjs.entry.js +3 -1
  26. package/dist/cjs/ifx-card-overline.cjs.entry.js.map +1 -0
  27. package/dist/cjs/ifx-card-text.cjs.entry.js +3 -1
  28. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -0
  29. package/dist/cjs/ifx-card.cjs.entry.js +3 -1
  30. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -0
  31. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +3 -1
  32. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -0
  33. package/dist/cjs/ifx-checkbox.cjs.entry.js +3 -1
  34. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -0
  35. package/dist/cjs/ifx-chip_3.cjs.entry.js +3 -1
  36. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -0
  37. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +3 -1
  38. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js.map +1 -0
  39. package/dist/cjs/ifx-content-switcher.cjs.entry.js +3 -1
  40. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -0
  41. package/dist/cjs/ifx-date-picker.cjs.entry.js +3 -1
  42. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -0
  43. package/dist/cjs/ifx-download.cjs.entry.js +3 -1
  44. package/dist/cjs/ifx-download.cjs.entry.js.map +1 -0
  45. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +3 -1
  46. package/dist/cjs/ifx-dropdown-header.cjs.entry.js.map +1 -0
  47. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +3 -1
  48. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -0
  49. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +3 -1
  50. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js.map +1 -0
  51. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +3 -1
  52. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js.map +1 -0
  53. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +3 -1
  54. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js.map +1 -0
  55. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +3 -1
  56. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js.map +1 -0
  57. package/dist/cjs/ifx-dropdown.cjs.entry.js +3 -1
  58. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -0
  59. package/dist/cjs/ifx-faq.cjs.entry.js +3 -1
  60. package/dist/cjs/ifx-faq.cjs.entry.js.map +1 -0
  61. package/dist/cjs/ifx-file-upload.cjs.entry.js +3 -1
  62. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -0
  63. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +3 -1
  64. package/dist/cjs/ifx-filter-accordion.cjs.entry.js.map +1 -0
  65. package/dist/cjs/ifx-filter-bar.cjs.entry.js +3 -1
  66. package/dist/cjs/ifx-filter-bar.cjs.entry.js.map +1 -0
  67. package/dist/cjs/ifx-filter-search.cjs.entry.js +3 -1
  68. package/dist/cjs/ifx-filter-search.cjs.entry.js.map +1 -0
  69. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +3 -1
  70. package/dist/cjs/ifx-filter-type-group.cjs.entry.js.map +1 -0
  71. package/dist/cjs/ifx-footer-column.cjs.entry.js +3 -1
  72. package/dist/cjs/ifx-footer-column.cjs.entry.js.map +1 -0
  73. package/dist/cjs/ifx-footer.cjs.entry.js +3 -1
  74. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -0
  75. package/dist/cjs/ifx-icon-button.cjs.entry.js +3 -1
  76. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -0
  77. package/dist/cjs/ifx-icon.cjs.entry.js +3 -1
  78. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -0
  79. package/dist/cjs/ifx-icons-preview.cjs.entry.js +3 -1
  80. package/dist/cjs/ifx-icons-preview.cjs.entry.js.map +1 -0
  81. package/dist/cjs/ifx-indicator.cjs.entry.js +3 -1
  82. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -0
  83. package/dist/cjs/ifx-link.cjs.entry.js +3 -1
  84. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -0
  85. package/dist/cjs/ifx-list-entry.cjs.entry.js +3 -1
  86. package/dist/cjs/ifx-list-entry.cjs.entry.js.map +1 -0
  87. package/dist/cjs/ifx-list.cjs.entry.js +3 -1
  88. package/dist/cjs/ifx-list.cjs.entry.js.map +1 -0
  89. package/dist/cjs/ifx-modal.cjs.entry.js +3 -1
  90. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -0
  91. package/dist/cjs/ifx-modal.entry.cjs.js.map +1 -1
  92. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +3 -1
  93. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -0
  94. package/dist/cjs/ifx-navbar-item.cjs.entry.js +3 -1
  95. package/dist/cjs/ifx-navbar-item.cjs.entry.js.map +1 -0
  96. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +3 -1
  97. package/dist/cjs/ifx-navbar-profile.cjs.entry.js.map +1 -0
  98. package/dist/cjs/ifx-navbar.cjs.entry.js +3 -1
  99. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -0
  100. package/dist/cjs/ifx-notification.cjs.entry.js +3 -1
  101. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -0
  102. package/dist/cjs/ifx-overview-table.cjs.entry.js +3 -1
  103. package/dist/cjs/ifx-overview-table.cjs.entry.js.map +1 -0
  104. package/dist/cjs/ifx-progress-bar.cjs.entry.js +3 -1
  105. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -0
  106. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +3 -1
  107. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -0
  108. package/dist/cjs/ifx-radio-button.cjs.entry.js +3 -1
  109. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -0
  110. package/dist/cjs/ifx-search-bar.cjs.entry.js +3 -1
  111. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -0
  112. package/dist/cjs/ifx-search-field.cjs.entry.js +3 -1
  113. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -0
  114. package/dist/cjs/ifx-segment.cjs.entry.js +3 -1
  115. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -0
  116. package/dist/cjs/ifx-segmented-control.cjs.entry.js +3 -1
  117. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -0
  118. package/dist/cjs/ifx-select.cjs.entry.js +3 -1
  119. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -0
  120. package/dist/cjs/ifx-set-filter.cjs.entry.js +3 -1
  121. package/dist/cjs/ifx-set-filter.cjs.entry.js.map +1 -0
  122. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +3 -1
  123. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -0
  124. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +3 -1
  125. package/dist/cjs/ifx-sidebar-title.cjs.entry.js.map +1 -0
  126. package/dist/cjs/ifx-sidebar.cjs.entry.js +3 -1
  127. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -0
  128. package/dist/cjs/ifx-slider.cjs.entry.js +3 -1
  129. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -0
  130. package/dist/cjs/ifx-spinner_2.cjs.entry.js +3 -1
  131. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -0
  132. package/dist/cjs/ifx-status.cjs.entry.js +3 -1
  133. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -0
  134. package/dist/cjs/ifx-step.cjs.entry.js +3 -1
  135. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -0
  136. package/dist/cjs/ifx-stepper.cjs.entry.js +3 -1
  137. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -0
  138. package/dist/cjs/ifx-switch.cjs.entry.js +3 -1
  139. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -0
  140. package/dist/cjs/ifx-tab.cjs.entry.js +3 -1
  141. package/dist/cjs/ifx-tab.cjs.entry.js.map +1 -0
  142. package/dist/cjs/ifx-table.cjs.entry.js +3 -1
  143. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -0
  144. package/dist/cjs/ifx-table.entry.cjs.js.map +1 -1
  145. package/dist/cjs/ifx-tabs.cjs.entry.js +3 -1
  146. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -0
  147. package/dist/cjs/ifx-templates-ui.cjs.entry.js +3 -1
  148. package/dist/cjs/ifx-templates-ui.cjs.entry.js.map +1 -0
  149. package/dist/cjs/ifx-textarea.cjs.entry.js +3 -1
  150. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -0
  151. package/dist/cjs/ifx-tooltip.cjs.entry.js +3 -1
  152. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -0
  153. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +3 -1
  154. package/dist/cjs/ifx-tree-view-item.cjs.entry.js.map +1 -0
  155. package/dist/cjs/ifx-tree-view.cjs.entry.js +3 -1
  156. package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -0
  157. package/dist/cjs/{index-DDktl7Xq.js → index-Dc5gCGlQ.js} +31 -88
  158. package/dist/cjs/index-Dc5gCGlQ.js.map +1 -0
  159. package/dist/cjs/index.cjs.js +2 -0
  160. package/dist/cjs/infineon-design-system-stencil.cjs.js +5 -3
  161. package/dist/cjs/infineon-design-system-stencil.cjs.js.map +1 -1
  162. package/dist/cjs/loader.cjs.js +4 -2
  163. package/dist/collection/collection-manifest.json +2 -2
  164. package/dist/collection/components/accordion/accordion.js +1 -1
  165. package/dist/collection/components/accordion/accordionItem.js +4 -4
  166. package/dist/collection/components/action-list/action-list-item.js +12 -12
  167. package/dist/collection/components/action-list/action-list.js +2 -2
  168. package/dist/collection/components/alert/alert.js +5 -5
  169. package/dist/collection/components/breadcrumb/breadcrumb-item-label.js +5 -5
  170. package/dist/collection/components/button/button.js +11 -11
  171. package/dist/collection/components/card/card-image/card-image.js +6 -6
  172. package/dist/collection/components/card/card.js +5 -5
  173. package/dist/collection/components/checkbox/checkbox.js +7 -7
  174. package/dist/collection/components/checkbox-group/checkbox-group.js +13 -13
  175. package/dist/collection/components/chip/chip-item/chip-item.js +3 -2
  176. package/dist/collection/components/chip/chip-item/chip-item.js.map +1 -1
  177. package/dist/collection/components/chip/chip.js +10 -10
  178. package/dist/collection/components/content-switcher/content-switcher-item.js +3 -3
  179. package/dist/collection/components/date-picker/date-picker.js +19 -19
  180. package/dist/collection/components/download/download.js +1 -1
  181. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.js +5 -5
  182. package/dist/collection/components/dropdown/dropdown-menu/dropdown-menu.js +2 -2
  183. package/dist/collection/components/dropdown/dropdown-trigger/dropdown-trigger.js +1 -1
  184. package/dist/collection/components/dropdown/dropdown-trigger-button/dropdown-trigger-button.js +8 -8
  185. package/dist/collection/components/dropdown/dropdown.js +7 -7
  186. package/dist/collection/components/file-upload/file-upload.js +34 -33
  187. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  188. package/dist/collection/components/footer/footer.js +1 -1
  189. package/dist/collection/components/icon/infineonIconStencil.js +3 -3
  190. package/dist/collection/components/icon-button/icon-button.js +14 -14
  191. package/dist/collection/components/indicator/indicator.js +5 -5
  192. package/dist/collection/components/link/link.js +10 -10
  193. package/dist/collection/components/modal/modal.js +13 -13
  194. package/dist/collection/components/navigation/navbar/navbar-item.js +8 -8
  195. package/dist/collection/components/navigation/navbar/navbar-profile.js +6 -6
  196. package/dist/collection/components/navigation/navbar/navbar.js +5 -5
  197. package/dist/collection/components/navigation/sidebar/sidebar-item.js +8 -7
  198. package/dist/collection/components/navigation/sidebar/sidebar-item.js.map +1 -1
  199. package/dist/collection/components/navigation/sidebar/sidebar-title.js +1 -1
  200. package/dist/collection/components/navigation/sidebar/sidebar.js +12 -12
  201. package/dist/collection/components/notification/notification.js +8 -8
  202. package/dist/collection/components/pagination/pagination.js +5 -5
  203. package/dist/collection/components/progress-bar/progress-bar.js +4 -4
  204. package/dist/collection/components/radio-button/radio-button.js +9 -9
  205. package/dist/collection/components/radio-button-group/radio-button-group.js +13 -13
  206. package/dist/collection/components/search-bar/search-bar.js +7 -7
  207. package/dist/collection/components/search-field/search-field.js +24 -23
  208. package/dist/collection/components/search-field/search-field.js.map +1 -1
  209. package/dist/collection/components/segmented-control/segment/segment.js +7 -7
  210. package/dist/collection/components/segmented-control/segmented-control.js +5 -5
  211. package/dist/collection/components/select/multi-select/multiselect-option.js +5 -5
  212. package/dist/collection/components/select/multi-select/multiselect.js +27 -27
  213. package/dist/collection/components/select/single-select/select.js +86 -79
  214. package/dist/collection/components/select/single-select/select.js.map +1 -1
  215. package/dist/collection/components/slider/slider.js +22 -22
  216. package/dist/collection/components/spinner/spinner.js +7 -7
  217. package/dist/collection/components/status/status.js +4 -4
  218. package/dist/collection/components/stepper/step/step.js +6 -5
  219. package/dist/collection/components/stepper/step/step.js.map +1 -1
  220. package/dist/collection/components/stepper/stepper.js +8 -8
  221. package/dist/collection/components/switch/switch.js +5 -5
  222. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +2 -2
  223. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +3 -3
  224. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +10 -10
  225. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +6 -6
  226. package/dist/collection/components/table-advanced-version/list/list.js +5 -5
  227. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js +9 -9
  228. package/dist/collection/components/table-advanced-version/table.js +19 -15
  229. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  230. package/dist/collection/components/table-basic-version/table.js +7 -7
  231. package/dist/collection/components/tabs/tab.js +6 -6
  232. package/dist/collection/components/tabs/tabs.js +3 -3
  233. package/dist/collection/components/templates/template/template.js +4 -4
  234. package/dist/collection/components/text-field/text-field.js +17 -17
  235. package/dist/collection/components/textarea/textarea.js +23 -23
  236. package/dist/collection/components/tooltip/tooltip.js +8 -8
  237. package/dist/collection/components/tree-view/tree-view-item.js +8 -8
  238. package/dist/collection/components/tree-view/tree-view.js +6 -6
  239. package/dist/components/ifx-accordion-item.js +1 -1
  240. package/dist/components/ifx-accordion.js +1 -1
  241. package/dist/components/ifx-action-list-item.js +2 -4
  242. package/dist/components/ifx-action-list-item.js.map +1 -1
  243. package/dist/components/ifx-action-list.js +2 -4
  244. package/dist/components/ifx-action-list.js.map +1 -1
  245. package/dist/components/ifx-alert.js +1 -1
  246. package/dist/components/ifx-basic-table.js +2 -4
  247. package/dist/components/ifx-basic-table.js.map +1 -1
  248. package/dist/components/ifx-breadcrumb-item-label.js +3 -5
  249. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  250. package/dist/components/ifx-breadcrumb-item.js +2 -4
  251. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  252. package/dist/components/ifx-breadcrumb.js +2 -4
  253. package/dist/components/ifx-breadcrumb.js.map +1 -1
  254. package/dist/components/ifx-button.js +1 -1
  255. package/dist/components/ifx-card-headline.js +2 -4
  256. package/dist/components/ifx-card-headline.js.map +1 -1
  257. package/dist/components/ifx-card-image.js +2 -4
  258. package/dist/components/ifx-card-image.js.map +1 -1
  259. package/dist/components/ifx-card-links.js +2 -4
  260. package/dist/components/ifx-card-links.js.map +1 -1
  261. package/dist/components/ifx-card-overline.js +2 -4
  262. package/dist/components/ifx-card-overline.js.map +1 -1
  263. package/dist/components/ifx-card-text.js +2 -4
  264. package/dist/components/ifx-card-text.js.map +1 -1
  265. package/dist/components/ifx-card.js +2 -4
  266. package/dist/components/ifx-card.js.map +1 -1
  267. package/dist/components/ifx-checkbox-group.js +3 -5
  268. package/dist/components/ifx-checkbox-group.js.map +1 -1
  269. package/dist/components/ifx-checkbox.js +1 -1
  270. package/dist/components/ifx-chip-item.js +1 -1
  271. package/dist/components/ifx-chip.js +1 -1
  272. package/dist/components/ifx-content-switcher-item.js +2 -4
  273. package/dist/components/ifx-content-switcher-item.js.map +1 -1
  274. package/dist/components/ifx-content-switcher.js +2 -4
  275. package/dist/components/ifx-content-switcher.js.map +1 -1
  276. package/dist/components/ifx-date-picker.js +3 -5
  277. package/dist/components/ifx-date-picker.js.map +1 -1
  278. package/dist/components/ifx-download.js +3 -5
  279. package/dist/components/ifx-download.js.map +1 -1
  280. package/dist/components/ifx-dropdown-header.js +2 -4
  281. package/dist/components/ifx-dropdown-header.js.map +1 -1
  282. package/dist/components/ifx-dropdown-item.js +3 -5
  283. package/dist/components/ifx-dropdown-item.js.map +1 -1
  284. package/dist/components/ifx-dropdown-menu.js +2 -4
  285. package/dist/components/ifx-dropdown-menu.js.map +1 -1
  286. package/dist/components/ifx-dropdown-separator.js +2 -4
  287. package/dist/components/ifx-dropdown-separator.js.map +1 -1
  288. package/dist/components/ifx-dropdown-trigger-button.js +4 -6
  289. package/dist/components/ifx-dropdown-trigger-button.js.map +1 -1
  290. package/dist/components/ifx-dropdown-trigger.js +2 -4
  291. package/dist/components/ifx-dropdown-trigger.js.map +1 -1
  292. package/dist/components/ifx-dropdown.js +2 -4
  293. package/dist/components/ifx-dropdown.js.map +1 -1
  294. package/dist/components/ifx-faq.js +5 -7
  295. package/dist/components/ifx-faq.js.map +1 -1
  296. package/dist/components/ifx-file-upload.js +7 -9
  297. package/dist/components/ifx-file-upload.js.map +1 -1
  298. package/dist/components/ifx-filter-accordion.js +4 -6
  299. package/dist/components/ifx-filter-accordion.js.map +1 -1
  300. package/dist/components/ifx-filter-bar.js +4 -6
  301. package/dist/components/ifx-filter-bar.js.map +1 -1
  302. package/dist/components/ifx-filter-search.js +4 -6
  303. package/dist/components/ifx-filter-search.js.map +1 -1
  304. package/dist/components/ifx-filter-type-group.js +2 -4
  305. package/dist/components/ifx-filter-type-group.js.map +1 -1
  306. package/dist/components/ifx-footer-column.js +2 -4
  307. package/dist/components/ifx-footer-column.js.map +1 -1
  308. package/dist/components/ifx-footer.js +2 -4
  309. package/dist/components/ifx-footer.js.map +1 -1
  310. package/dist/components/ifx-icon-button.js +1 -1
  311. package/dist/components/ifx-icon.js +1 -1
  312. package/dist/components/ifx-icons-preview.js +6 -8
  313. package/dist/components/ifx-icons-preview.js.map +1 -1
  314. package/dist/components/ifx-indicator.js +1 -1
  315. package/dist/components/ifx-link.js +1 -1
  316. package/dist/components/ifx-list-entry.js +5 -7
  317. package/dist/components/ifx-list-entry.js.map +1 -1
  318. package/dist/components/ifx-list.js +4 -6
  319. package/dist/components/ifx-list.js.map +1 -1
  320. package/dist/components/ifx-modal.js +4 -6
  321. package/dist/components/ifx-modal.js.map +1 -1
  322. package/dist/components/ifx-multiselect-option.js +1 -1
  323. package/dist/components/ifx-multiselect.js +1 -1
  324. package/dist/components/ifx-navbar-item.js +4 -6
  325. package/dist/components/ifx-navbar-item.js.map +1 -1
  326. package/dist/components/ifx-navbar-profile.js +2 -4
  327. package/dist/components/ifx-navbar-profile.js.map +1 -1
  328. package/dist/components/ifx-navbar.js +3 -5
  329. package/dist/components/ifx-navbar.js.map +1 -1
  330. package/dist/components/ifx-notification.js +1 -1
  331. package/dist/components/ifx-overview-table.js +5 -7
  332. package/dist/components/ifx-overview-table.js.map +1 -1
  333. package/dist/components/ifx-pagination.js +1 -1
  334. package/dist/components/ifx-progress-bar.js +1 -1
  335. package/dist/components/ifx-radio-button-group.js +3 -5
  336. package/dist/components/ifx-radio-button-group.js.map +1 -1
  337. package/dist/components/ifx-radio-button.js +1 -1
  338. package/dist/components/ifx-search-bar.js +4 -6
  339. package/dist/components/ifx-search-bar.js.map +1 -1
  340. package/dist/components/ifx-search-field.js +1 -1
  341. package/dist/components/ifx-segment.js +3 -5
  342. package/dist/components/ifx-segment.js.map +1 -1
  343. package/dist/components/ifx-segmented-control.js +3 -5
  344. package/dist/components/ifx-segmented-control.js.map +1 -1
  345. package/dist/components/ifx-select.js +1 -1
  346. package/dist/components/ifx-set-filter.js +9 -11
  347. package/dist/components/ifx-set-filter.js.map +1 -1
  348. package/dist/components/ifx-sidebar-item.js +5 -7
  349. package/dist/components/ifx-sidebar-item.js.map +1 -1
  350. package/dist/components/ifx-sidebar-title.js +2 -4
  351. package/dist/components/ifx-sidebar-title.js.map +1 -1
  352. package/dist/components/ifx-sidebar.js +3 -5
  353. package/dist/components/ifx-sidebar.js.map +1 -1
  354. package/dist/components/ifx-slider.js +3 -5
  355. package/dist/components/ifx-slider.js.map +1 -1
  356. package/dist/components/ifx-spinner.js +1 -1
  357. package/dist/components/ifx-status.js +2 -4
  358. package/dist/components/ifx-status.js.map +1 -1
  359. package/dist/components/ifx-step.js +4 -6
  360. package/dist/components/ifx-step.js.map +1 -1
  361. package/dist/components/ifx-stepper.js +2 -4
  362. package/dist/components/ifx-stepper.js.map +1 -1
  363. package/dist/components/ifx-switch.js +2 -4
  364. package/dist/components/ifx-switch.js.map +1 -1
  365. package/dist/components/ifx-tab.js +2 -4
  366. package/dist/components/ifx-tab.js.map +1 -1
  367. package/dist/components/ifx-table.js +15 -17
  368. package/dist/components/ifx-table.js.map +1 -1
  369. package/dist/components/ifx-tabs.js +4 -6
  370. package/dist/components/ifx-tabs.js.map +1 -1
  371. package/dist/components/ifx-template.js +1 -1
  372. package/dist/components/ifx-templates-ui.js +10 -12
  373. package/dist/components/ifx-templates-ui.js.map +1 -1
  374. package/dist/components/ifx-text-field.js +1 -1
  375. package/dist/components/ifx-textarea.js +2 -4
  376. package/dist/components/ifx-textarea.js.map +1 -1
  377. package/dist/components/ifx-tooltip.js +3 -5
  378. package/dist/components/ifx-tooltip.js.map +1 -1
  379. package/dist/components/ifx-tree-view-item.js +4 -6
  380. package/dist/components/ifx-tree-view-item.js.map +1 -1
  381. package/dist/components/ifx-tree-view.js +2 -4
  382. package/dist/components/ifx-tree-view.js.map +1 -1
  383. package/dist/components/index.js +25 -67
  384. package/dist/components/index.js.map +1 -1
  385. package/dist/components/{p-Clf62Zu5.js → p-4wfkxGlJ.js} +7 -9
  386. package/dist/components/p-4wfkxGlJ.js.map +1 -0
  387. package/dist/components/{p-DPN13Knu.js → p-BG0cmSVP.js} +7 -9
  388. package/dist/components/p-BG0cmSVP.js.map +1 -0
  389. package/dist/components/{p-BoK1X1nJ.js → p-BGgzlGhs.js} +4 -6
  390. package/dist/components/p-BGgzlGhs.js.map +1 -0
  391. package/dist/components/{p-Bt4MK7Mb.js → p-BQj9WQQe.js} +5 -7
  392. package/dist/components/p-BQj9WQQe.js.map +1 -0
  393. package/dist/components/{p-Dy153Xeh.js → p-BR9GBwm3.js} +4 -6
  394. package/dist/components/p-BR9GBwm3.js.map +1 -0
  395. package/dist/components/{p-1fzV7Zv1.js → p-BxahGQyq.js} +4 -6
  396. package/dist/components/p-BxahGQyq.js.map +1 -0
  397. package/dist/components/{p-CcrhUlD4.js → p-C12r4j5b.js} +4 -6
  398. package/dist/components/p-C12r4j5b.js.map +1 -0
  399. package/dist/components/{p-YPIdsxYd.js → p-CRSbKJxa.js} +5 -7
  400. package/dist/components/p-CRSbKJxa.js.map +1 -0
  401. package/dist/components/{p-CU8ZE6yG.js → p-CcGE_f9F.js} +7 -9
  402. package/dist/components/p-CcGE_f9F.js.map +1 -0
  403. package/dist/components/{p-BXtTIODa.js → p-CnXEcTdH.js} +5 -7
  404. package/dist/components/p-CnXEcTdH.js.map +1 -0
  405. package/dist/components/{p-MPqVXeG4.js → p-DFInpODO.js} +5 -7
  406. package/dist/components/p-DFInpODO.js.map +1 -0
  407. package/dist/components/{p-B0mNmKkJ.js → p-DHLzWSzN.js} +10 -12
  408. package/dist/components/p-DHLzWSzN.js.map +1 -0
  409. package/dist/components/{p-CB5foa-9.js → p-DNZFFt4T.js} +6 -8
  410. package/dist/components/p-DNZFFt4T.js.map +1 -0
  411. package/dist/components/{p-Bl0VvOaG.js → p-DRqwZrk0.js} +5 -7
  412. package/dist/components/p-DRqwZrk0.js.map +1 -0
  413. package/dist/components/{p-Crf-DluO.js → p-DdOsLLJc.js} +4 -6
  414. package/dist/components/p-DdOsLLJc.js.map +1 -0
  415. package/dist/components/{p-DPR3SJRC.js → p-DhNY6ZGA.js} +4 -6
  416. package/dist/components/p-DhNY6ZGA.js.map +1 -0
  417. package/dist/components/{p-B_8rp7VV.js → p-Djr4amRx.js} +6 -8
  418. package/dist/components/p-Djr4amRx.js.map +1 -0
  419. package/dist/components/{p-Cgqbp_bF.js → p-F-WOWp_H.js} +5 -7
  420. package/dist/components/p-F-WOWp_H.js.map +1 -0
  421. package/dist/components/{p-BDwn5rZl.js → p-R79iWjuc.js} +4 -6
  422. package/dist/components/p-R79iWjuc.js.map +1 -0
  423. package/dist/components/{p-BH1fOB-w.js → p-RF9z92mE.js} +4 -6
  424. package/dist/components/p-RF9z92mE.js.map +1 -0
  425. package/dist/components/{p-DHAEg73D.js → p-esRQWwdS.js} +9 -11
  426. package/dist/components/p-esRQWwdS.js.map +1 -0
  427. package/dist/components/{p-BgT5gPxL.js → p-v3vmQuAS.js} +6 -8
  428. package/dist/components/p-v3vmQuAS.js.map +1 -0
  429. package/dist/esm/ifx-accordion_2.entry.js +3 -1
  430. package/dist/esm/ifx-accordion_2.entry.js.map +1 -0
  431. package/dist/esm/ifx-action-list-item.entry.js +3 -1
  432. package/dist/esm/ifx-action-list.entry.js +3 -1
  433. package/dist/esm/ifx-alert_2.entry.js +3 -1
  434. package/dist/esm/ifx-alert_2.entry.js.map +1 -0
  435. package/dist/esm/ifx-basic-table.entry.js +3 -1
  436. package/dist/esm/ifx-breadcrumb-item-label.entry.js +3 -1
  437. package/dist/esm/ifx-breadcrumb-item.entry.js +3 -1
  438. package/dist/esm/ifx-breadcrumb.entry.js +3 -1
  439. package/dist/esm/ifx-button.entry.js +3 -1
  440. package/dist/esm/ifx-card-headline.entry.js +3 -1
  441. package/dist/esm/ifx-card-image.entry.js +3 -1
  442. package/dist/esm/ifx-card-links.entry.js +3 -1
  443. package/dist/esm/ifx-card-overline.entry.js +3 -1
  444. package/dist/esm/ifx-card-text.entry.js +3 -1
  445. package/dist/esm/ifx-card.entry.js +3 -1
  446. package/dist/esm/ifx-checkbox-group.entry.js +3 -1
  447. package/dist/esm/ifx-checkbox.entry.js +3 -1
  448. package/dist/esm/ifx-chip_3.entry.js +3 -1
  449. package/dist/esm/ifx-chip_3.entry.js.map +1 -0
  450. package/dist/esm/ifx-content-switcher-item.entry.js +3 -1
  451. package/dist/esm/ifx-content-switcher.entry.js +3 -1
  452. package/dist/esm/ifx-date-picker.entry.js +3 -1
  453. package/dist/esm/ifx-download.entry.js +3 -1
  454. package/dist/esm/ifx-dropdown-header.entry.js +3 -1
  455. package/dist/esm/ifx-dropdown-item.entry.js +3 -1
  456. package/dist/esm/ifx-dropdown-menu.entry.js +3 -1
  457. package/dist/esm/ifx-dropdown-separator.entry.js +3 -1
  458. package/dist/esm/ifx-dropdown-trigger-button.entry.js +3 -1
  459. package/dist/esm/ifx-dropdown-trigger.entry.js +3 -1
  460. package/dist/esm/ifx-dropdown.entry.js +3 -1
  461. package/dist/esm/ifx-faq.entry.js +3 -1
  462. package/dist/esm/ifx-file-upload.entry.js +3 -1
  463. package/dist/esm/ifx-filter-accordion.entry.js +3 -1
  464. package/dist/esm/ifx-filter-bar.entry.js +3 -1
  465. package/dist/esm/ifx-filter-search.entry.js +3 -1
  466. package/dist/esm/ifx-filter-type-group.entry.js +3 -1
  467. package/dist/esm/ifx-footer-column.entry.js +3 -1
  468. package/dist/esm/ifx-footer.entry.js +3 -1
  469. package/dist/esm/ifx-icon-button.entry.js +3 -1
  470. package/dist/esm/ifx-icon.entry.js +3 -1
  471. package/dist/esm/ifx-icons-preview.entry.js +3 -1
  472. package/dist/esm/ifx-indicator.entry.js +3 -1
  473. package/dist/esm/ifx-link.entry.js +3 -1
  474. package/dist/esm/ifx-list-entry.entry.js +3 -1
  475. package/dist/esm/ifx-list.entry.js +3 -1
  476. package/dist/esm/ifx-modal.entry.js +3 -1
  477. package/dist/esm/ifx-modal.entry.js.map +1 -1
  478. package/dist/esm/ifx-multiselect_2.entry.js +3 -1
  479. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -0
  480. package/dist/esm/ifx-navbar-item.entry.js +3 -1
  481. package/dist/esm/ifx-navbar-profile.entry.js +3 -1
  482. package/dist/esm/ifx-navbar.entry.js +3 -1
  483. package/dist/esm/ifx-notification.entry.js +3 -1
  484. package/dist/esm/ifx-overview-table.entry.js +3 -1
  485. package/dist/esm/ifx-progress-bar.entry.js +3 -1
  486. package/dist/esm/ifx-radio-button-group.entry.js +3 -1
  487. package/dist/esm/ifx-radio-button.entry.js +3 -1
  488. package/dist/esm/ifx-search-bar.entry.js +3 -1
  489. package/dist/esm/ifx-search-field.entry.js +3 -1
  490. package/dist/esm/ifx-segment.entry.js +3 -1
  491. package/dist/esm/ifx-segmented-control.entry.js +3 -1
  492. package/dist/esm/ifx-select.entry.js +3 -1
  493. package/dist/esm/ifx-set-filter.entry.js +3 -1
  494. package/dist/esm/ifx-sidebar-item.entry.js +3 -1
  495. package/dist/esm/ifx-sidebar-title.entry.js +3 -1
  496. package/dist/esm/ifx-sidebar.entry.js +3 -1
  497. package/dist/esm/ifx-slider.entry.js +3 -1
  498. package/dist/esm/ifx-spinner_2.entry.js +3 -1
  499. package/dist/esm/ifx-spinner_2.entry.js.map +1 -0
  500. package/dist/esm/ifx-status.entry.js +3 -1
  501. package/dist/esm/ifx-step.entry.js +3 -1
  502. package/dist/esm/ifx-stepper.entry.js +3 -1
  503. package/dist/esm/ifx-switch.entry.js +3 -1
  504. package/dist/esm/ifx-tab.entry.js +3 -1
  505. package/dist/esm/ifx-table.entry.js +3 -1
  506. package/dist/esm/ifx-table.entry.js.map +1 -1
  507. package/dist/esm/ifx-tabs.entry.js +3 -1
  508. package/dist/esm/ifx-templates-ui.entry.js +3 -1
  509. package/dist/esm/ifx-textarea.entry.js +3 -1
  510. package/dist/esm/ifx-tooltip.entry.js +3 -1
  511. package/dist/esm/ifx-tree-view-item.entry.js +3 -1
  512. package/dist/esm/ifx-tree-view.entry.js +3 -1
  513. package/dist/esm/{index-Bq-7EdcD.js → index-PqnYwNKt.js} +31 -88
  514. package/dist/esm/index-PqnYwNKt.js.map +1 -0
  515. package/dist/esm/index.js +2 -0
  516. package/dist/esm/infineon-design-system-stencil.js +6 -4
  517. package/dist/esm/infineon-design-system-stencil.js.map +1 -1
  518. package/dist/esm/loader.js +5 -3
  519. package/dist/infineon-design-system-stencil/ifx-modal.entry.esm.js.map +1 -1
  520. package/dist/infineon-design-system-stencil/ifx-table.entry.esm.js.map +1 -1
  521. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  522. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  523. package/dist/infineon-design-system-stencil/{p-1c9012fe.entry.js → p-05f66dcb.entry.js} +2 -2
  524. package/dist/infineon-design-system-stencil/p-05f66dcb.entry.js.map +1 -0
  525. package/dist/infineon-design-system-stencil/{p-72264e5b.entry.js → p-060845fd.entry.js} +2 -2
  526. package/dist/infineon-design-system-stencil/p-060845fd.entry.js.map +1 -0
  527. package/dist/infineon-design-system-stencil/{p-3bb3ac65.entry.js → p-06d2f85b.entry.js} +2 -2
  528. package/dist/infineon-design-system-stencil/p-06d2f85b.entry.js.map +1 -0
  529. package/dist/infineon-design-system-stencil/{p-cba6f231.entry.js → p-0929589d.entry.js} +2 -2
  530. package/dist/infineon-design-system-stencil/p-0929589d.entry.js.map +1 -0
  531. package/dist/infineon-design-system-stencil/{p-0bebb0de.entry.js → p-0be8f0c9.entry.js} +2 -2
  532. package/dist/infineon-design-system-stencil/p-0be8f0c9.entry.js.map +1 -0
  533. package/dist/infineon-design-system-stencil/{p-62010e7d.entry.js → p-0fb9f42b.entry.js} +2 -2
  534. package/dist/infineon-design-system-stencil/p-0fb9f42b.entry.js.map +1 -0
  535. package/dist/infineon-design-system-stencil/{p-cebd7759.entry.js → p-116c853e.entry.js} +2 -2
  536. package/dist/infineon-design-system-stencil/p-116c853e.entry.js.map +1 -0
  537. package/dist/infineon-design-system-stencil/{p-8a772962.entry.js → p-169f26ae.entry.js} +2 -2
  538. package/dist/infineon-design-system-stencil/p-169f26ae.entry.js.map +1 -0
  539. package/dist/infineon-design-system-stencil/{p-06078b1f.entry.js → p-1c1b1a1f.entry.js} +2 -2
  540. package/dist/infineon-design-system-stencil/p-1c1b1a1f.entry.js.map +1 -0
  541. package/dist/infineon-design-system-stencil/{p-f0b5f4c6.entry.js → p-1d494424.entry.js} +2 -2
  542. package/dist/infineon-design-system-stencil/p-1d494424.entry.js.map +1 -0
  543. package/dist/infineon-design-system-stencil/{p-b4b5caa9.entry.js → p-22e9960d.entry.js} +2 -2
  544. package/dist/infineon-design-system-stencil/p-22e9960d.entry.js.map +1 -0
  545. package/dist/infineon-design-system-stencil/{p-b1f9abc9.entry.js → p-2503d869.entry.js} +2 -2
  546. package/dist/infineon-design-system-stencil/p-2503d869.entry.js.map +1 -0
  547. package/dist/infineon-design-system-stencil/{p-83c22f84.entry.js → p-273907cb.entry.js} +2 -2
  548. package/dist/infineon-design-system-stencil/p-273907cb.entry.js.map +1 -0
  549. package/dist/infineon-design-system-stencil/{p-e789404b.entry.js → p-2813423a.entry.js} +2 -2
  550. package/dist/infineon-design-system-stencil/p-2813423a.entry.js.map +1 -0
  551. package/dist/infineon-design-system-stencil/{p-1d9689b0.entry.js → p-2b4b2b06.entry.js} +2 -2
  552. package/dist/infineon-design-system-stencil/p-2b4b2b06.entry.js.map +1 -0
  553. package/dist/infineon-design-system-stencil/{p-824fea39.entry.js → p-2e172019.entry.js} +2 -2
  554. package/dist/infineon-design-system-stencil/p-2e172019.entry.js.map +1 -0
  555. package/dist/infineon-design-system-stencil/p-307e6a72.entry.js +2 -0
  556. package/dist/infineon-design-system-stencil/p-307e6a72.entry.js.map +1 -0
  557. package/dist/infineon-design-system-stencil/{p-4a9ff9c4.entry.js → p-35d2266a.entry.js} +2 -2
  558. package/dist/infineon-design-system-stencil/p-35d2266a.entry.js.map +1 -0
  559. package/dist/infineon-design-system-stencil/{p-950f6deb.entry.js → p-380368ca.entry.js} +2 -2
  560. package/dist/infineon-design-system-stencil/p-380368ca.entry.js.map +1 -0
  561. package/dist/infineon-design-system-stencil/{p-c2e0b4a4.entry.js → p-39561a49.entry.js} +2 -2
  562. package/dist/infineon-design-system-stencil/p-39561a49.entry.js.map +1 -0
  563. package/dist/infineon-design-system-stencil/{p-3ac3d580.entry.js → p-3d77ef02.entry.js} +2 -2
  564. package/dist/infineon-design-system-stencil/p-3d77ef02.entry.js.map +1 -0
  565. package/dist/infineon-design-system-stencil/{p-d06b42ca.entry.js → p-3eeacac9.entry.js} +2 -2
  566. package/dist/infineon-design-system-stencil/p-3eeacac9.entry.js.map +1 -0
  567. package/dist/infineon-design-system-stencil/{p-bd24344b.entry.js → p-45dad0d1.entry.js} +2 -2
  568. package/dist/infineon-design-system-stencil/p-45dad0d1.entry.js.map +1 -0
  569. package/dist/infineon-design-system-stencil/{p-007bb0d4.entry.js → p-4669e01f.entry.js} +2 -2
  570. package/dist/infineon-design-system-stencil/p-4669e01f.entry.js.map +1 -0
  571. package/dist/infineon-design-system-stencil/{p-25297147.entry.js → p-4da5a2a5.entry.js} +2 -2
  572. package/dist/infineon-design-system-stencil/p-4da5a2a5.entry.js.map +1 -0
  573. package/dist/infineon-design-system-stencil/{p-ce392453.entry.js → p-4fba0543.entry.js} +2 -2
  574. package/dist/infineon-design-system-stencil/p-4fba0543.entry.js.map +1 -0
  575. package/dist/infineon-design-system-stencil/{p-b9b806ee.entry.js → p-5367db9d.entry.js} +2 -2
  576. package/dist/infineon-design-system-stencil/p-5367db9d.entry.js.map +1 -0
  577. package/dist/infineon-design-system-stencil/{p-10ecab1b.entry.js → p-58dd6f5c.entry.js} +2 -2
  578. package/dist/infineon-design-system-stencil/p-58dd6f5c.entry.js.map +1 -0
  579. package/dist/infineon-design-system-stencil/{p-65aaabf2.entry.js → p-5b571505.entry.js} +2 -2
  580. package/dist/infineon-design-system-stencil/p-5b571505.entry.js.map +1 -0
  581. package/dist/infineon-design-system-stencil/{p-dbaf7efe.entry.js → p-5e3d0ff0.entry.js} +2 -2
  582. package/dist/infineon-design-system-stencil/p-5e3d0ff0.entry.js.map +1 -0
  583. package/dist/infineon-design-system-stencil/{p-fb69c115.entry.js → p-5fb3eb8b.entry.js} +2 -2
  584. package/dist/infineon-design-system-stencil/p-5fb3eb8b.entry.js.map +1 -0
  585. package/dist/infineon-design-system-stencil/{p-b2eb2f1a.entry.js → p-6a07106e.entry.js} +2 -2
  586. package/dist/infineon-design-system-stencil/p-6a07106e.entry.js.map +1 -0
  587. package/dist/infineon-design-system-stencil/{p-63d3ebeb.entry.js → p-6e115707.entry.js} +2 -2
  588. package/dist/infineon-design-system-stencil/p-6e115707.entry.js.map +1 -0
  589. package/dist/infineon-design-system-stencil/{p-416ce394.entry.js → p-6eb6af05.entry.js} +2 -2
  590. package/dist/infineon-design-system-stencil/p-6eb6af05.entry.js.map +1 -0
  591. package/dist/infineon-design-system-stencil/{p-2ca43bf3.entry.js → p-744c1c8e.entry.js} +2 -2
  592. package/dist/infineon-design-system-stencil/p-744c1c8e.entry.js.map +1 -0
  593. package/dist/infineon-design-system-stencil/{p-925e40f0.entry.js → p-760cfc7e.entry.js} +2 -2
  594. package/dist/infineon-design-system-stencil/p-760cfc7e.entry.js.map +1 -0
  595. package/dist/infineon-design-system-stencil/{p-ded7b72c.entry.js → p-8a58c2be.entry.js} +2 -2
  596. package/dist/infineon-design-system-stencil/p-8a58c2be.entry.js.map +1 -0
  597. package/dist/infineon-design-system-stencil/{p-b3880945.entry.js → p-8ceb2ccc.entry.js} +2 -2
  598. package/dist/infineon-design-system-stencil/p-8ceb2ccc.entry.js.map +1 -0
  599. package/dist/infineon-design-system-stencil/{p-3e703c9d.entry.js → p-92ee6f73.entry.js} +2 -2
  600. package/dist/infineon-design-system-stencil/p-92ee6f73.entry.js.map +1 -0
  601. package/dist/infineon-design-system-stencil/{p-e4fe1f48.entry.js → p-94dfe026.entry.js} +2 -2
  602. package/dist/infineon-design-system-stencil/p-94dfe026.entry.js.map +1 -0
  603. package/dist/infineon-design-system-stencil/{p-b332712f.entry.js → p-9517d1b0.entry.js} +2 -2
  604. package/dist/infineon-design-system-stencil/p-9517d1b0.entry.js.map +1 -0
  605. package/dist/infineon-design-system-stencil/{p-477daa59.entry.js → p-97b2ac42.entry.js} +2 -2
  606. package/dist/infineon-design-system-stencil/p-97b2ac42.entry.js.map +1 -0
  607. package/dist/infineon-design-system-stencil/{p-1746e211.entry.js → p-9b06df76.entry.js} +2 -2
  608. package/dist/infineon-design-system-stencil/p-9b06df76.entry.js.map +1 -0
  609. package/dist/infineon-design-system-stencil/{p-a6cf79f3.entry.js → p-9ba730bb.entry.js} +2 -2
  610. package/dist/infineon-design-system-stencil/p-9ba730bb.entry.js.map +1 -0
  611. package/dist/infineon-design-system-stencil/{p-dfcccf3a.entry.js → p-9deaa65e.entry.js} +2 -2
  612. package/dist/infineon-design-system-stencil/p-9deaa65e.entry.js.map +1 -0
  613. package/dist/infineon-design-system-stencil/p-PqnYwNKt.js +3 -0
  614. package/dist/infineon-design-system-stencil/p-PqnYwNKt.js.map +1 -0
  615. package/dist/infineon-design-system-stencil/{p-e8be789f.entry.js → p-a4dd2fe1.entry.js} +2 -2
  616. package/dist/infineon-design-system-stencil/p-a4dd2fe1.entry.js.map +1 -0
  617. package/dist/infineon-design-system-stencil/{p-31fa2365.entry.js → p-a85754a5.entry.js} +3 -3
  618. package/dist/infineon-design-system-stencil/p-a85754a5.entry.js.map +1 -0
  619. package/dist/infineon-design-system-stencil/{p-d8f5253e.entry.js → p-ab326703.entry.js} +2 -2
  620. package/dist/infineon-design-system-stencil/p-ab326703.entry.js.map +1 -0
  621. package/dist/infineon-design-system-stencil/{p-9a6089d5.entry.js → p-abd8bd80.entry.js} +2 -2
  622. package/dist/infineon-design-system-stencil/p-abd8bd80.entry.js.map +1 -0
  623. package/dist/infineon-design-system-stencil/{p-eabddf02.entry.js → p-b7672947.entry.js} +2 -2
  624. package/dist/infineon-design-system-stencil/p-b7672947.entry.js.map +1 -0
  625. package/dist/infineon-design-system-stencil/{p-a4fb097a.entry.js → p-bd8c6834.entry.js} +2 -2
  626. package/dist/infineon-design-system-stencil/p-bd8c6834.entry.js.map +1 -0
  627. package/dist/infineon-design-system-stencil/{p-e0f467af.entry.js → p-beaba918.entry.js} +2 -2
  628. package/dist/infineon-design-system-stencil/p-beaba918.entry.js.map +1 -0
  629. package/dist/infineon-design-system-stencil/{p-9ed4711b.entry.js → p-c578a728.entry.js} +2 -2
  630. package/dist/infineon-design-system-stencil/p-c578a728.entry.js.map +1 -0
  631. package/dist/infineon-design-system-stencil/{p-4770ef94.entry.js → p-c6826c1e.entry.js} +2 -2
  632. package/dist/infineon-design-system-stencil/p-c6826c1e.entry.js.map +1 -0
  633. package/dist/infineon-design-system-stencil/{p-2f5b757e.entry.js → p-ca312cbb.entry.js} +2 -2
  634. package/dist/infineon-design-system-stencil/p-ca312cbb.entry.js.map +1 -0
  635. package/dist/infineon-design-system-stencil/{p-e73a47d4.entry.js → p-ca870353.entry.js} +2 -2
  636. package/dist/infineon-design-system-stencil/p-ca870353.entry.js.map +1 -0
  637. package/dist/infineon-design-system-stencil/{p-96bc02ea.entry.js → p-ce799b3d.entry.js} +2 -2
  638. package/dist/infineon-design-system-stencil/p-ce799b3d.entry.js.map +1 -0
  639. package/dist/infineon-design-system-stencil/{p-338f6827.entry.js → p-d267f6d2.entry.js} +2 -2
  640. package/dist/infineon-design-system-stencil/p-d267f6d2.entry.js.map +1 -0
  641. package/dist/infineon-design-system-stencil/{p-b804f249.entry.js → p-d2b076fe.entry.js} +2 -2
  642. package/dist/infineon-design-system-stencil/p-d2b076fe.entry.js.map +1 -0
  643. package/dist/infineon-design-system-stencil/{p-b2066117.entry.js → p-d4373c36.entry.js} +2 -2
  644. package/dist/infineon-design-system-stencil/p-d4373c36.entry.js.map +1 -0
  645. package/dist/infineon-design-system-stencil/{p-c896041a.entry.js → p-d65a334c.entry.js} +2 -2
  646. package/dist/infineon-design-system-stencil/p-d65a334c.entry.js.map +1 -0
  647. package/dist/infineon-design-system-stencil/{p-81e4dc33.entry.js → p-dac7d817.entry.js} +2 -2
  648. package/dist/infineon-design-system-stencil/p-dac7d817.entry.js.map +1 -0
  649. package/dist/infineon-design-system-stencil/{p-233d0bd2.entry.js → p-dbc6ae20.entry.js} +2 -2
  650. package/dist/infineon-design-system-stencil/p-dbc6ae20.entry.js.map +1 -0
  651. package/dist/infineon-design-system-stencil/{p-0e98b1aa.entry.js → p-dcd0af23.entry.js} +2 -2
  652. package/dist/infineon-design-system-stencil/p-dcd0af23.entry.js.map +1 -0
  653. package/dist/infineon-design-system-stencil/{p-c65ca68b.entry.js → p-e3c11b6c.entry.js} +2 -2
  654. package/dist/infineon-design-system-stencil/p-e3c11b6c.entry.js.map +1 -0
  655. package/dist/infineon-design-system-stencil/{p-73c855a4.entry.js → p-e6c4c4cf.entry.js} +2 -2
  656. package/dist/infineon-design-system-stencil/p-e6c4c4cf.entry.js.map +1 -0
  657. package/dist/infineon-design-system-stencil/p-e78ffc43.entry.js +2 -0
  658. package/dist/infineon-design-system-stencil/p-e78ffc43.entry.js.map +1 -0
  659. package/dist/infineon-design-system-stencil/{p-5bddfe84.entry.js → p-e7c656cd.entry.js} +2 -2
  660. package/dist/infineon-design-system-stencil/p-e7c656cd.entry.js.map +1 -0
  661. package/dist/infineon-design-system-stencil/{p-2151343a.entry.js → p-edbfa46e.entry.js} +2 -2
  662. package/dist/infineon-design-system-stencil/p-edbfa46e.entry.js.map +1 -0
  663. package/dist/infineon-design-system-stencil/{p-2128c3a9.entry.js → p-ee04eb6e.entry.js} +2 -2
  664. package/dist/infineon-design-system-stencil/p-ee04eb6e.entry.js.map +1 -0
  665. package/dist/infineon-design-system-stencil/{p-a5c003d6.entry.js → p-f06b0ae3.entry.js} +2 -2
  666. package/dist/infineon-design-system-stencil/p-f06b0ae3.entry.js.map +1 -0
  667. package/dist/infineon-design-system-stencil/{p-7ac20ef4.entry.js → p-f1ba768a.entry.js} +2 -2
  668. package/dist/infineon-design-system-stencil/p-f1ba768a.entry.js.map +1 -0
  669. package/dist/infineon-design-system-stencil/{p-6f77f59d.entry.js → p-f2c8c7a6.entry.js} +2 -2
  670. package/dist/infineon-design-system-stencil/p-f2c8c7a6.entry.js.map +1 -0
  671. package/dist/infineon-design-system-stencil/p-fb92000d.entry.js +2 -0
  672. package/dist/infineon-design-system-stencil/p-fb92000d.entry.js.map +1 -0
  673. package/dist/infineon-design-system-stencil/{p-b12e396b.entry.js → p-fc359efa.entry.js} +2 -2
  674. package/dist/infineon-design-system-stencil/p-fc359efa.entry.js.map +1 -0
  675. package/dist/infineon-design-system-stencil/{p-5a279eb2.entry.js → p-fcae5dc1.entry.js} +2 -2
  676. package/dist/infineon-design-system-stencil/p-fcae5dc1.entry.js.map +1 -0
  677. package/dist/infineon-design-system-stencil/{p-1939e98d.entry.js → p-ff4cc197.entry.js} +2 -2
  678. package/dist/infineon-design-system-stencil/p-ff4cc197.entry.js.map +1 -0
  679. package/dist/types/stencil-public-runtime.d.ts +2 -49
  680. package/package.json +2 -2
  681. package/dist/cjs/index-DDktl7Xq.js.map +0 -1
  682. package/dist/components/p-1fzV7Zv1.js.map +0 -1
  683. package/dist/components/p-B0mNmKkJ.js.map +0 -1
  684. package/dist/components/p-BDwn5rZl.js.map +0 -1
  685. package/dist/components/p-BH1fOB-w.js.map +0 -1
  686. package/dist/components/p-BXtTIODa.js.map +0 -1
  687. package/dist/components/p-B_8rp7VV.js.map +0 -1
  688. package/dist/components/p-BgT5gPxL.js.map +0 -1
  689. package/dist/components/p-Bl0VvOaG.js.map +0 -1
  690. package/dist/components/p-BoK1X1nJ.js.map +0 -1
  691. package/dist/components/p-Bt4MK7Mb.js.map +0 -1
  692. package/dist/components/p-CB5foa-9.js.map +0 -1
  693. package/dist/components/p-CU8ZE6yG.js.map +0 -1
  694. package/dist/components/p-CcrhUlD4.js.map +0 -1
  695. package/dist/components/p-Cgqbp_bF.js.map +0 -1
  696. package/dist/components/p-Clf62Zu5.js.map +0 -1
  697. package/dist/components/p-Crf-DluO.js.map +0 -1
  698. package/dist/components/p-DHAEg73D.js.map +0 -1
  699. package/dist/components/p-DPN13Knu.js.map +0 -1
  700. package/dist/components/p-DPR3SJRC.js.map +0 -1
  701. package/dist/components/p-Dy153Xeh.js.map +0 -1
  702. package/dist/components/p-MPqVXeG4.js.map +0 -1
  703. package/dist/components/p-YPIdsxYd.js.map +0 -1
  704. package/dist/esm/index-Bq-7EdcD.js.map +0 -1
  705. package/dist/infineon-design-system-stencil/p-007bb0d4.entry.js.map +0 -1
  706. package/dist/infineon-design-system-stencil/p-06078b1f.entry.js.map +0 -1
  707. package/dist/infineon-design-system-stencil/p-0bebb0de.entry.js.map +0 -1
  708. package/dist/infineon-design-system-stencil/p-0e98b1aa.entry.js.map +0 -1
  709. package/dist/infineon-design-system-stencil/p-10ecab1b.entry.js.map +0 -1
  710. package/dist/infineon-design-system-stencil/p-1746e211.entry.js.map +0 -1
  711. package/dist/infineon-design-system-stencil/p-1939e98d.entry.js.map +0 -1
  712. package/dist/infineon-design-system-stencil/p-1c9012fe.entry.js.map +0 -1
  713. package/dist/infineon-design-system-stencil/p-1d9689b0.entry.js.map +0 -1
  714. package/dist/infineon-design-system-stencil/p-2128c3a9.entry.js.map +0 -1
  715. package/dist/infineon-design-system-stencil/p-2151343a.entry.js.map +0 -1
  716. package/dist/infineon-design-system-stencil/p-233d0bd2.entry.js.map +0 -1
  717. package/dist/infineon-design-system-stencil/p-25297147.entry.js.map +0 -1
  718. package/dist/infineon-design-system-stencil/p-2ca43bf3.entry.js.map +0 -1
  719. package/dist/infineon-design-system-stencil/p-2f5b757e.entry.js.map +0 -1
  720. package/dist/infineon-design-system-stencil/p-31fa2365.entry.js.map +0 -1
  721. package/dist/infineon-design-system-stencil/p-338f6827.entry.js.map +0 -1
  722. package/dist/infineon-design-system-stencil/p-3ac3d580.entry.js.map +0 -1
  723. package/dist/infineon-design-system-stencil/p-3bb3ac65.entry.js.map +0 -1
  724. package/dist/infineon-design-system-stencil/p-3e703c9d.entry.js.map +0 -1
  725. package/dist/infineon-design-system-stencil/p-416ce394.entry.js.map +0 -1
  726. package/dist/infineon-design-system-stencil/p-4770ef94.entry.js.map +0 -1
  727. package/dist/infineon-design-system-stencil/p-477daa59.entry.js.map +0 -1
  728. package/dist/infineon-design-system-stencil/p-4a9ff9c4.entry.js.map +0 -1
  729. package/dist/infineon-design-system-stencil/p-5a279eb2.entry.js.map +0 -1
  730. package/dist/infineon-design-system-stencil/p-5bddfe84.entry.js.map +0 -1
  731. package/dist/infineon-design-system-stencil/p-5cce03bf.entry.js +0 -2
  732. package/dist/infineon-design-system-stencil/p-5cce03bf.entry.js.map +0 -1
  733. package/dist/infineon-design-system-stencil/p-62010e7d.entry.js.map +0 -1
  734. package/dist/infineon-design-system-stencil/p-63d3ebeb.entry.js.map +0 -1
  735. package/dist/infineon-design-system-stencil/p-65aaabf2.entry.js.map +0 -1
  736. package/dist/infineon-design-system-stencil/p-6dd50243.entry.js +0 -2
  737. package/dist/infineon-design-system-stencil/p-6dd50243.entry.js.map +0 -1
  738. package/dist/infineon-design-system-stencil/p-6f77f59d.entry.js.map +0 -1
  739. package/dist/infineon-design-system-stencil/p-72264e5b.entry.js.map +0 -1
  740. package/dist/infineon-design-system-stencil/p-73c855a4.entry.js.map +0 -1
  741. package/dist/infineon-design-system-stencil/p-7ac20ef4.entry.js.map +0 -1
  742. package/dist/infineon-design-system-stencil/p-81e4dc33.entry.js.map +0 -1
  743. package/dist/infineon-design-system-stencil/p-824fea39.entry.js.map +0 -1
  744. package/dist/infineon-design-system-stencil/p-83c22f84.entry.js.map +0 -1
  745. package/dist/infineon-design-system-stencil/p-8a772962.entry.js.map +0 -1
  746. package/dist/infineon-design-system-stencil/p-925e40f0.entry.js.map +0 -1
  747. package/dist/infineon-design-system-stencil/p-950f6deb.entry.js.map +0 -1
  748. package/dist/infineon-design-system-stencil/p-96bc02ea.entry.js.map +0 -1
  749. package/dist/infineon-design-system-stencil/p-981391c7.entry.js +0 -2
  750. package/dist/infineon-design-system-stencil/p-981391c7.entry.js.map +0 -1
  751. package/dist/infineon-design-system-stencil/p-9a6089d5.entry.js.map +0 -1
  752. package/dist/infineon-design-system-stencil/p-9ed4711b.entry.js.map +0 -1
  753. package/dist/infineon-design-system-stencil/p-Bq-7EdcD.js +0 -3
  754. package/dist/infineon-design-system-stencil/p-Bq-7EdcD.js.map +0 -1
  755. package/dist/infineon-design-system-stencil/p-a4fb097a.entry.js.map +0 -1
  756. package/dist/infineon-design-system-stencil/p-a5c003d6.entry.js.map +0 -1
  757. package/dist/infineon-design-system-stencil/p-a6cf79f3.entry.js.map +0 -1
  758. package/dist/infineon-design-system-stencil/p-b12e396b.entry.js.map +0 -1
  759. package/dist/infineon-design-system-stencil/p-b1f9abc9.entry.js.map +0 -1
  760. package/dist/infineon-design-system-stencil/p-b2066117.entry.js.map +0 -1
  761. package/dist/infineon-design-system-stencil/p-b2eb2f1a.entry.js.map +0 -1
  762. package/dist/infineon-design-system-stencil/p-b332712f.entry.js.map +0 -1
  763. package/dist/infineon-design-system-stencil/p-b3880945.entry.js.map +0 -1
  764. package/dist/infineon-design-system-stencil/p-b4b5caa9.entry.js.map +0 -1
  765. package/dist/infineon-design-system-stencil/p-b804f249.entry.js.map +0 -1
  766. package/dist/infineon-design-system-stencil/p-b9b806ee.entry.js.map +0 -1
  767. package/dist/infineon-design-system-stencil/p-bd24344b.entry.js.map +0 -1
  768. package/dist/infineon-design-system-stencil/p-c2e0b4a4.entry.js.map +0 -1
  769. package/dist/infineon-design-system-stencil/p-c65ca68b.entry.js.map +0 -1
  770. package/dist/infineon-design-system-stencil/p-c896041a.entry.js.map +0 -1
  771. package/dist/infineon-design-system-stencil/p-cba6f231.entry.js.map +0 -1
  772. package/dist/infineon-design-system-stencil/p-ce392453.entry.js.map +0 -1
  773. package/dist/infineon-design-system-stencil/p-cebd7759.entry.js.map +0 -1
  774. package/dist/infineon-design-system-stencil/p-d06b42ca.entry.js.map +0 -1
  775. package/dist/infineon-design-system-stencil/p-d8f5253e.entry.js.map +0 -1
  776. package/dist/infineon-design-system-stencil/p-dbaf7efe.entry.js.map +0 -1
  777. package/dist/infineon-design-system-stencil/p-ded7b72c.entry.js.map +0 -1
  778. package/dist/infineon-design-system-stencil/p-dfcccf3a.entry.js.map +0 -1
  779. package/dist/infineon-design-system-stencil/p-e0f467af.entry.js.map +0 -1
  780. package/dist/infineon-design-system-stencil/p-e4fe1f48.entry.js.map +0 -1
  781. package/dist/infineon-design-system-stencil/p-e73a47d4.entry.js.map +0 -1
  782. package/dist/infineon-design-system-stencil/p-e789404b.entry.js.map +0 -1
  783. package/dist/infineon-design-system-stencil/p-e8be789f.entry.js.map +0 -1
  784. package/dist/infineon-design-system-stencil/p-eabddf02.entry.js.map +0 -1
  785. package/dist/infineon-design-system-stencil/p-f0b5f4c6.entry.js.map +0 -1
  786. package/dist/infineon-design-system-stencil/p-fb69c115.entry.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ButtonCellRenderer","init","params","this","createButton","getGui","eGui","refresh","updateButton","config","data","colDef","field","options","cellRendererParams","document","createElement","eButton","hasRequiredKeys","setButtonAttributes","appendChild","attachEventListener","textContent","String","detachEventListener","setAttribute","disabled","toString","variant","theme","type","size","fullWidth","target","href","text","eventListener","event","onButtonClick","addEventListener","removeEventListener","CheckboxCellRenderer","createCheckbox","updateCheckbox","style","display","alignItems","justifyContent","eCheckbox","setCheckboxAttributes","error","checked","indeterminate","onCheckboxClick","CheckboxHeaderRenderer","createHeader","Object","assign","detail","onSelectAll","IconButtonCellRenderer","createIconButton","updateIconButton","eIconButton","setIconButtonAttributes","shape","icon","onIconButtonClick","LinkCellRenderer","createLink","updateLink","_a","_b","value","_c","eLink","setLinkAttributes","download","StatusCellRenderer","render","cfg","el","label","color","border","CustomNoRowsOverlay","innerHTML","noRowsMessageFunc","_params","CustomLoadingOverlay","tableCss","Table","constructor","hostRef","currentPage","rowData","colData","filterOptions","currentFilters","allRowData","rowHeight","tableHeight","pagination","paginationPageSize","filterOrientation","headline","showSidebarFilters","matchingResultsCount","serverSidePagination","enableSelection","selectedRows","Set","selectAll","showLoading","originalRowData","internalItemsPerPage","JSON","stringify","selected","handleSelectAll","map","row","__rowId","updateCheckboxStates","updateHeaderCheckboxState","emitSelectionChange","handleRowCheckboxClick","clickedRowData","rowId","newSelectedRows","has","delete","add","length","rowsChanged","_newVal","parsed","parseArrayInput","rows","forEach","index","Date","now","Math","random","__checkbox","updateTableView","updateFilterOptions","colsChanged","getColData","gridApi","setGridOption","sizeColumnsToFit","defaultMinWidth","handleResultsPerPageChange","e","Number","handleChipChange","name","currentSelection","previousSelection","updatedFilters","customEvent","CustomEvent","filterName","bubbles","composed","host","dispatchEvent","filterValues","selection","applyAllFilters","onButtonRendererOptionsChanged","setColumnDefs","onIconButtonRendererOptionsChanged","onCheckboxRendererOptionsChanged","input","parse","Array","isArray","console","toggleSidebarFilters","col","setTimeout","headerCheckbox","container","querySelector","allSelected","someSelected","handleSidebarFilterChange","filterGroups","filterGroup","filterGroupName","selectedItems","item","handleTopbarFilterChange","filters","filter","filterInfo","selectedValues","toLowerCase","textFilterMatched","property","hasOwnProperty","rowValue","some","filterValue","startsWith","includesUndefined","includes","serverPageChangeHandler","total","page","pageSize","paginationElement","shadowRoot","startIndex","endIndex","visibleRowData","slice","clearAllFilters","onBtShowLoading","showLoadingOverlay","setPaginationItemsPerPage","newItemsPerPage","paginationItemsPerPage","itemsPerPageArray","selectedOption","find","option","componentWillLoad","uniqueKey","floor","getRowData","gridOptions","suppressCellFocus","headerHeight","components","checkboxCellRenderer","checkboxHeaderRenderer","customLoadingOverlay","customNoRowsOverlay","defaultColDef","resizable","autoHeight","suppressDragLeaveHidesColumns","enableCellTextSelection","onFirstDataRendered","bind","columnDefs","loadingOverlayComponent","noRowsOverlayComponent","noRowsOverlayComponentParams","icons","sortAscending","sortDescending","sortUnSort","rowDragManaged","dndSource","animateRows","navigateToNextCell","focusCellIfContainingButton","api","nextCellPosition","tabToNextCell","cellPosition","column","getColDef","rowNode","getDisplayedRowAtIndex","rowIndex","cellRenderers","getCellRendererInstances","rowNodes","columns","renderedContent","button","focusableChild","focus","componentDidLoad","isNestedInIfxComponent","framework","detectFramework","trackComponent","createGrid","handlePageChange","sidebarFilterElements","querySelectorAll","sidebarFilterElement","topbarFilterElements","topbarFilterElement","componentWillUnmount","sidebarFilters","sidebarFilter","topbarFilters","topbarFilter","isJSONParseable","str","undefined","refreshCells","force","selectedRowsData","from","r","__rest","selectedCount","isSelectAll","cols","checkboxColumn","headerName","width","pinned","cellRenderer","headerComponent","headerComponentParams","sortable","valueFormatter","cellDataType","unshift","buttonRendererOptions","checkboxRendererOptions","_d","iconButtonRendererOptions","handleResetButtonClick","resetEvent","window","disconnectedCallback","resetButton","getTableClassNames","classNames","height","filterClass","h","Host","key","class","onClick","keys","isMultiSelect","placeholder","readOnly","id","ref","hasButtonCol","onDragOver","dragSupported","dataTransfer","dropEffect","preventDefault","onDrop","jsonData","getData","eJsonRow","classList","innerText","eJsonDisplay"],"sources":["src/components/table-advanced-version/buttonCellRenderer.ts","src/components/table-advanced-version/checkboxCellRenderer.ts","src/components/table-advanced-version/checkboxHeaderRenderer.ts","src/components/table-advanced-version/iconButtonCellRenderer.ts","src/components/table-advanced-version/linkCellRenderer.ts","src/components/table-advanced-version/statusCellRenderer.ts","src/components/table-advanced-version/customNoRowsOverlay.ts","src/components/table-advanced-version/customLoadingOverlay.ts","src/components/table-advanced-version/table.scss?tag=ifx-table&encapsulation=shadow","src/components/table-advanced-version/table.tsx"],"sourcesContent":["import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { ButtonInterface } from './interfaces';\n\nexport class ButtonCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eButton!: HTMLElement; // Change to a generic HTMLElement to accommodate custom elements\n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createButton(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateButton(params);\n return true;\n }\n\n private createButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n this.eGui = document.createElement('div');\n this.eButton = document.createElement('ifx-button') as HTMLElement;\n \n if (this.hasRequiredKeys(config)) {\n this.setButtonAttributes(config);\n this.eGui.appendChild(this.eButton);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n if (this.hasRequiredKeys(config)) {\n this.setButtonAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setButtonAttributes(config: ButtonInterface) {\n this.eButton.setAttribute('disabled', config.disabled.toString());\n this.eButton.setAttribute('variant', config.variant);\n this.eButton.setAttribute('theme', config.theme);\n this.eButton.setAttribute('type', config.type);\n this.eButton.setAttribute('size', config.size);\n this.eButton.setAttribute('full-width', config.fullWidth.toString());\n this.eButton.setAttribute('target', config.target);\n this.eButton.setAttribute('href', config.href);\n this.eButton.textContent = config.text;\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onButtonClick) {\n options.onButtonClick(params, event);\n }\n };\n this.eButton.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eButton.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: ButtonInterface): boolean {\n return config && config.text !== '' && config.variant !== '' && config.size !== '' && config.type !== '';\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { CheckboxInterface } from './interfaces';\n\nexport class CheckboxCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eCheckbox!: HTMLElement;\n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createCheckbox(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateCheckbox(params);\n return true;\n }\n\n private createCheckbox(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n this.eGui = document.createElement('div');\n this.eGui.style.display = 'flex';\n this.eGui.style.alignItems = 'center';\n this.eGui.style.justifyContent = 'center';\n this.eCheckbox = document.createElement('ifx-checkbox') as HTMLElement;\n\n if (this.hasRequiredKeys(config)) {\n this.setCheckboxAttributes(config);\n this.eGui.appendChild(this.eCheckbox);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : 'No checkbox data';\n }\n }\n\n private updateCheckbox(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n\n if (this.hasRequiredKeys(config)) {\n this.setCheckboxAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setCheckboxAttributes(config: CheckboxInterface) {\n this.eCheckbox.setAttribute('disabled', config.disabled.toString());\n this.eCheckbox.setAttribute('error', config.error.toString());\n this.eCheckbox.setAttribute('size', config.size);\n this.eCheckbox.setAttribute('checked', config.checked.toString());\n this.eCheckbox.setAttribute('indeterminate', config.indeterminate.toString());\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onCheckboxClick) {\n options.onCheckboxClick(params, event);\n }\n };\n this.eCheckbox.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eCheckbox.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: CheckboxInterface): boolean {\n return config && config.size !== '';\n }\n}\n","import { IHeaderComp, IHeaderParams } from 'ag-grid-community';\n\nexport class CheckboxHeaderRenderer implements IHeaderComp {\n eGui!: HTMLDivElement;\n eCheckbox!: HTMLElement;\n params!: IHeaderParams & { onSelectAll?: (checked: boolean) => void };\n\n init(params: IHeaderParams & { onSelectAll?: (checked: boolean) => void }) {\n this.params = params;\n this.createHeader();\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: IHeaderParams): boolean {\n this.params = { ...this.params, ...params };\n return true;\n }\n\n private createHeader() {\n this.eGui = document.createElement('div');\n this.eGui.style.display = 'flex';\n this.eGui.style.alignItems = 'center';\n this.eGui.style.justifyContent = 'center';\n\n this.eCheckbox = document.createElement('ifx-checkbox');\n this.eCheckbox.setAttribute('size', 's');\n this.eCheckbox.setAttribute('checked', 'false');\n\n this.eCheckbox.addEventListener('ifxChange', (event: any) => {\n const checked = event.detail;\n if (this.params.onSelectAll) {\n this.params.onSelectAll(checked);\n }\n });\n\n this.eGui.appendChild(this.eCheckbox);\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { IconButtonInterface } from './interfaces';\n\nexport class IconButtonCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eIconButton!: HTMLElement; \n eventListener!: (event: Event) => void;\n\n init(params: ICellRendererParams) {\n this.createIconButton(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateIconButton(params);\n return true;\n }\n\n private createIconButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n this.eGui = document.createElement('div');\n this.eIconButton = document.createElement('ifx-icon-button') as HTMLElement;\n \n if (this.hasRequiredKeys(config)) {\n this.setIconButtonAttributes(config);\n this.eGui.appendChild(this.eIconButton);\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateIconButton(params: ICellRendererParams) {\n const config = params.data[params.colDef.field];\n const options = params.colDef.cellRendererParams || {};\n \n if (this.hasRequiredKeys(config)) {\n this.setIconButtonAttributes(config);\n this.detachEventListener();\n this.attachEventListener(options, params);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setIconButtonAttributes(config: IconButtonInterface) {\n this.eIconButton.setAttribute('disabled', config.disabled.toString());\n this.eIconButton.setAttribute('variant', config.variant);\n this.eIconButton.setAttribute('shape', config.shape);\n this.eIconButton.setAttribute('size', config.size);\n this.eIconButton.setAttribute('target', config.target);\n this.eIconButton.setAttribute('href', config.href);\n this.eIconButton.setAttribute('icon', config.icon);\n }\n\n private attachEventListener(options: any, params: ICellRendererParams) {\n this.eventListener = (event: Event) => {\n if (options.onIconButtonClick) {\n options.onIconButtonClick(params, event);\n }\n };\n this.eIconButton.addEventListener('click', this.eventListener);\n }\n\n private detachEventListener() {\n if (this.eventListener) {\n this.eIconButton.removeEventListener('click', this.eventListener);\n }\n }\n\n private hasRequiredKeys(config: IconButtonInterface): boolean {\n return config && config.variant !== '' && config.size !== '' && config.shape !== '';\n }\n}\n","import { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\nimport { LinkInterface } from './interfaces';\n\nexport class LinkCellRenderer implements ICellRendererComp {\n eGui!: HTMLDivElement;\n eLink!: HTMLElement;\n\n init(params: ICellRendererParams) {\n this.createLink(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.updateLink(params);\n return true;\n }\n\n private createLink(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const config = (params.value ?? params.data?.[field]) as any;\n\n this.eGui = document.createElement('div');\n this.eLink = document.createElement('ifx-link') as HTMLElement;\n\n if (this.hasRequiredKeys(config)) {\n this.setLinkAttributes(config);\n this.eGui.appendChild(this.eLink);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private updateLink(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const config = (params.value ?? params.data?.[field]) as any;\n\n if (this.hasRequiredKeys(config)) {\n this.setLinkAttributes(config);\n } else {\n this.eGui.textContent = config ? String(config) : '';\n }\n }\n\n private setLinkAttributes(config: LinkInterface) {\n this.eLink.setAttribute('disabled', config.disabled?.toString());\n this.eLink.setAttribute('variant', config.variant);\n this.eLink.setAttribute('size', config.size);\n this.eLink.setAttribute('target', config.target);\n this.eLink.setAttribute('href', config.href);\n if (config.download) this.eLink.setAttribute('download', config.download);\n this.eLink.textContent = config.text || '';\n }\n\n private hasRequiredKeys(config: LinkInterface): boolean {\n return !!(\n config &&\n config.text &&\n config.variant &&\n config.size\n );\n }\n}\n","// statusCellRenderer.ts\nimport { ICellRendererComp, ICellRendererParams } from 'ag-grid-community';\n\ntype StatusConfig = {\n label: string;\n color?: string;\n border?: boolean;\n};\n\nexport class StatusCellRenderer implements ICellRendererComp {\n private eGui!: HTMLDivElement;\n\n init(params: ICellRendererParams) {\n this.eGui = document.createElement('div');\n this.render(params);\n }\n\n getGui() {\n return this.eGui;\n }\n\n refresh(params: ICellRendererParams) {\n this.render(params);\n return true;\n }\n\nprivate render(params: ICellRendererParams) {\n const field = params.colDef?.field as string | undefined;\n const cfg = (params.value ?? params.data?.[field]) as StatusConfig | string | undefined;\n\n this.eGui.textContent = '';\n\n if (cfg && typeof cfg === 'object' && 'label' in cfg) {\n const el = document.createElement('ifx-status') as any;\n el.label = cfg.label;\n if (cfg.color != null) el.color = cfg.color;\n el.border = !!(cfg as StatusConfig).border;\n this.eGui.appendChild(el);\n } else if (cfg != null) {\n this.eGui.textContent = String(cfg);\n }\n}\n}\n","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\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-container {\n display: block;\n}\n\n.sidebar-btn {\n margin-bottom: 24px;\n}\n\n.sidebar-container {\n margin-right: 24px;\n}\n\n.sidebar-layout {\n display: flex;\n flex-direction: row;\n}\n\n.topbar-layout {\n display: flex;\n flex-direction: column;\n}\n\n.table-pagination-wrapper {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n\n & .pagination-wrapper {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n}\n\n#table-wrapper {\n flex: 1;\n padding-bottom: tokens.$ifxSpace100;\n overflow-x: auto;\n width: 100%;\n}\n\n.table-wrapper {\n overflow-x: auto;\n width: 100%;\n}\n\n.ag-horizontal-left-spacer {\n display: none;\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.filter-chips {\n display: flex;\n flex-wrap: wrap;\n gap: tokens.$ifxSpace100;\n margin-bottom: 12px;\n}\n\n.filter-chips > ifx-button {\n margin-left: -8px;\n}\n\n.set-filter-wrapper-sidebar {\n display: flex;\n flex-direction: column;\n margin-bottom: tokens.$ifxSpace100;\n}\n\n.set-filter-wrapper-topbar {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n margin-bottom: tokens.$ifxSpace100;\n background: tokens.$ifxColorEngineering100;\n padding-top: 32px;\n padding-bottom: 32px;\n gap: 24px;\n}\n\n.headline-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 15px 0px;\n}\n\n.inner-buttons-wrapper {\n flex: 1;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n gap: 5px;\n}\n\n.ifx-ag-grid {\n display: grid;\n height: 100%;\n width: 100%;\n min-width: 100px;\n overflow-x: auto;\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-pinned-left-header {\n background-color: tokens.$ifxColorEngineering200;\n min-width: 50px !important;\n max-width: 50px !important;\n width: 50px !important;\n &::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\n.ag-header-row {\n width: 50px !important;\n}\n\n.ag-pinned-left-cols-container {\n width: 50px !important;\n max-width: 50px !important;\n min-width: 50px !important;\n}\n\n.ag-overlay-loading-center {\n border: none;\n background: none;\n border-radius: none;\n box-shadow: none;\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.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);\n}\n\n.ag-row-focus {\n background-color: inherit !important;\n}\n\n.ag-row-hover {\n background-color: tokens.$ifxColorBaseWhite !important;\n}\n\n.ag-cell-focus {\n border: none !important;\n outline: none !important;\n background-color: inherit !important;\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;\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.ag-sort-indicator-container .ag-sort-order {\n display: none;\n}\n\n.unsort-icon-custom-color {\n color: tokens.$ifxColorEngineering400;\n}\n\n.filters-title {\n font-size: 24px;\n font-weight: 600;\n}\n\n.matching-results-container {\n flex: 1;\n font-family: 'Source Sans 3';\n display: flex;\n gap: 4px;\n font-size: 24px;\n font-weight: 600;\n line-height: 32px;\n letter-spacing: -1px;\n padding-right: 56px;\n}\n\n.matching-results-count {\n font-weight: 600;\n}\n\n.matching-results-text {\n font-weight: 400;\n}\n\n.ag-body-horizontal-scroll {\n display: none;\n}\n\n@media (max-width: tokens.$ifxBreakpointM) {\n .table-wrapper,\n #table-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n .ag-root-wrapper {\n min-width: 100%;\n }\n\n .ag-body-horizontal-scroll {\n display: block;\n }\n\n .ag-header-cell,\n .ag-cell {\n min-width: 100px;\n white-space: nowrap;\n }\n\n .sidebar-layout {\n flex-direction: column;\n }\n\n .sidebar-container {\n margin-right: 0;\n margin-bottom: 24px;\n }\n\n .set-filter-wrapper-topbar {\n padding-left: 16px;\n padding-right: 16px;\n }\n\n .table-pagination-wrapper {\n gap: tokens.$ifxSpace200;\n }\n}\n","import { Component, h, Host, Method, Element, Prop, State, Listen, Watch } from '@stencil/core';\nimport classNames from 'classnames';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { CellPosition, createGrid, FirstDataRenderedEvent, GridApi, GridOptions } from 'ag-grid-community';\nimport { ButtonCellRenderer } from './buttonCellRenderer';\nimport { CheckboxCellRenderer } from './checkboxCellRenderer';\nimport { CheckboxHeaderRenderer } from './checkboxHeaderRenderer';\nimport { IconButtonCellRenderer } from './iconButtonCellRenderer';\nimport { LinkCellRenderer } from './linkCellRenderer';\nimport { StatusCellRenderer } from './statusCellRenderer';\nimport { CustomNoRowsOverlay } from './customNoRowsOverlay';\nimport { CustomLoadingOverlay } from './customLoadingOverlay';\n\n@Component({\n tag: 'ifx-table',\n styleUrl: 'table.scss',\n shadow: true,\n})\nexport class Table {\n gridOptions: GridOptions;\n gridApi: GridApi;\n @State() currentPage: number = 1;\n @Prop() cols: any;\n @Prop() rows: any;\n @Prop() buttonRendererOptions?: { onButtonClick?: (params: any, event: Event) => void };\n @Prop() iconButtonRendererOptions?: { onIconButtonClick?: (params: any, event: Event) => void };\n @Prop() checkboxRendererOptions?: { onCheckboxClick?: (params: any, event: Event) => void };\n @State() rowData: any[] = [];\n @State() colData: any[] = [];\n @State() filterOptions: { [key: string]: string[] } = {};\n @State() currentFilters = {};\n @State() uniqueKey: string;\n allRowData: any[] = [];\n @Prop() rowHeight: string = 'default';\n @Prop() tableHeight: string = 'auto';\n @Prop() pagination: boolean = true;\n @Prop() paginationItemsPerPage: string;\n @State() paginationPageSize: number = 10;\n @Prop() filterOrientation: string = 'sidebar';\n @Prop() headline: string = '';\n @State() showSidebarFilters: boolean = true;\n @State() matchingResultsCount: number = 0;\n @Prop() variant: string = 'default';\n @Prop() serverSidePagination: boolean = false;\n @Prop() serverPageChangeHandler?: (params: { page: number; pageSize: number }) => Promise<{ rows: any[]; total: number }>;\n @Prop() enableSelection: boolean = false;\n @State() selectedRows: Set<string> = new Set();\n @State() selectAll: boolean = false;\n @Prop() showLoading: boolean = false;\n private container: HTMLDivElement;\n @Element() host: HTMLElement;\n originalRowData: any[] = [];\n\n private internalItemsPerPage = JSON.stringify([\n { value: 10, label: '10', selected: true },\n { value: 20, label: '20', selected: false },\n { value: 30, label: '30', selected: false },\n ]);\n\n @Watch('rows')\n rowsChanged(_newVal: any) {\n const parsed = this.parseArrayInput<any>(this.rows);\n\n parsed.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${index}_${Date.now()}_${Math.random()}`;\n }\n });\n\n if (this.enableSelection) {\n parsed.forEach(row => {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n this.currentFilters = {};\n this.currentPage = 1;\n this.originalRowData = [...parsed];\n this.allRowData = [...parsed];\n this.matchingResultsCount = this.allRowData.length;\n this.updateTableView();\n this.updateFilterOptions();\n }\n\n @Watch('cols')\n colsChanged(_newVal: any) {\n this.colData = this.getColData();\n\n if (this.gridApi) {\n this.gridApi.setGridOption('columnDefs', this.colData);\n this.gridApi.sizeColumnsToFit({\n defaultMinWidth: 100,\n });\n }\n\n this.updateFilterOptions();\n }\n\n @Listen('ifxItemsPerPageChange')\n handleResultsPerPageChange(e: CustomEvent<string>) {\n this.paginationPageSize = Number(e.detail);\n this.currentPage = 1;\n this.updateTableView();\n }\n\n @Listen('ifxChange')\n handleChipChange(event: CustomEvent<{ previousSelection: Array<any>; currentSelection: Array<any>; name: string }>) {\n const { name, currentSelection, previousSelection } = event.detail;\n if (currentSelection && previousSelection) {\n // Clone the current filters state\n const updatedFilters = { ...this.currentFilters };\n\n if (currentSelection.length === 0) {\n // If there are no selections for this filter, delete the filter\n delete updatedFilters[name];\n\n // Emit event with specific filter name\n const customEvent = new CustomEvent('ifxUpdateSidebarFilter', { detail: { filterName: name }, bubbles: true, composed: true });\n this.host.dispatchEvent(customEvent);\n } else {\n // Otherwise, update the filter values with the current selection\n updatedFilters[name].filterValues = currentSelection.map(selection => selection.value);\n }\n\n // Update the component's filters\n this.currentFilters = updatedFilters;\n // Ensure table data is updated\n this.allRowData = this.applyAllFilters(this.originalRowData, this.currentFilters);\n this.updateTableView();\n }\n }\n\n @Watch('buttonRendererOptions')\n onButtonRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n @Watch('iconButtonRendererOptions')\n onIconButtonRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n @Watch('checkboxRendererOptions')\n onCheckboxRendererOptionsChanged() {\n this.colData = this.getColData();\n if (this.gridApi) {\n this.gridApi.setColumnDefs(this.colData);\n }\n }\n\n private parseArrayInput<T>(input: any): T[] {\n if (typeof input === 'string') {\n try {\n const parsed = JSON.parse(input);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n console.error('Failed to parse input:', input);\n return [];\n }\n }\n if (Array.isArray(input)) return input;\n if (typeof input === 'object' && input !== null) return [input as T];\n return [];\n }\n\n toggleSidebarFilters() {\n this.showSidebarFilters = !this.showSidebarFilters;\n }\n\n updateFilterOptions() {\n const options = {};\n for (let col of this.colData) {\n options[col.field] = [...new Set(this.rowData.map(row => row[col.field]))];\n }\n this.filterOptions = options;\n }\n\n private updateHeaderCheckboxState() {\n if (this.gridApi && this.enableSelection) {\n setTimeout(() => {\n const headerCheckbox = this.container?.querySelector('.ag-header-cell[col-id=\"__checkbox\"] ifx-checkbox') as any;\n if (headerCheckbox) {\n const allSelected = this.selectedRows.size === this.allRowData.length && this.allRowData.length > 0;\n const someSelected = this.selectedRows.size > 0 && this.selectedRows.size < this.allRowData.length;\n headerCheckbox.checked = allSelected;\n headerCheckbox.indeterminate = someSelected;\n }\n }, 0);\n }\n }\n\n handleSidebarFilterChange(event: CustomEvent) {\n const filterGroups = event.detail;\n const updatedFilters = {};\n\n filterGroups.forEach(filterGroup => {\n const filterName = filterGroup.filterGroupName;\n let filterValues;\n let type;\n\n if (filterGroup.selectedItems && filterGroup.selectedItems.length > 0) {\n filterValues = filterGroup.selectedItems.map(item => item.label);\n type = 'multi-select';\n } else if (filterGroup.value) {\n filterValues = [filterGroup.value];\n type = 'text';\n } else {\n filterValues = [];\n }\n\n if (!(filterValues.length === 0 || (filterValues.length === 1 && type === 'text' && filterValues[0] === ''))) {\n updatedFilters[filterName] = { filterValues, type };\n }\n });\n\n this.allRowData = this.applyAllFilters(this.originalRowData, updatedFilters);\n this.updateTableView();\n this.currentFilters = updatedFilters;\n }\n\n handleTopbarFilterChange(event: CustomEvent) {\n const filters = event.detail;\n\n // Start by resetting the filter conditions to a blank object\n this.currentFilters = {};\n\n // Loop through each filter group provided in the event detail\n filters.forEach(filter => {\n const filterName = filter.filterName;\n let filterValues;\n\n let type = filter.type;\n\n if (type === 'text') {\n // Search/Text filter\n filterValues = filter.filterValues;\n } else {\n // Multi-select/Single-Select\n filterValues = filter.filterValues.map(item => item.label);\n }\n\n // If there are no filter values, or the filter is a text filter with an empty value, remove the filter\n if (!(filterValues.length === 0 || (filterValues.length === 1 && type === 'text' && filterValues[0] === ''))) {\n // Add or update the filter in the currentFilters object\n this.currentFilters[filterName] = { filterValues, type };\n }\n });\n\n // Now that the currentFilters object has been updated, apply all filters to the data\n this.allRowData = this.applyAllFilters(this.originalRowData, this.currentFilters);\n\n // After filtering, update the table view with the new filtered data\n this.updateTableView();\n }\n\n applyAllFilters(data, filters) {\n return data.filter(row => {\n for (const filterName in filters) {\n const filterInfo = filters[filterName];\n let selectedValues = (filterInfo.filterValues || []).map(value => {\n if (typeof value === 'string') {\n return value.toLowerCase();\n } else if (typeof value === 'number' || typeof value === 'boolean') {\n return value.toString();\n }\n return '';\n });\n\n // For text filters, check if row values start with any of the selectedValues\n if (filterInfo.type === 'text') {\n let textFilterMatched = false;\n for (let property in row) {\n if (row.hasOwnProperty(property)) {\n let rowValue = row[property] != null ? String(row[property]).toLowerCase() : '';\n if (selectedValues.some(filterValue => rowValue.startsWith(filterValue))) {\n textFilterMatched = true;\n break;\n }\n }\n }\n if (!textFilterMatched) return false;\n }\n // For multi-select filters, this remains unchanged\n else if (filterInfo.type === 'multi-select') {\n let rowValue = row[filterName] != null ? String(row[filterName]).toLowerCase() : '';\n // Check if 'undefined' is a selected value and include rows with empty values in that case\n let includesUndefined = selectedValues.includes('undefined');\n if (!selectedValues.includes(rowValue) && !(includesUndefined && rowValue === '')) {\n return false;\n }\n }\n }\n return true;\n });\n }\n\n async updateTableView() {\n if (this.serverSidePagination && this.serverPageChangeHandler) {\n const { rows, total } = await this.serverPageChangeHandler({\n page: this.currentPage,\n pageSize: this.paginationPageSize,\n });\n\n if (this.enableSelection) {\n rows.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${(this.currentPage - 1) * this.paginationPageSize + index}_${Date.now()}`;\n }\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n\n this.rowData = rows;\n this.matchingResultsCount = total;\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', rows);\n }\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.setAttribute('total', total.toString());\n }\n } else {\n const startIndex = (this.currentPage - 1) * this.paginationPageSize;\n const endIndex = startIndex + this.paginationPageSize;\n const visibleRowData = this.allRowData.slice(startIndex, endIndex);\n\n if (this.enableSelection) {\n visibleRowData.forEach(row => {\n if (!row.__checkbox) {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n } else {\n row.__checkbox.checked = this.selectedRows?.has(row.__rowId) || false;\n }\n });\n }\n\n this.rowData = visibleRowData;\n this.matchingResultsCount = this.allRowData.length;\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n }\n }\n }\n\n clearAllFilters() {\n this.currentFilters = {};\n this.allRowData = [...this.originalRowData];\n }\n\n @Method()\n async onBtShowLoading() {\n this.gridApi.showLoadingOverlay();\n }\n\n setPaginationItemsPerPage() {\n const newItemsPerPage = this.paginationItemsPerPage;\n if (newItemsPerPage) {\n this.internalItemsPerPage = this.paginationItemsPerPage;\n const itemsPerPageArray = JSON.parse(this.internalItemsPerPage);\n\n const selectedOption = itemsPerPageArray.find(option => option.selected);\n if (selectedOption) {\n this.paginationPageSize = Number(selectedOption.value);\n } else if (itemsPerPageArray.length > 0) {\n this.paginationPageSize = Number(itemsPerPageArray[0].value);\n }\n }\n }\n\n componentWillLoad() {\n this.setPaginationItemsPerPage();\n\n this.uniqueKey = `unique-${Math.floor(Math.random() * 1000000)}`;\n this.rowData = this.getRowData();\n this.colData = this.getColData();\n this.updateFilterOptions();\n\n this.gridOptions = {\n suppressCellFocus: true,\n rowHeight: this.rowHeight === 'default' ? 40 : 32,\n headerHeight: 40,\n components: {\n checkboxCellRenderer: CheckboxCellRenderer,\n checkboxHeaderRenderer: CheckboxHeaderRenderer,\n customLoadingOverlay: CustomLoadingOverlay,\n customNoRowsOverlay: CustomNoRowsOverlay,\n },\n defaultColDef: {\n resizable: true,\n autoHeight: true,\n },\n suppressDragLeaveHidesColumns: true,\n enableCellTextSelection: true,\n onFirstDataRendered: this.onFirstDataRendered.bind(this),\n columnDefs: this.colData,\n rowData: this.rowData,\n loadingOverlayComponent: CustomLoadingOverlay,\n noRowsOverlayComponent: CustomNoRowsOverlay,\n noRowsOverlayComponentParams: {\n noRowsMessageFunc: () => '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.colData.some(col => col.dndSource === true) ? true : false,\n animateRows: this.colData.some(col => col.dndSource === true) ? true : false,\n navigateToNextCell: params => {\n return this.focusCellIfContainingButton(params.api, params.nextCellPosition);\n },\n tabToNextCell: params => {\n // Returning null is deprecated so we return false if the result is null (browser handles tab behavior).\n return this.focusCellIfContainingButton(params.api, params.nextCellPosition) ?? false;\n },\n };\n }\n\n focusCellIfContainingButton<T>(api: GridApi<T>, cellPosition: CellPosition): CellPosition | null {\n if (!cellPosition) {\n return null;\n }\n\n if (cellPosition.column.getColDef().field === 'button') {\n const rowNode = api.getDisplayedRowAtIndex(cellPosition.rowIndex);\n\n if (!rowNode) {\n // Row not yet rendered due to virtualization.\n return null;\n }\n\n const cellRenderers = api.getCellRendererInstances({\n rowNodes: [rowNode],\n columns: [cellPosition.column],\n });\n\n if (cellRenderers.length > 0) {\n const renderedContent = (cellRenderers[0] as ButtonCellRenderer)?.getGui();\n\n if (renderedContent) {\n const button = renderedContent.querySelector('ifx-button');\n\n if (button) {\n setTimeout(() => {\n // Just calling button.focus() will not work because the focus of <ifx-button> will not be\n // forwared to its child <a>-element (containing the tabindex attribute) due to shadow root.\n // We must therefore grab the <a>-element manually first and then call focus() on it.\n const focusableChild = button.shadowRoot?.querySelector<HTMLElement>('a[tabindex]');\n focusableChild?.focus();\n }, 0);\n }\n }\n }\n }\n\n return cellPosition;\n }\n\n async componentDidLoad() {\n if (this.container) {\n if (!isNestedInIfxComponent(this.host)) {\n const framework = detectFramework();\n trackComponent('ifx-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.colData);\n this.gridApi.setGridOption('rowData', this.rowData);\n\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.addEventListener('ifxPageChange', this.handlePageChange.bind(this));\n }\n }\n const sidebarFilterElements = this.host.querySelectorAll('ifx-filter-type-group');\n // Add an event listener to each SetFilter component\n sidebarFilterElements.forEach(sidebarFilterElement => {\n sidebarFilterElement.addEventListener('ifxSidebarFilterChange', this.handleSidebarFilterChange.bind(this));\n });\n const topbarFilterElements = this.host.querySelectorAll('ifx-filter-bar');\n // Add an event listener to each SetFilter component\n topbarFilterElements.forEach(topbarFilterElement => {\n topbarFilterElement.addEventListener('ifxTopbarFilterChange', this.handleTopbarFilterChange.bind(this));\n });\n }\n }\n this.updateTableView();\n }\n\n componentWillUnmount() {\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.removeEventListener('ifxPageChange', this.handlePageChange.bind(this));\n }\n }\n const sidebarFilters = this.host.shadowRoot.querySelectorAll('ifx-filter-type-group');\n // Remove the event listener from each SetFilter component\n sidebarFilters.forEach(sidebarFilter => {\n sidebarFilter.removeEventListener('ifxSidebarFilterChange', this.handleSidebarFilterChange.bind(this));\n });\n const topbarFilters = this.host.shadowRoot.querySelectorAll('ifx-filter-type-group');\n // Remove the event listener from each SetFilter component\n topbarFilters.forEach(topbarFilter => {\n topbarFilter.removeEventListener('ifxTopbarFilterChange', this.handleTopbarFilterChange.bind(this));\n });\n }\n\n async handlePageChange(event) {\n this.currentPage = event.detail.currentPage;\n\n if (this.serverSidePagination && this.serverPageChangeHandler) {\n const { rows, total } = await this.serverPageChangeHandler({\n page: this.currentPage,\n pageSize: this.paginationPageSize,\n });\n\n this.rowData = rows;\n this.matchingResultsCount = total;\n\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', this.rowData);\n }\n\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.setAttribute('total', total.toString());\n }\n } else {\n const startIndex = (this.currentPage - 1) * this.paginationPageSize;\n const endIndex = startIndex + this.paginationPageSize;\n const visibleRowData = this.allRowData.slice(startIndex, endIndex);\n if (this.gridApi) {\n this.gridApi.setGridOption('rowData', visibleRowData);\n }\n }\n }\n\n isJSONParseable(str) {\n try {\n JSON.parse(str);\n return true;\n } catch (e) {\n return false;\n }\n }\n\n handleSelectAll = (checked: boolean) => {\n this.selectAll = checked;\n if (checked) {\n this.selectedRows = new Set(this.allRowData.map(row => row.__rowId));\n } else {\n this.selectedRows = new Set();\n }\n this.updateCheckboxStates();\n this.updateHeaderCheckboxState();\n this.emitSelectionChange();\n };\n\n getRowData() {\n let rows: any[] = [];\n if (this.rows === undefined || this.rows === null) {\n return rows;\n }\n if (this.isJSONParseable(this.rows)) {\n rows = [...JSON.parse(this.rows)];\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 rows.forEach((row, index) => {\n if (!row.__rowId) {\n row.__rowId = `row_${index}_${Date.now()}_${Math.random()}`;\n }\n });\n\n if (this.enableSelection) {\n rows.forEach(row => {\n row.__checkbox = {\n disabled: false,\n checked: this.selectedRows?.has(row.__rowId) || false,\n size: 's',\n indeterminate: false,\n error: false,\n };\n });\n }\n this.allRowData = rows;\n this.originalRowData = [...rows];\n this.matchingResultsCount = this.allRowData.length;\n return rows.slice(0, this.paginationPageSize);\n }\n\n handleRowCheckboxClick = (params: any) => {\n const clickedRowData = params.data;\n const rowId = clickedRowData.__rowId;\n\n const newSelectedRows = new Set(this.selectedRows);\n if (newSelectedRows.has(rowId)) {\n newSelectedRows.delete(rowId);\n } else {\n newSelectedRows.add(rowId);\n }\n this.selectedRows = newSelectedRows;\n this.selectAll = newSelectedRows.size === this.allRowData.length;\n this.updateCheckboxStates();\n this.updateHeaderCheckboxState();\n this.emitSelectionChange();\n };\n\n private updateCheckboxStates() {\n this.allRowData.forEach(row => {\n if (row.__checkbox) {\n row.__checkbox.checked = this.selectedRows.has(row.__rowId);\n }\n });\n if (this.gridApi) {\n this.gridApi.refreshCells({\n columns: ['__checkbox'],\n force: true,\n });\n }\n }\n\n private emitSelectionChange() {\n const selectedRowsData = Array.from(this.selectedRows)\n .map(rowId => {\n const row = this.allRowData.find(r => r.__rowId === rowId);\n if (!row) return null;\n const { __checkbox, __rowId, ...rowData } = row;\n return rowData;\n })\n .filter(row => row !== null);\n\n this.host.dispatchEvent(\n new CustomEvent('ifxSelectionChange', {\n detail: {\n selectedRows: selectedRowsData,\n selectedCount: selectedRowsData.length,\n isSelectAll: this.selectedRows.size === this.allRowData.length && this.allRowData.length > 0,\n },\n bubbles: true,\n }),\n );\n }\n\n getColData() {\n let cols: any[] = [];\n if (this.cols === undefined || this.cols === null) return cols;\n if (this.isJSONParseable(this.cols)) {\n cols = [...JSON.parse(this.cols)];\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\n if (this.enableSelection) {\n const checkboxColumn = {\n headerName: '',\n field: '__checkbox',\n width: 50,\n pinned: 'left',\n cellRenderer: 'checkboxCellRenderer',\n cellRendererParams: {\n onCheckboxClick: this.handleRowCheckboxClick?.bind(this),\n },\n headerComponent: 'checkboxHeaderRenderer',\n headerComponentParams: {\n onSelectAll: this.handleSelectAll?.bind(this),\n },\n sortable: false,\n filter: false,\n resizable: false,\n valueFormatter: undefined,\n cellDataType: false,\n };\n cols.unshift(checkboxColumn);\n }\n\n cols.forEach(column => {\n const field = column.field?.toLowerCase() || '';\n // --- Button columns ---\n if (field.startsWith('button')) {\n column.cellRenderer = ButtonCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.buttonRendererOptions?.onButtonClick) {\n column.cellRendererParams = {\n onButtonClick: this.buttonRendererOptions.onButtonClick,\n };\n }\n }\n // --- Checkbox columns ---\n else if (field.startsWith('checkbox')) {\n column.cellRenderer = CheckboxCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.checkboxRendererOptions?.onCheckboxClick) {\n column.cellRendererParams = {\n onCheckboxClick: this.checkboxRendererOptions.onCheckboxClick,\n };\n }\n }\n // --- Icon Button columns ---\n else if (field.startsWith('iconbutton') || field === 'iconButton') {\n column.cellRenderer = IconButtonCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n if (this.iconButtonRendererOptions?.onIconButtonClick) {\n column.cellRendererParams = {\n onIconButtonClick: this.iconButtonRendererOptions.onIconButtonClick,\n };\n }\n }\n // --- Status columns ---\n else if (field.startsWith('status')) {\n column.cellRenderer = StatusCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n }\n // --- Link columns ---\n else if (field.startsWith('link')) {\n column.cellRenderer = LinkCellRenderer;\n column.valueFormatter = undefined;\n column.cellDataType = false;\n }\n });\n return cols;\n }\n\n onFirstDataRendered(params: FirstDataRenderedEvent) {\n params.api.sizeColumnsToFit();\n }\n\n handleResetButtonClick() {\n const resetEvent = new CustomEvent('ifxResetFiltersEvent', { bubbles: true, composed: true });\n window.dispatchEvent(resetEvent);\n\n this.clearAllFilters();\n this.updateTableView();\n }\n\n disconnectedCallback() {\n if (this.pagination) {\n const paginationElement = this.host.shadowRoot.querySelector('ifx-pagination');\n if (paginationElement) {\n paginationElement.removeEventListener('ifxPageChange', this.handlePageChange);\n }\n }\n\n const resetButton = this.host.shadowRoot.querySelector('#reset-filters-button');\n if (resetButton) {\n resetButton.removeEventListener('click', this.handleResetButtonClick.bind(this));\n }\n }\n\n getTableClassNames() {\n return classNames(this.tableHeight === 'auto' && 'table-wrapper ag-root-wrapper-body', 'table-wrapper');\n }\n\n render() {\n let style = {};\n if (this.tableHeight !== 'auto') {\n style = {\n height: this.tableHeight,\n };\n }\n\n const filterClass = this.filterOrientation === 'topbar' ? 'topbar-layout' : this.filterOrientation === 'none' ? '' : 'sidebar-layout';\n\n return (\n <Host>\n <div class=\"table-container\">\n {this.filterOrientation === 'sidebar' && (\n <div class=\"sidebar-btn\">\n <ifx-button\n type=\"button\"\n disabled={false}\n variant=\"secondary\"\n size=\"m\"\n target=\"_blank\"\n theme=\"default\"\n full-width=\"false\"\n onClick={() => this.toggleSidebarFilters()}\n >\n <ifx-icon icon=\"cross-16\"></ifx-icon>\n {this.showSidebarFilters ? 'Hide Filters' : 'Show Filters'}\n </ifx-button>\n </div>\n )}\n\n <div class={filterClass}>\n {this.filterOrientation === 'sidebar' && this.showSidebarFilters && (\n <div class=\"sidebar-container\">\n <div class=\"filters-title-container\">\n <span class=\"filters-title\">Filters</span>\n </div>\n <div class=\"set-filter-wrapper-sidebar\">{(this.filterOrientation !== 'sidebar' || this.showSidebarFilters) && <slot name=\"sidebar-filter\"></slot>}</div>\n </div>\n )}\n\n {this.filterOrientation !== 'none' && this.filterOrientation !== 'sidebar' && (\n <div class=\"set-filter-wrapper-topbar\">{(this.filterOrientation !== 'sidebar' || this.showSidebarFilters) && <slot name=\"topbar-filter\"></slot>}</div>\n )}\n\n <div class=\"table-pagination-wrapper\">\n {this.filterOrientation !== 'none' && this.filterOrientation !== 'topbar' && this.showSidebarFilters && (\n <div class=\"filter-chips\">\n {Object.keys(this.currentFilters).map(name => {\n const filter = this.currentFilters[name];\n const filterValues = filter.filterValues;\n const isMultiSelect = filter.type !== 'text';\n\n return filterValues.length > 0 ? (\n <ifx-chip placeholder={name} size=\"large\" variant={isMultiSelect ? 'multi' : 'single'} readOnly={true} value={filterValues} key={name}>\n {filterValues.map(filterValue => (\n <ifx-chip-item value={filterValue} selected={true} key={filterValue}>\n {filterValue}\n </ifx-chip-item>\n ))}\n </ifx-chip>\n ) : null;\n })}\n </div>\n )}\n\n <div class=\"headline-wrapper\">\n {this.filterOrientation !== 'none' && this.headline && (\n <div class=\"matching-results-container\">\n <span class=\"matching-results-count\">({this.matchingResultsCount})</span>\n <span class=\"matching-results-text\">{this.headline}</span>\n </div>\n )}\n\n <div class=\"inner-buttons-wrapper\">\n <slot name=\"inner-button\" />\n </div>\n </div>\n\n <div id=\"table-wrapper\" class={this.getTableClassNames()}>\n <div id={`ifxTable-${this.uniqueKey}`} class={`ifx-ag-grid ${this.variant === 'zebra' ? 'zebra' : ''}`} style={style} ref={el => (this.container = el)}></div>\n </div>\n <div class=\"pagination-wrapper\">\n {this.pagination ? (\n <ifx-pagination\n total={this.serverSidePagination ? this.matchingResultsCount : this.allRowData.length}\n current-page={this.currentPage}\n items-per-page={this.internalItemsPerPage}\n ></ifx-pagination>\n ) : null}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n\n hasButtonCol(): boolean {\n return this.getColData().some(column => column.field === 'button');\n }\n\n onDragOver(event) {\n var dragSupported = event.dataTransfer.length;\n\n if (dragSupported) {\n event.dataTransfer.dropEffect = 'move';\n }\n\n event.preventDefault();\n }\n\n onDrop(event) {\n var jsonData = event.dataTransfer.getData('application/json');\n\n var eJsonRow = document.createElement('div');\n eJsonRow.classList.add('json-row');\n eJsonRow.innerText = jsonData;\n\n var eJsonDisplay = document.querySelector('#eJsonDisplay');\n\n eJsonDisplay.appendChild(eJsonRow);\n event.preventDefault();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as i,c as e,h as t,a as o}from"./p-Bq-7EdcD.js";const s=":host{position:relative;z-index:1000}.dropdown-menu{display:none;visibility:hidden;flex-direction:column;width:224px;max-height:289px;min-width:224px;overflow-y:auto;background:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;padding:8px 4px;font-family:var(--ifx-font-family)}.dropdown-menu.small{max-height:266px;max-width:186px;overflow-y:auto}.dropdown-menu.hideTopPadding{padding-top:0px}.dropdown-menu.show{display:flex;visibility:visible}";const d=class{constructor(t){i(this,t);this.menuSize=e(this,"menuSize",7);this.ifxDropdownMenuItem=e(this,"ifxDropdownMenuItem",7);this.isOpen=false;this.size="l";this.hideTopPadding=false;this.filteredItems=[]}handleMenuFilter(i){const e=i.detail;this.filterDropdownItems(e)}handleDropdownItemValueEmission(i){this.ifxDropdownMenuItem.emit(i.detail)}filterDropdownItems(i){const e=Array.from(this.el.querySelectorAll("ifx-dropdown-item"));let t,o;let s=i.toUpperCase();for(let i=0;i<e.length;i++){t=e[i];o=t.textContent||t.innerText;if(o.toUpperCase().indexOf(s)>-1){t.setAttribute("hide",false)}else{t.setAttribute("hide",true)}}}componentWillUpdate(){this.menuSize.emit(this.size)}componentWillLoad(){this.filteredItems=Array.from(this.el.querySelectorAll("ifx-dropdown-item"));const i=this.el.querySelector("ifx-search-field");const e=this.el.querySelector("ifx-dropdown-header");if(i||e){this.hideTopPadding=true}else this.hideTopPadding=false}render(){return t("div",{key:"e4d2067883d6a787f4b8d718af8ff98b3815ee04",class:`dropdown-menu \n ${this.isOpen?"show":""} \n ${this.hideTopPadding?"hideTopPadding":""}\n ${this.size==="s"?"small":""}`},t("slot",{key:"290c409805d04ea7f96f5c7516d150222867da6b"}))}get el(){return o(this)}};d.style=s;export{d as ifx_dropdown_menu};
2
- //# sourceMappingURL=p-eabddf02.entry.js.map
1
+ import{r as i,c as e,h as t,a as o}from"./p-PqnYwNKt.js";const s=":host{position:relative;z-index:1000}.dropdown-menu{display:none;visibility:hidden;flex-direction:column;width:224px;max-height:289px;min-width:224px;overflow-y:auto;background:#FFFFFF;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1019607843);border:1px solid #EEEDED;padding:8px 4px;font-family:var(--ifx-font-family)}.dropdown-menu.small{max-height:266px;max-width:186px;overflow-y:auto}.dropdown-menu.hideTopPadding{padding-top:0px}.dropdown-menu.show{display:flex;visibility:visible}";const d=class{constructor(t){i(this,t);this.menuSize=e(this,"menuSize",7);this.ifxDropdownMenuItem=e(this,"ifxDropdownMenuItem",7);this.isOpen=false;this.size="l";this.hideTopPadding=false;this.filteredItems=[]}handleMenuFilter(i){const e=i.detail;this.filterDropdownItems(e)}handleDropdownItemValueEmission(i){this.ifxDropdownMenuItem.emit(i.detail)}filterDropdownItems(i){const e=Array.from(this.el.querySelectorAll("ifx-dropdown-item"));let t,o;let s=i.toUpperCase();for(let i=0;i<e.length;i++){t=e[i];o=t.textContent||t.innerText;if(o.toUpperCase().indexOf(s)>-1){t.setAttribute("hide",false)}else{t.setAttribute("hide",true)}}}componentWillUpdate(){this.menuSize.emit(this.size)}componentWillLoad(){this.filteredItems=Array.from(this.el.querySelectorAll("ifx-dropdown-item"));const i=this.el.querySelector("ifx-search-field");const e=this.el.querySelector("ifx-dropdown-header");if(i||e){this.hideTopPadding=true}else this.hideTopPadding=false}render(){return t("div",{key:"e4d2067883d6a787f4b8d718af8ff98b3815ee04",class:`dropdown-menu \n ${this.isOpen?"show":""} \n ${this.hideTopPadding?"hideTopPadding":""}\n ${this.size==="s"?"small":""}`},t("slot",{key:"290c409805d04ea7f96f5c7516d150222867da6b"}))}get el(){return o(this)}};d.style=s;export{d as ifx_dropdown_menu};
2
+ //# sourceMappingURL=p-b7672947.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["dropdownMenuCss","DropdownMenu","constructor","hostRef","this","isOpen","size","hideTopPadding","filteredItems","handleMenuFilter","event","searchValue","detail","filterDropdownItems","handleDropdownItemValueEmission","ifxDropdownMenuItem","emit","allItems","Array","from","el","querySelectorAll","dropdownItem","txtValue","query","toUpperCase","i","length","textContent","innerText","indexOf","setAttribute","componentWillUpdate","menuSize","componentWillLoad","searchField","querySelector","dropdownHeader","render","h","key","class"],"sources":["src/components/dropdown/dropdown-menu/dropdown-menu.scss?tag=ifx-dropdown-menu&encapsulation=shadow","src/components/dropdown/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n position: relative;\n z-index: 1000;\n}\n\n.dropdown-menu {\n display: none;\n visibility: hidden;\n flex-direction: column;\n width: 224px;\n max-height: 289px;\n min-width: 224px;\n overflow-y: auto;\n background: tokens.$ifxColorBaseWhite;\n box-shadow: 0px 6px 9px 0px #1d1d1d1a;\n border: 1px solid tokens.$ifxColorEngineering200;\n padding: 8px 4px;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n &.small {\n max-height: 266px;\n max-width: 186px;\n overflow-y: auto;\n }\n\n &.hideTopPadding {\n padding-top: 0px;\n }\n}\n\n.dropdown-menu.show {\n display: flex;\n visibility: visible;\n}","import { Component, h, Prop, Element, State, Event, EventEmitter, Listen } from \"@stencil/core\";\n\n@Component({\n tag: 'ifx-dropdown-menu',\n styleUrl: 'dropdown-menu.scss',\n shadow: true\n})\n\nexport class DropdownMenu {\n @Prop() isOpen: boolean = false;\n @Prop() size: string = 'l'\n @State() hideTopPadding: boolean = false;\n @Element() el;\n\n @Event() menuSize: EventEmitter;\n @State() filteredItems: HTMLIfxDropdownItemElement[] = [];\n @Event() ifxDropdownMenuItem: EventEmitter<CustomEvent>;\n\n @Listen('ifxInput')\n handleMenuFilter(event: CustomEvent) {\n const searchValue = event.detail;\n this.filterDropdownItems(searchValue)\n }\n\n @Listen('ifxDropdownItem')\n handleDropdownItemValueEmission(event: CustomEvent) {\n this.ifxDropdownMenuItem.emit(event.detail)\n }\n\n filterDropdownItems(searchValue: string) {\n const allItems = Array.from(this.el.querySelectorAll('ifx-dropdown-item'));\n let dropdownItem, txtValue;\n let query = searchValue.toUpperCase()\n\n for (let i = 0; i < allItems.length; i++) {\n dropdownItem = allItems[i];\n txtValue = dropdownItem.textContent || dropdownItem.innerText;\n\n if (txtValue.toUpperCase().indexOf(query) > -1) {\n dropdownItem.setAttribute('hide', false)\n } else {\n dropdownItem.setAttribute('hide', true)\n }\n }\n }\n\n componentWillUpdate() {\n this.menuSize.emit(this.size)\n }\n\n componentWillLoad() {\n this.filteredItems = Array.from(this.el.querySelectorAll('ifx-dropdown-item')) as HTMLIfxDropdownItemElement[];\n const searchField = this.el.querySelector('ifx-search-field')\n const dropdownHeader = this.el.querySelector('ifx-dropdown-header')\n\n if (searchField || dropdownHeader) {\n this.hideTopPadding = true;\n } else this.hideTopPadding = false;\n }\n\n\n render() {\n return (\n <div class={`dropdown-menu \n ${this.isOpen ? 'show' : ''} \n ${this.hideTopPadding ? 'hideTopPadding' : \"\"}\n ${this.size === 's' ? 'small' : \"\"}`\n } >\n <slot />\n </div >\n );\n }\n}"],"mappings":"yDAAA,MAAMA,EAAkB,0e,MCQXC,EAAY,MANzB,WAAAC,CAAAC,G,sGAOUC,KAAMC,OAAY,MAClBD,KAAIE,KAAW,IACdF,KAAcG,eAAY,MAI1BH,KAAaI,cAAiC,EAyDxD,CArDC,gBAAAC,CAAiBC,GACf,MAAMC,EAAcD,EAAME,OAC1BR,KAAKS,oBAAoBF,E,CAI3B,+BAAAG,CAAgCJ,GAC9BN,KAAKW,oBAAoBC,KAAKN,EAAME,O,CAGtC,mBAAAC,CAAoBF,GAClB,MAAMM,EAAWC,MAAMC,KAAKf,KAAKgB,GAAGC,iBAAiB,sBACrD,IAAIC,EAAcC,EAClB,IAAIC,EAAQb,EAAYc,cAExB,IAAK,IAAIC,EAAI,EAAGA,EAAIT,EAASU,OAAQD,IAAK,CACxCJ,EAAeL,EAASS,GACxBH,EAAWD,EAAaM,aAAeN,EAAaO,UAEpD,GAAIN,EAASE,cAAcK,QAAQN,IAAS,EAAI,CAC9CF,EAAaS,aAAa,OAAQ,M,KAC7B,CACLT,EAAaS,aAAa,OAAQ,K,GAKxC,mBAAAC,GACE5B,KAAK6B,SAASjB,KAAKZ,KAAKE,K,CAG1B,iBAAA4B,GACE9B,KAAKI,cAAgBU,MAAMC,KAAKf,KAAKgB,GAAGC,iBAAiB,sBACzD,MAAMc,EAAc/B,KAAKgB,GAAGgB,cAAc,oBAC1C,MAAMC,EAAiBjC,KAAKgB,GAAGgB,cAAc,uBAE7C,GAAID,GAAeE,EAAgB,CACjCjC,KAAKG,eAAiB,I,MACjBH,KAAKG,eAAiB,K,CAI/B,MAAA+B,GACE,OACEC,EAAK,OAAAC,IAAA,2CAAAC,MAAO,yBACVrC,KAAKC,OAAS,OAAS,cACvBD,KAAKG,eAAiB,iBAAmB,aACzCH,KAAKE,OAAS,IAAM,QAAU,MAE9BiC,EAAQ,QAAAC,IAAA,6C","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as e,c as t,h as o,d as i,a as n}from"./p-Bq-7EdcD.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-a4fb097a.entry.js.map
1
+ import{r as e,c as t,h as o,d as i,a as n}from"./p-PqnYwNKt.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-bd8c6834.entry.js.map
@@ -0,0 +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,2 +1,2 @@
1
- import{r as t,c as i,h as s}from"./p-Bq-7EdcD.js";const o=".card-image{width:100%;height:100%;vertical-align:bottom;object-fit:cover}";const c=class{constructor(s){t(this,s);this.imgPosition=i(this,"imgPosition",7)}handlePosition(t){this.imgPosition.emit(t)}componentWillLoad(){this.handlePosition(this.position)}componentDidUpdate(){this.handlePosition(this.position)}render(){return s("img",{key:"74204d35691d617c897b876c6efee1b9a6722f64",src:this.src,alt:this.alt,class:"card-image"})}};c.style=o;export{c as ifx_card_image};
2
- //# sourceMappingURL=p-e0f467af.entry.js.map
1
+ import{r as t,c as i,h as s}from"./p-PqnYwNKt.js";const o=".card-image{width:100%;height:100%;vertical-align:bottom;object-fit:cover}";const e=class{constructor(s){t(this,s);this.imgPosition=i(this,"imgPosition",7)}handlePosition(t){this.imgPosition.emit(t)}componentWillLoad(){this.handlePosition(this.position)}componentDidUpdate(){this.handlePosition(this.position)}render(){return s("img",{key:"74204d35691d617c897b876c6efee1b9a6722f64",src:this.src,alt:this.alt,class:"card-image"})}};e.style=o;export{e as ifx_card_image};
2
+ //# sourceMappingURL=p-beaba918.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cardImageCss","CardImage","handlePosition","position","this","imgPosition","emit","componentWillLoad","componentDidUpdate","render","h","key","src","alt","class"],"sources":["src/components/card/card-image/card-image.scss?tag=ifx-card-image&encapsulation=shadow","src/components/card/card-image/card-image.tsx"],"sourcesContent":[".card-image {\n width: 100%;\n height: 100%;\n vertical-align: bottom;\n object-fit: cover;\n}","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'ifx-card-image',\n styleUrl: 'card-image.scss',\n shadow: true,\n})\n\nexport class CardImage {\n @Prop() src: string;\n @Prop() alt: string;\n @Prop() position: string;\n @Event() imgPosition: EventEmitter;\n\n handlePosition(position) {\n this.imgPosition.emit(position)\n }\n\n componentWillLoad() {\n this.handlePosition(this.position)\n }\n\n componentDidUpdate() {\n this.handlePosition(this.position)\n }\n\n render() {\n return (\n <img src={this.src} alt={this.alt} class=\"card-image\" />\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAe,6E,MCQRC,EAAS,M,kEAMpB,cAAAC,CAAeC,GACbC,KAAKC,YAAYC,KAAKH,E,CAGxB,iBAAAI,GACEH,KAAKF,eAAeE,KAAKD,S,CAG3B,kBAAAK,GACEJ,KAAKF,eAAeE,KAAKD,S,CAG3B,MAAAM,GACE,OACEC,EAAK,OAAAC,IAAA,2CAAAC,IAAKR,KAAKQ,IAAKC,IAAKT,KAAKS,IAAKC,MAAM,c","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as e,c as t,h as i,a}from"./p-Bq-7EdcD.js";const r=".sidebar-filter-search-wrapper{display:flex;padding:12px 16px 16px 16px;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;font-family:var(--ifx-font-family);background:#EEEDED}.topbar-filter-search-wrapper{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;font-family:var(--ifx-font-family)}.topbar-filter-search-wrapper ifx-search-field{width:100%;}.filter-name{font-size:1rem;line-height:1.5rem;font-weight:600}";const s=class{constructor(i){e(this,i);this.ifxFilterSearchChange=t(this,"ifxFilterSearchChange",7);this.disabled=false;this.showDeleteIcon=false;this.filterOrientation="sidebar"}valueChanged(e){this.host.setAttribute("value",e.toString())}handleFilterSearchChange(e){const t=this.host.parentElement.querySelector(`ifx-filter-search[filter-name="${this.filterName}"]`);if(t&&t!==this.host){throw new Error(`A search filter with the name '${this.filterName}' already exists.`)}this.filterValue=e.detail;this.showDeleteIcon=this.filterValue!=="";this.ifxFilterSearchChange.emit({filterName:this.filterName,filterValue:this.filterValue,filterKey:this.filterKey})}render(){return i("div",{key:"19979b3514737df346d309c9080cd42d010aee50",class:`${this.filterOrientation==="sidebar"?"sidebar-filter-search-wrapper":"topbar-filter-search-wrapper"}`},i("div",{key:"6f266b247fb3cc57030f9afe9c59ea7afbf05b6b",class:"filter-name"},this.filterName),i("ifx-search-field",{key:"b252531ff2f2754dea952637ce01f9c2f095f92f",placeholder:this.placeholder,"show-delete-icon":this.showDeleteIcon,disabled:this.disabled,value:this.filterValue}))}get host(){return a(this)}static get watchers(){return{value:["valueChanged"]}}};s.style=r;export{s as ifx_filter_search};
2
- //# sourceMappingURL=p-9ed4711b.entry.js.map
1
+ import{r as e,c as t,h as i,a}from"./p-PqnYwNKt.js";const r=".sidebar-filter-search-wrapper{display:flex;padding:12px 16px 16px 16px;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;font-family:var(--ifx-font-family);background:#EEEDED}.topbar-filter-search-wrapper{display:flex;flex-direction:column;align-items:flex-start;align-self:stretch;gap:4px;font-family:var(--ifx-font-family)}.topbar-filter-search-wrapper ifx-search-field{width:100%;}.filter-name{font-size:1rem;line-height:1.5rem;font-weight:600}";const s=class{constructor(i){e(this,i);this.ifxFilterSearchChange=t(this,"ifxFilterSearchChange",7);this.disabled=false;this.showDeleteIcon=false;this.filterOrientation="sidebar"}valueChanged(e){this.host.setAttribute("value",e.toString())}handleFilterSearchChange(e){const t=this.host.parentElement.querySelector(`ifx-filter-search[filter-name="${this.filterName}"]`);if(t&&t!==this.host){throw new Error(`A search filter with the name '${this.filterName}' already exists.`)}this.filterValue=e.detail;this.showDeleteIcon=this.filterValue!=="";this.ifxFilterSearchChange.emit({filterName:this.filterName,filterValue:this.filterValue,filterKey:this.filterKey})}render(){return i("div",{key:"19979b3514737df346d309c9080cd42d010aee50",class:`${this.filterOrientation==="sidebar"?"sidebar-filter-search-wrapper":"topbar-filter-search-wrapper"}`},i("div",{key:"6f266b247fb3cc57030f9afe9c59ea7afbf05b6b",class:"filter-name"},this.filterName),i("ifx-search-field",{key:"b252531ff2f2754dea952637ce01f9c2f095f92f",placeholder:this.placeholder,"show-delete-icon":this.showDeleteIcon,disabled:this.disabled,value:this.filterValue}))}get host(){return a(this)}static get watchers(){return{value:["valueChanged"]}}};s.style=r;export{s as ifx_filter_search};
2
+ //# sourceMappingURL=p-c578a728.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["filterSearchCss","FilterSearch","constructor","hostRef","this","disabled","showDeleteIcon","filterOrientation","valueChanged","newValue","host","setAttribute","toString","handleFilterSearchChange","event","existingFilter","parentElement","querySelector","filterName","Error","filterValue","detail","ifxFilterSearchChange","emit","filterKey","render","h","key","class","placeholder","value"],"sources":["src/components/table-advanced-version/filter-type-group/filter-search/filter-search.scss?tag=ifx-filter-search&encapsulation=shadow","src/components/table-advanced-version/filter-type-group/filter-search/filter-search.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n\n\n.sidebar-filter-search-wrapper {\n display: flex;\n padding: tokens.$ifxSpace150 tokens.$ifxSpace200 tokens.$ifxSpace200 tokens.$ifxSpace200;\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n gap: tokens.$ifxSpace50;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n background: tokens.$ifxColorEngineering200;\n}\n\n.topbar-filter-search-wrapper {\n display:flex;\n flex-direction: column;\n align-items: flex-start;\n align-self: stretch;\n gap: tokens.$ifxSpace50;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n}\n\n.topbar-filter-search-wrapper ifx-search-field {\n width: 100%; /* Ensure ifx-search-field takes up full width */\n}\n\n.filter-name {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-weight: 600;\n}","import { Component, h, Listen, Watch, Element, Event, EventEmitter, Prop, State } from '@stencil/core';\n\n@Component({\n tag: 'ifx-filter-search',\n styleUrl: 'filter-search.scss',\n shadow: true,\n})\nexport class FilterSearch {\n @Element() host: HTMLElement;\n @Prop() filterName: string;\n @Prop() disabled: boolean = false;\n @Prop({ mutable: true }) filterValue: string;\n @Prop() filterKey: string;\n @State() showDeleteIcon: boolean = false;\n @Prop() filterOrientation: string = 'sidebar'; //topbar\n @Prop() placeholder: string;\n\n @Event() ifxFilterSearchChange: EventEmitter;\n\n @Watch('value')\n valueChanged(newValue: boolean) {\n this.host.setAttribute('value', newValue.toString());\n }\n\n @Listen('ifxInput')\n handleFilterSearchChange(event: CustomEvent) {\n // Check if a search filter with the same filterName already exists\n const existingFilter = this.host.parentElement.querySelector(`ifx-filter-search[filter-name=\"${this.filterName}\"]`);\n if (existingFilter && existingFilter !== this.host) {\n throw new Error(`A search filter with the name '${this.filterName}' already exists.`);\n }\n\n // // Check if the filterName is 'search' and the filter is not the search component\n // if (this.filterName === 'search' && this.filterKey !== 'text') {\n // throw new Error(\"The filter name 'search' is reserved for the search component.\");\n // }\n\n this.filterValue = event.detail;\n this.showDeleteIcon = this.filterValue !== \"\";\n this.ifxFilterSearchChange.emit({ filterName: this.filterName, filterValue: this.filterValue, filterKey: this.filterKey }); // Emitting filterKey along with other properties\n }\n\n\n render() {\n return (\n <div class={`${\n this.filterOrientation === 'sidebar' ? 'sidebar-filter-search-wrapper' : 'topbar-filter-search-wrapper'\n }`}>\n <div class=\"filter-name\">{this.filterName}</div>\n <ifx-search-field placeholder={this.placeholder} show-delete-icon={this.showDeleteIcon} disabled={this.disabled} value={this.filterValue}>\n </ifx-search-field>\n </div>\n );\n }\n}\n\n"],"mappings":"oDAAA,MAAMA,EAAkB,yd,MCOXC,EAAY,MALzB,WAAAC,CAAAC,G,uEAQUC,KAAQC,SAAY,MAGnBD,KAAcE,eAAY,MAC3BF,KAAAG,kBAA4B,SAwCrC,CAlCC,YAAAC,CAAaC,GACXL,KAAKM,KAAKC,aAAa,QAASF,EAASG,W,CAI3C,wBAAAC,CAAyBC,GAEvB,MAAMC,EAAiBX,KAAKM,KAAKM,cAAcC,cAAc,kCAAkCb,KAAKc,gBACpG,GAAIH,GAAkBA,IAAmBX,KAAKM,KAAM,CAClD,MAAM,IAAIS,MAAM,kCAAkCf,KAAKc,8B,CAQzDd,KAAKgB,YAAcN,EAAMO,OACzBjB,KAAKE,eAAiBF,KAAKgB,cAAgB,GAC3ChB,KAAKkB,sBAAsBC,KAAK,CAAEL,WAAYd,KAAKc,WAAYE,YAAahB,KAAKgB,YAAaI,UAAWpB,KAAKoB,W,CAIhH,MAAAC,GACE,OACEC,EAAK,OAAAC,IAAA,2CAAAC,MAAO,GACZxB,KAAKG,oBAAsB,UAAY,gCAAkC,kCAEzEmB,EAAA,OAAAC,IAAA,2CAAKC,MAAM,eAAexB,KAAKc,YAC/BQ,EAAkB,oBAAAC,IAAA,2CAAAE,YAAazB,KAAKyB,YAAW,mBAAoBzB,KAAKE,eAAgBD,SAAUD,KAAKC,SAAUyB,MAAO1B,KAAKgB,c","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{r as i,c as s,h as t,a as h}from"./p-Bq-7EdcD.js";import{d as e,t as o}from"./p-DcmcuUOA.js";import{i as a}from"./p-Bw2fh5LT.js";import{c as n}from"./p-BfP9ezJQ.js";const r=":host{display:inline-block}";const c=class{constructor(t){i(this,t);this.ifxOpen=s(this,"ifxOpen",7);this.ifxClose=s(this,"ifxClose",7);this.ifxDropdown=s(this,"ifxDropdown",7);this.placement="bottom-start";this.defaultOpen=false;this.internalIsOpen=false;this.noAppendToBody=false;this.noCloseOnOutsideClick=false;this.noCloseOnMenuClick=false;this.handleTriggerClick=()=>{if(!this.internalIsOpen)this.openDropdown();else this.closeDropdown()};this.handleTriggerKeyDown=i=>{const s=i.key;if(s==="Tab"&&this.internalIsOpen&&!i.shiftKey){i.preventDefault();this.focusFirstItem()}};this.handleMenuClick=()=>{if(!this.noCloseOnMenuClick)this.closeDropdown()};this.handleMenuKeyDown=i=>{var s,t,h;const e=this.getItemFocusables();if(!e.length)return;const o=e.indexOf(document.activeElement);switch(i.key){case"ArrowDown":i.preventDefault();e[(o+1)%e.length].focus();break;case"ArrowUp":i.preventDefault();e[(o-1+e.length)%e.length].focus();break;case"Home":i.preventDefault();e[0].focus();break;case"End":i.preventDefault();e[e.length-1].focus();break;case"Enter":case" ":case"Spacebar":i.preventDefault();(s=document.activeElement)===null||s===void 0?void 0:s.click();break;case"Escape":i.preventDefault();this.closeDropdown();(t=this.trigger)===null||t===void 0?void 0:t.focus();break;case"Tab":if(i.shiftKey&&o===0){i.preventDefault();this.closeDropdown();(h=this.trigger)===null||h===void 0?void 0:h.focus()}break}}}handleOutsideClick(i){const s=i.target;if(!this.noCloseOnOutsideClick&&!this.el.contains(s)&&!this.menu.contains(s)){this.closeDropdown()}}handleFocusOutside(i){const s=i.target;if(this.internalIsOpen&&!this.el.contains(s)&&!this.menu.contains(s)){this.closeDropdown()}}getItemFocusables(){if(!this.menu)return[];const i=Array.from(this.menu.querySelectorAll("ifx-dropdown-item"));return i.filter((i=>!(i.getAttribute("hide")==="true"||i.classList.contains("hide")))).map((i=>{var s;return(s=i.shadowRoot)===null||s===void 0?void 0:s.querySelector("a")})).filter((i=>!!i))}componentWillLoad(){this.updateSlotContent();this.watchHandlerIsOpen(this.defaultOpen,this.internalIsOpen)}async componentDidLoad(){if(!a(this.el)){const i=e();o("ifx-dropdown",await i)}}watchHandlerIsOpen(i,s){if(i!==s&&i!==this.internalIsOpen){if(i){this.openDropdown()}else{this.closeDropdown()}}}watchHandlerDisabled(i){if(this.trigger){this.trigger.disabled=i}}watchHandlerSlot(){this.updateSlotContent()}focusFirstItem(){const[i]=this.getItemFocusables();i===null||i===void 0?void 0:i.focus()}updateSlotContent(){const i=this.el.querySelector("ifx-dropdown-trigger-button, ifx-dropdown-trigger");if(i!==this.trigger){if(this.trigger){this.trigger.removeEventListener("click",this.handleTriggerClick);this.trigger.removeEventListener("keydown",this.handleTriggerKeyDown)}this.trigger=i;if(this.trigger){this.trigger.disabled=this.disabled;this.trigger.addEventListener("click",this.handleTriggerClick);this.trigger.addEventListener("keydown",this.handleTriggerKeyDown)}}const s=this.el.querySelector("ifx-dropdown-menu");if(!this.noAppendToBody){if(this.menu&&this.menu!==s){this.menu.removeEventListener("click",this.handleMenuClick);this.menu.removeEventListener("keydown",this.handleMenuKeyDown);this.menu.remove()}this.menu=s;if(this.menu&&!document.body.contains(this.menu)){document.body.append(this.menu)}}else{this.menu=s}if(this.menu){this.menu.removeEventListener("click",this.handleMenuClick);this.menu.removeEventListener("keydown",this.handleMenuKeyDown);this.menu.addEventListener("click",this.handleMenuClick);this.menu.addEventListener("keydown",this.handleMenuKeyDown)}}menuClickHandler(){if(!this.noCloseOnMenuClick){this.closeDropdown()}}disconnectedCallback(){if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}if(this.menu){this.menu.remove()}}async isOpen(){return this.internalIsOpen}async closeDropdown(){if(this.internalIsOpen){this.internalIsOpen=false;this.trigger.isOpen=false;this.menu.isOpen=false;this.ifxClose.emit()}if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}async openDropdown(){if(!this.internalIsOpen&&!this.disabled){this.internalIsOpen=true;this.trigger.isOpen=true;this.menu.isOpen=true;this.popperInstance=n(this.el,this.menu,{placement:this.placement});this.ifxOpen.emit()}}render(){return t("div",{key:"98fae8a111b3e91b8a4f2690e0dd462d1c6c4791","aria-label":"dropdown menu",class:"dropdown"},t("slot",{key:"f491cae9545a2d18342efa9f2fb29412d580f643"}))}get el(){return h(this)}static get watchers(){return{defaultOpen:["watchHandlerIsOpen"],disabled:["watchHandlerDisabled"]}}};c.style=r;export{c as ifx_dropdown};
2
- //# sourceMappingURL=p-4770ef94.entry.js.map
1
+ import{r as i,c as s,h as t,a as h}from"./p-PqnYwNKt.js";import{d as e,t as o}from"./p-DcmcuUOA.js";import{i as a}from"./p-Bw2fh5LT.js";import{c as n}from"./p-BfP9ezJQ.js";const r=":host{display:inline-block}";const c=class{constructor(t){i(this,t);this.ifxOpen=s(this,"ifxOpen",7);this.ifxClose=s(this,"ifxClose",7);this.ifxDropdown=s(this,"ifxDropdown",7);this.placement="bottom-start";this.defaultOpen=false;this.internalIsOpen=false;this.noAppendToBody=false;this.noCloseOnOutsideClick=false;this.noCloseOnMenuClick=false;this.handleTriggerClick=()=>{if(!this.internalIsOpen)this.openDropdown();else this.closeDropdown()};this.handleTriggerKeyDown=i=>{const s=i.key;if(s==="Tab"&&this.internalIsOpen&&!i.shiftKey){i.preventDefault();this.focusFirstItem()}};this.handleMenuClick=()=>{if(!this.noCloseOnMenuClick)this.closeDropdown()};this.handleMenuKeyDown=i=>{var s,t,h;const e=this.getItemFocusables();if(!e.length)return;const o=e.indexOf(document.activeElement);switch(i.key){case"ArrowDown":i.preventDefault();e[(o+1)%e.length].focus();break;case"ArrowUp":i.preventDefault();e[(o-1+e.length)%e.length].focus();break;case"Home":i.preventDefault();e[0].focus();break;case"End":i.preventDefault();e[e.length-1].focus();break;case"Enter":case" ":case"Spacebar":i.preventDefault();(s=document.activeElement)===null||s===void 0?void 0:s.click();break;case"Escape":i.preventDefault();this.closeDropdown();(t=this.trigger)===null||t===void 0?void 0:t.focus();break;case"Tab":if(i.shiftKey&&o===0){i.preventDefault();this.closeDropdown();(h=this.trigger)===null||h===void 0?void 0:h.focus()}break}}}handleOutsideClick(i){const s=i.target;if(!this.noCloseOnOutsideClick&&!this.el.contains(s)&&!this.menu.contains(s)){this.closeDropdown()}}handleFocusOutside(i){const s=i.target;if(this.internalIsOpen&&!this.el.contains(s)&&!this.menu.contains(s)){this.closeDropdown()}}getItemFocusables(){if(!this.menu)return[];const i=Array.from(this.menu.querySelectorAll("ifx-dropdown-item"));return i.filter((i=>!(i.getAttribute("hide")==="true"||i.classList.contains("hide")))).map((i=>{var s;return(s=i.shadowRoot)===null||s===void 0?void 0:s.querySelector("a")})).filter((i=>!!i))}componentWillLoad(){this.updateSlotContent();this.watchHandlerIsOpen(this.defaultOpen,this.internalIsOpen)}async componentDidLoad(){if(!a(this.el)){const i=e();o("ifx-dropdown",await i)}}watchHandlerIsOpen(i,s){if(i!==s&&i!==this.internalIsOpen){if(i){this.openDropdown()}else{this.closeDropdown()}}}watchHandlerDisabled(i){if(this.trigger){this.trigger.disabled=i}}watchHandlerSlot(){this.updateSlotContent()}focusFirstItem(){const[i]=this.getItemFocusables();i===null||i===void 0?void 0:i.focus()}updateSlotContent(){const i=this.el.querySelector("ifx-dropdown-trigger-button, ifx-dropdown-trigger");if(i!==this.trigger){if(this.trigger){this.trigger.removeEventListener("click",this.handleTriggerClick);this.trigger.removeEventListener("keydown",this.handleTriggerKeyDown)}this.trigger=i;if(this.trigger){this.trigger.disabled=this.disabled;this.trigger.addEventListener("click",this.handleTriggerClick);this.trigger.addEventListener("keydown",this.handleTriggerKeyDown)}}const s=this.el.querySelector("ifx-dropdown-menu");if(!this.noAppendToBody){if(this.menu&&this.menu!==s){this.menu.removeEventListener("click",this.handleMenuClick);this.menu.removeEventListener("keydown",this.handleMenuKeyDown);this.menu.remove()}this.menu=s;if(this.menu&&!document.body.contains(this.menu)){document.body.append(this.menu)}}else{this.menu=s}if(this.menu){this.menu.removeEventListener("click",this.handleMenuClick);this.menu.removeEventListener("keydown",this.handleMenuKeyDown);this.menu.addEventListener("click",this.handleMenuClick);this.menu.addEventListener("keydown",this.handleMenuKeyDown)}}menuClickHandler(){if(!this.noCloseOnMenuClick){this.closeDropdown()}}disconnectedCallback(){if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}if(this.menu){this.menu.remove()}}async isOpen(){return this.internalIsOpen}async closeDropdown(){if(this.internalIsOpen){this.internalIsOpen=false;this.trigger.isOpen=false;this.menu.isOpen=false;this.ifxClose.emit()}if(this.popperInstance){this.popperInstance.destroy();this.popperInstance=null}}async openDropdown(){if(!this.internalIsOpen&&!this.disabled){this.internalIsOpen=true;this.trigger.isOpen=true;this.menu.isOpen=true;this.popperInstance=n(this.el,this.menu,{placement:this.placement});this.ifxOpen.emit()}}render(){return t("div",{key:"98fae8a111b3e91b8a4f2690e0dd462d1c6c4791","aria-label":"dropdown menu",class:"dropdown"},t("slot",{key:"f491cae9545a2d18342efa9f2fb29412d580f643"}))}get el(){return h(this)}static get watchers(){return{defaultOpen:["watchHandlerIsOpen"],disabled:["watchHandlerDisabled"]}}};c.style=r;export{c as ifx_dropdown};
2
+ //# sourceMappingURL=p-c6826c1e.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["dropdownCss","Dropdown","constructor","hostRef","this","placement","defaultOpen","internalIsOpen","noAppendToBody","noCloseOnOutsideClick","noCloseOnMenuClick","handleTriggerClick","openDropdown","closeDropdown","handleTriggerKeyDown","e","key","shiftKey","preventDefault","focusFirstItem","handleMenuClick","handleMenuKeyDown","items","getItemFocusables","length","i","indexOf","document","activeElement","focus","_a","click","_b","trigger","_c","handleOutsideClick","event","target","el","contains","menu","handleFocusOutside","hosts","Array","from","querySelectorAll","filter","h","getAttribute","classList","map","shadowRoot","querySelector","componentWillLoad","updateSlotContent","watchHandlerIsOpen","componentDidLoad","isNestedInIfxComponent","framework","detectFramework","trackComponent","newValue","oldValue","watchHandlerDisabled","disabled","watchHandlerSlot","first","newTrigger","removeEventListener","addEventListener","newMenu","remove","body","append","menuClickHandler","disconnectedCallback","popperInstance","destroy","isOpen","ifxClose","emit","createPopper","ifxOpen","render","class"],"sources":["src/components/dropdown/dropdown.scss?tag=ifx-dropdown&encapsulation=shadow","src/components/dropdown/dropdown.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: inline-block;\n}","import { Component, Prop, h, Element, Listen, Method, Watch, State, EventEmitter, Event } from \"@stencil/core\";\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\nimport { createPopper } from '@popperjs/core';\n \n\nimport { IOpenable } from './IOpenable';\n\nexport type Placement =\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end';\n\n@Component({\n tag: 'ifx-dropdown',\n styleUrl: 'dropdown.scss',\n shadow: true\n})\n\nexport class Dropdown {\n @Prop() placement: Placement = 'bottom-start';\n @Prop() defaultOpen: boolean = false;\n @State() internalIsOpen: boolean = false;\n @Prop() noAppendToBody: boolean = false;\n @Event() ifxOpen: EventEmitter;\n @Event() ifxClose: EventEmitter;\n @Event() ifxDropdown: EventEmitter;\n @Prop() disabled: boolean;\n @Prop() noCloseOnOutsideClick: boolean = false;\n @Prop() noCloseOnMenuClick: boolean = false;\n @Element() el;\n @State() trigger: HTMLElement;\n @State() menu: HTMLElement\n // Popper instance for positioning\n popperInstance: any;\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n if (!this.noCloseOnOutsideClick && !this.el.contains(target) && !this.menu.contains(target)) {\n this.closeDropdown();\n }\n }\n\n @Listen('focusin', { target: 'document' })\n handleFocusOutside(event: FocusEvent) {\n const target = event.target as HTMLElement;\n if (\n this.internalIsOpen &&\n !this.el.contains(target) &&\n !this.menu.contains(target)\n ) {\n this.closeDropdown();\n }\n }\n\n private handleTriggerClick = () => {\n if (!this.internalIsOpen) this.openDropdown();\n else this.closeDropdown();\n };\n\n private handleTriggerKeyDown = (e: KeyboardEvent) => {\n const key = e.key;\n if (key === 'Tab' && this.internalIsOpen && !e.shiftKey) {\n e.preventDefault();\n this.focusFirstItem();\n }\n };\n\n private handleMenuClick = () => {\n if (!this.noCloseOnMenuClick) this.closeDropdown();\n};\n\n\nprivate getItemFocusables(): HTMLElement[] {\n if (!this.menu) return [];\n const hosts = Array.from(this.menu.querySelectorAll('ifx-dropdown-item')) as HTMLElement[];\n return hosts\n .filter(h => !(h.getAttribute('hide') === 'true' || h.classList.contains('hide')))\n .map(h => h.shadowRoot?.querySelector('a') as HTMLElement | null)\n .filter((el): el is HTMLElement => !!el);\n}\n\nprivate handleMenuKeyDown = (e: KeyboardEvent) => {\n const items = this.getItemFocusables();\n if (!items.length) return;\n\n const i = items.indexOf(document.activeElement as HTMLElement);\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n items[(i + 1) % items.length].focus();\n break;\n case 'ArrowUp':\n e.preventDefault();\n items[(i - 1 + items.length) % items.length].focus();\n break;\n case 'Home':\n e.preventDefault();\n items[0].focus();\n break;\n case 'End':\n e.preventDefault();\n items[items.length - 1].focus();\n break;\n case 'Enter':\n case ' ':\n case 'Spacebar':\n e.preventDefault();\n (document.activeElement as HTMLElement)?.click();\n break;\n case 'Escape':\n e.preventDefault();\n this.closeDropdown();\n (this.trigger as HTMLElement)?.focus();\n break;\n case 'Tab':\n if (e.shiftKey && i === 0) {\n e.preventDefault();\n this.closeDropdown();\n (this.trigger as HTMLElement)?.focus();\n }\n break;\n }\n};\n\n componentWillLoad() {\n //maybe not needed\n this.updateSlotContent();\n this.watchHandlerIsOpen(this.defaultOpen, this.internalIsOpen);\n }\n\n async componentDidLoad() { \n if(!isNestedInIfxComponent(this.el)) { \n const framework = detectFramework();\n trackComponent('ifx-dropdown', await framework)\n }\n }\n\n @Watch('defaultOpen')\n watchHandlerIsOpen(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue && newValue !== this.internalIsOpen) {\n if (newValue) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n }\n\n @Watch('disabled')\n watchHandlerDisabled(newValue: boolean) {\n if (this.trigger) {\n (this.trigger as undefined as HTMLIfxDropdownTriggerButtonElement).disabled = newValue;\n }\n }\n\n @Listen('slotchange')\n watchHandlerSlot() {\n this.updateSlotContent();\n }\n\nprivate focusFirstItem() {\n const [first] = this.getItemFocusables();\n first?.focus();\n}\n\n\n updateSlotContent() {\n const newTrigger = this.el.querySelector('ifx-dropdown-trigger-button, ifx-dropdown-trigger') as HTMLElement | null;\n\n if (newTrigger !== this.trigger) {\n if (this.trigger) {\n this.trigger.removeEventListener('click', this.handleTriggerClick);\n this.trigger.removeEventListener('keydown', this.handleTriggerKeyDown);\n }\n this.trigger = newTrigger!;\n if (this.trigger) {\n (this.trigger as any).disabled = this.disabled;\n this.trigger.addEventListener('click', this.handleTriggerClick);\n this.trigger.addEventListener('keydown', this.handleTriggerKeyDown);\n }\n }\n\n const newMenu = this.el.querySelector('ifx-dropdown-menu') as HTMLElement | null;\n\n if (!this.noAppendToBody) {\n if (this.menu && this.menu !== newMenu) {\n this.menu.removeEventListener('click', this.handleMenuClick);\n this.menu.removeEventListener('keydown', this.handleMenuKeyDown);\n this.menu.remove();\n }\n this.menu = newMenu!;\n if (this.menu && !document.body.contains(this.menu)) {\n document.body.append(this.menu);\n }\n } else {\n this.menu = newMenu!;\n }\n\n if (this.menu) {\n this.menu.removeEventListener('click', this.handleMenuClick);\n this.menu.removeEventListener('keydown', this.handleMenuKeyDown);\n this.menu.addEventListener('click', this.handleMenuClick);\n this.menu.addEventListener('keydown', this.handleMenuKeyDown);\n }\n }\n\n menuClickHandler() {\n if (!this.noCloseOnMenuClick) {\n this.closeDropdown();\n }\n }\n\n disconnectedCallback() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n\n if (this.menu) {\n this.menu.remove();\n }\n }\n\n @Method()\n async isOpen() {\n return this.internalIsOpen;\n }\n\n @Method()\n async closeDropdown() {\n if (this.internalIsOpen) {\n this.internalIsOpen = false;\n \n (this.trigger as unknown as IOpenable).isOpen = false;\n (this.menu as unknown as IOpenable).isOpen = false;\n \n this.ifxClose.emit();\n }\n \n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n @Method()\n async openDropdown() {\n if (!this.internalIsOpen && !this.disabled) {\n this.internalIsOpen = true;\n (this.trigger as any).isOpen = true;\n (this.menu as any).isOpen = true;\n this.popperInstance = createPopper(this.el, this.menu, { placement: this.placement });\n this.ifxOpen.emit();\n }\n }\n\n render() {\n return (\n <div aria-label='dropdown menu' class='dropdown'>\n <slot />\n </div>\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}