@infineon/infineon-design-system-stencil 35.4.3--canary.1904.8657c5c6c65b2559e0e95772a2affef4166bfc47.0 → 35.4.3--canary.1904.cfa215d4ba9be3aaa74d7093d79587edcf983018.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 (577) hide show
  1. package/dist/cjs/dom-utils-6428b7fc.js +20 -0
  2. package/dist/cjs/dom-utils-6428b7fc.js.map +1 -0
  3. package/dist/cjs/ifx-accordion_2.cjs.entry.js +5 -2
  4. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-alert_2.cjs.entry.js +5 -1
  6. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ifx-badge.cjs.entry.js +6 -2
  8. package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-basic-table.cjs.entry.js +5 -2
  10. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +5 -2
  12. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-button.cjs.entry.js +5 -2
  14. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-card.cjs.entry.js +7 -4
  16. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +5 -2
  18. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-checkbox.cjs.entry.js +7 -4
  20. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-chip_3.cjs.entry.js +16 -11
  22. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-content-switcher.cjs.entry.js +5 -2
  24. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-date-picker.cjs.entry.js +8 -3
  26. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-dropdown.cjs.entry.js +5 -2
  28. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ifx-file-upload.cjs.entry.js +6 -3
  30. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ifx-footer.cjs.entry.js +8 -5
  32. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-icon-button.cjs.entry.js +5 -2
  34. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ifx-icon.cjs.entry.js +6 -2
  36. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ifx-indicator.cjs.entry.js +6 -3
  38. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ifx-link.cjs.entry.js +6 -2
  40. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ifx-modal.cjs.entry.js +6 -3
  42. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-multiselect.cjs.entry.js +4 -1
  44. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ifx-notification.cjs.entry.js +7 -3
  46. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ifx-progress-bar.cjs.entry.js +6 -2
  48. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +5 -2
  50. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ifx-radio-button.cjs.entry.js +6 -3
  52. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ifx-search-bar.cjs.entry.js +5 -2
  54. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ifx-search-field.cjs.entry.js +6 -2
  56. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ifx-segmented-control.cjs.entry.js +6 -3
  58. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ifx-select.cjs.entry.js +6 -3
  60. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ifx-slider.cjs.entry.js +6 -3
  62. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ifx-spinner_2.cjs.entry.js +14 -8
  64. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-status.cjs.entry.js +6 -2
  66. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-stepper.cjs.entry.js +6 -3
  68. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-switch.cjs.entry.js +5 -2
  70. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-table.cjs.entry.js +6 -3
  72. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ifx-tabs.cjs.entry.js +6 -3
  74. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ifx-tag.cjs.entry.js +6 -2
  76. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-textarea.cjs.entry.js +5 -2
  78. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-tooltip.cjs.entry.js +8 -5
  80. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-tree-view.cjs.entry.js +6 -2
  82. package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -1
  83. package/dist/collection/components/accordion/accordion.js +5 -3
  84. package/dist/collection/components/accordion/accordion.js.map +1 -1
  85. package/dist/collection/components/alert/alert.js +5 -1
  86. package/dist/collection/components/alert/alert.js.map +1 -1
  87. package/dist/collection/components/badge/badge.js +6 -2
  88. package/dist/collection/components/badge/badge.js.map +1 -1
  89. package/dist/collection/components/breadcrumb/breadcrumb.js +5 -2
  90. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  91. package/dist/collection/components/button/button.js +5 -2
  92. package/dist/collection/components/button/button.js.map +1 -1
  93. package/dist/collection/components/card/card.js +7 -4
  94. package/dist/collection/components/card/card.js.map +1 -1
  95. package/dist/collection/components/checkbox/checkbox.js +7 -4
  96. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  97. package/dist/collection/components/checkbox-group/checkbox-group.js +5 -2
  98. package/dist/collection/components/checkbox-group/checkbox-group.js.map +1 -1
  99. package/dist/collection/components/chip/chip.js +12 -9
  100. package/dist/collection/components/chip/chip.js.map +1 -1
  101. package/dist/collection/components/content-switcher/content-switcher.js +5 -2
  102. package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
  103. package/dist/collection/components/date-picker/date-picker.js +8 -3
  104. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  105. package/dist/collection/components/dropdown/dropdown.js +5 -2
  106. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  107. package/dist/collection/components/file-upload/file-upload.js +6 -3
  108. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  109. package/dist/collection/components/footer/footer.js +8 -5
  110. package/dist/collection/components/footer/footer.js.map +1 -1
  111. package/dist/collection/components/icon/infineonIconStencil.js +6 -2
  112. package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
  113. package/dist/collection/components/icon-button/icon-button.js +5 -2
  114. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  115. package/dist/collection/components/indicator/indicator.js +6 -3
  116. package/dist/collection/components/indicator/indicator.js.map +1 -1
  117. package/dist/collection/components/link/link.js +6 -2
  118. package/dist/collection/components/link/link.js.map +1 -1
  119. package/dist/collection/components/modal/modal.js +6 -3
  120. package/dist/collection/components/modal/modal.js.map +1 -1
  121. package/dist/collection/components/notification/notification.js +7 -3
  122. package/dist/collection/components/notification/notification.js.map +1 -1
  123. package/dist/collection/components/pagination/pagination.js +5 -2
  124. package/dist/collection/components/pagination/pagination.js.map +1 -1
  125. package/dist/collection/components/progress-bar/progress-bar.js +6 -2
  126. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  127. package/dist/collection/components/radio-button/radio-button.js +6 -3
  128. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  129. package/dist/collection/components/radio-button-group/radio-button-group.js +5 -2
  130. package/dist/collection/components/radio-button-group/radio-button-group.js.map +1 -1
  131. package/dist/collection/components/search-bar/search-bar.js +5 -2
  132. package/dist/collection/components/search-bar/search-bar.js.map +1 -1
  133. package/dist/collection/components/search-field/search-field.js +6 -2
  134. package/dist/collection/components/search-field/search-field.js.map +1 -1
  135. package/dist/collection/components/segmented-control/segmented-control.js +6 -3
  136. package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
  137. package/dist/collection/components/select/multi-select/multiselect.js +4 -1
  138. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  139. package/dist/collection/components/select/single-select/select.js +6 -3
  140. package/dist/collection/components/select/single-select/select.js.map +1 -1
  141. package/dist/collection/components/slider/slider.js +6 -3
  142. package/dist/collection/components/slider/slider.js.map +1 -1
  143. package/dist/collection/components/spinner/spinner.js +7 -3
  144. package/dist/collection/components/spinner/spinner.js.map +1 -1
  145. package/dist/collection/components/status/status.js +6 -2
  146. package/dist/collection/components/status/status.js.map +1 -1
  147. package/dist/collection/components/stepper/stepper.js +6 -3
  148. package/dist/collection/components/stepper/stepper.js.map +1 -1
  149. package/dist/collection/components/switch/switch.js +5 -2
  150. package/dist/collection/components/switch/switch.js.map +1 -1
  151. package/dist/collection/components/table-advanced-version/table.js +6 -3
  152. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  153. package/dist/collection/components/table-basic-version/table.js +5 -2
  154. package/dist/collection/components/table-basic-version/table.js.map +1 -1
  155. package/dist/collection/components/tabs/tabs.js +6 -3
  156. package/dist/collection/components/tabs/tabs.js.map +1 -1
  157. package/dist/collection/components/tag/tag.js +6 -2
  158. package/dist/collection/components/tag/tag.js.map +1 -1
  159. package/dist/collection/components/text-field/text-field.js +8 -5
  160. package/dist/collection/components/text-field/text-field.js.map +1 -1
  161. package/dist/collection/components/textarea/textarea.js +5 -2
  162. package/dist/collection/components/textarea/textarea.js.map +1 -1
  163. package/dist/collection/components/tooltip/tooltip.js +8 -5
  164. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  165. package/dist/collection/components/tree-view/tree-view.js +6 -2
  166. package/dist/collection/components/tree-view/tree-view.js.map +1 -1
  167. package/dist/collection/global/utils/dom-utils.js +15 -0
  168. package/dist/collection/global/utils/dom-utils.js.map +1 -0
  169. package/dist/components/ifx-accordion-item.js +1 -1
  170. package/dist/components/ifx-accordion.js +1 -1
  171. package/dist/components/ifx-alert.js +1 -1
  172. package/dist/components/ifx-badge.js +6 -2
  173. package/dist/components/ifx-badge.js.map +1 -1
  174. package/dist/components/ifx-basic-table.js +5 -2
  175. package/dist/components/ifx-basic-table.js.map +1 -1
  176. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  177. package/dist/components/ifx-breadcrumb.js +5 -2
  178. package/dist/components/ifx-breadcrumb.js.map +1 -1
  179. package/dist/components/ifx-button.js +1 -1
  180. package/dist/components/ifx-card.js +7 -4
  181. package/dist/components/ifx-card.js.map +1 -1
  182. package/dist/components/ifx-checkbox-group.js +6 -3
  183. package/dist/components/ifx-checkbox-group.js.map +1 -1
  184. package/dist/components/ifx-checkbox.js +1 -1
  185. package/dist/components/ifx-chip-item.js +1 -1
  186. package/dist/components/ifx-chip.js +1 -1
  187. package/dist/components/ifx-content-switcher.js +5 -2
  188. package/dist/components/ifx-content-switcher.js.map +1 -1
  189. package/dist/components/ifx-date-picker.js +9 -4
  190. package/dist/components/ifx-date-picker.js.map +1 -1
  191. package/dist/components/ifx-download.js +1 -1
  192. package/dist/components/ifx-dropdown-item.js +1 -1
  193. package/dist/components/ifx-dropdown-trigger-button.js +2 -2
  194. package/dist/components/ifx-dropdown.js +5 -2
  195. package/dist/components/ifx-dropdown.js.map +1 -1
  196. package/dist/components/ifx-faq.js +3 -3
  197. package/dist/components/ifx-file-upload.js +10 -7
  198. package/dist/components/ifx-file-upload.js.map +1 -1
  199. package/dist/components/ifx-filter-accordion.js +2 -2
  200. package/dist/components/ifx-filter-bar.js +2 -2
  201. package/dist/components/ifx-filter-search.js +2 -2
  202. package/dist/components/ifx-footer.js +8 -5
  203. package/dist/components/ifx-footer.js.map +1 -1
  204. package/dist/components/ifx-icon-button.js +1 -1
  205. package/dist/components/ifx-icon.js +1 -1
  206. package/dist/components/ifx-icons-preview.js +4 -4
  207. package/dist/components/ifx-indicator.js +1 -1
  208. package/dist/components/ifx-link.js +1 -1
  209. package/dist/components/ifx-list-entry.js +3 -3
  210. package/dist/components/ifx-list.js +2 -2
  211. package/dist/components/ifx-modal.js +8 -5
  212. package/dist/components/ifx-modal.js.map +1 -1
  213. package/dist/components/ifx-multiselect.js +1 -1
  214. package/dist/components/ifx-navbar-item.js +2 -2
  215. package/dist/components/ifx-navbar.js +1 -1
  216. package/dist/components/ifx-notification.js +1 -1
  217. package/dist/components/ifx-overview-table.js +3 -3
  218. package/dist/components/ifx-pagination.js +1 -1
  219. package/dist/components/ifx-progress-bar.js +1 -1
  220. package/dist/components/ifx-radio-button-group.js +6 -3
  221. package/dist/components/ifx-radio-button-group.js.map +1 -1
  222. package/dist/components/ifx-radio-button.js +1 -1
  223. package/dist/components/ifx-search-bar.js +7 -4
  224. package/dist/components/ifx-search-bar.js.map +1 -1
  225. package/dist/components/ifx-search-field.js +1 -1
  226. package/dist/components/ifx-segment.js +1 -1
  227. package/dist/components/ifx-segmented-control.js +7 -4
  228. package/dist/components/ifx-segmented-control.js.map +1 -1
  229. package/dist/components/ifx-select.js +1 -1
  230. package/dist/components/ifx-set-filter.js +5 -5
  231. package/dist/components/ifx-sidebar-item.js +2 -2
  232. package/dist/components/ifx-slider.js +7 -4
  233. package/dist/components/ifx-slider.js.map +1 -1
  234. package/dist/components/ifx-spinner.js +1 -1
  235. package/dist/components/ifx-status.js +6 -2
  236. package/dist/components/ifx-status.js.map +1 -1
  237. package/dist/components/ifx-step.js +1 -1
  238. package/dist/components/ifx-stepper.js +6 -3
  239. package/dist/components/ifx-stepper.js.map +1 -1
  240. package/dist/components/ifx-switch.js +5 -2
  241. package/dist/components/ifx-switch.js.map +1 -1
  242. package/dist/components/ifx-table.js +15 -12
  243. package/dist/components/ifx-table.js.map +1 -1
  244. package/dist/components/ifx-tabs.js +7 -4
  245. package/dist/components/ifx-tabs.js.map +1 -1
  246. package/dist/components/ifx-tag.js +7 -3
  247. package/dist/components/ifx-tag.js.map +1 -1
  248. package/dist/components/ifx-template.js +1 -1
  249. package/dist/components/ifx-templates-ui.js +8 -8
  250. package/dist/components/ifx-text-field.js +1 -1
  251. package/dist/components/ifx-textarea.js +5 -2
  252. package/dist/components/ifx-textarea.js.map +1 -1
  253. package/dist/components/ifx-tooltip.js +9 -6
  254. package/dist/components/ifx-tooltip.js.map +1 -1
  255. package/dist/components/ifx-tree-view-item.js +2 -2
  256. package/dist/components/ifx-tree-view.js +6 -2
  257. package/dist/components/ifx-tree-view.js.map +1 -1
  258. package/dist/components/{p-f0d66c29.js → p-06d65f7f.js} +10 -7
  259. package/dist/components/p-06d65f7f.js.map +1 -0
  260. package/dist/components/{p-e160456e.js → p-095fe089.js} +7 -3
  261. package/dist/components/p-095fe089.js.map +1 -0
  262. package/dist/components/{p-e10320d8.js → p-11f73aa8.js} +7 -4
  263. package/dist/components/p-11f73aa8.js.map +1 -0
  264. package/dist/components/{p-fc0e442f.js → p-15733194.js} +3 -3
  265. package/dist/components/{p-fc0e442f.js.map → p-15733194.js.map} +1 -1
  266. package/dist/components/{p-f94be895.js → p-18cb44c1.js} +7 -4
  267. package/dist/components/p-18cb44c1.js.map +1 -0
  268. package/dist/components/{p-206cca4c.js → p-2537eaf4.js} +8 -4
  269. package/dist/components/p-2537eaf4.js.map +1 -0
  270. package/dist/components/{p-ac35091f.js → p-2ab1960f.js} +7 -3
  271. package/dist/components/p-2ab1960f.js.map +1 -0
  272. package/dist/components/{p-83a8f960.js → p-5b74932c.js} +8 -5
  273. package/dist/components/p-5b74932c.js.map +1 -0
  274. package/dist/components/{p-a068fe64.js → p-869e8cfa.js} +7 -3
  275. package/dist/components/p-869e8cfa.js.map +1 -0
  276. package/dist/components/{p-8d078774.js → p-88300d0a.js} +6 -3
  277. package/dist/components/p-88300d0a.js.map +1 -0
  278. package/dist/components/{p-d593f6d2.js → p-93610755.js} +7 -3
  279. package/dist/components/p-93610755.js.map +1 -0
  280. package/dist/components/{p-78fc7f65.js → p-98a1a1bb.js} +10 -6
  281. package/dist/components/p-98a1a1bb.js.map +1 -0
  282. package/dist/components/p-a22c9102.js +18 -0
  283. package/dist/components/p-a22c9102.js.map +1 -0
  284. package/dist/components/{p-cda8eae3.js → p-afc1e484.js} +9 -6
  285. package/dist/components/p-afc1e484.js.map +1 -0
  286. package/dist/components/{p-0f321b2c.js → p-b684c707.js} +15 -12
  287. package/dist/components/p-b684c707.js.map +1 -0
  288. package/dist/components/{p-87513b98.js → p-bd8ef20c.js} +7 -4
  289. package/dist/components/p-bd8ef20c.js.map +1 -0
  290. package/dist/components/{p-a9ad5c02.js → p-c552672c.js} +2 -2
  291. package/dist/components/{p-a9ad5c02.js.map → p-c552672c.js.map} +1 -1
  292. package/dist/components/{p-b0bb3c89.js → p-c7aa770d.js} +7 -4
  293. package/dist/components/p-c7aa770d.js.map +1 -0
  294. package/dist/components/{p-62a0b59e.js → p-c9ba8fd6.js} +6 -3
  295. package/dist/components/p-c9ba8fd6.js.map +1 -0
  296. package/dist/components/{p-10e2cc5b.js → p-cc1b75d2.js} +6 -6
  297. package/dist/components/{p-10e2cc5b.js.map → p-cc1b75d2.js.map} +1 -1
  298. package/dist/components/{p-4c6715e5.js → p-fcb7cd87.js} +8 -4
  299. package/dist/components/p-fcb7cd87.js.map +1 -0
  300. package/dist/components/{p-0d4738b9.js → p-fce8d48f.js} +9 -6
  301. package/dist/components/p-fce8d48f.js.map +1 -0
  302. package/dist/esm/dom-utils-693bd28d.js +18 -0
  303. package/dist/esm/dom-utils-693bd28d.js.map +1 -0
  304. package/dist/esm/ifx-accordion_2.entry.js +5 -2
  305. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  306. package/dist/esm/ifx-alert_2.entry.js +5 -1
  307. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  308. package/dist/esm/ifx-badge.entry.js +7 -3
  309. package/dist/esm/ifx-badge.entry.js.map +1 -1
  310. package/dist/esm/ifx-basic-table.entry.js +5 -2
  311. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  312. package/dist/esm/ifx-breadcrumb.entry.js +5 -2
  313. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  314. package/dist/esm/ifx-button.entry.js +5 -2
  315. package/dist/esm/ifx-button.entry.js.map +1 -1
  316. package/dist/esm/ifx-card.entry.js +7 -4
  317. package/dist/esm/ifx-card.entry.js.map +1 -1
  318. package/dist/esm/ifx-checkbox-group.entry.js +5 -2
  319. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  320. package/dist/esm/ifx-checkbox.entry.js +7 -4
  321. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  322. package/dist/esm/ifx-chip_3.entry.js +16 -11
  323. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  324. package/dist/esm/ifx-content-switcher.entry.js +5 -2
  325. package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
  326. package/dist/esm/ifx-date-picker.entry.js +8 -3
  327. package/dist/esm/ifx-date-picker.entry.js.map +1 -1
  328. package/dist/esm/ifx-dropdown.entry.js +5 -2
  329. package/dist/esm/ifx-dropdown.entry.js.map +1 -1
  330. package/dist/esm/ifx-file-upload.entry.js +6 -3
  331. package/dist/esm/ifx-file-upload.entry.js.map +1 -1
  332. package/dist/esm/ifx-footer.entry.js +8 -5
  333. package/dist/esm/ifx-footer.entry.js.map +1 -1
  334. package/dist/esm/ifx-icon-button.entry.js +5 -2
  335. package/dist/esm/ifx-icon-button.entry.js.map +1 -1
  336. package/dist/esm/ifx-icon.entry.js +7 -3
  337. package/dist/esm/ifx-icon.entry.js.map +1 -1
  338. package/dist/esm/ifx-indicator.entry.js +6 -3
  339. package/dist/esm/ifx-indicator.entry.js.map +1 -1
  340. package/dist/esm/ifx-link.entry.js +7 -3
  341. package/dist/esm/ifx-link.entry.js.map +1 -1
  342. package/dist/esm/ifx-modal.entry.js +6 -3
  343. package/dist/esm/ifx-modal.entry.js.map +1 -1
  344. package/dist/esm/ifx-multiselect.entry.js +4 -1
  345. package/dist/esm/ifx-multiselect.entry.js.map +1 -1
  346. package/dist/esm/ifx-notification.entry.js +8 -4
  347. package/dist/esm/ifx-notification.entry.js.map +1 -1
  348. package/dist/esm/ifx-progress-bar.entry.js +7 -3
  349. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  350. package/dist/esm/ifx-radio-button-group.entry.js +5 -2
  351. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  352. package/dist/esm/ifx-radio-button.entry.js +6 -3
  353. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  354. package/dist/esm/ifx-search-bar.entry.js +5 -2
  355. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  356. package/dist/esm/ifx-search-field.entry.js +7 -3
  357. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  358. package/dist/esm/ifx-segmented-control.entry.js +6 -3
  359. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  360. package/dist/esm/ifx-select.entry.js +6 -3
  361. package/dist/esm/ifx-select.entry.js.map +1 -1
  362. package/dist/esm/ifx-slider.entry.js +6 -3
  363. package/dist/esm/ifx-slider.entry.js.map +1 -1
  364. package/dist/esm/ifx-spinner_2.entry.js +15 -9
  365. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  366. package/dist/esm/ifx-status.entry.js +7 -3
  367. package/dist/esm/ifx-status.entry.js.map +1 -1
  368. package/dist/esm/ifx-stepper.entry.js +6 -3
  369. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  370. package/dist/esm/ifx-switch.entry.js +5 -2
  371. package/dist/esm/ifx-switch.entry.js.map +1 -1
  372. package/dist/esm/ifx-table.entry.js +6 -3
  373. package/dist/esm/ifx-table.entry.js.map +1 -1
  374. package/dist/esm/ifx-tabs.entry.js +6 -3
  375. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  376. package/dist/esm/ifx-tag.entry.js +7 -3
  377. package/dist/esm/ifx-tag.entry.js.map +1 -1
  378. package/dist/esm/ifx-textarea.entry.js +5 -2
  379. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  380. package/dist/esm/ifx-tooltip.entry.js +8 -5
  381. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  382. package/dist/esm/ifx-tree-view.entry.js +7 -3
  383. package/dist/esm/ifx-tree-view.entry.js.map +1 -1
  384. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  385. package/dist/infineon-design-system-stencil/p-0e01ddde.entry.js +2 -0
  386. package/dist/infineon-design-system-stencil/p-0e01ddde.entry.js.map +1 -0
  387. package/dist/infineon-design-system-stencil/p-1645e1cf.entry.js +2 -0
  388. package/dist/infineon-design-system-stencil/p-1645e1cf.entry.js.map +1 -0
  389. package/dist/infineon-design-system-stencil/p-177536a0.entry.js +2 -0
  390. package/dist/infineon-design-system-stencil/p-177536a0.entry.js.map +1 -0
  391. package/dist/infineon-design-system-stencil/p-1957235f.entry.js +2 -0
  392. package/dist/infineon-design-system-stencil/p-1957235f.entry.js.map +1 -0
  393. package/dist/infineon-design-system-stencil/p-1afe40e3.entry.js +2 -0
  394. package/dist/infineon-design-system-stencil/p-1afe40e3.entry.js.map +1 -0
  395. package/dist/infineon-design-system-stencil/p-1f356638.entry.js +2 -0
  396. package/dist/infineon-design-system-stencil/p-1f356638.entry.js.map +1 -0
  397. package/dist/infineon-design-system-stencil/p-1fd8eba9.entry.js +2 -0
  398. package/dist/infineon-design-system-stencil/p-1fd8eba9.entry.js.map +1 -0
  399. package/dist/infineon-design-system-stencil/p-232f959f.entry.js +2 -0
  400. package/dist/infineon-design-system-stencil/p-232f959f.entry.js.map +1 -0
  401. package/dist/infineon-design-system-stencil/p-313d3b95.entry.js +2 -0
  402. package/dist/infineon-design-system-stencil/p-313d3b95.entry.js.map +1 -0
  403. package/dist/infineon-design-system-stencil/p-326e17c6.entry.js +2 -0
  404. package/dist/infineon-design-system-stencil/p-326e17c6.entry.js.map +1 -0
  405. package/dist/infineon-design-system-stencil/p-35ec0810.entry.js +2 -0
  406. package/dist/infineon-design-system-stencil/p-35ec0810.entry.js.map +1 -0
  407. package/dist/infineon-design-system-stencil/p-3abd7673.entry.js +2 -0
  408. package/dist/infineon-design-system-stencil/p-3abd7673.entry.js.map +1 -0
  409. package/dist/infineon-design-system-stencil/p-41edd9c3.entry.js +2 -0
  410. package/dist/infineon-design-system-stencil/p-41edd9c3.entry.js.map +1 -0
  411. package/dist/infineon-design-system-stencil/p-48933066.entry.js +2 -0
  412. package/dist/infineon-design-system-stencil/p-48933066.entry.js.map +1 -0
  413. package/dist/infineon-design-system-stencil/p-4c9a1fea.entry.js +2 -0
  414. package/dist/infineon-design-system-stencil/p-4c9a1fea.entry.js.map +1 -0
  415. package/dist/infineon-design-system-stencil/p-557661dc.entry.js +2 -0
  416. package/dist/infineon-design-system-stencil/p-557661dc.entry.js.map +1 -0
  417. package/dist/infineon-design-system-stencil/{p-bd243655.entry.js → p-6e5f542a.entry.js} +3 -3
  418. package/dist/infineon-design-system-stencil/p-6e5f542a.entry.js.map +1 -0
  419. package/dist/infineon-design-system-stencil/p-72d9d2a5.entry.js +2 -0
  420. package/dist/infineon-design-system-stencil/p-72d9d2a5.entry.js.map +1 -0
  421. package/dist/infineon-design-system-stencil/p-75533910.entry.js +2 -0
  422. package/dist/infineon-design-system-stencil/p-75533910.entry.js.map +1 -0
  423. package/dist/infineon-design-system-stencil/p-772c93a7.entry.js +2 -0
  424. package/dist/infineon-design-system-stencil/p-772c93a7.entry.js.map +1 -0
  425. package/dist/infineon-design-system-stencil/p-802aa0a0.entry.js +2 -0
  426. package/dist/infineon-design-system-stencil/p-802aa0a0.entry.js.map +1 -0
  427. package/dist/infineon-design-system-stencil/p-81050f2a.entry.js +2 -0
  428. package/dist/infineon-design-system-stencil/p-81050f2a.entry.js.map +1 -0
  429. package/dist/infineon-design-system-stencil/p-8e29852a.entry.js +2 -0
  430. package/dist/infineon-design-system-stencil/p-8e29852a.entry.js.map +1 -0
  431. package/dist/infineon-design-system-stencil/p-96d21b1e.entry.js +2 -0
  432. package/dist/infineon-design-system-stencil/p-96d21b1e.entry.js.map +1 -0
  433. package/dist/infineon-design-system-stencil/p-97a7da48.entry.js +2 -0
  434. package/dist/infineon-design-system-stencil/p-97a7da48.entry.js.map +1 -0
  435. package/dist/infineon-design-system-stencil/p-980c45b1.entry.js +2 -0
  436. package/dist/infineon-design-system-stencil/p-980c45b1.entry.js.map +1 -0
  437. package/dist/infineon-design-system-stencil/p-a02f6124.entry.js +2 -0
  438. package/dist/infineon-design-system-stencil/p-a02f6124.entry.js.map +1 -0
  439. package/dist/infineon-design-system-stencil/p-a22c9102.js +2 -0
  440. package/dist/infineon-design-system-stencil/p-a22c9102.js.map +1 -0
  441. package/dist/infineon-design-system-stencil/p-a7cc7223.entry.js +2 -0
  442. package/dist/infineon-design-system-stencil/p-a7cc7223.entry.js.map +1 -0
  443. package/dist/infineon-design-system-stencil/p-befa6ba0.entry.js +2 -0
  444. package/dist/infineon-design-system-stencil/p-befa6ba0.entry.js.map +1 -0
  445. package/dist/infineon-design-system-stencil/p-c16abd78.entry.js +2 -0
  446. package/dist/infineon-design-system-stencil/p-c16abd78.entry.js.map +1 -0
  447. package/dist/infineon-design-system-stencil/p-c196c9f5.entry.js +2 -0
  448. package/dist/infineon-design-system-stencil/p-c196c9f5.entry.js.map +1 -0
  449. package/dist/infineon-design-system-stencil/p-c5093f9d.entry.js +2 -0
  450. package/dist/infineon-design-system-stencil/p-c5093f9d.entry.js.map +1 -0
  451. package/dist/infineon-design-system-stencil/p-cedfe18b.entry.js +2 -0
  452. package/dist/infineon-design-system-stencil/p-cedfe18b.entry.js.map +1 -0
  453. package/dist/infineon-design-system-stencil/p-d9c9765b.entry.js +2 -0
  454. package/dist/infineon-design-system-stencil/p-d9c9765b.entry.js.map +1 -0
  455. package/dist/infineon-design-system-stencil/p-e296e298.entry.js +2 -0
  456. package/dist/infineon-design-system-stencil/p-e296e298.entry.js.map +1 -0
  457. package/dist/infineon-design-system-stencil/p-eec8a73d.entry.js +2 -0
  458. package/dist/infineon-design-system-stencil/p-eec8a73d.entry.js.map +1 -0
  459. package/dist/infineon-design-system-stencil/p-f28cf215.entry.js +2 -0
  460. package/dist/infineon-design-system-stencil/p-f28cf215.entry.js.map +1 -0
  461. package/dist/infineon-design-system-stencil/p-f291aa4b.entry.js +2 -0
  462. package/dist/infineon-design-system-stencil/p-f291aa4b.entry.js.map +1 -0
  463. package/dist/infineon-design-system-stencil/p-f5487da9.entry.js +2 -0
  464. package/dist/infineon-design-system-stencil/p-f5487da9.entry.js.map +1 -0
  465. package/dist/infineon-design-system-stencil/p-fdef4706.entry.js +2 -0
  466. package/dist/infineon-design-system-stencil/p-fdef4706.entry.js.map +1 -0
  467. package/dist/types/components/alert/alert.d.ts +1 -0
  468. package/dist/types/components/badge/badge.d.ts +1 -0
  469. package/dist/types/components/date-picker/date-picker.d.ts +1 -0
  470. package/dist/types/components/icon/infineonIconStencil.d.ts +1 -0
  471. package/dist/types/components/link/link.d.ts +1 -0
  472. package/dist/types/components/notification/notification.d.ts +1 -0
  473. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -0
  474. package/dist/types/components/search-field/search-field.d.ts +1 -0
  475. package/dist/types/components/spinner/spinner.d.ts +1 -0
  476. package/dist/types/components/status/status.d.ts +1 -0
  477. package/dist/types/components/tag/tag.d.ts +1 -0
  478. package/dist/types/components/tree-view/tree-view.d.ts +1 -0
  479. package/dist/types/global/utils/dom-utils.d.ts +1 -0
  480. package/package.json +1 -1
  481. package/dist/components/p-0d4738b9.js.map +0 -1
  482. package/dist/components/p-0f321b2c.js.map +0 -1
  483. package/dist/components/p-206cca4c.js.map +0 -1
  484. package/dist/components/p-4c6715e5.js.map +0 -1
  485. package/dist/components/p-62a0b59e.js.map +0 -1
  486. package/dist/components/p-78fc7f65.js.map +0 -1
  487. package/dist/components/p-83a8f960.js.map +0 -1
  488. package/dist/components/p-87513b98.js.map +0 -1
  489. package/dist/components/p-8d078774.js.map +0 -1
  490. package/dist/components/p-a068fe64.js.map +0 -1
  491. package/dist/components/p-ac35091f.js.map +0 -1
  492. package/dist/components/p-b0bb3c89.js.map +0 -1
  493. package/dist/components/p-cda8eae3.js.map +0 -1
  494. package/dist/components/p-d593f6d2.js.map +0 -1
  495. package/dist/components/p-e10320d8.js.map +0 -1
  496. package/dist/components/p-e160456e.js.map +0 -1
  497. package/dist/components/p-f0d66c29.js.map +0 -1
  498. package/dist/components/p-f94be895.js.map +0 -1
  499. package/dist/infineon-design-system-stencil/p-026d4323.entry.js +0 -2
  500. package/dist/infineon-design-system-stencil/p-026d4323.entry.js.map +0 -1
  501. package/dist/infineon-design-system-stencil/p-0e685b5b.entry.js +0 -2
  502. package/dist/infineon-design-system-stencil/p-0e685b5b.entry.js.map +0 -1
  503. package/dist/infineon-design-system-stencil/p-12a501e3.entry.js +0 -2
  504. package/dist/infineon-design-system-stencil/p-12a501e3.entry.js.map +0 -1
  505. package/dist/infineon-design-system-stencil/p-1363c580.entry.js +0 -2
  506. package/dist/infineon-design-system-stencil/p-1363c580.entry.js.map +0 -1
  507. package/dist/infineon-design-system-stencil/p-205793c9.entry.js +0 -2
  508. package/dist/infineon-design-system-stencil/p-205793c9.entry.js.map +0 -1
  509. package/dist/infineon-design-system-stencil/p-2566033e.entry.js +0 -2
  510. package/dist/infineon-design-system-stencil/p-2566033e.entry.js.map +0 -1
  511. package/dist/infineon-design-system-stencil/p-2c8b12b9.entry.js +0 -2
  512. package/dist/infineon-design-system-stencil/p-2c8b12b9.entry.js.map +0 -1
  513. package/dist/infineon-design-system-stencil/p-2d1be753.entry.js +0 -2
  514. package/dist/infineon-design-system-stencil/p-2d1be753.entry.js.map +0 -1
  515. package/dist/infineon-design-system-stencil/p-4d248380.entry.js +0 -2
  516. package/dist/infineon-design-system-stencil/p-4d248380.entry.js.map +0 -1
  517. package/dist/infineon-design-system-stencil/p-5eb7dab8.entry.js +0 -2
  518. package/dist/infineon-design-system-stencil/p-5eb7dab8.entry.js.map +0 -1
  519. package/dist/infineon-design-system-stencil/p-63bf2478.entry.js +0 -2
  520. package/dist/infineon-design-system-stencil/p-63bf2478.entry.js.map +0 -1
  521. package/dist/infineon-design-system-stencil/p-6a187c4e.entry.js +0 -2
  522. package/dist/infineon-design-system-stencil/p-6a187c4e.entry.js.map +0 -1
  523. package/dist/infineon-design-system-stencil/p-799b8bb9.entry.js +0 -2
  524. package/dist/infineon-design-system-stencil/p-799b8bb9.entry.js.map +0 -1
  525. package/dist/infineon-design-system-stencil/p-7bca15ee.entry.js +0 -2
  526. package/dist/infineon-design-system-stencil/p-7bca15ee.entry.js.map +0 -1
  527. package/dist/infineon-design-system-stencil/p-7e194576.entry.js +0 -2
  528. package/dist/infineon-design-system-stencil/p-7e194576.entry.js.map +0 -1
  529. package/dist/infineon-design-system-stencil/p-7fe71cfa.entry.js +0 -2
  530. package/dist/infineon-design-system-stencil/p-7fe71cfa.entry.js.map +0 -1
  531. package/dist/infineon-design-system-stencil/p-826998aa.entry.js +0 -2
  532. package/dist/infineon-design-system-stencil/p-826998aa.entry.js.map +0 -1
  533. package/dist/infineon-design-system-stencil/p-842c3339.entry.js +0 -2
  534. package/dist/infineon-design-system-stencil/p-842c3339.entry.js.map +0 -1
  535. package/dist/infineon-design-system-stencil/p-86705978.entry.js +0 -2
  536. package/dist/infineon-design-system-stencil/p-86705978.entry.js.map +0 -1
  537. package/dist/infineon-design-system-stencil/p-909de452.entry.js +0 -2
  538. package/dist/infineon-design-system-stencil/p-909de452.entry.js.map +0 -1
  539. package/dist/infineon-design-system-stencil/p-9f053ec8.entry.js +0 -2
  540. package/dist/infineon-design-system-stencil/p-9f053ec8.entry.js.map +0 -1
  541. package/dist/infineon-design-system-stencil/p-a6ebc263.entry.js +0 -2
  542. package/dist/infineon-design-system-stencil/p-a6ebc263.entry.js.map +0 -1
  543. package/dist/infineon-design-system-stencil/p-a99d544a.entry.js +0 -2
  544. package/dist/infineon-design-system-stencil/p-a99d544a.entry.js.map +0 -1
  545. package/dist/infineon-design-system-stencil/p-aa4c2124.entry.js +0 -2
  546. package/dist/infineon-design-system-stencil/p-aa4c2124.entry.js.map +0 -1
  547. package/dist/infineon-design-system-stencil/p-aaa6770d.entry.js +0 -2
  548. package/dist/infineon-design-system-stencil/p-aaa6770d.entry.js.map +0 -1
  549. package/dist/infineon-design-system-stencil/p-acd4055d.entry.js +0 -2
  550. package/dist/infineon-design-system-stencil/p-acd4055d.entry.js.map +0 -1
  551. package/dist/infineon-design-system-stencil/p-b16ccb2a.entry.js +0 -2
  552. package/dist/infineon-design-system-stencil/p-b16ccb2a.entry.js.map +0 -1
  553. package/dist/infineon-design-system-stencil/p-bc23eb8a.entry.js +0 -2
  554. package/dist/infineon-design-system-stencil/p-bc23eb8a.entry.js.map +0 -1
  555. package/dist/infineon-design-system-stencil/p-bd243655.entry.js.map +0 -1
  556. package/dist/infineon-design-system-stencil/p-bd779c6c.entry.js +0 -2
  557. package/dist/infineon-design-system-stencil/p-bd779c6c.entry.js.map +0 -1
  558. package/dist/infineon-design-system-stencil/p-c12aac5f.entry.js +0 -2
  559. package/dist/infineon-design-system-stencil/p-c12aac5f.entry.js.map +0 -1
  560. package/dist/infineon-design-system-stencil/p-c8e4dfde.entry.js +0 -2
  561. package/dist/infineon-design-system-stencil/p-c8e4dfde.entry.js.map +0 -1
  562. package/dist/infineon-design-system-stencil/p-db1d53bf.entry.js +0 -2
  563. package/dist/infineon-design-system-stencil/p-db1d53bf.entry.js.map +0 -1
  564. package/dist/infineon-design-system-stencil/p-e531d0b1.entry.js +0 -2
  565. package/dist/infineon-design-system-stencil/p-e531d0b1.entry.js.map +0 -1
  566. package/dist/infineon-design-system-stencil/p-ea537283.entry.js +0 -2
  567. package/dist/infineon-design-system-stencil/p-ea537283.entry.js.map +0 -1
  568. package/dist/infineon-design-system-stencil/p-eae13f8c.entry.js +0 -2
  569. package/dist/infineon-design-system-stencil/p-eae13f8c.entry.js.map +0 -1
  570. package/dist/infineon-design-system-stencil/p-f3e01216.entry.js +0 -2
  571. package/dist/infineon-design-system-stencil/p-f3e01216.entry.js.map +0 -1
  572. package/dist/infineon-design-system-stencil/p-f4a7e01f.entry.js +0 -2
  573. package/dist/infineon-design-system-stencil/p-f4a7e01f.entry.js.map +0 -1
  574. package/dist/infineon-design-system-stencil/p-f5a3ef41.entry.js +0 -2
  575. package/dist/infineon-design-system-stencil/p-f5a3ef41.entry.js.map +0 -1
  576. package/dist/infineon-design-system-stencil/p-ffb0173c.entry.js +0 -2
  577. package/dist/infineon-design-system-stencil/p-ffb0173c.entry.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{r as e,c as a,h as t}from"./p-b7a462e5.js";import{t as s}from"./p-6ecb6a6f.js";const l=':host{display:block}.tree-view{font-family:var(--ifx-font-family, sans-serif);font-size:14px;color:var(--ifx-color-text, #1a1a1a);display:flex;flex-wrap:wrap;flex-direction:column;overflow-x:auto;overflow-y:hidden}.tree-view__label{font:600 1.125rem/1.625rem "Source Sans 3";margin-bottom:8px}';const i=l;const r=class{constructor(t){e(this,t);this.ifxTreeViewExpandAllChange=a(this,"ifxTreeViewExpandAllChange",7);this.ifxTreeViewDisableAllChange=a(this,"ifxTreeViewDisableAllChange",7);this.disableAllItems=false;this.expandAllItems=false;this.handleSlotRef=e=>{if(e){if(this.disableAllItems){e.setAttribute("data-disable-all-items","true")}else{e.removeAttribute("data-disable-all-items")}if(this.expandAllItems){e.setAttribute("data-expand-all-items","true")}else{e.removeAttribute("data-expand-all-items")}}}}handleExpandAllItemsChange(e){this.ifxTreeViewExpandAllChange.emit(e)}handleDisableAllItemsChange(e){this.ifxTreeViewDisableAllChange.emit(e)}componentWillLoad(){s("ifx-tree-view")}render(){return t("div",{key:"455c50c19e0831504261c6e819ed0e297d3570f8",class:`tree-view ${this.disableAllItems?" tree-view--disabled":""}`,role:"tree","aria-label":this.ariaLabel},this.label&&this.label.trim()!==""&&t("div",{key:"d0fcbd3013c39a5919fd7b6b0083bd104153effa",class:"tree-view__label"},this.label),t("slot",{key:"a0bb8c28c26107ba3f0dcb26f6cab79ef3d959f4",ref:this.handleSlotRef}))}static get watchers(){return{expandAllItems:["handleExpandAllItemsChange"],disableAllItems:["handleDisableAllItemsChange"]}}};r.style=i;export{r as ifx_tree_view};
2
- //# sourceMappingURL=p-bd779c6c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["treeViewCss","IfxTreeViewStyle0","TreeView","constructor","hostRef","this","disableAllItems","expandAllItems","handleSlotRef","el","setAttribute","removeAttribute","handleExpandAllItemsChange","newValue","ifxTreeViewExpandAllChange","emit","handleDisableAllItemsChange","ifxTreeViewDisableAllChange","componentWillLoad","trackComponent","render","h","key","class","role","ariaLabel","label","trim","ref"],"sources":["src/components/tree-view/tree-view.scss?tag=ifx-tree-view&encapsulation=shadow","src/components/tree-view/tree-view.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n\n:host {\n display: block;\n}\n\n.tree-view {\n font-family: var(--ifx-font-family, sans-serif);\n font-size: 14px;\n color: var(--ifx-color-text, #1a1a1a);\n\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n overflow-x: auto;\n overflow-y: hidden;\n\n &__label {\n font: tokens.$ifxHeadingHeading06;\n margin-bottom: tokens.$ifxSpace100;\n }\n}\n","import { Component, h, Prop, Event, EventEmitter, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-tree-view',\n styleUrl: 'tree-view.scss',\n shadow: true,\n})\nexport class TreeView {\n @Prop() label?: string;\n @Prop() disableAllItems: boolean = false;\n @Prop() expandAllItems: boolean = false;\n @Prop() ariaLabel: string | null;\n\n @Event() ifxTreeViewExpandAllChange: EventEmitter<boolean>;\n @Event() ifxTreeViewDisableAllChange: EventEmitter<boolean>;\n\n @Watch('expandAllItems')\n handleExpandAllItemsChange(newValue: boolean) {\n this.ifxTreeViewExpandAllChange.emit(newValue);\n }\n\n @Watch('disableAllItems')\n handleDisableAllItemsChange(newValue: boolean) {\n this.ifxTreeViewDisableAllChange.emit(newValue);\n }\n\n private handleSlotRef = (el: HTMLSlotElement | null) => {\n if (el) {\n if (this.disableAllItems) {\n el.setAttribute('data-disable-all-items', 'true');\n } else {\n el.removeAttribute('data-disable-all-items');\n }\n if (this.expandAllItems) {\n el.setAttribute('data-expand-all-items', 'true');\n } else {\n el.removeAttribute('data-expand-all-items');\n }\n }\n };\n\n componentWillLoad() { \n trackComponent('ifx-tree-view')\n }\n\n render() {\n return (\n <div\n class={`tree-view ${this.disableAllItems ? ' tree-view--disabled' : ''}`}\n role=\"tree\"\n aria-label={this.ariaLabel}\n >\n {this.label && this.label.trim() !== '' && <div class=\"tree-view__label\">{this.label}</div>}\n <slot ref={this.handleSlotRef}></slot>\n </div>\n );\n }\n}\n"],"mappings":"sFAAA,MAAMA,EAAc,wSACpB,MAAAC,EAAeD,E,MCOFE,EAAQ,MALrB,WAAAC,CAAAC,G,0JAOUC,KAAAC,gBAA2B,MAC3BD,KAAAE,eAA0B,MAgB1BF,KAAAG,cAAiBC,IACvB,GAAIA,EAAI,CACN,GAAIJ,KAAKC,gBAAiB,CACxBG,EAAGC,aAAa,yBAA0B,O,KACrC,CACLD,EAAGE,gBAAgB,yB,CAErB,GAAIN,KAAKE,eAAgB,CACvBE,EAAGC,aAAa,wBAAyB,O,KACpC,CACLD,EAAGE,gBAAgB,wB,IAnBzB,0BAAAC,CAA2BC,GACzBR,KAAKS,2BAA2BC,KAAKF,E,CAIvC,2BAAAG,CAA4BH,GAC1BR,KAAKY,4BAA4BF,KAAKF,E,CAkBxC,iBAAAK,GACEC,EAAe,gB,CAGjB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CACEC,MAAO,aAAalB,KAAKC,gBAAkB,uBAAyB,KACpEkB,KAAK,OAAM,aACCnB,KAAKoB,WAEhBpB,KAAKqB,OAASrB,KAAKqB,MAAMC,SAAW,IAAMN,EAAA,OAAAC,IAAA,2CAAKC,MAAM,oBAAoBlB,KAAKqB,OAC/EL,EAAA,QAAAC,IAAA,2CAAMM,IAAKvB,KAAKG,gB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as o,a as n,g as i}from"./p-b7a462e5.js";import{t as a}from"./p-6ecb6a6f.js";function s(e,t,o,n=20,i=0){const a=[];if(i>=n){return a}const d=e=>{const a=e.assignedNodes().filter((e=>e.nodeType===1));if(a.length>0){const e=a[0].parentElement;return s(e,t,o,n,i+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(...s(e.shadowRoot,t,o,n,i+1))}else if(e.tagName==="SLOT"){a.push(...d(e))}else{a.push(...s(e,t,o,n,i+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 r(e){return e.hasAttribute("disabled")||e.hasAttribute("aria-disabled")&&e.getAttribute("aria-disabled")!=="false"}function c(e){if(e.getAttribute("tabindex")==="-1"||d(e)||r(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 l(e,t,o){const n=e.animate(t,Object.assign(Object.assign({},o),{fill:"both"}));n.addEventListener("finish",(()=>{n.commitStyles();n.cancel()}));return n}const h={easing:"cubic-bezier(0.390, 0.575, 0.565, 1.000)"};const f={fadeIn:[Object.assign(Object.assign({offset:0},h),{opacity:0}),Object.assign(Object.assign({offset:1},h),{opacity:1})],fadeOut:[Object.assign(Object.assign({offset:0},h),{opacity:1}),Object.assign(Object.assign({offset:1},h),{opacity:0})]};const b=':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 m=b;const u=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.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")}}}componentWillLoad(){a("ifx-modal")}componentDidLoad(){this.focusableElements=s(this.hostElement.shadowRoot,(e=>d(e)||e.matches("[data-focus-trap-edge]")),c)}componentWillRender(){if(this.showModal){this.handleComponentOverflow()}}handleComponentOverflow(){const e=this.hostElement.shadowRoot.querySelector(".modal-content-container");if(this.showModal&&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=l(this.modalContainer,f.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=l(this.modalContainer,f.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 n=window.innerHeight;e(o>=n*.9)}),100)}))}render(){const e=this.variant!=="default";return o(n,{key:"626fa4938673d3f391822d5a1185e4624a304f37"},o("div",{key:"62dc3352da6e19d1c8001319f5383968b88916f3",ref:e=>this.modalContainer=e,class:`modal-container ${this.showModal?"open":""}`},o("div",{key:"047bc13f3bab5b3b3a31cecf16780dc51551853a",class:"modal-overlay",onClick:()=>this.handleOverlayClick()}),o("div",{key:"acb87187f010e0a0452ecf1893a0fddd39d1d61d","data-focus-trap-edge":true,onFocus:this.handleTopFocus,tabindex:"0"}),o("div",{key:"168fa0a69262f58b539ef37485037c5c42736744",class:`modal-content-container ${this.size}`,role:"dialog","aria-modal":"true","aria-label":this.caption},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:"000f36bedc412a3c5743378c8d6b954bc4ba4adb",class:"modal-content"},o("div",{key:"dc0edddd16237eb702cdb759e43b5dc31138b2a3",class:"modal-header"},o("h2",{key:"f064f1a717eb1227cbc5cf87c4219921e06f357d",class:"modal-caption"},this.caption),this.showCloseButton&&o("ifx-icon-button",{key:"2d7e69a849bd5c079ca7d6c207e9e109e9ba38cc",class:"modal-close-button",ref:e=>this.closeButton=e,icon:"cross-16",variant:"tertiary",onClick:()=>this.doBeforeClose("CLOSE_BUTTON")})),o("div",{key:"97ea7be5990e26353d5d0c06d4c91b67dcc39da3",class:"modal-body"},o("slot",{key:"8903401607519aa2fe851eb87605d9e7c719701d",name:"content",onSlotchange:e=>this.handleContentUpdate(e)})),o("div",{key:"408f0e612dbfe3345964eaf94038ef95c2e18905",class:`modal-footer ${this.slotButtonsPresent?"buttons-present":""}`},o("slot",{key:"8b68793e1cb95ab8ac44e817dcbc098c6f386914",name:"buttons",onSlotchange:e=>this.handleButtonsSlotChange(e)})))),o("div",{key:"6ada1825e120f06e2291a1563b99428aaee21429","data-focus-trap-edge":true,onFocus:this.handleBottomFocus,tabindex:"0"})))}get hostElement(){return i(this)}static get watchers(){return{opened:["openedChanged"]}}};u.style=m;export{u as ifx_modal};
2
- //# sourceMappingURL=p-c12aac5f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["queryShadowRoot","root","skipNode","isMatch","maxDepth","depth","matches","traverseSlot","$slot","assignedNodes","filter","node","nodeType","length","$slotParent","parentElement","children","Array","from","$child","push","shadowRoot","tagName","isHidden","$elem","hasAttribute","getAttribute","style","display","opacity","visibility","isDisabled","isFocusable","HTMLAnchorElement","HTMLAreaElement","HTMLButtonElement","HTMLInputElement","HTMLTextAreaElement","HTMLSelectElement","HTMLIFrameElement","animationTo","element","keyframes","options","animated","animate","Object","assign","fill","addEventListener","commitStyles","cancel","keyframeDefaults","easing","KEYFRAMES","fadeIn","offset","fadeOut","modalCss","IfxModalStyle0","IfxModal","constructor","hostRef","this","opened","showModal","caption","closeOnOverlayClick","variant","size","alertIcon","okButtonLabel","cancelButtonLabel","slotButtonsPresent","showCloseButton","focusableElements","handleTopFocus","attemptFocus","getLastFocusableElement","handleBottomFocus","getFirstFocusableElement","handleKeypress","event","key","doBeforeClose","componentWillLoad","trackComponent","componentDidLoad","hostElement","el","componentWillRender","handleComponentOverflow","modalContentContainer","querySelector","isModalContentContainerHeightReachedViewport","classList","add","contains","remove","setTimeout","closeButton","focus","open","anim","modalContainer","duration","_a","_b","blur","ifxOpen","emit","err","close","ifxClose","removeEventListener","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","window","innerHeight","render","isAlertVariant","h","Host","ref","class","onClick","onFocus","tabindex","role","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 { 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() 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 @Element() hostElement: HTMLElement;\n\n @State() slotButtonsPresent: boolean = false;\n\n @Prop() showCloseButton: boolean = true;\n\n private modalContainer: HTMLElement;\n private focusableElements: HTMLElement[] = [];\n private closeButton: HTMLButtonElement | HTMLIfxIconButtonElement;\n\n componentWillLoad() { \n trackComponent('ifx-modal')\n }\n\n componentDidLoad() {\n // Query all focusable elements and store them in `focusableElements`.\n // Needed for the \"focus trap\" functionality.\n this.focusableElements = queryShadowRoot(\n this.hostElement.shadowRoot,\n (el) => isHidden(el) || el.matches('[data-focus-trap-edge]'),\n isFocusable\n );\n }\n\n componentWillRender() { \n if(this.showModal) { \n this.handleComponentOverflow();\n }\n }\n\n handleComponentOverflow() { \n const modalContentContainer = this.hostElement.shadowRoot.querySelector('.modal-content-container');\n if (this.showModal && 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 resolve(modalContentHeight >= 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.caption}>\n {isAlertVariant ? (\n <div class={`modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}`}>\n {this.alertIcon ? <ifx-icon icon={this.alertIcon} /> : null}\n </div>\n ) : null}\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h2 class=\"modal-caption\">{this.caption}</h2>\n { \n this.showCloseButton && \n <ifx-icon-button class = 'modal-close-button' ref={(el) => (this.closeButton = el)} icon=\"cross-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":"6GAgBgBA,EACdC,EACAC,EACAC,EACAC,EAAmB,GACnBC,EAAgB,GAEhB,MAAMC,EAAyB,GAG/B,GAAID,GAASD,EAAU,CACrB,OAAOE,C,CAIT,MAAMC,EAAgBC,IAGpB,MAAMC,EAAgBD,EACnBC,gBACAC,QAAQC,GAASA,EAAKC,WAAa,IACtC,GAAIH,EAAcI,OAAS,EAAG,CAC5B,MAAMC,EAAcL,EAAc,GAAGM,cACrC,OAAOf,EACLc,EACAZ,EACAC,EACAC,EACAC,EAAQ,E,CAIZ,MAAO,EAAE,EAMX,MAAMW,EAAWC,MAAMC,KAAKjB,EAAKe,UAAY,IAC7C,IAAK,MAAMG,KAAUH,EAAU,CAE7B,GAAId,EAASiB,GAAS,CAEpB,Q,CAMF,GAAIhB,EAAQgB,GAAS,CACnBb,EAAQc,KAAKD,E,CAGf,GAAIA,EAAOE,YAAc,KAAM,CAE7Bf,EAAQc,QACHpB,EACDmB,EAAOE,WACPnB,EACAC,EACAC,EACAC,EAAQ,G,MAGP,GAAIc,EAAOG,UAAY,OAAQ,CAEpChB,EAAQc,QAAQb,EAAaY,G,KACxB,CAELb,EAAQc,QACHpB,EAAgBmB,EAAQjB,EAAUC,EAASC,EAAUC,EAAQ,G,EAKtE,OAAOC,CACT,C,SAMgBiB,EAASC,GACvB,OACEA,EAAMC,aAAa,WAClBD,EAAMC,aAAa,gBAClBD,EAAME,aAAa,iBAAmB,SAKxCF,EAAMG,MAAMC,UAAY,QACxBJ,EAAMG,MAAME,UAAY,KACxBL,EAAMG,MAAMG,aAAe,UAC3BN,EAAMG,MAAMG,aAAe,UAM/B,C,SAMgBC,EAAWP,GACzB,OACEA,EAAMC,aAAa,aAClBD,EAAMC,aAAa,kBAClBD,EAAME,aAAa,mBAAqB,OAE9C,C,SAQgBM,EAAYR,GAE1B,GACEA,EAAME,aAAa,cAAgB,MACnCH,EAASC,IACTO,EAAWP,GACX,CACA,OAAO,K,CAGT,OAEEA,EAAMC,aAAa,cAEjBD,aAAiBS,mBAAqBT,aAAiBU,kBACvDV,EAAMC,aAAa,SAErBD,aAAiBW,mBACjBX,aAAiBY,kBACjBZ,aAAiBa,qBACjBb,aAAiBc,mBAEjBd,aAAiBe,iBAErB,C,SChKgBC,EACdC,EACAC,EACAC,GAEA,MAAMC,EAAWH,EAAQI,QAAQH,EAASI,OAAAC,OAAAD,OAAAC,OAAA,GAAOJ,GAAO,CAAEK,KAAM,UAChEJ,EAASK,iBAAiB,UAAU,KAElCL,EAASM,eACTN,EAASO,QAAQ,IAGnB,OAAOP,CACT,CAEA,MAAMQ,EAAmB,CACvBC,OAAQ,4CAGH,MAAMC,EAAY,CACvBC,OAAQ,C,6BAEJC,OAAQ,GACLJ,GAAgB,CACnBvB,QAAS,I,6BAGT2B,OAAQ,GACLJ,GAAgB,CACnBvB,QAAS,KAGb4B,QAAS,C,6BAELD,OAAQ,GACLJ,GAAgB,CACnBvB,QAAS,I,6BAGT2B,OAAQ,GACLJ,GAAgB,CACnBvB,QAAS,MCzCf,MAAM6B,EAAW,syFACjB,MAAAC,EAAeD,E,MCcFE,EAAQ,MALrB,WAAAC,CAAAC,G,8EAM0CC,KAAAC,OAAmB,MAClDD,KAAAE,UAAqBF,KAAKC,QAAU,MAErCD,KAAAG,QAAkB,cAClBH,KAAAI,oBAA+B,KAK/BJ,KAAAK,QAAsD,UAEtDL,KAAAM,KAAwB,IAExBN,KAAAO,UAAoB,GACpBP,KAAAQ,cAAwB,KACxBR,KAAAS,kBAA4B,SAG3BT,KAAAU,mBAA8B,MAE/BV,KAAAW,gBAA2B,KAG3BX,KAAAY,kBAAmC,GAwC3CZ,KAAAa,eAAiB,KACfb,KAAKc,aAAad,KAAKe,0BAA0B,EAGnDf,KAAAgB,kBAAoB,KAClBhB,KAAKc,aAAad,KAAKiB,2BAA2B,EAuDpDjB,KAAAkB,eAAkBC,IAChB,IAAKnB,KAAKE,UAAW,CACnB,M,CAEF,GAAIiB,EAAMC,MAAQ,SAAU,CAC1BpB,KAAKqB,cAAc,a,GAtGvB,iBAAAC,GACEC,EAAe,Y,CAGjB,gBAAAC,GAGExB,KAAKY,kBAAoB3E,EACvB+D,KAAKyB,YAAYnE,YAChBoE,GAAOlE,EAASkE,IAAOA,EAAGnF,QAAQ,2BACnC0B,E,CAIJ,mBAAA0D,GACE,GAAG3B,KAAKE,UAAW,CACjBF,KAAK4B,yB,EAIT,uBAAAA,GACE,MAAMC,EAAwB7B,KAAKyB,YAAYnE,WAAWwE,cAAc,4BACxE,GAAI9B,KAAKE,WAAaF,KAAK+B,+CAAgD,CACzEF,EAAsBG,UAAUC,IAAI,c,MAC/B,GAAGJ,IAAqB,MAArBA,SAAqB,SAArBA,EAAuBG,UAAUE,SAAS,eAAgB,CAClEL,IAAqB,MAArBA,SAAqB,SAArBA,EAAuBG,UAAUG,OAAO,c,EAI5C,wBAAAlB,GACE,OAAOjB,KAAKY,kBAAkB,E,CAGhC,uBAAAG,GACE,OAAOf,KAAKY,kBAAkBZ,KAAKY,kBAAkB9D,OAAS,E,CAWhE,YAAAgE,CAAapC,GACX,GAAIA,GAAW,KAAM,CACnB0D,YAAW,KACTpC,KAAKqC,YAAYC,OAAO,IAE1B,M,CAGFF,YAAW,KACT1D,EAAQ4D,OAAO,GACd,E,CAGL,IAAAC,GACEvC,KAAKE,UAAY,KACjB,IACE,MAAMsC,EAAO/D,EAAYuB,KAAKyC,eAAgBlD,EAAUC,OAAQ,CAC9DkD,SAAU,MAEZF,EAAKtD,iBAAiB,UAAU,KAG9BkD,YAAW,K,SACTO,EAAA3C,KAAKe,6BAAyB,MAAA4B,SAAA,SAAAA,EAAEL,SAChCM,EAAA5C,KAAKe,6BAAyB,MAAA6B,SAAA,SAAAA,EAAEC,MAAM,GACrC,GAEH7C,KAAK8C,QAAQC,MAAM,IAGrB/C,KAAKyB,YAAYvC,iBAAiB,UAAWc,KAAKkB,e,CAClD,MAAO8B,GACPhD,KAAK8C,QAAQC,M,EAIjB,KAAAE,GACE,IACE,MAAMT,EAAO/D,EAAYuB,KAAKyC,eAAgBlD,EAAUG,QAAS,CAC/DgD,SAAU,MAEZF,EAAKtD,iBAAiB,UAAU,KAC9Bc,KAAKE,UAAY,MACjBF,KAAKkD,SAASH,MAAM,IAEtB/C,KAAKyB,YAAY0B,oBAAoB,UAAWnD,KAAKkB,e,CACrD,MAAO8B,GACPhD,KAAKE,UAAY,MACjBF,KAAKkD,SAASH,M,EAalB,aAAA1B,CAAc+B,GACZ,MAAMC,EAAW,GACjBA,EAAShG,KAAK+F,GACd,MAAME,EAAYD,EAASE,MAAMpC,GAAUA,EAAMqC,mBACjD,IAAKF,EAAW,CACdtD,KAAKC,OAAS,K,EAKlB,aAAAwD,CAAcC,GACZ,GAAIA,IAAa,KAAM,CACrB1D,KAAKuC,M,KACA,CACLvC,KAAKiD,O,EAIT,kBAAAU,GACE,GAAI3D,KAAKI,oBAAqB,CAC5BJ,KAAKqB,cAAc,W,EAIvB,mBAAAuC,CAAoBC,GACpB,MAAMC,EAAcD,EAAEE,OACtB,MAAMC,EAAQF,EAAYpH,gBAC1B,GAAGsH,EAAMlH,OAAS,EAAG,CACnBkH,EAAMC,SAAQrH,IACZ,GAAIA,EAAKsH,SAAU,CACjBtH,EAAKsH,SAASC,oBACPvH,EAAKsH,Q,CAEd,MAAMA,EAAW,IAAIE,kBAAiB,CAACC,EAAeC,KACpD,IAAI,IAAIC,KAAYF,EAAe,CACjC,GAAIE,EAASC,OAAS,YAAa,CACjC,GAAGxE,KAAKE,UAAW,CACjBF,KAAK4B,yB,OAKXsC,EAASO,QAAQ7H,EAAM,CAAE8H,WAAY,KAAMC,UAAW,KAAMC,QAAS,OACrEhI,EAAKsH,SAAWA,CAAQ,G,EAK9B,uBAAAW,CAAwBhB,G,MACtB,KAAGlB,EAAAkB,EAAEiB,cAAcC,mBAAmB,MAAE,MAAApC,SAAA,SAAAA,EAAEqC,mBAAoB,EAAG,CAC/DhF,KAAKU,mBAAqB,I,KACvB,CACHV,KAAKU,mBAAqB,K,EAI/B,4CAAAqB,GAEC,OAAO,IAAIkD,SAAQC,IACjB9C,YAAW,KACT,MAAM+C,EAAenF,KAAKyB,YAAYnE,WAAWwE,cAAc,kBAC/D,MAAMsD,EAAqBD,EAAaE,aACxC,MAAMC,EAAiBC,OAAOC,YAC9BN,EAAQE,GAAsBE,EAAiB,GAAI,GAClD,IAAI,G,CAKT,MAAAG,GACE,MAAMC,EAAiB1F,KAAKK,UAAY,UACxC,OACEsF,EAACC,EAAI,CAAAxE,IAAA,4CACHuE,EAAA,OAAAvE,IAAA,2CACEyE,IAAMnE,GAAQ1B,KAAKyC,eAAiBf,EACpCoE,MAAO,mBAAmB9F,KAAKE,UAAY,OAAS,MAEpDyF,EAAA,OAAAvE,IAAA,2CACE0E,MAAM,gBACNC,QAAS,IAAM/F,KAAK2D,uBAEtBgC,EAAA,OAAAvE,IAAA,uEAEE4E,QAAShG,KAAKa,eACdoF,SAAS,MAEXN,EAAA,OAAAvE,IAAA,2CACE0E,MAAO,2BAA2B9F,KAAKM,OACvC4F,KAAK,SAAQ,aACF,OAAM,aACLlG,KAAKG,SAChBuF,EACCC,EAAA,OAAKG,MAAO,wBAAwB9F,KAAKK,UAAY,cAAgB,GAAK,YACvEL,KAAKO,UAAYoF,EAAA,YAAUQ,KAAMnG,KAAKO,YAAgB,MAEvD,KACJoF,EAAA,OAAAvE,IAAA,2CAAK0E,MAAM,iBACTH,EAAA,OAAAvE,IAAA,2CAAK0E,MAAM,gBACTH,EAAA,MAAAvE,IAAA,2CAAI0E,MAAM,iBAAiB9F,KAAKG,SAE9BH,KAAKW,iBACLgF,EAAA,mBAAAvE,IAAA,2CAAiB0E,MAAQ,qBAAqBD,IAAMnE,GAAQ1B,KAAKqC,YAAcX,EAAKyE,KAAK,WAAW9F,QAAQ,WAAW0F,QAAS,IAAM/F,KAAKqB,cAAc,mBAI7JsE,EAAA,OAAAvE,IAAA,2CAAK0E,MAAM,cACTH,EAAA,QAAAvE,IAAA,2CAAMgF,KAAK,UAAUC,aAAexC,GAAM7D,KAAK4D,oBAAoBC,MAErE8B,EAAA,OAAAvE,IAAA,2CAAK0E,MAAO,gBAAgB9F,KAAKU,mBAAqB,kBAAoB,MACxEiF,EAAA,QAAAvE,IAAA,2CAAMgF,KAAK,UAAUC,aAAexC,GAAI7D,KAAK6E,wBAAwBhB,QAK3E8B,EAAA,OAAAvE,IAAA,uEAEE4E,QAAShG,KAAKgB,kBACdiF,SAAS,O","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as i,g as n}from"./p-b7a462e5.js";import{t as r}from"./p-6ecb6a6f.js";const t=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-flex}.indicator__container .dot__wrapper{display:flex;width:8px;height:8px;justify-content:center;align-items:center;flex-shrink:0;border-radius:50%;background-color:#0A8276}.indicator__container .number__container{height:16px;display:inline-flex;padding:0;min-width:16px;justify-content:center;align-items:center;border-radius:100px;background-color:#0A8276}.indicator__container .number__container .number__wrapper{padding:0 4px;color:#FFFFFF;text-align:center;font-size:0.875rem;font-style:normal;font-weight:600;line-height:16px}.indicator__container .number__container.inverted{background-color:#FFFFFF}.indicator__container .number__container.inverted .number__wrapper{color:#0A8276}';const a=t;const c=class{constructor(i){e(this,i);this.inverted=false;this.variant="number";this.number=0}handleNumber(){this.filteredNumber=!isNaN(this.number)&&this.number>99?"99+":this.number}componentWillLoad(){this.handleNumber();r("ifx-indicator")}componentWillUpdate(){this.handleNumber()}render(){return i("div",{key:"0b81153c4087ab36c753595e2cee59ac3ff5c8ec","aria-label":this.ariaLabel,class:"indicator__container"},this.variant==="number"&&i("div",{key:"e2c3cb995ef75258f19de816e3cac7ba6153f82a",class:`number__container ${this.inverted?"inverted":""}`},i("div",{key:"2873b61cb9bfac65810e64f4a81ff5b7ecfbc1e2",class:"number__wrapper"},this.filteredNumber)),this.variant==="dot"&&i("div",{key:"8fdc2e31b39d174ea306ba46b7e47b90cc4a5c6f",class:"dot__wrapper"}))}get el(){return n(this)}};c.style=a;export{c as ifx_indicator};
2
- //# sourceMappingURL=p-c8e4dfde.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["indicatorCss","IfxIndicatorStyle0","Indicator","constructor","hostRef","this","inverted","variant","number","handleNumber","filteredNumber","isNaN","componentWillLoad","trackComponent","componentWillUpdate","render","h","key","ariaLabel","class"],"sources":["src/components/indicator/indicator.scss?tag=ifx-indicator&encapsulation=shadow","src/components/indicator/indicator.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.indicator__container { \n & .dot__wrapper { \n display: flex;\n width: 8px;\n height: 8px;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n border-radius: 50%;\n background-color: tokens.$ifxColorOcean500;\n }\n\n & .number__container {\n height: 16px;\n display: inline-flex;\n padding: 0; \n min-width: 16px; \n justify-content: center;\n align-items: center;\n border-radius: 100px;\n background-color: tokens.$ifxColorOcean500;\n\n & .number__wrapper {\n padding: 0 4px;\n color: tokens.$ifxColorBaseWhite;\n text-align: center;\n font-size: tokens.$ifxFontSizeS;\n font-style: normal;\n font-weight: tokens.$ifxFontWeightSemibold;\n line-height: 16px;\n }\n\n &.inverted {\n background-color: tokens.$ifxColorBaseWhite;\n\n & .number__wrapper {\n color: tokens.$ifxColorOcean500;\n }\n }\n }\n}\n\n\n","import { Component, h, Prop, Element, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \n\n@Component({\n tag: 'ifx-indicator',\n styleUrl: 'indicator.scss',\n shadow: true\n})\nexport class Indicator {\n @Element() el;\n @State() filteredNumber: string | number;\n @Prop() inverted: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() variant: string = 'number'\n @Prop() number: number = 0;\n\n handleNumber() {\n this.filteredNumber = !isNaN(this.number) && this.number > 99 ? '99+' : this.number;\n }\n\n componentWillLoad() { \n this.handleNumber()\n trackComponent('ifx-indicator')\n }\n\n componentWillUpdate() {\n this.handleNumber()\n }\n\n render() {\n return (\n <div aria-label={this.ariaLabel} class='indicator__container'>\n {this.variant === 'number' && \n <div class={`number__container ${this.inverted ? 'inverted' : \"\"}`}>\n <div class=\"number__wrapper\">\n {this.filteredNumber}\n </div> \n </div>}\n {this.variant === 'dot' && <div class=\"dot__wrapper\"></div>}\n </div>\n );\n }\n}"],"mappings":"sFAAA,MAAMA,EAAe,swBACrB,MAAAC,EAAeD,E,MCOFE,EAAS,MALtB,WAAAC,CAAAC,G,UAQUC,KAAAC,SAAoB,MAEpBD,KAAAE,QAAkB,SAClBF,KAAAG,OAAiB,C,CAEzB,YAAAC,GACEJ,KAAKK,gBAAkBC,MAAMN,KAAKG,SAAWH,KAAKG,OAAS,GAAK,MAAQH,KAAKG,M,CAG/E,iBAAAI,GACEP,KAAKI,eACLI,EAAe,gB,CAGjB,mBAAAC,GACET,KAAKI,c,CAGP,MAAAM,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAiBZ,KAAKa,UAAWC,MAAM,wBACrCd,KAAKE,UAAY,UAClBS,EAAA,OAAAC,IAAA,2CAAKE,MAAO,qBAAqBd,KAAKC,SAAW,WAAa,MAC3DU,EAAA,OAAAC,IAAA,2CAAKE,MAAM,mBACRd,KAAKK,iBAGVL,KAAKE,UAAY,OAASS,EAAA,OAAAC,IAAA,2CAAKE,MAAM,iB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s,g as h}from"./p-b7a462e5.js";import{t as e}from"./p-6ecb6a6f.js";import{c as a}from"./p-e459974a.js";const n=":host{display:inline-block}";const l=n;const o=class{constructor(s){t(this,s);this.ifxOpen=i(this,"ifxOpen",7);this.ifxClose=i(this,"ifxClose",7);this.ifxDropdown=i(this,"ifxDropdown",7);this.placement="bottom-start";this.defaultOpen=false;this.internalIsOpen=false;this.noAppendToBody=false;this.noCloseOnOutsideClick=false;this.noCloseOnMenuClick=false}componentWillLoad(){this.updateSlotContent();this.watchHandlerIsOpen(this.defaultOpen,this.internalIsOpen);e("ifx-dropdown")}watchHandlerIsOpen(t,i){if(t!==i&&t!==this.internalIsOpen){if(t){this.openDropdown()}else{this.closeDropdown()}}}watchHandlerDisabled(t){if(this.trigger){this.trigger.disabled=t}}watchHandlerSlot(){this.updateSlotContent()}updateSlotContent(){this.trigger=this.el.querySelector("ifx-dropdown-trigger-button, ifx-dropdown-trigger");if(this.trigger){this.trigger.disabled=this.disabled;this.trigger.removeEventListener("click",this.triggerClickHandler.bind(this));this.trigger.addEventListener("click",this.triggerClickHandler.bind(this))}if(!this.noAppendToBody){if(this.menu){this.menu.remove()}this.menu=this.el.querySelector("ifx-dropdown-menu");document.body.append(this.menu)}else{this.menu=this.el.querySelector("ifx-dropdown-menu")}this.menu.removeEventListener("click",this.menuClickHandler.bind(this));this.menu.addEventListener("click",this.menuClickHandler.bind(this))}menuClickHandler(){if(!this.noCloseOnMenuClick){this.closeDropdown()}}triggerClickHandler(){if(!this.internalIsOpen){this.openDropdown()}else{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=a(this.el,this.menu,{placement:this.placement});this.ifxOpen.emit()}}handleOutsideClick(t){const i=t.target;if(!this.noCloseOnOutsideClick&&!this.el.contains(i)&&!this.menu.contains(i)){this.closeDropdown()}}render(){return s("div",{key:"5972ba6e8fcae4b914576e4ac6d6c15c2de6149c","aria-label":"dropdown menu",class:"dropdown"},s("slot",{key:"351c44458d0814f70a34b5cf9a76b5ebd4e195e6"}))}get el(){return h(this)}static get watchers(){return{defaultOpen:["watchHandlerIsOpen"],disabled:["watchHandlerDisabled"]}}};o.style=l;export{o as ifx_dropdown};
2
- //# sourceMappingURL=p-db1d53bf.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dropdownCss","IfxDropdownStyle0","Dropdown","constructor","hostRef","this","placement","defaultOpen","internalIsOpen","noAppendToBody","noCloseOnOutsideClick","noCloseOnMenuClick","componentWillLoad","updateSlotContent","watchHandlerIsOpen","trackComponent","newValue","oldValue","openDropdown","closeDropdown","watchHandlerDisabled","trigger","disabled","watchHandlerSlot","el","querySelector","removeEventListener","triggerClickHandler","bind","addEventListener","menu","remove","document","body","append","menuClickHandler","disconnectedCallback","popperInstance","destroy","isOpen","ifxClose","emit","createPopper","ifxOpen","handleOutsideClick","event","target","contains","render","h","key","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}","//dropdown.tsx\nimport { Component, Prop, h, Element, Listen, Method, Watch, State, EventEmitter, Event } from \"@stencil/core\";\nimport { trackComponent } from '../../global/utils/tracking';\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\n // isOpen prop\n @Prop() defaultOpen: boolean = false;\n // internal state for isOpen prop\n @State() internalIsOpen: boolean = false;\n\n // isOpen prop\n @Prop() noAppendToBody: boolean = false;\n\n // Custom events for opening and closing dropdown\n @Event() ifxOpen: EventEmitter;\n @Event() ifxClose: EventEmitter;\n @Event() ifxDropdown: EventEmitter;\n\n // determine if dropdown is disabled\n @Prop() disabled: boolean;\n\n @Prop() noCloseOnOutsideClick: boolean = false;\n @Prop() noCloseOnMenuClick: boolean = false;\n\n // Reference to host element\n @Element() el;\n // Dropdown trigger and menu\n @State() trigger: HTMLElement;\n @State() menu: HTMLElement\n // Popper instance for positioning\n popperInstance: any;\n\n\n\n componentWillLoad() {\n //maybe not needed\n this.updateSlotContent();\n this.watchHandlerIsOpen(this.defaultOpen, this.internalIsOpen);\n trackComponent('ifx-dropdown')\n }\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\n @Listen('slotchange')\n watchHandlerSlot() {\n this.updateSlotContent();\n }\n\n\n\n // handling assignment of trigger and menu\n updateSlotContent() {\n // Get dropdown trigger. name has to start with ifx-dropdown-trigger\n this.trigger = this.el.querySelector('ifx-dropdown-trigger-button, ifx-dropdown-trigger');\n if (this.trigger) {\n (this.trigger as undefined as HTMLIfxDropdownTriggerButtonElement).disabled = this.disabled;\n this.trigger.removeEventListener('click', this.triggerClickHandler.bind(this));\n this.trigger.addEventListener('click', this.triggerClickHandler.bind(this));\n }\n // Remove menu if exists from body\n if (!this.noAppendToBody) {\n if (this.menu) {\n this.menu.remove();\n }\n // Get new menu and add to body\n this.menu = this.el.querySelector('ifx-dropdown-menu');\n\n // event handler for closing dropdown on menu click\n document.body.append(this.menu);\n } else {\n this.menu = this.el.querySelector('ifx-dropdown-menu');\n\n }\n this.menu.removeEventListener('click', this.menuClickHandler.bind(this));\n this.menu.addEventListener('click', this.menuClickHandler.bind(this));\n\n }\n\n menuClickHandler() {\n if (!this.noCloseOnMenuClick) {\n this.closeDropdown();\n }\n }\n\n triggerClickHandler() {\n if (!this.internalIsOpen) {\n this.openDropdown();\n } else {\n this.closeDropdown();\n }\n }\n\n disconnectedCallback() {\n // Destroy popper instance if exists\n if (this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n // Remove menu if exists\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 // sets isOpen prop on trigger and menu\n (this.trigger as unknown as IOpenable).isOpen = false;\n (this.menu as unknown as IOpenable).isOpen = false;\n // Emit close event\n this.ifxClose.emit();\n }\n // Destroy popper instance if exists\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 // sets isOpen prop on trigger and menu\n (this.trigger as unknown as IOpenable).isOpen = true;\n (this.menu as unknown as IOpenable).isOpen = true;\n // Create popper instance for positioning\n this.popperInstance = createPopper(\n this.el,\n this.menu,\n { placement: this.placement });\n\n this.ifxOpen.emit();\n }\n }\n\n //emitted by and listening to it from the dropdown menu right now\n // @Listen('ifxDropdownMenu')\n // handleDropdownMenuEvents(event: CustomEvent) {\n // this.ifxDropdown.emit(event.detail)\n // console.log('Selected item received in higher-level parent:');\n // }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n // Close dropdown if outside click\n if (!this.noCloseOnOutsideClick && !this.el.contains(target) && !this.menu.contains(target)) {\n this.closeDropdown();\n }\n }\n\n render() {\n return (\n <div aria-label='dropdown menu' class='dropdown'>\n <slot />\n </div>\n )\n }\n}"],"mappings":"iIAAA,MAAMA,EAAc,8BACpB,MAAAC,EAAeD,E,MC8BFE,EAAQ,MANrB,WAAAC,CAAAC,G,uHAOUC,KAAAC,UAAuB,eAGvBD,KAAAE,YAAuB,MAEtBF,KAAAG,eAA0B,MAG3BH,KAAAI,eAA0B,MAU1BJ,KAAAK,sBAAiC,MACjCL,KAAAM,mBAA8B,K,CAYtC,iBAAAC,GAEEP,KAAKQ,oBACLR,KAAKS,mBAAmBT,KAAKE,YAAaF,KAAKG,gBAC/CO,EAAe,e,CAMjB,kBAAAD,CAAmBE,EAAmBC,GACpC,GAAID,IAAaC,GAAYD,IAAaX,KAAKG,eAAgB,CAC7D,GAAIQ,EAAU,CACZX,KAAKa,c,KACA,CACLb,KAAKc,e,GAMX,oBAAAC,CAAqBJ,GACnB,GAAIX,KAAKgB,QAAS,CACfhB,KAAKgB,QAA6DC,SAAWN,C,EAMlF,gBAAAO,GACElB,KAAKQ,mB,CAMP,iBAAAA,GAEER,KAAKgB,QAAUhB,KAAKmB,GAAGC,cAAc,qDACrC,GAAIpB,KAAKgB,QAAS,CACfhB,KAAKgB,QAA6DC,SAAWjB,KAAKiB,SACnFjB,KAAKgB,QAAQK,oBAAoB,QAASrB,KAAKsB,oBAAoBC,KAAKvB,OACxEA,KAAKgB,QAAQQ,iBAAiB,QAASxB,KAAKsB,oBAAoBC,KAAKvB,M,CAGvE,IAAKA,KAAKI,eAAgB,CACxB,GAAIJ,KAAKyB,KAAM,CACbzB,KAAKyB,KAAKC,Q,CAGZ1B,KAAKyB,KAAOzB,KAAKmB,GAAGC,cAAc,qBAGlCO,SAASC,KAAKC,OAAO7B,KAAKyB,K,KACrB,CACLzB,KAAKyB,KAAOzB,KAAKmB,GAAGC,cAAc,oB,CAGpCpB,KAAKyB,KAAKJ,oBAAoB,QAASrB,KAAK8B,iBAAiBP,KAAKvB,OAClEA,KAAKyB,KAAKD,iBAAiB,QAASxB,KAAK8B,iBAAiBP,KAAKvB,M,CAIjE,gBAAA8B,GACE,IAAK9B,KAAKM,mBAAoB,CAC5BN,KAAKc,e,EAIT,mBAAAQ,GACE,IAAKtB,KAAKG,eAAgB,CACxBH,KAAKa,c,KACA,CACLb,KAAKc,e,EAIT,oBAAAiB,GAEE,GAAI/B,KAAKgC,eAAgB,CACvBhC,KAAKgC,eAAeC,UACpBjC,KAAKgC,eAAiB,I,CAGxB,GAAIhC,KAAKyB,KAAM,CACbzB,KAAKyB,KAAKC,Q,EAKd,YAAMQ,GACJ,OAAOlC,KAAKG,c,CAId,mBAAMW,GACJ,GAAId,KAAKG,eAAgB,CACvBH,KAAKG,eAAiB,MAErBH,KAAKgB,QAAiCkB,OAAS,MAC/ClC,KAAKyB,KAA8BS,OAAS,MAE7ClC,KAAKmC,SAASC,M,CAGhB,GAAIpC,KAAKgC,eAAgB,CACvBhC,KAAKgC,eAAeC,UACpBjC,KAAKgC,eAAiB,I,EAK1B,kBAAMnB,GACJ,IAAKb,KAAKG,iBAAmBH,KAAKiB,SAAU,CAC1CjB,KAAKG,eAAiB,KAErBH,KAAKgB,QAAiCkB,OAAS,KAC/ClC,KAAKyB,KAA8BS,OAAS,KAE7ClC,KAAKgC,eAAiBK,EACpBrC,KAAKmB,GACLnB,KAAKyB,KACL,CAAExB,UAAWD,KAAKC,YAEpBD,KAAKsC,QAAQF,M,EAYjB,kBAAAG,CAAmBC,GACjB,MAAMC,EAASD,EAAMC,OAErB,IAAKzC,KAAKK,wBAA0BL,KAAKmB,GAAGuB,SAASD,KAAYzC,KAAKyB,KAAKiB,SAASD,GAAS,CAC3FzC,KAAKc,e,EAIT,MAAA6B,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,gBAAgBC,MAAM,YACpCF,EAAA,QAAAC,IAAA,6C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as a,g as r}from"./p-b7a462e5.js";import{t}from"./p-6ecb6a6f.js";const o=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:flex}.breadcrumb{list-style:none;padding:0px;margin:0px;display:flex;flex-direction:row;font-family:var(--ifx-font-family);font-size:0.875rem;align-items:flex-start}';const n=o;const i=class{constructor(a){e(this,a)}componentWillLoad(){t("ifx-breadcrumb")}componentDidLoad(){const e=this.el.shadowRoot.firstChild;this.validateBreadcrumbItemStructure(e)}validateBreadcrumbItemStructure(e){if(!e){console.error("element not found");return}const a=e.querySelector("slot");if(a){const e=a.assignedNodes();for(let a=0;a<e.length;a++){const r=e[a];if(r.nodeName==="IFX-BREADCRUMB-ITEM"){const e=r;const a=e.querySelector("ifx-breadcrumb-item-label");const t=e.querySelector("ifx-dropdown-menu");if(a.hasAttribute("href")&&t){throw new Error("ifx-breadcrumb-item cannot have both a href and a dropdown menu.")}}}}}render(){return a("nav",{key:"3e40c1ae29fd4be9d7f181507c8a7ba272ce4db5","aria-label":"Page navigation breadcrumb"},a("ol",{key:"bf74766901ae98f07ba2bfa4d445ad7d4d5f4f00",class:"breadcrumb"},a("slot",{key:"a1c2ec13b00dd8d9c006f33f6057e353350d4488"})))}get el(){return r(this)}};i.style=n;export{i as ifx_breadcrumb};
2
- //# sourceMappingURL=p-e531d0b1.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["breadcrumbCss","IfxBreadcrumbStyle0","Breadcrumb","componentWillLoad","trackComponent","componentDidLoad","element","this","el","shadowRoot","firstChild","validateBreadcrumbItemStructure","console","error","slot","querySelector","assignedNodes","i","length","node","nodeName","breadcrumbItem","breadcrumbItemLabel","breadcrumbDropdown","hasAttribute","Error","render","h","key","class"],"sources":["src/components/breadcrumb/breadcrumb.scss?tag=ifx-breadcrumb&encapsulation=shadow","src/components/breadcrumb/breadcrumb.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: flex;\n}\n\n.breadcrumb {\n list-style: none;\n padding: 0px;\n margin: 0px;\n display: flex;\n flex-direction: row;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n font-size: tokens.$ifxFontSizeS;\n align-items: flex-start;\n //gap: tokens.$ifxSpace200; //this is where the gap comes from\n\n}\n\n// .separator {\n// color: tokens.$ifxColorEngineering300;\n// margin: 0 16px;\n// }","import { Component, h, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-breadcrumb',\n styleUrl: 'breadcrumb.scss',\n shadow: true\n})\nexport class Breadcrumb {\n @Element() el;\n\n componentWillLoad() { \n trackComponent('ifx-breadcrumb')\n }\n\n componentDidLoad() {\n const element = this.el.shadowRoot.firstChild;\n this.validateBreadcrumbItemStructure(element);\n }\n\n private validateBreadcrumbItemStructure(element: HTMLElement) {\n if (!element) {\n console.error('element not found');\n return;\n }\n \n const slot = element.querySelector('slot');\n if(slot) { \n const assignedNodes = slot.assignedNodes();\n \n for (let i = 0; i < assignedNodes.length; i++) {\n const node = assignedNodes[i];\n if (node.nodeName === 'IFX-BREADCRUMB-ITEM') {\n const breadcrumbItem = node as HTMLIfxBreadcrumbItemElement;\n const breadcrumbItemLabel = breadcrumbItem.querySelector('ifx-breadcrumb-item-label');\n const breadcrumbDropdown = breadcrumbItem.querySelector('ifx-dropdown-menu');\n if (breadcrumbItemLabel.hasAttribute('href') && breadcrumbDropdown) {\n throw new Error('ifx-breadcrumb-item cannot have both a href and a dropdown menu.');\n }\n }\n }\n }\n }\n\n render() {\n return (\n <nav aria-label=\"Page navigation breadcrumb\">\n <ol class=\"breadcrumb\">\n <slot />\n </ol>\n </nav>\n );\n }\n}\n"],"mappings":"iFAAA,MAAMA,EAAgB,mPACtB,MAAAC,EAAeD,E,MCOFE,EAAU,M,yBAGrB,iBAAAC,GACEC,EAAe,iB,CAGjB,gBAAAC,GACE,MAAMC,EAAUC,KAAKC,GAAGC,WAAWC,WACnCH,KAAKI,gCAAgCL,E,CAG/B,+BAAAK,CAAgCL,GACtC,IAAKA,EAAS,CACZM,QAAQC,MAAM,qBACd,M,CAGF,MAAMC,EAAOR,EAAQS,cAAc,QACnC,GAAGD,EAAM,CACP,MAAME,EAAgBF,EAAKE,gBAE3B,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAcE,OAAQD,IAAK,CAC7C,MAAME,EAAOH,EAAcC,GAC3B,GAAIE,EAAKC,WAAa,sBAAuB,CAC3C,MAAMC,EAAiBF,EACvB,MAAMG,EAAsBD,EAAeN,cAAc,6BACzD,MAAMQ,EAAqBF,EAAeN,cAAc,qBACxD,GAAIO,EAAoBE,aAAa,SAAWD,EAAoB,CAClE,MAAM,IAAIE,MAAM,mE,KAO1B,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,wDAAgB,8BACdD,EAAA,MAAAC,IAAA,2CAAIC,MAAM,cACRF,EAAA,QAAAC,IAAA,8C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,g as s}from"./p-b7a462e5.js";import{t as o}from"./p-6ecb6a6f.js";const n=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.ifx-multiselect-container{position:relative;box-sizing:border-box;font-family:var(--ifx-font-family)}.ifx-multiselect-container.small-select{height:36px}.ifx-multiselect-container.medium-select{height:40px}.ifx-multiselect-container:hover{cursor:pointer}.ifx-multiselect-container .ifx-label-wrapper{font-size:1rem;line-height:1.5rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-error-message-wrapper{color:#CD002F;font-size:0.75rem;line-height:1rem;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.ifx-multiselect-container .ifx-multiselect-wrapper{background-color:#FFFFFF;box-sizing:border-box;position:relative;display:flex;align-items:center;border:1px solid #8D8786;border-radius:1px;width:100%;font-weight:400;font-style:normal}.ifx-multiselect-container .ifx-multiselect-wrapper.small-select{height:36px;padding:8px 12px;font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .ifx-multiselect-wrapper.medium-select{height:40px;padding:8px 16px;font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible{outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active){outline:none}.ifx-multiselect-container .ifx-multiselect-wrapper:focus-visible:not(.active):not(:active)::before{content:"";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:50%;left:50%;transform:translate(-50%, -50%);border:2px solid #0A8276;border-radius:2px}.ifx-multiselect-container .ifx-multiselect-wrapper.disabled{background:#EEEDED;color:#575352;border-color:#575352;cursor:default;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ifx-multiselect-container .ifx-multiselect-wrapper.error{border-color:#CD002F}.ifx-multiselect-container .ifx-multiselect-wrapper:hover:not(.focus,:focus){border-color:#575352}.ifx-multiselect-container .ifx-multiselect-wrapper.active{border-color:#0A8276 !important}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-up{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.active .icon-wrapper-down{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-up{display:none}.ifx-multiselect-container .ifx-multiselect-wrapper .icon-wrapper-down{display:flex;align-items:center;justify-content:center;padding-left:8px}.ifx-multiselect-container .ifx-multiselect-wrapper.is-flipped .ifx-multiselect-dropdown-menu{top:auto;bottom:100%}.ifx-multiselect-container .ifx-multiselect-input{flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ifx-multiselect-container .ifx-multiselect-input.placeholder{opacity:0.5}.ifx-multiselect-container .ifx-multiselect-icon-container{margin-left:auto;align-items:center;display:flex}.ifx-multiselect-container .ifx-clear-button{display:flex}.ifx-multiselect-container .ifx-clear-button.hide{display:none}.ifx-multiselect-container .ifx-multiselect-dropdown-menu{position:absolute;top:100%;left:0;width:100%;margin-top:2px;background-color:#fff;box-shadow:0px 6px 9px 0px rgba(29, 29, 29, 0.1);max-height:300px;overflow-y:auto;z-index:1000}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input{position:sticky;top:0;left:0;z-index:1;width:100%;padding:8px 16px;font-size:1rem;line-height:1.5rem;font-style:normal;font-weight:400;box-sizing:border-box;background-color:#FFFFFF;border:none;border-bottom:1px solid #8D8786}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input:focus{outline:none;border:1px solid #0A8276}.ifx-multiselect-container .ifx-multiselect-dropdown-menu .search-input::placeholder{color:#999}.ifx-multiselect-container .option{position:relative;padding:8px 16px;gap:8px;align-items:center;display:flex;font-style:normal;font-weight:400}.ifx-multiselect-container .option.small-select{font-size:0.875rem;line-height:1.25rem}.ifx-multiselect-container .option.medium-select{font-size:1rem;line-height:1.5rem}.ifx-multiselect-container .option:hover{background-color:#EEEDED}.ifx-multiselect-container .option:focus:not(.disabled){background-color:#BFBBBB;outline:none}.ifx-multiselect-container .option.is-highlighted{background-color:#EEEDED}.ifx-multiselect-container .option.sub-option{padding-left:30px;}.ifx-multiselect-container .option.disabled:hover{cursor:default}.ifx-multiselect-container .option label{cursor:inherit}.select-all-wrapper{padding-top:8px}';const l=n;function r(t,i){let e;return function s(...o){const n=()=>{clearTimeout(e);t(...o)};clearTimeout(e);e=setTimeout(n,i)}}const c=class{constructor(e){t(this,e);this.ifxSelect=i(this,"ifxSelect",7);this.ifxOpen=i(this,"ifxOpen",7);if(e.$hostElement$["s-ei"]){this.internals=e.$hostElement$["s-ei"]}else{this.internals=e.$hostElement$.attachInternals();e.$hostElement$["s-ei"]=this.internals}this.batchSize=50;this.size="medium (40px)";this.disabled=false;this.error=false;this.internalError=false;this.errorMessage="Error";this.label="";this.persistentSelectedOptions=[];this.placeholder="";this.dropdownOpen=false;this.currentIndex=0;this.isLoading=false;this.loadedOptions=[];this.filteredOptions=[];this.showSearch=true;this.showSelectAll=true;this.showClearButton=true;this.optionCount=0;this.optionsProcessed=false;this.handleSearch=r((t=>{const i=t.value.toLowerCase();if(i===""){this.filteredOptions=this.loadedOptions}else{this.filteredOptions=this.loadedOptions.filter((t=>{const e=t.label.toLowerCase().includes(i);if(t.children){const s=t.children.some((t=>t.label.toLowerCase().includes(i)));return e||s}return e}))}}),300);this.handleDocumentClick=t=>{const i=t.composedPath();if(!i.includes(this.dropdownElement)){this.dropdownOpen=false;document.removeEventListener("click",this.handleDocumentClick);this.filteredOptions=this.loadedOptions;this.ifxOpen.emit(this.dropdownOpen)}}}updateOptions(){this.loadedOptions=[];this.filteredOptions=[];this.optionCount=0;this.optionsProcessed=false;this.persistentSelectedOptions=[];this.loadInitialOptions()}async loadInitialOptions(){this.isLoading=true;this.internalError=this.error;this.internalErrorMessage=this.errorMessage;this.loadedOptions=await this.fetchOptions(0,this.batchSize);this.isLoading=false}async fetchMoreOptions(){this.isLoading=true;const t=await this.fetchOptions(this.loadedOptions.length,this.batchSize);this.loadedOptions=[...this.loadedOptions,...t];this.isLoading=false}handleScroll(t){const i=t.target;const e=Math.floor((i.scrollHeight-i.clientHeight)/2);if(i.scrollTop>=e){this.fetchMoreOptions()}}async fetchOptions(t,i){let e=[];if(typeof this.options==="string"){try{e=JSON.parse(this.options)}catch(t){console.error("Failed to parse options:",t)}}else if(Array.isArray(this.options)){e=this.options}else{console.error("Unexpected value for options:",this.options)}if(!this.optionsProcessed){this.optionCount=this.countOptions(e);const t=this.collectSelectedOptions(e);const i=t.filter((t=>!this.persistentSelectedOptions.some((i=>i.value==t.value))));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...i];this.optionsProcessed=true}const s=e.slice(t,t+i);return s}collectSelectedOptions(t){let i=[];for(const e of t){if(e.selected){if(e.children&&e.children.length>0){i=i.concat(this.collectLeafOptions(e.children))}else{if(!i.some((t=>t.value===e.value))){i.push(e)}}}else{if(e.children&&e.children.length>0){i=i.concat(this.collectSelectedOptions(e.children))}}}return i}collectLeafOptions(t){let i=[];for(const e of t){if(e.children&&e.children.length>0){i=i.concat(this.collectLeafOptions(e.children))}else{i.push(e)}}return i}countOptions(t){let i=0;for(const e of t){if(e.children&&e.children.length>=0){i+=this.countOptions(e.children)}else{i++}}return i}componentDidLoad(){setTimeout((()=>{this.positionDropdown()}),500)}componentWillLoad(){o("ifx-multiselect");this.loadInitialOptions();this.filteredOptions=[...this.loadedOptions]}updateInternalError(){this.internalError=this.error}updateInternalErrorMessage(){this.internalErrorMessage=this.errorMessage}loadedOptionsChanged(){this.filteredOptions=[...this.loadedOptions]}onSelectionChange(t,i){const e=new FormData;t.forEach((t=>e.append(this.name,t.value)));this.internals.setFormValue(e)}handleOptionClick(t){this.internalError=false;if(!t.selected&&this.isSelectionLimitReached(t)){t.checkboxRef.toggleCheckedState(false);this.internalError=true;this.internalErrorMessage="Please consider the maximum number of items to choose from";return}this.updateSelection(t);this.ifxSelect.emit(this.persistentSelectedOptions)}isSelectionLimitReached(t){let i=t.children?t.children.length:1;return this.maxItemCount&&this.persistentSelectedOptions.length+i>this.maxItemCount&&!this.persistentSelectedOptions.some((i=>i.value===t.value))}updateSelection(t){const i=this.persistentSelectedOptions.some((i=>i.value===t.value));if(t.children&&t.children.length>0){this.handleParentOptionClick(t)}else{this.handleChildOptionClick(t,i)}}async selectAll(){const t=await this.fetchOptions(0,this.optionCount);this.selectAllRecursive(t);this.ifxSelect.emit(this.persistentSelectedOptions)}selectAllRecursive(t){for(const i of t){if(i.children&&i.children.length>0){this.selectAllRecursive(i.children)}else{if(!this.persistentSelectedOptions.some((t=>t.value===i.value))){i.selected=true;this.persistentSelectedOptions=[...this.persistentSelectedOptions,i];this.optionCount=this.countOptions(this.persistentSelectedOptions)}}}}handleParentOptionClick(t){const i=t.children.every((t=>this.persistentSelectedOptions.some((i=>i.value===t.value))));if(i){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((i=>!t.children.some((t=>t.value===i.value))))];t.selected=false;t.children.forEach((t=>{t.selected=false}))}else{const i=[...t.children.filter((t=>!this.persistentSelectedOptions.some((i=>i.value===t.value))))];t.selected=true;t.children.forEach((t=>{t.selected=true}));this.persistentSelectedOptions=[...this.persistentSelectedOptions,...i]}}handleChildOptionClick(t,i){if(i){this.persistentSelectedOptions=[...this.persistentSelectedOptions.filter((i=>i.value!==t.value))];t.selected=false}else{this.persistentSelectedOptions=[...this.persistentSelectedOptions,t];t.selected=true}this.updateParentSelectedState()}updateParentSelectedState(){this.loadedOptions.forEach((t=>{var i;if(((i=t.children)===null||i===void 0?void 0:i.length)>0){if(t.children.every((t=>t.selected===true)))t.selected=true;else{t.selected=false;if(this.isOptionIndeterminate(t)){t.indeterminate=true}else{t.indeterminate=false}}}}))}getSizeClass(){return`${this.size}`==="s"?"small-select":"medium-select"}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen;setTimeout((()=>{if(this.dropdownOpen){document.addEventListener("click",this.handleDocumentClick)}this.ifxOpen.emit(this.dropdownOpen)}),0)}waitForElement(t,i,e=50){let s=0;function o(){requestAnimationFrame((()=>{const n=t();if(n.length>0||s>e){i(n)}else{s++;o()}}))}o()}handleKeyDown(t){if(this.disabled)return;const i=this.dropdownElement.querySelectorAll(".option");switch(t.code){case"Enter":this.toggleDropdown();this.waitForElement((()=>this.dropdownElement.querySelectorAll(".option")),(t=>{this.updateHighlightedOption(t)}));break;case"Space":this.toggleDropdown();this.waitForElement((()=>this.dropdownElement.querySelectorAll(".option")),(t=>{this.updateHighlightedOption(t)}));break;case"ArrowDown":this.handleArrowDown(i);if(this.dropdownOpen){this.updateHighlightedOption(i)}break;case"ArrowUp":this.handleArrowUp(i);if(this.dropdownOpen){this.updateHighlightedOption(i)}break}}handleWrapperClick(t){this.positionDropdown();if(t.currentTarget===t.target){this.toggleDropdown()}}clearSelection(){this.persistentSelectedOptions=[];this.ifxSelect.emit(this.persistentSelectedOptions)}positionDropdown(){var t;const i=(t=this.el.shadowRoot.querySelector(".ifx-multiselect-wrapper"))===null||t===void 0?void 0:t.getBoundingClientRect();const e=window.innerHeight-i.bottom;const s=i.top;if(s>e&&i.height>e||i.bottom>window.innerHeight){this.dropdownFlipped=true}else{this.dropdownFlipped=false}}updateHighlightedOption(t){t.forEach((t=>t.classList.remove("is-highlighted")));if(this.currentIndex>=0&&this.currentIndex<t.length){t[this.currentIndex].classList.add("is-highlighted");t[this.currentIndex].focus()}}handleArrowDown(t){if(this.currentIndex<t.length-1){this.currentIndex++}else{this.currentIndex=0}}handleArrowUp(t){if(this.currentIndex>0){this.currentIndex--}else{this.currentIndex=t.length-1}}handleOptionKeyDown(t,i){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){this.handleOptionClick(i)}}renderOption(t,i){var s;const o=this.isOptionIndeterminate(t);const n=t.children?o||this.isOptionSelected(t):this.persistentSelectedOptions.some((i=>i.value===t.value));const l=!n&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const r=`checkbox-${t.value}-${i}`;return e("div",{class:"option-wrapper"},e("div",{class:`option ${n?"selected":""} ${l?"disabled":""} \n ${this.getSizeClass()}`,"data-value":t.value,onKeyDown:i=>!l&&this.handleOptionKeyDown(i,t),onClick:()=>!l&&this.handleOptionClick(t),tabindex:"0",role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"treeitem":"option"}`},e("ifx-checkbox",{tabIndex:-1,ref:i=>t.checkboxRef=i,id:r,size:"s",checked:o?false:n,indeterminate:o,disabled:l}),e("label",{htmlFor:r,onClick:t=>t.stopPropagation()},t.label)),t.children&&t.children.map(((t,e)=>this.renderSubOption(t,`${i}-${e}`))))}isOptionSelected(t){if(!t.children)return false;return t.children.every((t=>this.persistentSelectedOptions.some((i=>i.value===t.value))))}isOptionIndeterminate(t){if(!t.children)return false;const i=t.children.filter((t=>this.persistentSelectedOptions.some((i=>i.value===t.value)))).length;return i>0&&i<t.children.length}findInOptions(t,i){for(const e of t){if(e.value===i){return e}if(e.children){const t=this.findInOptions(e.children,i);if(t){return t}}}return null}renderSubOption(t,i){var s;const o=this.persistentSelectedOptions.some((i=>i.value===t.value));const n=!o&&this.maxItemCount&&this.persistentSelectedOptions.length>=this.maxItemCount;const l=`checkbox-${t.value}-${i}`;return e("div",{class:`option sub-option ${o?"selected":""} ${this.getSizeClass()} ${n?"disabled":""}`,"data-value":t.value,role:`${((s=t.children)===null||s===void 0?void 0:s.length)>0?"option":"treeitem"}`,onKeyDown:i=>!n&&this.handleOptionKeyDown(i,t),onClick:()=>!n&&this.handleOptionClick(t),tabindex:"0"},e("ifx-checkbox",{tabIndex:-1,ref:i=>t.checkboxRef=i,id:l,size:"s",checked:o,disabled:n}),e("label",{htmlFor:l,onClick:t=>t.stopPropagation()},t.label))}renderSelectAll(){const t=this.persistentSelectedOptions.length===this.optionCount;const i=this.persistentSelectedOptions.length===0;const s=this.optionCount>0&&!i&&!t;const o=this;function n(){if(t){o.clearSelection()}else{o.selectAll()}}function l(t){if(t.key!=="ArrowUp"&&t.key!=="ArrowDown")t.stopPropagation();if(t.key==="Enter"||t.key===" "){n()}}return e("div",{class:"select-all-wrapper"},e("div",{class:`option ${this.getSizeClass()}`,tabindex:"0",onKeyDown:t=>l(t),onClick:n},e("ifx-checkbox",{tabIndex:-1,id:"selectAll",checked:t,indeterminate:s,size:"s"}),e("label",{htmlFor:"selectAll"},"Select all")),e("ifx-dropdown-separator",null))}render(){const t=this.persistentSelectedOptions.filter((t=>{const i=this.persistentSelectedOptions.some((i=>i.children&&i.children.some((i=>i.value===t.value))&&i.selected));return!i})).map((t=>t.label)).join(", ");return e("div",{class:`ifx-multiselect-container`,ref:t=>this.dropdownElement=t},this.label?e("div",{class:"ifx-label-wrapper"},e("span",null,this.label)):null,e("div",{class:`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen?"active":""} \n ${this.dropdownFlipped?"is-flipped":""}\n ${this.internalError?"error":""}\n ${this.disabled?"disabled":""}`,tabindex:"0",onClick:this.disabled?undefined:t=>this.handleWrapperClick(t),onKeyDown:this.disabled?undefined:t=>this.handleKeyDown(t)},e("div",{class:`ifx-multiselect-input \n ${this.persistentSelectedOptions.length===0?"placeholder":""}\n `,onClick:this.disabled?undefined:()=>this.toggleDropdown()},this.persistentSelectedOptions.length>0?t:this.placeholder),this.dropdownOpen&&e("div",{class:"ifx-multiselect-dropdown-menu",onScroll:t=>this.handleScroll(t)},this.showSearch&&e("input",{type:"text",role:"textbox",class:"search-input",onKeyDown:t=>{t.stopPropagation()},onInput:t=>this.handleSearch(t.target),placeholder:"Search..."}),this.showSelectAll&&this.renderSelectAll(),this.filteredOptions.map(((t,i)=>this.renderOption(t,i))),this.isLoading&&e("div",null,"Loading more options...")),e("div",{class:"ifx-multiselect-icon-container"},this.persistentSelectedOptions.length>0&&e("div",{class:`ifx-clear-button ${!this.showClearButton?"hide":""}`,onClick:this.disabled?undefined:()=>this.clearSelection()},e("ifx-icon",{icon:"cRemove16"})),e("div",{class:"icon-wrapper-up",onClick:this.disabled?undefined:()=>this.toggleDropdown()},e("ifx-icon",{key:"icon-up",icon:"chevron-up-16"})),e("div",{class:"icon-wrapper-down",onClick:this.disabled?undefined:()=>this.toggleDropdown()},e("ifx-icon",{key:"icon-down",icon:"chevron-down-16"})))),this.internalError?e("div",{class:"ifx-error-message-wrapper"},e("span",null,this.internalErrorMessage)):null)}static get formAssociated(){return true}get el(){return s(this)}static get watchers(){return{options:["updateOptions"],error:["updateInternalError"],errorMessage:["updateInternalErrorMessage"],loadedOptions:["loadedOptionsChanged"],persistentSelectedOptions:["onSelectionChange"]}}};c.globalZIndex=1e3;c.style=l;export{c as ifx_multiselect};
2
- //# sourceMappingURL=p-ea537283.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["multiselectCss","IfxMultiselectStyle0","debounce","func","wait","timeout","executedFunction","args","later","clearTimeout","setTimeout","Multiselect","constructor","hostRef","this","batchSize","size","disabled","error","internalError","errorMessage","label","persistentSelectedOptions","placeholder","dropdownOpen","currentIndex","isLoading","loadedOptions","filteredOptions","showSearch","showSelectAll","showClearButton","optionCount","optionsProcessed","handleSearch","targetElement","searchTerm","value","toLowerCase","filter","option","matchesSearchTerm","includes","children","childrenMatch","some","child","handleDocumentClick","event","path","composedPath","dropdownElement","document","removeEventListener","ifxOpen","emit","updateOptions","loadInitialOptions","internalErrorMessage","fetchOptions","fetchMoreOptions","moreOptions","length","handleScroll","element","target","halfwayPoint","Math","floor","scrollHeight","clientHeight","scrollTop","startIndex","count","allOptions","options","JSON","parse","err","console","Array","isArray","countOptions","initiallySelected","collectSelectedOptions","initallySelectedNotInState","init","opt","slicedOptions","slice","selectedOptions","selected","concat","collectLeafOptions","existingOption","push","leafOptions","componentDidLoad","positionDropdown","componentWillLoad","trackComponent","updateInternalError","updateInternalErrorMessage","loadedOptionsChanged","onSelectionChange","newValue","_","formData","FormData","forEach","append","name","internals","setFormValue","handleOptionClick","isSelectionLimitReached","checkboxRef","toggleCheckedState","updateSelection","ifxSelect","newOptionsLength","maxItemCount","selectedOption","wasSelected","handleParentOptionClick","handleChildOptionClick","selectAll","selectAllRecursive","allChildrenSelected","every","newChildren","childOption","updateParentSelectedState","_a","isOptionIndeterminate","indeterminate","getSizeClass","toggleDropdown","addEventListener","waitForElement","querySelectorFunc","callback","maxTries","tries","request","requestAnimationFrame","elements","handleKeyDown","querySelectorAll","code","updateHighlightedOption","handleArrowDown","handleArrowUp","handleWrapperClick","currentTarget","clearSelection","wrapperRect","el","shadowRoot","querySelector","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","spaceAbove","top","height","dropdownFlipped","classList","remove","add","focus","handleOptionKeyDown","e","key","stopPropagation","renderOption","index","isIndeterminate","isSelected","isOptionSelected","disableCheckbox","uniqueId","h","class","onKeyDown","onClick","tabindex","role","tabIndex","ref","id","checked","htmlFor","map","childIndex","renderSubOption","persistentOption","selectedChildren","findInOptions","foundInChildren","renderSelectAll","allSelected","noneSelected","that","toggleSelectAll","handleSelectAllKeydown","render","selectedOptionsLabels","isChildSelectedWithParent","parentOption","join","undefined","onScroll","type","onInput","icon","globalZIndex"],"sources":["src/components/select/multi-select/multiselect.scss?tag=ifx-multiselect&encapsulation=shadow","src/components/select/multi-select/multiselect.tsx"],"sourcesContent":["// @import '~choices.js/public/assets/styles/choices.css';\n@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../../global/font.scss\";\n\n.ifx-multiselect-container {\n position: relative;\n box-sizing: border-box;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n &.small-select {\n height: 36px;\n }\n\n &.medium-select {\n height: 40px;\n }\n\n &:hover {\n cursor: pointer;\n }\n\n\n .ifx-label-wrapper {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-error-message-wrapper {\n color: #CD002F;\n font-size: tokens.$ifxFontSizeXs;\n line-height: tokens.$ifxLineHeightXs;\n white-space: pre-wrap;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n\n .ifx-multiselect-wrapper {\n background-color: tokens.$ifxColorBaseWhite;\n box-sizing: border-box;\n position: relative;\n display: flex;\n align-items: center;\n border: 1px solid tokens.$ifxColorEngineering400;\n border-radius: tokens.$ifxBorderRadius12;\n width: 100%;\n font-weight: 400;\n font-style: normal;\n\n\n &.small-select {\n height: 36px;\n padding: 8px 12px;\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n height: 40px;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:focus-visible {\n outline: none;\n }\n\n &:focus-visible:not(.active):not(:active) {\n outline: none;\n\n &::before {\n content: '';\n position: absolute;\n width: calc(100% + 4px);\n height: calc(100% + 4px);\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n border: 2px solid tokens.$ifxColorOcean500;\n border-radius: 2px;\n\n }\n }\n\n &.disabled {\n background: tokens.$ifxColorEngineering200;\n color: #575352;\n border-color: #575352;\n cursor: default;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n &.error {\n border-color: #CD002F;\n }\n\n &:hover:not(.focus, :focus) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &.active {\n border-color: tokens.$ifxColorOcean500 !important; // Active border color\n\n & .icon-wrapper-up {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n & .icon-wrapper-down {\n display: none\n }\n }\n\n\n & .icon-wrapper-up {\n display: none;\n }\n\n & .icon-wrapper-down {\n display: flex;\n align-items: center;\n justify-content: center;\n padding-left: tokens.$ifxSpace100;\n }\n\n &.is-flipped {\n .ifx-multiselect-dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n\n .ifx-multiselect-input {\n flex-grow: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.placeholder {\n opacity: 0.5;\n }\n\n }\n\n\n .ifx-multiselect-icon-container {\n margin-left: auto;\n align-items: center;\n display: flex;\n }\n\n .ifx-clear-button {\n display: flex;\n &.hide { \n display: none;\n }\n }\n\n .ifx-multiselect-dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n width: 100%;\n margin-top: 2px;\n background-color: #fff;\n box-shadow: 0px 6px 9px 0px rgba(29, 29, 29, 0.10);\n max-height: 300px;\n /* Adjust based on your design */\n overflow-y: auto;\n z-index: 1000; \n\n .search-input {\n position: sticky;\n top: 0;\n left: 0;\n z-index: 1;\n width: 100%;\n padding: 8px 16px;\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n font-style: normal;\n font-weight: 400;\n box-sizing: border-box;\n background-color: tokens.$ifxColorBaseWhite;\n border: none;\n border-bottom: 1px solid tokens.$ifxColorEngineering400;\n\n &:focus {\n outline: none;\n border: 1px solid tokens.$ifxColorOcean500;\n }\n\n // Optional: Placeholder style\n &::placeholder {\n color: #999;\n }\n }\n }\n\n .option {\n position: relative;\n padding: 8px 16px;\n gap: 8px;\n align-items: center;\n display: flex;\n font-style: normal;\n font-weight: 400;\n\n &.small-select {\n font-size: tokens.$ifxFontSizeS;\n line-height: tokens.$ifxLineHeightS;\n }\n\n &.medium-select {\n font-size: tokens.$ifxFontSizeM;\n line-height: tokens.$ifxLineHeightM;\n }\n\n &:hover {\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &:focus:not(.disabled) {\n background-color: tokens.$ifxColorEngineering300;\n outline: none;\n }\n\n &.is-highlighted {\n background-color: tokens.$ifxColorEngineering200;\n ;\n }\n\n &.sub-option {\n padding-left: 30px;\n /* or however much indentation you want */\n }\n\n &.disabled {\n &:hover {\n cursor: default;\n }\n }\n\n label {\n cursor: inherit;\n }\n }\n\n\n\n}\n\n.select-all-wrapper {\n padding-top: 8px;\n}","import { Component, Prop, State, Event, EventEmitter, Element, h, Watch, AttachInternals } from '@stencil/core';\nimport { trackComponent } from '../../../global/utils/tracking'; \nimport { Option } from './interfaces';\n\n// Debounce function\nfunction debounce(func, wait) {\n let timeout;\n return function executedFunction(...args) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n};\n\n@Component({\n tag: 'ifx-multiselect',\n styleUrl: 'multiselect.scss',\n shadow: true,\n formAssociated: true\n})\n\n\n\nexport class Multiselect {\n\n @Prop() name: string;\n @Prop() options: any[] | string;\n @Prop() batchSize: number = 50;\n @Prop() size: string = 'medium (40px)';\n @Prop() disabled: boolean = false;\n @Prop() error: boolean = false;\n @State() internalError: boolean = false;\n @Prop() errorMessage: string = \"Error\";\n @State() internalErrorMessage: string;\n @Prop() label: string = \"\";\n @State() persistentSelectedOptions: Option[] = [];\n @Prop() placeholder: string = \"\";\n @State() dropdownOpen = false;\n @State() dropdownFlipped: boolean;\n @Prop() maxItemCount: number;\n static globalZIndex = 1000; // This will be shared among all instances of the component.\n private currentIndex: number = 0; //needed for option selection using keyboard\n @State() isLoading: boolean = false;\n @State() loadedOptions: Option[] = [];\n @State() filteredOptions: Option[] = [];\n @Prop() showSearch: boolean = true;\n @Prop() showSelectAll: boolean = true;\n @Prop() showClearButton: boolean = true;\n @State() optionCount: number = 0; // number of all options (leaves of the tree)\n @State() optionsProcessed: boolean = false; // flag whether options have already been counted, intial selections saved\n\n\n @Event() ifxSelect: EventEmitter;\n @Event() ifxOpen: EventEmitter;\n\n @Element() el: HTMLElement;\n dropdownElement!: HTMLElement;\n\n @AttachInternals() internals: ElementInternals;\n\n\n @Watch('options')\n updateOptions() { \n this.loadedOptions = [];\n this.filteredOptions = [];\n this.optionCount = 0;\n this.optionsProcessed = false;\n this.persistentSelectedOptions = [];\n\n this.loadInitialOptions();\n }\n\n\n async loadInitialOptions() {\n this.isLoading = true;\n this.internalError = this.error;\n this.internalErrorMessage = this.errorMessage;\n // Load the first batch of options (e.g., first 20)\n this.loadedOptions = await this.fetchOptions(0, this.batchSize);\n this.isLoading = false;\n }\n\n async fetchMoreOptions() {\n this.isLoading = true;\n const moreOptions = await this.fetchOptions(this.loadedOptions.length, this.batchSize);\n this.loadedOptions = [...this.loadedOptions, ...moreOptions];\n this.isLoading = false;\n }\n\n\n handleScroll(event: UIEvent) {\n const element = event.target as HTMLElement;\n const halfwayPoint = Math.floor((element.scrollHeight - element.clientHeight) / 2); //loading more options when the user has scrolled halfway through the current list\n\n if (element.scrollTop >= halfwayPoint) {\n this.fetchMoreOptions();\n }\n }\n\n\n\n\n async fetchOptions(startIndex: number, count: number): Promise<Option[]> {\n let allOptions: Option[] = [];\n\n // Parse options if it's a string, or use directly if it's an array\n if (typeof this.options === 'string') {\n try {\n allOptions = JSON.parse(this.options);\n \n } catch (err) {\n console.error('Failed to parse options:', err);\n }\n } else if (Array.isArray(this.options)) {\n allOptions = this.options;\n } else {\n console.error('Unexpected value for options:', this.options);\n }\n\n if (!this.optionsProcessed) {\n this.optionCount = this.countOptions(allOptions);\n const initiallySelected = this.collectSelectedOptions(allOptions);\n const initallySelectedNotInState = initiallySelected.filter(init => !this.persistentSelectedOptions.some(opt => opt.value == init.value));\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...initallySelectedNotInState];\n this.optionsProcessed = true;\n }\n // Slice the options array based on startIndex and count\n const slicedOptions = allOptions.slice(startIndex, startIndex + count);\n return slicedOptions;\n }\n\n /**\n * Collects and returns all options that are selected.\n * When the parent is selected, then the value of the children will be overriden with selected as well.\n * It will only collect the leaves of the tree.\n * \n * @param options A list of options.\n * @returns A list with all selected options\n */\n private collectSelectedOptions(options: Option[]): Option[] {\n let selectedOptions: Option[] = [];\n \n for (const option of options) {\n if (option.selected) {\n if (option.children && option.children.length > 0) {\n // if parent is selected, then select all child options\n selectedOptions = selectedOptions.concat(this.collectLeafOptions(option.children));\n } else {\n if (!selectedOptions.some(existingOption => existingOption.value === option.value)) {\n selectedOptions.push(option);\n }\n }\n } else {\n if (option.children && option.children.length > 0) {\n selectedOptions = selectedOptions.concat(this.collectSelectedOptions(option.children));\n }\n }\n }\n\n return selectedOptions;\n }\n\n /**\n * Collects all leaf children options.\n * \n * @param option A list with all leaf-children.\n */\n private collectLeafOptions(children: Option[]): Option[] {\n let leafOptions = [];\n \n for (const child of children) {\n if (child.children && child.children.length > 0) {\n leafOptions = leafOptions.concat(this.collectLeafOptions(child.children));\n } else {\n leafOptions.push(child);\n }\n } \n return leafOptions;\n }\n\n /**\n * Count the number of options. Only counts the leaves of the options tree.\n */\n countOptions(options: Option[]): number {\n let count = 0;\n for (const option of options) {\n if (option.children && option.children.length >= 0) {\n count += this.countOptions(option.children);\n } else {\n count++;\n }\n }\n return count;\n }\n\n\n handleSearch = debounce((targetElement: HTMLInputElement) => {\n const searchTerm = targetElement.value.toLowerCase();\n if (searchTerm === '') {\n this.filteredOptions = this.loadedOptions;\n } else {\n this.filteredOptions = this.loadedOptions.filter(option => {\n const matchesSearchTerm = option.label.toLowerCase().includes(searchTerm);\n if (option.children) {\n const childrenMatch = option.children.some(child => {\n return child.label.toLowerCase().includes(searchTerm);\n });\n return matchesSearchTerm || childrenMatch;\n }\n return matchesSearchTerm;\n });\n }\n }, 300);\n\n componentDidLoad() {\n setTimeout(() => {\n this.positionDropdown();\n }, 500);\n\n // setInterval(this.handleScroll, 5000); // Runs every 5 seconds (5000 milliseconds)\n }\n\n componentWillLoad() {\n trackComponent('ifx-multiselect')\n this.loadInitialOptions();\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('error')\n updateInternalError() {\n this.internalError = this.error;\n }\n\n @Watch('errorMessage')\n updateInternalErrorMessage() {\n this.internalErrorMessage = this.errorMessage;\n }\n\n @Watch('loadedOptions')\n loadedOptionsChanged() {\n this.filteredOptions = [...this.loadedOptions];\n }\n\n @Watch('persistentSelectedOptions')\n onSelectionChange(newValue: Option[], _: Option[]) {\n const formData = new FormData();\n newValue.forEach(option => formData.append(this.name, option.value));\n this.internals.setFormValue(formData);\n }\n\n handleOptionClick(option: Option) {\n this.internalError = false;\n\n if (!option.selected && this.isSelectionLimitReached(option)) {\n option.checkboxRef.toggleCheckedState(false)\n this.internalError = true;\n this.internalErrorMessage = \"Please consider the maximum number of items to choose from\";\n return;\n }\n \n this.updateSelection(option);\n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n\n isSelectionLimitReached(option: Option): boolean {\n let newOptionsLength = option.children ? option.children.length : 1;\n return this.maxItemCount && this.persistentSelectedOptions.length + newOptionsLength > this.maxItemCount &&\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value)\n }\n\n updateSelection(option: Option) {\n const wasSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n\n if (option.children && option.children.length > 0) {\n this.handleParentOptionClick(option);\n } else {\n this.handleChildOptionClick(option, wasSelected);\n }\n }\n\n async selectAll() {\n const allOptions = await this.fetchOptions(0, this.optionCount);\n this.selectAllRecursive(allOptions);\n \n this.ifxSelect.emit(this.persistentSelectedOptions);\n }\n\n private selectAllRecursive(options: Option[]) {\n for (const opt of options) {\n if (opt.children && opt.children.length > 0) {\n this.selectAllRecursive(opt.children);\n } else {\n if (!this.persistentSelectedOptions.some((some) => some.value === opt.value )) {\n opt.selected = true;\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, opt];\n this.optionCount = this.countOptions( this.persistentSelectedOptions)\n }\n }\n }\n\n }\n\n handleParentOptionClick(option: Option) {\n const allChildrenSelected = option.children.every(child =>\n this.persistentSelectedOptions.some(selectedOption => selectedOption.value === child.value)\n );\n\n if (allChildrenSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(\n selectedOption => !option.children.some(child => child.value === selectedOption.value)\n )];\n\n option.selected = false;\n option.children.forEach(child => {\n child.selected = false;\n })\n\n } else {\n const newChildren = [...option.children.filter(childOption =>\n !this.persistentSelectedOptions.some(selectedOption => selectedOption.value === childOption.value)\n )];\n option.selected = true;\n option.children.forEach(child => {\n child.selected = true;\n })\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, ...newChildren];\n }\n }\n\n handleChildOptionClick(option: Option, wasSelected: boolean) {\n if (wasSelected) {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions.filter(selectedOption => selectedOption.value !== option.value)];\n option.selected = false;\n } else {\n this.persistentSelectedOptions = [...this.persistentSelectedOptions, option];\n option.selected = true;\n }\n this.updateParentSelectedState();\n }\n\n updateParentSelectedState() {\n this.loadedOptions.forEach(option => {\n if(option.children?.length > 0) {\n if(option.children.every(child => child.selected === true)) option.selected = true;\n else {\n option.selected = false;\n if(this.isOptionIndeterminate(option)) {\n option.indeterminate = true;\n }else{\n option.indeterminate = false;\n }\n }\n }\n });\n }\n\n\n\n handleDocumentClick = (event: Event) => {\n const path = event.composedPath();\n if (!path.includes(this.dropdownElement)) {\n this.dropdownOpen = false;\n document.removeEventListener('click', this.handleDocumentClick);\n this.filteredOptions = this.loadedOptions;\n // Dispatch the ifxMultiselectIsOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }\n }\n\n getSizeClass() {\n return `${this.size}` === \"s\"\n ? \"small-select\"\n : \"medium-select\";\n }\n\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n setTimeout(() => {\n if (this.dropdownOpen) {\n document.addEventListener('click', this.handleDocumentClick);\n }\n // Dispatch the ifxOpen event\n this.ifxOpen.emit(this.dropdownOpen);\n }, 0);\n }\n\n\n waitForElement(querySelectorFunc: Function, callback: Function, maxTries = 50) {\n let tries = 0;\n function request() {\n requestAnimationFrame(() => {\n const elements = querySelectorFunc();\n if (elements.length > 0 || tries > maxTries) {\n callback(elements);\n } else {\n tries++;\n request();\n }\n });\n }\n request();\n }\n\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return; // If it's disabled, don't do anything.\n\n const options = this.dropdownElement.querySelectorAll('.option');\n \n switch (event.code) {\n case 'Enter':\n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'Space': \n this.toggleDropdown();\n // Wait a bit for the dropdown to finish rendering\n this.waitForElement(() => {\n return this.dropdownElement.querySelectorAll('.option');\n }, (options) => {\n this.updateHighlightedOption(options);\n });\n break;\n case 'ArrowDown':\n this.handleArrowDown(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n case 'ArrowUp':\n this.handleArrowUp(options);\n if (this.dropdownOpen) {\n this.updateHighlightedOption(options);\n }\n break;\n }\n }\n\n handleWrapperClick(event: MouseEvent) {\n // This is your existing logic for positioning the dropdown\n this.positionDropdown();\n\n // Check if the event target is the wrapper itself and not a child element.\n if (event.currentTarget === event.target) {\n this.toggleDropdown();\n }\n }\n\n clearSelection() {\n this.persistentSelectedOptions = [];\n this.ifxSelect.emit(this.persistentSelectedOptions); // if you want to emit empty selection after clearing\n }\n\n positionDropdown() {\n const wrapperRect = this.el.shadowRoot.querySelector('.ifx-multiselect-wrapper')?.getBoundingClientRect();\n const spaceBelow = window.innerHeight - wrapperRect.bottom;\n const spaceAbove = wrapperRect.top;\n\n // If there's more space above than below the trigger and the dropdown doesn't fit below\n if ((spaceAbove > spaceBelow && wrapperRect.height > spaceBelow) || (wrapperRect.bottom > window.innerHeight)) {\n this.dropdownFlipped = true;\n } else {\n this.dropdownFlipped = false;\n }\n }\n\n\n\n // Helper function to update highlighted option based on currentIndex\n private updateHighlightedOption(options: NodeList) {\n // Clear all highlights\n options.forEach((option: Element) => option.classList.remove('is-highlighted'));\n\n // Apply highlight to the current option\n if (this.currentIndex >= 0 && this.currentIndex < options.length) {\n (options[this.currentIndex] as Element).classList.add('is-highlighted');\n (options[this.currentIndex] as HTMLElement).focus();\n }\n }\n\n // Helper function to handle arrow down navigation\n private handleArrowDown(options: NodeList) {\n if (this.currentIndex < options.length - 1) {\n this.currentIndex++;\n } else {\n this.currentIndex = 0; // Wrap to the beginning.\n }\n }\n\n // Helper function to handle arrow up navigation\n private handleArrowUp(options: NodeList) {\n if (this.currentIndex > 0) {\n this.currentIndex--;\n } else {\n this.currentIndex = options.length - 1; // Wrap to the end.\n }\n }\n \n handleOptionKeyDown(e: KeyboardEvent, option: Option) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n this.handleOptionClick(option);\n }\n }\n\n renderOption(option: Option, index: number) {\n const isIndeterminate = this.isOptionIndeterminate(option);\n const isSelected = option.children ? isIndeterminate || this.isOptionSelected(option) : this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`; // Generate a unique ID using the index\n \n return (\n <div class=\"option-wrapper\">\n <div class={`option ${isSelected ? 'selected' : ''} ${disableCheckbox ? 'disabled' : ''} \n ${this.getSizeClass()}`}\n data-value={option.value}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\"\n role={`${option.children?.length > 0 ? \"treeitem\" : \"option\"}`}>\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isIndeterminate ? false : isSelected} indeterminate={isIndeterminate} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n {option.children && option.children.map((child, childIndex) => this.renderSubOption(child, `${index}-${childIndex}`))}\n </div>\n );\n }\n\n isOptionSelected(option: Option): boolean {\n if (!option.children) return false;\n\n return option.children.every(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n );\n }\n\n\n isOptionIndeterminate(option: Option): boolean {\n if (!option.children) return false;\n\n const selectedChildren = option.children.filter(child =>\n this.persistentSelectedOptions.some(persistentOption => persistentOption.value === child.value)\n ).length;\n\n return selectedChildren > 0 && selectedChildren < option.children.length;\n }\n\n\n findInOptions(options: Option[], searchTerm: string): Option | null {\n for (const option of options) {\n if (option.value === searchTerm) {\n return option;\n }\n if (option.children) {\n const foundInChildren = this.findInOptions(option.children, searchTerm);\n if (foundInChildren) {\n return foundInChildren;\n }\n }\n }\n return null;\n }\n\n\n renderSubOption(option: Option, index: string) {\n const isSelected = this.persistentSelectedOptions.some(selectedOption => selectedOption.value === option.value);\n const disableCheckbox = !isSelected && this.maxItemCount && this.persistentSelectedOptions.length >= this.maxItemCount;\n const uniqueId = `checkbox-${option.value}-${index}`;\n\n return (\n <div class={`option sub-option ${isSelected ? 'selected' : ''} ${this.getSizeClass()} ${disableCheckbox ? 'disabled' : ''}`}\n data-value={option.value}\n role={`${option.children?.length > 0 ? \"option\" : \"treeitem\"}`}\n onKeyDown={(e) => !disableCheckbox && this.handleOptionKeyDown(e, option)}\n onClick={() => !disableCheckbox && this.handleOptionClick(option)}\n tabindex=\"0\">\n <ifx-checkbox tabIndex={-1} ref={(el) => option.checkboxRef = el} id={uniqueId} size=\"s\" checked={isSelected} disabled={disableCheckbox}></ifx-checkbox>\n <label htmlFor={uniqueId} onClick={(e) => e.stopPropagation()}>{option.label}</label>\n </div>\n );\n }\n\n private renderSelectAll() {\n const allSelected = this.persistentSelectedOptions.length === this.optionCount;\n const noneSelected = this.persistentSelectedOptions.length === 0;\n const indeterminate = this.optionCount > 0 && !noneSelected && !allSelected;\n\n const that = this;\n function toggleSelectAll() {\n if (allSelected) {\n that.clearSelection();\n } else {\n that.selectAll();\n }\n }\n\n function handleSelectAllKeydown(e: KeyboardEvent) {\n if(e.key !== 'ArrowUp' && e.key !== 'ArrowDown') e.stopPropagation();\n if(e.key === 'Enter' || e.key === ' ') {\n toggleSelectAll();\n }\n }\n\n return <div class=\"select-all-wrapper\">\n <div class={`option ${this.getSizeClass()}`} tabindex='0' onKeyDown={(e) => handleSelectAllKeydown(e)} onClick={toggleSelectAll}>\n <ifx-checkbox tabIndex={-1} id='selectAll' checked={allSelected} indeterminate={indeterminate} size=\"s\"></ifx-checkbox>\n <label htmlFor='selectAll'>Select all</label>\n </div>\n <ifx-dropdown-separator></ifx-dropdown-separator>\n </div>;\n }\n\n\n render() {\n // Create a label for the selected options\n const selectedOptionsLabels = this.persistentSelectedOptions\n .filter(option => {\n // check if option is a child and its parent is selected\n const isChildSelectedWithParent = this.persistentSelectedOptions.some(parentOption =>\n parentOption.children &&\n parentOption.children.some(child => child.value === option.value) &&\n parentOption.selected\n );\n return !isChildSelectedWithParent;\n })\n .map(option => option.label)\n .join(', ');\n\n return (\n <div class={`ifx-multiselect-container`} ref={el => this.dropdownElement = el as HTMLElement}>\n {\n this.label ?\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div> : null\n }\n <div class={`ifx-multiselect-wrapper \n ${this.getSizeClass()} \n ${this.dropdownOpen ? 'active' : ''} \n ${this.dropdownFlipped ? 'is-flipped' : ''}\n ${this.internalError ? 'error' : \"\"}\n ${this.disabled ? 'disabled' : \"\"}`}\n tabindex=\"0\"\n onClick={this.disabled ? undefined : (event) => this.handleWrapperClick(event)}\n onKeyDown={this.disabled ? undefined : (event) => this.handleKeyDown(event)} >\n <div class={`ifx-multiselect-input \n ${this.persistentSelectedOptions.length === 0 ? 'placeholder' : \"\"}\n `}\n onClick={this.disabled ? undefined : () => this.toggleDropdown()}\n >\n {this.persistentSelectedOptions.length > 0 ? selectedOptionsLabels : this.placeholder}\n </div>\n {this.dropdownOpen && (\n <div class=\"ifx-multiselect-dropdown-menu\"\n onScroll={(event) => this.handleScroll(event)}>\n {this.showSearch && <input type=\"text\" role=\"textbox\" class=\"search-input\" onKeyDown={(e) => { e.stopPropagation() }} onInput={(event) => this.handleSearch(event.target)} placeholder=\"Search...\"></input>}\n {this.showSelectAll && this.renderSelectAll()}\n {this.filteredOptions.map((option, index) => this.renderOption(option, index))}\n {this.isLoading && <div>Loading more options...</div>}\n </div>\n )}\n <div class='ifx-multiselect-icon-container'>\n\n {/* Clear Button - will show only if there's a selection */}\n {this.persistentSelectedOptions.length > 0 && ( \n <div class={`ifx-clear-button ${!this.showClearButton ? 'hide' : ''}`} onClick={this.disabled ? undefined : () => this.clearSelection()}>\n <ifx-icon icon=\"cRemove16\"></ifx-icon>\n </div>\n )}\n <div class=\"icon-wrapper-up\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-up'\n icon='chevron-up-16'></ifx-icon>\n </div>\n <div class=\"icon-wrapper-down\" onClick={this.disabled ? undefined : () => this.toggleDropdown()}>\n <ifx-icon\n key='icon-down'\n icon='chevron-down-16'></ifx-icon>\n </div>\n </div>\n\n </div>\n {\n this.internalError ?\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.internalErrorMessage}</span>\n </div> : null\n }\n </div>\n );\n }\n\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as i,h as o,a as t}from"./p-b7a462e5.js";import{t as f}from"./p-6ecb6a6f.js";const n=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.ifx-notification__wrapper{display:flex;flex-direction:row;align-items:center;padding:8px 16px;background-color:#FFFFFF;font-family:var(--ifx-font-family);color:#1D1D1D;border:1px solid #EEEDED}.ifx-notification__wrapper.ifx-notification__wrapper--success{border-left:4px solid #4CA460}.ifx-notification__wrapper.ifx-notification__wrapper--success .ifx-notification__icon{color:#4CA460}.ifx-notification__wrapper.ifx-notification__wrapper--locked{border-left:4px solid #E16B25}.ifx-notification__wrapper.ifx-notification__wrapper--locked .ifx-notification__icon{color:#E16B25}.ifx-notification__wrapper.ifx-notification__wrapper--error{border-left:4px solid #CD002F}.ifx-notification__wrapper.ifx-notification__wrapper--error .ifx-notification__icon{color:#CD002F}.ifx-notification__wrapper.ifx-notification__wrapper--neutral{border-left:4px solid #0A8276}.ifx-notification__wrapper.ifx-notification__wrapper--neutral .ifx-notification__icon{color:#0A8276}.ifx-notification__wrapper .ifx-notification__icon{margin-right:8px;display:flex;align-self:center}.ifx-notification__wrapper .ifx-notification__body{display:flex;flex-direction:row;flex-grow:1;font-size:0.875rem}.ifx-notification__wrapper .ifx-notification__body .ifx-notification__slot{flex-grow:1;display:inline-flex;align-items:center}.ifx-notification__wrapper .ifx-notification__link{font-size:0.875rem}@media (max-width: 576px){.ifx-notification__wrapper .ifx-notification__icon{align-self:flex-start}.ifx-notification__wrapper .ifx-notification__body{flex-direction:column}.ifx-notification__wrapper .ifx-notification__link{margin-top:8px}}';const e=n;const a=class{constructor(o){i(this,o);this.variant="success";this.linkTarget="_blank"}componentWillLoad(){f("ifx-notification")}getClassName(){switch(this.variant){case"success":return"ifx-notification__wrapper--success";case"locked":return"ifx-notification__wrapper--locked";case"error":return"ifx-notification__wrapper--error";case"neutral":return"ifx-notification__wrapper--neutral";default:return"ifx-notification__wrapper--success"}}render(){return o(t,{key:"e9031e1641a115ff3c23b9bba59d20f82e43e187"},o("div",{key:"6e4e3d196b0f224c46221e09bd8a955dc00c00c6",class:"ifx-notification__wrapper "+this.getClassName()},o("div",{key:"84ca7f2e0bdb3e95ce080743069860ecc8db77b8",class:"ifx-notification__icon"},o("ifx-icon",{key:"66fe9f6f1730398db15db5c5212b16572b7e4d91",icon:this.icon})),o("div",{key:"c39e3c9f4050552937a0b1cafbed54089909b908",class:"ifx-notification__body"},o("div",{key:"58b9cfe0b0e03f6e1186d5f6676b8cb2574daf44",class:"ifx-notification__slot"},o("slot",{key:"eaea2d61beb01dba6a270b3e1faecfe03ec37d5f"})),this.linkText&&this.linkHref&&o("div",{key:"aa1941c875065c257257f539b2cb7c6dadad632f",class:"ifx-notification__link"},o("ifx-link",{key:"8fb78c246fbc7b8db3b143e1c046543beb7983f8",href:this.linkHref,target:this.linkTarget},this.linkText,o("ifx-icon",{key:"1fee547e5476e9bc3140985fc957181fe877441b",icon:"arrow-right-16"}))))))}};a.style=e;export{a as ifx_notification};
2
- //# sourceMappingURL=p-eae13f8c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["notificationCss","IfxNotificationStyle0","Notification","constructor","hostRef","this","variant","linkTarget","componentWillLoad","trackComponent","getClassName","render","h","Host","key","class","icon","linkText","linkHref","href","target"],"sources":["src/components/notification/notification.scss?tag=ifx-notification&encapsulation=shadow","src/components/notification/notification.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n.ifx-notification__wrapper {\n display: flex;\n flex-direction: row;\n align-items: center;\n\n padding: tokens.$ifxSpace100 tokens.$ifxSpace200;\n\n background-color: tokens.$ifxColorBaseWhite;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n color: tokens.$ifxColorBaseBlack;\n\n border: tokens.$ifxBorderWidth12 solid tokens.$ifxColorEngineering200;\n\n &.ifx-notification__wrapper--success {\n border-left: tokens.$ifxBorderWidth50 solid tokens.$ifxColorGreen500;\n\n & .ifx-notification__icon {\n color: tokens.$ifxColorGreen500;\n }\n }\n\n &.ifx-notification__wrapper--locked {\n border-left: tokens.$ifxBorderWidth50 solid tokens.$ifxColorOrange500;\n\n & .ifx-notification__icon {\n color: tokens.$ifxColorOrange500;\n }\n }\n\n &.ifx-notification__wrapper--error {\n border-left: tokens.$ifxBorderWidth50 solid tokens.$ifxColorRed500;\n\n & .ifx-notification__icon {\n color: tokens.$ifxColorRed500;\n }\n }\n\n &.ifx-notification__wrapper--neutral{\n border-left: tokens.$ifxBorderWidth50 solid tokens.$ifxColorOcean500;\n\n & .ifx-notification__icon {\n color: tokens.$ifxColorOcean500;\n }\n }\n\n & .ifx-notification__icon {\n margin-right: tokens.$ifxSpace100;\n display: flex;\n align-self: center;\n }\n\n & .ifx-notification__body {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n font-size: tokens.$ifxFontSizeS;\n\n & .ifx-notification__slot {\n flex-grow: 1;\n display: inline-flex;\n align-items: center;\n }\n }\n\n & .ifx-notification__link {\n font-size: tokens.$ifxFontSizeS;\n }\n\n @media (max-width: tokens.$ifxBreakpointXs) {\n & .ifx-notification__icon {\n align-self: flex-start;\n }\n\n & .ifx-notification__body {\n flex-direction: column;\n }\n\n & .ifx-notification__link {\n margin-top: tokens.$ifxSpace100;\n }\n }\n}","import { Component, h, Host, Prop } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n \nexport type NotificationVariant = 'success' | 'locked' | 'error' | 'neutral';\n\n@Component({\n tag: 'ifx-notification',\n styleUrl: 'notification.scss',\n shadow: true\n})\nexport class Notification {\n @Prop() icon: string;\n @Prop() variant: NotificationVariant = 'success';\n @Prop() linkText: string; \n @Prop() linkHref: string;\n @Prop() linkTarget: string = '_blank';\n\n componentWillLoad() { \n trackComponent('ifx-notification')\n }\n\n private getClassName(): string {\n switch (this.variant) {\n case 'success':\n return 'ifx-notification__wrapper--success';\n case 'locked':\n return 'ifx-notification__wrapper--locked';\n case 'error':\n return 'ifx-notification__wrapper--error';\n case 'neutral':\n return 'ifx-notification__wrapper--neutral';\n default:\n return 'ifx-notification__wrapper--success';\n }\n }\n\n render() {\n return (\n <Host>\n <div class={\"ifx-notification__wrapper \" + this.getClassName()}>\n <div class=\"ifx-notification__icon\">\n <ifx-icon icon={this.icon}></ifx-icon>\n </div>\n <div class=\"ifx-notification__body\">\n <div class=\"ifx-notification__slot\">\n <slot/>\n </div>\n { this.linkText && this.linkHref && \n <div class=\"ifx-notification__link\">\n <ifx-link href={this.linkHref} target={this.linkTarget}>\n {this.linkText}<ifx-icon icon=\"arrow-right-16\">\n </ifx-icon>\n </ifx-link>\n </div>\n }\n </div>\n </div>\n </Host>\n );\n }\n}"],"mappings":"sFAAA,MAAMA,EAAkB,ooDACxB,MAAAC,EAAeD,E,MCSFE,EAAY,MALzB,WAAAC,CAAAC,G,UAOUC,KAAAC,QAA+B,UAG/BD,KAAAE,WAAqB,Q,CAE7B,iBAAAC,GACEC,EAAe,mB,CAGT,YAAAC,GACN,OAAQL,KAAKC,SACX,IAAK,UACH,MAAO,qCACT,IAAK,SACH,MAAO,oCACT,IAAK,QACH,MAAO,mCACT,IAAK,UACH,MAAO,qCACT,QACE,MAAO,qC,CAIb,MAAAK,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAO,6BAA+BV,KAAKK,gBAC9CE,EAAA,OAAAE,IAAA,2CAAKC,MAAM,0BACTH,EAAA,YAAAE,IAAA,2CAAUE,KAAMX,KAAKW,QAEvBJ,EAAA,OAAAE,IAAA,2CAAKC,MAAM,0BACTH,EAAA,OAAAE,IAAA,2CAAKC,MAAM,0BACTH,EAAA,QAAAE,IAAA,8CAEAT,KAAKY,UAAYZ,KAAKa,UACxBN,EAAA,OAAAE,IAAA,2CAAKC,MAAM,0BACTH,EAAA,YAAAE,IAAA,2CAAUK,KAAMd,KAAKa,SAAUE,OAAQf,KAAKE,YACzCF,KAAKY,SAASL,EAAA,YAAAE,IAAA,2CAAUE,KAAK,uB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as i}from"./p-b7a462e5.js";import{t}from"./p-6ecb6a6f.js";import{c as n}from"./p-5cdc6210.js";const l=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-flex}.link{display:inline-flex;align-items:center;font-weight:400;font-size:1rem;text-decoration:none;color:#0A8276;gap:8px;line-height:1.6;font-family:var(--ifx-font-family)}.link:hover{cursor:pointer}.link:focus{outline-width:2px;outline-style:solid;outline-color:#0A8276;outline-offset:4px;border-radius:3px}.link.bold{font-weight:600}.link.bold:hover{text-decoration:underline}.link.bold:active{color:#08665C;font-style:normal;font-weight:600;text-decoration:underline}.link.underlined{text-decoration:underline;text-decoration-color:#0A8276;color:#1D1D1D;text-underline-offset:8px}.link.underlined:hover{color:#0A8276}.link.underlined:active{color:#0A8276}.link.underlined:disabled,.link.underlined.disabled{text-decoration-color:#BFBBBB}.link.title{text-decoration:none;font-weight:600;color:#1D1D1D}.link.title:hover{color:#0A8276}.link.title:active{color:#08665C}.link.menu{font-weight:400;font-style:normal;line-height:26px;color:#1D1D1D}.link.menu:hover{color:#0A8276}.link.menu:active{color:#08665C}.link.small{font-size:0.875rem}.link.medium{font-size:1rem}.link.large{font-size:1.125rem}.link.extraLarge{font-size:1.25rem}.link.underline{text-decoration:underline}.link:disabled,.link.disabled{color:#BFBBBB;cursor:default;pointer-events:none}';const o=l;const r=class{constructor(i){e(this,i);this.href=undefined;this.target="_self";this.variant="bold";this.disabled=false;this.internalHref="";this.internalTarget="";this.internalVariant=""}setInternalStates(){if(this.href){this.internalHref=this.href.trim()}else{this.internalHref=undefined}this.internalTarget=this.target.trim();this.internalVariant=this.variant.trim().toLowerCase()}componentWillRender(){this.setInternalStates()}handleKeyDown(e){if(this.disabled){e.preventDefault()}else if(e.key==="Enter"){e.preventDefault()}}componentWillLoad(){t("ifx-link")}render(){return i("a",{key:"f4d92f6db4e493012426ee9f166abf4ec4936b1b",role:"link","aria-label":this.ariaLabel,"aria-disabled":this.disabled||!this.internalHref,href:this.disabled?undefined:this.internalHref,download:this.download,target:this.internalTarget,class:this.linkClassNames()},i("slot",{key:"4a1504a55f658cebc4be7866146dc5992f49f30a"}))}getSizeClass(){const e=this.size==="s"?"small":null;const i=this.size==="m"?"medium":null;const t=this.size==="l"?"large":null;const n=this.size==="xl"?"extraLarge":null;if(e){return e}else if(i){return i}else if(t){return t}else if(n&&this.internalVariant==="underlined"){return"large"}else if(n&&this.internalVariant!=="underlined"){return n}else return""}getVariantClass(){const e=this.internalVariant==="bold"?"bold":null;const i=this.internalVariant==="title"?"title":null;const t=this.internalVariant==="underlined"?"underlined":null;const n=this.internalVariant==="menu"?"menu":null;if(e){return e}else if(i){return i}else if(t){return t}else if(n){return n}else return e}linkClassNames(){return n("link","primary",this.getVariantClass(),this.getSizeClass(),this.disabled?"disabled":"")}};r.style=o;export{r as ifx_link};
2
- //# sourceMappingURL=p-f3e01216.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["linkCss","IfxLinkStyle0","Link","constructor","hostRef","this","href","undefined","target","variant","disabled","internalHref","internalTarget","internalVariant","setInternalStates","trim","toLowerCase","componentWillRender","handleKeyDown","event","preventDefault","key","componentWillLoad","trackComponent","render","h","role","ariaLabel","download","class","linkClassNames","getSizeClass","small","size","medium","large","extraLarge","getVariantClass","bold","title","underlined","menu","classNames"],"sources":["src/components/link/link.scss?tag=ifx-link&encapsulation=shadow","src/components/link/link.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.link {\n display: inline-flex;\n align-items: center;\n font-weight: 400;\n font-size: tokens.$ifxFontSizeM;\n text-decoration: none;\n color: tokens.$ifxColorOcean500;\n gap: tokens.$ifxSpace100;\n line-height: 1.6;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n &:hover { \n cursor: pointer;\n }\n\n &:focus {\n outline-width: 2px;\n outline-style: solid;\n outline-color: #0A8276;\n outline-offset: 4px;\n border-radius: 3px;\n }\n\n &.bold {\n font-weight: tokens.$ifxFontWeightSemibold;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:active {\n color: #08665C;\n font-style: normal;\n font-weight: 600;\n text-decoration: underline;\n }\n\n }\n\n &.underlined {\n text-decoration: underline;\n text-decoration-color: tokens.$ifxColorOcean500;\n color: #1D1D1D;\n text-underline-offset: 8px;\n \n &:hover {\n color: tokens.$ifxColorOcean500;;\n }\n \n &:active {\n color: #0A8276;\n }\n\n &:disabled,\n &.disabled {\n text-decoration-color: tokens.$ifxColorEngineering300;\n }\n }\n\n &.title {\n text-decoration: none;\n font-weight: tokens.$ifxFontWeightSemibold;\n color: #1D1D1D;\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active {\n color: #08665C;\n }\n }\n\n &.menu {\n font-weight: 400;\n font-style: normal;\n line-height: 26px;\n color: #1D1D1D;\n\n &:hover {\n color: tokens.$ifxColorOcean500;\n }\n\n &:active {\n color: #08665C;\n }\n }\n\n &.small {\n font-size: tokens.$ifxFontSizeS;\n }\n\n &.medium {\n font-size: tokens.$ifxFontSizeM;\n }\n\n &.large {\n font-size: tokens.$ifxFontSizeL;\n }\n\n &.extraLarge {\n font-size: tokens.$ifxFontSizeXl;\n }\n\n &.underline {\n text-decoration: underline;\n }\n\n &:disabled,\n &.disabled {\n color: tokens.$ifxColorEngineering300;\n cursor: default;\n pointer-events: none;\n }\n\n}","import { Component, Prop, h, State } from \"@stencil/core\";\nimport { trackComponent } from '../../global/utils/tracking';\nimport classNames from 'classnames';\n \n@Component({\n tag: 'ifx-link',\n styleUrl: 'link.scss',\n shadow: true\n})\n\nexport class Link {\n @Prop() href: string = undefined;\n @Prop() target: string = '_self';\n @Prop() variant: string = 'bold';\n @Prop() size: string;\n @Prop() disabled: boolean = false;\n @Prop() download: string;\n @Prop() ariaLabel: string | null;\n @State() internalHref: string ='';\n @State() internalTarget: string = '';\n @State() internalVariant: string = '';\n\n setInternalStates() {\n if(this.href){\n this.internalHref = this.href.trim();\n }else{\n this.internalHref = undefined;\n }\n this.internalTarget = this.target.trim();\n this.internalVariant = this.variant.trim().toLowerCase();\n }\n\n componentWillRender(){\n this.setInternalStates();\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) {\n event.preventDefault();\n } else if (event.key === 'Enter') {\n event.preventDefault();\n }\n }\n\n componentWillLoad() { \n trackComponent('ifx-link')\n }\n\n render() {\n return (\n <a\n role=\"link\"\n aria-label={this.ariaLabel}\n aria-disabled={this.disabled || !this.internalHref}\n href={this.disabled ? undefined : this.internalHref}\n download={this.download}\n target={this.internalTarget}\n class={this.linkClassNames()}>\n <slot></slot>\n </a>)\n }\n\n getSizeClass() {\n const small = this.size === 's' ? 'small' : null;\n const medium = this.size === 'm' ? 'medium' : null;\n const large = this.size === 'l' ? 'large' : null;\n const extraLarge = this.size === 'xl' ? 'extraLarge' : null;\n\n if (small) {\n return small;\n } else if (medium) {\n return medium;\n } else if (large) {\n return large;\n } else if (extraLarge && this.internalVariant === 'underlined') {\n return 'large';\n } else if (extraLarge && this.internalVariant !== 'underlined') {\n return extraLarge;\n } else return \"\";\n }\n\n getVariantClass() {\n const bold = this.internalVariant === 'bold' ? 'bold' : null;\n const title = this.internalVariant === 'title' ? 'title' : null;\n const underlined = this.internalVariant === 'underlined' ? 'underlined' : null;\n const menu = this.internalVariant === 'menu' ? 'menu' : null;\n\n if (bold) {\n return bold\n } else if (title) {\n return title;\n } else if (underlined) {\n return underlined;\n } else if (menu) {\n return menu;\n } else return bold;\n }\n\n linkClassNames() {\n return classNames(\n 'link',\n 'primary',\n this.getVariantClass(),\n this.getSizeClass(),\n this.disabled ? 'disabled' : '',\n );\n }\n}"],"mappings":"8GAAA,MAAMA,EAAU,6zCAChB,MAAAC,EAAeD,E,MCSFE,EAAI,MANjB,WAAAC,CAAAC,G,UAOUC,KAAAC,KAAeC,UACfF,KAAAG,OAAiB,QACjBH,KAAAI,QAAkB,OAElBJ,KAAAK,SAAoB,MAGnBL,KAAAM,aAAsB,GACtBN,KAAAO,eAAyB,GACzBP,KAAAQ,gBAA0B,E,CAEnC,iBAAAC,GACE,GAAGT,KAAKC,KAAK,CACXD,KAAKM,aAAeN,KAAKC,KAAKS,M,KAC3B,CACHV,KAAKM,aAAeJ,S,CAEtBF,KAAKO,eAAiBP,KAAKG,OAAOO,OAClCV,KAAKQ,gBAAkBR,KAAKI,QAAQM,OAAOC,a,CAG7C,mBAAAC,GACEZ,KAAKS,mB,CAGP,aAAAI,CAAcC,GACZ,GAAId,KAAKK,SAAU,CACjBS,EAAMC,gB,MACD,GAAID,EAAME,MAAQ,QAAS,CAChCF,EAAMC,gB,EAIV,iBAAAE,GACEC,EAAe,W,CAGjB,MAAAC,GACE,OACEC,EAAA,KAAAJ,IAAA,2CACEK,KAAK,OAAM,aACCrB,KAAKsB,UAAS,gBACXtB,KAAKK,WAAaL,KAAKM,aACtCL,KAAMD,KAAKK,SAAWH,UAAYF,KAAKM,aACvCiB,SAAUvB,KAAKuB,SACfpB,OAAQH,KAAKO,eACbiB,MAAOxB,KAAKyB,kBACZL,EAAA,QAAAJ,IAAA,6C,CAIN,YAAAU,GACE,MAAMC,EAAQ3B,KAAK4B,OAAS,IAAM,QAAU,KAC5C,MAAMC,EAAS7B,KAAK4B,OAAS,IAAM,SAAW,KAC9C,MAAME,EAAQ9B,KAAK4B,OAAS,IAAM,QAAU,KAC5C,MAAMG,EAAa/B,KAAK4B,OAAS,KAAO,aAAe,KAEvD,GAAID,EAAO,CACT,OAAOA,C,MACF,GAAIE,EAAQ,CACjB,OAAOA,C,MACF,GAAIC,EAAO,CAChB,OAAOA,C,MACF,GAAIC,GAAc/B,KAAKQ,kBAAoB,aAAc,CAC9D,MAAO,O,MACF,GAAIuB,GAAc/B,KAAKQ,kBAAoB,aAAc,CAC9D,OAAOuB,C,MACF,MAAO,E,CAGhB,eAAAC,GACE,MAAMC,EAAOjC,KAAKQ,kBAAoB,OAAS,OAAS,KACxD,MAAM0B,EAAQlC,KAAKQ,kBAAoB,QAAU,QAAU,KAC3D,MAAM2B,EAAanC,KAAKQ,kBAAoB,aAAe,aAAe,KAC1E,MAAM4B,EAAOpC,KAAKQ,kBAAoB,OAAS,OAAS,KAExD,GAAIyB,EAAM,CACR,OAAOA,C,MACF,GAAIC,EAAO,CAChB,OAAOA,C,MACF,GAAIC,EAAY,CACrB,OAAOA,C,MACF,GAAIC,EAAM,CACf,OAAOA,C,MACF,OAAOH,C,CAGhB,cAAAR,GACE,OAAOY,EACL,OACA,UACArC,KAAKgC,kBACLhC,KAAK0B,eACL1B,KAAKK,SAAW,WAAa,G","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as s,g as i}from"./p-b7a462e5.js";import{t as r}from"./p-6ecb6a6f.js";const a=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}.stepper{display:flex;align-items:center}.stepper.compact{align-items:center;gap:8px}.stepper.compact.compact-right{flex-direction:row-reverse;text-align:left}.stepper.compact .stepper-wrapper{width:unset;flex-direction:column}.stepper.vertical{height:100%}.stepper.vertical .stepper-wrapper{flex-direction:column;width:unset;height:100%}.stepper-wrapper{display:flex;flex-direction:row;width:100%}.stepper-wrapper ::slotted(*){display:flex;flex:1;justify-content:flex-start}.stepper-progress{display:flex;justify-content:center;align-items:center;font:600 0.875rem/1.25rem "Source Sans 3";min-width:56px;height:56px;border-radius:9999px;background:conic-gradient(#0A8276 var(--pb, 0%), #8D8786 0)}.stepper-progress .progress-detail{display:flex;justify-content:center;align-items:center;text-align:center;width:48px;height:48px;border-radius:9999px;background:white}';const p=a;const c=class{constructor(s){t(this,s);this.ifxChange=e(this,"ifxChange",7);this.activeStep=1;this.indicatorPosition="left";this.showStepNumber=false;this.variant="default";this.shouldEmitEvent=true;this.emittedByClick=false}onStepChange(t){const e=this.getSteps();const s=e[t.detail.previousActiveStep-1];if(s&&!s.complete){s.setAttribute("error","true")}}handleActiveStep(t,e){const s=this.getSteps();if(!this.shouldEmitEvent){this.shouldEmitEvent=true;return}if(s[t-1]){if(!s[t-1].disabled){this.emitIfxChange(t,e)}else{if(t<e){let i=t;this.shouldEmitEvent=false;while(i>=1&&s[i-1].disabled)i--;if(i<1){this.activeStep=e}else{this.emitIfxChange(i,e);this.activeStep=i}}else{let i=t;this.shouldEmitEvent=false;while(i<=this.stepsCount&&s[i-1].disabled)i++;if(i>this.stepsCount){this.activeStep=e}else{this.emitIfxChange(i,e);this.activeStep=i}}}}}emitIfxChange(t,e){this.ifxChange.emit({activeStep:t,previousActiveStep:e,totalSteps:this.stepsCount,emittedByClick:this.emittedByClick});this.emittedByClick=false}getSteps(){const t=this.el.querySelectorAll("ifx-step");return t}addStepIdsToStepsAndCountSteps(){const t=this.getSteps();t[t.length-1].lastStep=true;for(let e=0;e<t.length;e++){t[e].stepId=e+1}this.stepsCount=t.length}setActiveStep(t,e=false){this.emittedByClick=e;this.activeStep=t}setStepsBeforeActiveToComplete(){const t=this.getSteps();t.forEach(((t,e)=>{if(e+1<this.activeStep)t.complete=true}))}syncIfxSteps(){const t=this.getSteps();for(let e=0;e<t.length;e++){const s={activeStep:this.activeStep,indicatorPosition:this.indicatorPosition!=="right"?"left":"right",showStepNumber:this.showStepNumber,variant:this.variant!=="compact"&&this.variant!=="vertical"?"default":this.variant,setActiveStep:this.setActiveStep.bind(this)};t[e].stepperState=s}}setInitialActiveStep(){this.activeStep=Math.max(1,Math.min(this.stepsCount+(this.variant!=="compact"?1:0),this.activeStep))}componentWillLoad(){r("ifx-stepper");this.addStepIdsToStepsAndCountSteps();this.setInitialActiveStep();this.setStepsBeforeActiveToComplete()}componentDidLoad(){this.syncIfxSteps()}componentWillUpdate(){this.syncIfxSteps()}render(){return s("div",{key:"3aa387cbb7d71af5515150dea7a94f33a56522b2","aria-label":"a stepper",role:"navigation",class:`stepper ${this.variant!=="compact"&&this.variant!=="vertical"?"default":this.variant} ${this.variant==="compact"?"compact-"+this.indicatorPosition:""}`},this.variant==="compact"&&s("div",{key:"44d8f0a5c4141f351b13e034582070d5a974e43c",class:"stepper-progress"},s("div",{key:"6aeac4f6af4f249e1ccbc8fc3a0ab96b439571a5",class:"progress-detail"},`${Math.min(this.activeStep,this.stepsCount)} of ${this.stepsCount}`)),s("div",{key:"3f265f8064e70ee3fc33083e9750fc64cd7c7d76",class:`stepper-wrapper`},s("slot",{key:"ca0a81b461b5012533b0ac830ea6943c7909eb45"})))}componentDidRender(){if(this.variant=="compact"){const t=this.el.shadowRoot.querySelector(".stepper-progress");t.style.setProperty("--pb",`${this.activeStep/this.stepsCount*100}%`)}}get el(){return i(this)}static get watchers(){return{activeStep:["handleActiveStep"]}}};c.style=p;export{c as ifx_stepper};
2
- //# sourceMappingURL=p-f4a7e01f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stepperCss","IfxStepperStyle0","Stepper","constructor","hostRef","this","activeStep","indicatorPosition","showStepNumber","variant","shouldEmitEvent","emittedByClick","onStepChange","event","steps","getSteps","previousActiveStep","detail","complete","setAttribute","handleActiveStep","newStep","oldStep","disabled","emitIfxChange","i","stepsCount","ifxChange","emit","totalSteps","el","querySelectorAll","addStepIdsToStepsAndCountSteps","length","lastStep","stepId","setActiveStep","setByClick","setStepsBeforeActiveToComplete","forEach","step","syncIfxSteps","stepperState","bind","setInitialActiveStep","Math","max","min","componentWillLoad","trackComponent","componentDidLoad","componentWillUpdate","render","h","key","role","class","componentDidRender","progressBar","shadowRoot","querySelector","style","setProperty"],"sources":["src/components/stepper/stepper.scss?tag=ifx-stepper&encapsulation=shadow","src/components/stepper/stepper.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n.stepper {\n display: flex;\n align-items: center;\n \n &.compact {\n align-items: center;\n gap: 8px;\n \n &.compact-right {\n flex-direction: row-reverse;\n text-align: left;\n }\n \n .stepper-wrapper{\n width: unset;\n flex-direction: column;\n }\n }\n\n &.vertical {\n height: 100%;\n\n .stepper-wrapper {\n flex-direction: column;\n width: unset;\n height: 100%;\n }\n }\n}\n\n.stepper-wrapper {\n display: flex;\n flex-direction: row;\n width: 100%;\n}\n\n.stepper-wrapper ::slotted(*){\n display: flex;\n flex: 1;\n justify-content: flex-start;\n}\n\n.stepper-progress {\n display: flex;\n justify-content: center;\n align-items: center;\n font: tokens.$ifxBodyBodySemibold04;\n min-width: tokens.$ifxSize700;\n height: tokens.$ifxSize700;\n border-radius: tokens.$ifxBorderRadiusRound;\n background: conic-gradient(tokens.$ifxColorOcean500 var(--pb, 0%), tokens.$ifxColorEngineering400 0);\n \n .progress-detail {\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n width: (tokens.$ifxSize700)-(tokens.$ifxSize100);\n height: (tokens.$ifxSize700)-(tokens.$ifxSize100);\n border-radius: tokens.$ifxBorderRadiusRound;\n background: white;\n }\n}\n\n","import { h, \n Component, \n Element, \n Event, \n EventEmitter, \n Listen, \n Prop, \n State, \n Watch } from \"@stencil/core\";\nimport { StepperState } from \"./interfaces\";\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-stepper',\n styleUrl: 'stepper.scss',\n shadow: true\n})\n\nexport class Stepper {\n @Element() el: HTMLElement;\n\n @Event() ifxChange: EventEmitter;\n\n @Prop({ mutable: true }) activeStep: number = 1;\n @Prop() indicatorPosition?: 'left' | 'right' = 'left';\n @Prop() showStepNumber?: boolean = false;\n @Prop() variant?: 'default' | 'compact' | 'vertical' = 'default';\n\n\n @State() stepsCount: number;\n @State() shouldEmitEvent: boolean = true;\n @State() emittedByClick: boolean = false;\n\n @Listen('ifxChange') \n onStepChange(event: CustomEvent) {\n const steps = this.getSteps();\n const previousActiveStep = steps[event.detail.previousActiveStep-1];\n if (previousActiveStep && !previousActiveStep.complete) {\n previousActiveStep.setAttribute('error', 'true');\n }\n } \n\n @Watch('activeStep')\n handleActiveStep(newStep: number, oldStep: number) {\n const steps = this.getSteps();\n if (!this.shouldEmitEvent) {\n this.shouldEmitEvent = true;\n return;\n }\n // Skipping until the enabled step is found \n if(steps[newStep-1]) { \n if (!steps[newStep-1].disabled) {\n this.emitIfxChange(newStep, oldStep);\n } else {\n // If coming from higher step number to the lower step number\n if (newStep < oldStep) {\n let i = newStep;\n this.shouldEmitEvent = false;\n while (i >= 1 && steps[i-1].disabled) i--;\n // if all the steps are disabled no change.\n if (i < 1) {\n this.activeStep = oldStep;\n } else {\n this.emitIfxChange(i, oldStep);\n this.activeStep = i;\n }\n } \n // If coming from lower step number to the higher step number\n else {\n let i = newStep;\n this.shouldEmitEvent = false;\n while (i <= this.stepsCount && steps[i-1].disabled) i++;\n if (i > this.stepsCount) {\n this.activeStep = oldStep;\n } else {\n this.emitIfxChange(i, oldStep);\n this.activeStep = i;\n }\n }\n }\n }\n }\n \n emitIfxChange(activeStep: number, previousActiveStep: number) {\n this.ifxChange.emit({activeStep: activeStep, \n previousActiveStep: previousActiveStep, \n totalSteps: this.stepsCount,\n emittedByClick: this.emittedByClick\n });\n this.emittedByClick = false;\n }\n\n getSteps() {\n const steps: NodeListOf<HTMLIfxStepElement> = this.el.querySelectorAll('ifx-step');\n return steps;\n }\n\n\n addStepIdsToStepsAndCountSteps() {\n const steps = this.getSteps()\n steps[steps.length - 1].lastStep = true;\n for (let i = 0; i < steps.length; i++) {\n steps[i].stepId = i + 1;\n }\n this.stepsCount = steps.length;\n }\n\n\n setActiveStep(stepId: number, setByClick: boolean = false) {\n this.emittedByClick = setByClick;\n this.activeStep = stepId;\n }\n\n setStepsBeforeActiveToComplete() {\n const steps = this.getSteps();\n steps.forEach( (step, stepId) => {\n if (stepId+1 < this.activeStep) step.complete = true;\n });\n }\n\n syncIfxSteps() {\n const steps = this.getSteps()\n for (let i = 0; i < steps.length; i++) {\n const stepperState: StepperState = { \n activeStep: this.activeStep,\n indicatorPosition: (this.indicatorPosition !== 'right' ? 'left' : 'right'), \n showStepNumber: this.showStepNumber, \n variant: ((this.variant !== 'compact' && this.variant !== 'vertical') ? 'default' : this.variant), \n setActiveStep: this.setActiveStep.bind(this)\n };\n steps[i].stepperState = stepperState;\n }\n }\n\n setInitialActiveStep() {\n this.activeStep = Math.max(1, Math.min(this.stepsCount + (this.variant !== 'compact' ? 1 : 0), this.activeStep));\n }\n\n\n componentWillLoad() {\n trackComponent('ifx-stepper')\n this.addStepIdsToStepsAndCountSteps();\n this.setInitialActiveStep();\n this.setStepsBeforeActiveToComplete();\n }\n \n componentDidLoad() {\n this.syncIfxSteps();\n }\n\n componentWillUpdate() {\n this.syncIfxSteps();\n }\n\n render() {\n return (\n <div aria-label = 'a stepper' \n role = 'navigation' \n class = {`stepper ${(this.variant !== 'compact' && this.variant !== 'vertical') ? 'default' : this.variant} ${this.variant === 'compact' ? 'compact-'+this.indicatorPosition: ''}`}>\n {\n /* Progress bar for compact variant. */\n (this.variant === 'compact') && \n <div class = 'stepper-progress'>\n <div class = 'progress-detail'>\n {`${Math.min(this.activeStep, this.stepsCount)} of ${this.stepsCount}`}\n </div>\n </div>\n }\n \n {/* Slot for ifx-steps. */}\n <div class = {`stepper-wrapper`}>\n <slot />\n </div>\n </div>\n );\n };\n\n componentDidRender() {\n /* Updating progress bar in compact version. */\n if (this.variant == 'compact') {\n const progressBar: HTMLElement = this.el.shadowRoot.querySelector('.stepper-progress');\n progressBar.style.setProperty('--pb', `${(this.activeStep / (this.stepsCount)) * 100}%`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as a,a as r,g as d}from"./p-b7a462e5.js";import{t as o}from"./p-6ecb6a6f.js";const i=':root{--ifx-font-family:"Source Sans 3", "Arial, sans-serif"}:host{display:inline-flex}.card{position:relative;display:inline-flex;flex-direction:column;word-wrap:break-word;background-color:#FFFFFF;background-clip:border-box;border:1px solid #EEEDED;border-radius:1px;width:350px;height:auto;font-family:var(--ifx-font-family)}.card:has(.card-href:focus),.card:has(.card-href:hover){outline:none;border-color:#0A8276}.card:has(.card-href:focus) ::slotted(ifx-card-headline),.card:has(.card-href:hover) ::slotted(ifx-card-headline){color:#0A8276}.card.noBtns .vertical .lower__body-wrapper{padding-bottom:24px}.card.noBtns .horizontal .lower__body-wrapper{padding-bottom:24px}.card .horizontal{display:flex;flex-direction:row;min-height:218px}.card .horizontal .card-img{flex:1;text-decoration:none}.card .horizontal .card-img.noImage{display:none}.card .horizontal .card-img ::slotted([slot=img]){width:100%;vertical-align:bottom}.card .horizontal .lower__body-wrapper{flex:1;display:grid;grid-template-rows:1fr auto}.card .horizontal .lower__body-wrapper .upper-body{display:flex;flex-direction:column;text-decoration:none;color:#1D1D1D;padding:24px 24px 0px 24px}.card .vertical .upper__body-wrapper{text-decoration:none;color:#1D1D1D}.card .vertical .upper__body-wrapper .card-img{height:190px}.card .vertical .upper__body-wrapper .card-img.noImage{display:none}.card .vertical .upper__body-wrapper .upper-body{padding:24px 24px 0px 24px}.card .vertical .lower__body-wrapper:hover{border-color:#EEEDED}.card.horizontal{flex-direction:row;width:538px}.card.horizontal .card-img{flex:1;order:2}.card.horizontal .card-img ::slotted([slot=img]){width:100%;height:100%;vertical-align:bottom;object-fit:cover}.card.horizontal.left .horizontal .card-img{order:1}.card.horizontal.left .horizontal .lower__body-wrapper{order:2}.card .card-href:focus{outline:none}';const t=i;const c=class{constructor(a){e(this,a);this.direction="vertical";this.href="";this.internalHref="";this.target="_self"}setImgPosition(e){this.alignment=e.detail}handleComponentAdjustment(){const e=this.el.querySelector("ifx-card-image");const a=this.el.querySelector("ifx-card-links");if(!e){this.noImg=true}else this.noImg=false;if(!a){this.noBtns=true}else this.noBtns=false;if(this.href.trim()===""){this.internalHref=undefined}else this.internalHref=this.href}handleClassList(e,a,r){e.classList[a](r)}componentWillLoad(){this.handleComponentAdjustment();o("ifx-card")}componentWillUpdate(){this.handleComponentAdjustment()}render(){return a(r,{key:"2c16a8728f0d14178457961deedff070e0d5688a"},a("div",{key:"ad9d31f713d5a7e419eab8f1ca9ea414280cfdfb","aria-label":this.ariaLabel,class:`card \n ${this.noBtns?"noBtns":""}\n ${this.direction} \n ${this.alignment}`,role:"region"},this.direction==="horizontal"&&a("div",{key:"7ed1f25458ee0cec1d2adc6102fe79eda6d8b0d6",class:"horizontal"},a("a",{key:"657d4cd382561bd4a553c07c28ef3e1013aba79d",class:`card-img ${this.noImg?"noImage":""} ${this.internalHref?"card-href":""}`,href:this.internalHref},a("slot",{key:"22e8396b740804ebfd43770f0aed1f0a8b9f92df",name:"img"})),a("div",{key:"acc569468ec35e21b12262a1b42f1070a17e8590",class:"lower__body-wrapper"},a("a",{key:"3d994f6ac708b78e8c41464d6e52860c4ffa1641",class:`upper-body ${this.internalHref?"card-href":""}`,href:this.internalHref},a("slot",{key:"0f18e9c94fa52a6b90494e5c5b4f99327d6fde7a"})),a("div",{key:"bdde8114209d6bbd5b5a9dab7c2de438b71f0af3"},a("slot",{key:"88d3d36dbd9118f8e347ce2e69195cf6ef6ef14c",name:"buttons"})))),this.direction==="vertical"&&a("div",{key:"c87b40bb78eadf8725093b58c153d851716cc435",class:"vertical"},a("a",{key:"3bdd1de9fa7a5a54c0acc760540871d97a345da2",class:`upper__body-wrapper ${this.internalHref?"card-href":""}`,href:this.internalHref,target:this.target},a("div",{key:"dc3c5cb047ff29b077db05f32f9405d896ec0f25",class:`card-img ${this.noImg?"noImage":""}`},a("slot",{key:"cf228d23b1891c20f084a3974870febe82af2e2f",name:"img"})),a("div",{key:"daf504a8e2905448f4ede9b06c04198b8ab1e379",class:"upper-body"},a("slot",{key:"971ebd1a052f464ff9a661d7255c83f33b4b1bf0"}))),a("div",{key:"f8cecdcd629f2e9485cfcd923649d853f22a01a0",class:"lower__body-wrapper"},a("slot",{key:"aea1c6c078a784a175a502cb45fff17449e45a99",name:"buttons"})))))}get el(){return d(this)}};c.style=t;export{c as ifx_card};
2
- //# sourceMappingURL=p-f5a3ef41.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["cardCss","IfxCardStyle0","Card","constructor","hostRef","this","direction","href","internalHref","target","setImgPosition","event","alignment","detail","handleComponentAdjustment","image","el","querySelector","links","noImg","noBtns","trim","undefined","handleClassList","type","className","classList","componentWillLoad","trackComponent","componentWillUpdate","render","h","Host","key","ariaLabel","class","role","name"],"sources":["src/components/card/card.scss?tag=ifx-card&encapsulation=shadow","src/components/card/card.tsx"],"sourcesContent":["@use \"~@infineon/design-system-tokens/dist/tokens\";\n@use \"../../global/font.scss\";\n\n:host {\n display: inline-flex;\n}\n\n.card {\n position: relative;\n display: inline-flex;\n flex-direction: column;\n word-wrap: break-word;\n background-color: tokens.$ifxColorBaseWhite;\n background-clip: border-box;\n border: 1px solid tokens.$ifxColorEngineering200;\n border-radius: 1px;\n //width: 22rem;\n width: 350px;\n height: auto;\n font-family: var(--ifx-font-family); // tokens.$ifxFontFamilyBody;\n\n\n\n // when the link is focused or hovered, the border color changes\n &:has(.card-href:focus), &:has(.card-href:hover) {\n outline: none;\n border-color: tokens.$ifxColorOcean500;\n\n ::slotted(ifx-card-headline) {\n color: tokens.$ifxColorOcean500;\n }\n }\n\n &.noBtns {\n & .vertical {\n & .lower__body-wrapper {\n padding-bottom: 24px;\n }\n }\n\n & .horizontal {\n & .lower__body-wrapper {\n padding-bottom: 24px;\n }\n }\n }\n\n & .horizontal {\n display: flex;\n flex-direction: row;\n min-height: 218px;\n\n & .card-img {\n flex: 1;\n text-decoration: none;\n\n &.noImage {\n display: none;\n }\n\n & ::slotted([slot=img]) {\n width: 100%;\n vertical-align: bottom;\n }\n }\n\n & .lower__body-wrapper {\n flex: 1;\n display: grid;\n grid-template-rows: 1fr auto;\n\n & .upper-body {\n display: flex;\n flex-direction: column;\n text-decoration: none;\n color: tokens.$ifxColorBaseBlack;\n padding: 24px 24px 0px 24px;\n }\n }\n }\n\n & .vertical {\n & .upper__body-wrapper {\n text-decoration: none;\n color: tokens.$ifxColorBaseBlack;\n\n & .card-img {\n height: 190px;\n\n &.noImage {\n display: none;\n }\n }\n\n & .upper-body {\n padding: 24px 24px 0px 24px;\n }\n }\n\n & .lower__body-wrapper {\n &:hover {\n border-color: tokens.$ifxColorEngineering200;\n }\n }\n }\n\n &.horizontal {\n flex-direction: row;\n width: 538px;\n\n & .card-img {\n flex: 1;\n order: 2;\n\n & ::slotted([slot=img]) {\n width: 100%;\n height: 100%;\n vertical-align: bottom;\n object-fit: cover;\n }\n }\n\n &.left {\n & .horizontal {\n & .card-img {\n order: 1;\n }\n\n & .lower__body-wrapper {\n order: 2;\n }\n }\n }\n }\n\n & .card-href:focus {\n outline: none;\n }\n}","import { Component, h, Host, Element, Prop, State, Listen } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-card',\n styleUrl: 'card.scss',\n shadow: true,\n})\n\nexport class Card {\n @Element() el;\n @State() noBtns: boolean;\n @Prop() direction: 'horizontal' | 'vertical' = 'vertical';\n @State() alignment: string;\n @State() noImg: boolean;\n @Prop() href: string = \"\";\n @State() internalHref: string = \"\"\n @Prop() target: string = \"_self\";\n @Prop() ariaLabel: string | null;\n\n @Listen('imgPosition')\n setImgPosition(event) {\n this.alignment = event.detail\n }\n\n handleComponentAdjustment() {\n const image = this.el.querySelector('ifx-card-image')\n const links = this.el.querySelector('ifx-card-links')\n\n if (!image) {\n this.noImg = true;\n } else this.noImg = false;\n\n if (!links) {\n this.noBtns = true;\n } else this.noBtns = false;\n\n if (this.href.trim() === \"\") {\n this.internalHref = undefined;\n } else this.internalHref = this.href;\n }\n\n handleClassList(el, type, className) {\n el.classList[type](className)\n }\n\n\n componentWillLoad() {\n this.handleComponentAdjustment()\n trackComponent('ifx-card')\n }\n\n componentWillUpdate() {\n this.handleComponentAdjustment()\n }\n\nrender() {\n return (\n <Host>\n <div aria-label={this.ariaLabel} class={\n `card \n ${this.noBtns ? 'noBtns' : \"\"}\n ${this.direction} \n ${this.alignment}`\n }\n role=\"region\">\n\n {this.direction === 'horizontal' &&\n <div class=\"horizontal\">\n <a class={`card-img ${this.noImg ? 'noImage' : \"\"} ${this.internalHref ? 'card-href' : ''}`} href={this.internalHref}>\n <slot name=\"img\" />\n </a>\n\n <div class='lower__body-wrapper'>\n <a class={`upper-body ${this.internalHref ? 'card-href' : ''}`} href={this.internalHref}>\n <slot />\n </a>\n <div>\n <slot name='buttons' />\n </div>\n </div>\n </div>}\n\n {this.direction === 'vertical' &&\n <div class=\"vertical\">\n <a class={`upper__body-wrapper ${this.internalHref ? 'card-href' : ''}`} href={this.internalHref} target={this.target}>\n <div class={`card-img ${this.noImg ? 'noImage' : \"\"}`}>\n <slot name=\"img\" />\n </div>\n\n <div class='upper-body'>\n <slot />\n </div>\n </a>\n\n <div class='lower__body-wrapper'>\n <slot name='buttons' />\n </div>\n </div>}\n </div>\n </Host>\n );\n }\n}"],"mappings":"6FAAA,MAAMA,EAAU,q0DAChB,MAAAC,EAAeD,E,MCQFE,EAAI,MANjB,WAAAC,CAAAC,G,UASUC,KAAAC,UAAuC,WAGvCD,KAAAE,KAAe,GACdF,KAAAG,aAAuB,GACxBH,KAAAI,OAAiB,O,CAIzB,cAAAC,CAAeC,GACbN,KAAKO,UAAYD,EAAME,M,CAGzB,yBAAAC,GACE,MAAMC,EAAQV,KAAKW,GAAGC,cAAc,kBACpC,MAAMC,EAAQb,KAAKW,GAAGC,cAAc,kBAEpC,IAAKF,EAAO,CACVV,KAAKc,MAAQ,I,MACRd,KAAKc,MAAQ,MAEpB,IAAKD,EAAO,CACVb,KAAKe,OAAS,I,MACTf,KAAKe,OAAS,MAErB,GAAIf,KAAKE,KAAKc,SAAW,GAAI,CAC3BhB,KAAKG,aAAec,S,MACfjB,KAAKG,aAAeH,KAAKE,I,CAGlC,eAAAgB,CAAgBP,EAAIQ,EAAMC,GACxBT,EAAGU,UAAUF,GAAMC,E,CAIrB,iBAAAE,GACEtB,KAAKS,4BACLc,EAAe,W,CAGjB,mBAAAC,GACExB,KAAKS,2B,CAGT,MAAAgB,GACI,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,wDAAiB5B,KAAK6B,UAAWC,MAC/B,oBACE9B,KAAKe,OAAS,SAAW,iBACzBf,KAAKC,yBACLD,KAAKO,YAETwB,KAAK,UAEF/B,KAAKC,YAAc,cAClByB,EAAA,OAAAE,IAAA,2CAAKE,MAAM,cACTJ,EAAA,KAAAE,IAAA,2CAAGE,MAAO,YAAY9B,KAAKc,MAAQ,UAAY,MAAMd,KAAKG,aAAe,YAAc,KAAMD,KAAMF,KAAKG,cACtGuB,EAAA,QAAAE,IAAA,2CAAMI,KAAK,SAGbN,EAAA,OAAAE,IAAA,2CAAKE,MAAM,uBACTJ,EAAA,KAAAE,IAAA,2CAAGE,MAAO,cAAc9B,KAAKG,aAAe,YAAc,KAAMD,KAAMF,KAAKG,cACzEuB,EAAA,QAAAE,IAAA,8CAEFF,EAAA,OAAAE,IAAA,4CACEF,EAAA,QAAAE,IAAA,2CAAMI,KAAK,eAKlBhC,KAAKC,YAAc,YAClByB,EAAA,OAAAE,IAAA,2CAAKE,MAAM,YACTJ,EAAA,KAAAE,IAAA,2CAAGE,MAAO,uBAAuB9B,KAAKG,aAAe,YAAc,KAAMD,KAAMF,KAAKG,aAAcC,OAAQJ,KAAKI,QAC7GsB,EAAA,OAAAE,IAAA,2CAAKE,MAAO,YAAY9B,KAAKc,MAAQ,UAAY,MAC/CY,EAAA,QAAAE,IAAA,2CAAMI,KAAK,SAGbN,EAAA,OAAAE,IAAA,2CAAKE,MAAM,cACTJ,EAAA,QAAAE,IAAA,+CAIJF,EAAA,OAAAE,IAAA,2CAAKE,MAAM,uBACTJ,EAAA,QAAAE,IAAA,2CAAMI,KAAK,e","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,g as r}from"./p-b7a462e5.js";import{t as a}from"./p-6ecb6a6f.js";const s='.date__picker-container{display:flex;flex-direction:column}.date__picker-container .label__wrapper{color:#1D1D1D;font:400 1rem/1.5rem "Source Sans 3"}.date__picker-container .label__wrapper .asterisk{display:none}.date__picker-container .label__wrapper .asterisk.required{display:inline;margin-left:4px}.date__picker-container .label__wrapper .asterisk.required.error{color:#CD002F}.date__picker-container.disabled .label__wrapper{color:#575352}.date__picker-container.error .caption__wrapper{color:#CD002F}.date__picker-container.disabled .caption__wrapper{color:#575352}.date__picker-container .caption__wrapper{margin-top:4px;color:#1D1D1D;font:400 0.75rem/1rem "Source Sans 3"}.date__picker-input{font-family:"Source Sans 3";outline:none;width:100%;cursor:pointer;border-radius:1px;border:1px solid #8D8786;height:100%}.date__picker-input.firefox__classes{padding:8px 16px;color:#8D8786;font-size:16px;text-transform:uppercase;font-style:normal;font-weight:400;line-height:24px;cursor:pointer}.date__picker-input:focus:not(.error,.success){border-color:#0A8276}.date__picker-input:hover:not(:disabled,:focus,.error,.success){border-color:#575352}.date__picker-input:disabled{border-color:#575352;background-color:#EEEDED}.date__picker-input.error{border-color:#CD002F}.date__picker-input.success:not(.error){border-color:#4CA460}.date__picker-input::-webkit-datetime-edit-text{color:#8D8786;font-size:16px;font-style:normal;font-weight:400;line-height:24px}.date__picker-input.has-value::-webkit-datetime-edit-text{color:#1D1D1D}.date__picker-input.has-value::-webkit-datetime-edit{color:#1D1D1D}::-webkit-datetime-edit{color:#8D8786;font-size:16px;text-transform:uppercase;font-style:normal;font-weight:400;line-height:24px}::-webkit-datetime-edit-fields-wrapper{padding:8px 16px;padding-bottom:9px;transform:translateY(1px)}::-webkit-inner-spin-button{display:none}::-webkit-calendar-picker-indicator{position:absolute;right:15px;font-size:19px;cursor:pointer;border-radius:1px}::-webkit-calendar-picker-indicator:focus-within{outline:2px solid #0A8276;outline-offset:2px}.input__wrapper{display:flex;justify-content:space-between;align-items:center;align-self:stretch;background:#FFFFFF;position:relative}.input__wrapper.large{height:40px}.input__wrapper.small{height:36px}.input__wrapper.disabled .icon__wrapper{background-color:#EEEDED}.icon__wrapper{position:absolute;right:17px;padding:2px;display:flex;justify-content:flex-end;align-items:center;pointer-events:none;z-index:100;background-color:#FFFFFF;line-height:16px}.icon__wrapper ifx-icon{vertical-align:middle}';const o=s;const n=class{constructor(i){e(this,i);this.ifxDate=t(this,"ifxDate",7);if(i.$hostElement$["s-ei"]){this.internals=i.$hostElement$["s-ei"]}else{this.internals=i.$hostElement$.attachInternals();i.$hostElement$["s-ei"]=this.internals}this.inputId=`ifx-date-picker-${++c}`;this.size="s";this.error=false;this.success=false;this.disabled=false;this.type="date";this.required=false;this.autocomplete="on"}getDate(e){const t=e.target.value;const i=new Date(t);const r=i.getDate();const a=i.getMonth()+1;const s=i.getFullYear();if(!t){this.internals.setFormValue(null);if(this.type==="datetime-local"){const e=i.getHours();const t=i.getMinutes();this.ifxDate.emit({day:r,month:a,year:s,hours:e,minutes:t})}else{this.ifxDate.emit({day:r,month:a,year:s})}return}const o=this.el.shadowRoot.querySelector(".date__picker-input");o.classList.add("has-value");this.internals.setFormValue(i.toISOString().substring(0,10));if(this.type==="datetime-local"){const e=i.getHours();const t=i.getMinutes();this.ifxDate.emit({day:r,month:a,year:s,hours:e,minutes:t})}else{this.ifxDate.emit({day:r,month:a,year:s})}}handleInputFocusOnIconClick(){const e=this.el.shadowRoot.querySelector(".date__picker-input");if(e){e.focus()}}getBrowser(){if(navigator.userAgent.indexOf("Chrome")!=-1){return"Chrome"}else if(navigator.userAgent.indexOf("Opera")!=-1){return"Opera"}else if(navigator.userAgent.indexOf("MSIE")!=-1){return"IE"}else if(navigator.userAgent.indexOf("Firefox")!=-1){return"Firefox"}else{return"unknown"}}setFireFoxClasses(){const e=this.getBrowser();const t=this.el.shadowRoot.querySelector(".date__picker-input");if(e==="Firefox"){t.classList.add("firefox__classes")}else if(t.classList.contains("firefox__classes")){t.classList.remove("firefox__classes")}}componentDidLoad(){this.setFireFoxClasses()}componentWillUpdate(){if(this.value){this.getDate({target:{value:this.value}})}a("ifx-date-picker")}formResetCallback(){this.internals.setFormValue(null)}render(){var e,t;return i("div",{key:"45e5a70670bc7cc45a2f5c8bec97feeddcc886c6",class:`date__picker-container ${this.error?"error":""} ${this.disabled?"disabled":""}`},i("label",{key:"1f295875b7d284d4d2936f7bba41d0edf171ae64",class:"label__wrapper",htmlFor:this.inputId},(e=this.label)===null||e===void 0?void 0:e.trim(),i("span",{key:"1c053e4d029c60a316f24c0a7257742eb1df121c",class:`asterisk ${this.required?"required":""} ${this.error?"error":""}`},"*")),i("div",{key:"27e74aa7f59e14f7a94ff09add684b20714a4b99",class:`input__wrapper ${this.size==="l"?"large":"small"} ${this.disabled?"disabled":""}`},i("input",{key:"fc6b4e3f5ca60777153751d2755da82f15a46c98",type:this.type,autocomplete:this.autocomplete,class:`date__picker-input ${this.error?"error":""} ${this.success?"success":""}`,disabled:this.disabled?true:undefined,"aria-invalid":this.error?true:undefined,"aria-label":this.ariaLabel,max:this.max,min:this.min,value:this.value,required:this.required,onChange:e=>this.getDate(e)}),i("div",{key:"35802d1aa7888e4aa400143bab8ee0309a6f2ee7",class:"icon__wrapper",role:"button",onClick:()=>this.handleInputFocusOnIconClick()},i("ifx-icon",{key:"e64391324d69cd3a928bdfeb31f6328d399d7570",icon:"calendar16","aria-hidden":"true"}))),((t=this.caption)===null||t===void 0?void 0:t.trim())&&i("div",{key:"033919ccee8a662b5812f703ab04be6855c24400",class:"caption__wrapper"},this.caption.trim()))}static get formAssociated(){return true}get el(){return r(this)}};let c=0;n.style=o;export{n as ifx_date_picker};
2
- //# sourceMappingURL=p-ffb0173c.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["datePickerCss","IfxDatePickerStyle0","DatePicker","constructor","hostRef","this","inputId","datePickerId","size","error","success","disabled","type","required","autocomplete","getDate","e","inputValue","target","value","selectedDate","Date","day","month","getMonth","year","getFullYear","internals","setFormValue","hours","getHours","minutes","getMinutes","ifxDate","emit","input","el","shadowRoot","querySelector","classList","add","toISOString","substring","handleInputFocusOnIconClick","focus","getBrowser","navigator","userAgent","indexOf","setFireFoxClasses","browser","contains","remove","componentDidLoad","componentWillUpdate","trackComponent","formResetCallback","render","h","key","class","htmlFor","_a","label","trim","undefined","ariaLabel","max","min","onChange","role","onClick","icon","_b","caption"],"sources":["src/components/date-picker/date-picker.scss?tag=ifx-date-picker&encapsulation=shadow","src/components/date-picker/date-picker.tsx"],"sourcesContent":["@use '~@infineon/design-system-tokens/dist/tokens';\n\n.date__picker-container {\n display: flex;\n flex-direction: column;\n\n & .label__wrapper {\n color: tokens.$ifxColorBaseBlack;\n font: tokens.$ifxBodyBody03;\n\n & .asterisk { \n display: none;\n &.required {\n display: inline;\n margin-left: 4px;\n \n &.error {\n color: #CD002F;\n }\n }\n }\n\n }\n\n &.disabled {\n .label__wrapper {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n &.error {\n .caption__wrapper {\n color: tokens.$ifxColorRed500;\n }\n }\n\n &.disabled {\n .caption__wrapper {\n color: tokens.$ifxColorEngineering500;\n }\n }\n\n & .caption__wrapper {\n margin-top: tokens.$ifxSpace50;\n color: tokens.$ifxColorBaseBlack;\n font: tokens.$ifxBodyBody05;\n }\n}\n\n.date__picker-input {\n font-family: 'Source Sans 3';\n outline: none;\n width: 100%;\n cursor: pointer;\n border-radius: 1px;\n border: 1px solid tokens.$ifxColorEngineering400;\n height: 100%;\n\n &.firefox__classes {\n padding: 8px 16px;\n color: tokens.$ifxColorEngineering400;\n font-size: 16px;\n text-transform: uppercase;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n cursor: pointer;\n }\n\n &:focus:not(.error, .success) {\n border-color: tokens.$ifxColorOcean500;\n }\n\n &:hover:not(:disabled, :focus, .error, .success) {\n border-color: tokens.$ifxColorEngineering500;\n }\n\n &:disabled {\n border-color: tokens.$ifxColorEngineering500;\n background-color: tokens.$ifxColorEngineering200;\n }\n\n &.error {\n border-color: tokens.$ifxColorRed500;\n }\n\n &.success:not(.error) {\n border-color: tokens.$ifxColorGreen500;\n }\n\n &::-webkit-datetime-edit-text {\n color: tokens.$ifxColorEngineering400;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n }\n\n &.has-value::-webkit-datetime-edit-text {\n color: tokens.$ifxColorBaseBlack;\n }\n\n &.has-value::-webkit-datetime-edit {\n color: tokens.$ifxColorBaseBlack;\n }\n}\n\n::-webkit-datetime-edit {\n color: tokens.$ifxColorEngineering400;\n font-size: 16px;\n text-transform: uppercase;\n font-style: normal;\n font-weight: 400;\n line-height: 24px;\n}\n\n::-webkit-datetime-edit-fields-wrapper {\n padding: 8px 16px;\n padding-bottom: 9px;\n transform: translateY(1px);\n}\n\n::-webkit-inner-spin-button {\n display: none;\n}\n\n::-webkit-calendar-picker-indicator {\n position: absolute;\n right: 15px;\n font-size: 19px;\n cursor: pointer;\n border-radius: 1px;\n &:focus-within {\n outline: 2px solid tokens.$ifxColorOcean500;\n outline-offset: 2px;\n }\n}\n\n.input__wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n align-self: stretch;\n background: tokens.$ifxColorBaseWhite;\n position: relative;\n &.large {\n height: 40px;\n }\n\n &.small {\n height: 36px;\n }\n\n &.disabled {\n & .icon__wrapper {\n background-color: tokens.$ifxColorEngineering200;\n }\n }\n}\n\n.icon__wrapper {\n position: absolute;\n right: 17px;\n padding: 2px;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n pointer-events: none;\n z-index: 100;\n background-color: tokens.$ifxColorBaseWhite;\n line-height: 16px;\n\n & ifx-icon {\n vertical-align: middle;\n }\n}\n","import { AttachInternals } from '@stencil/core';\nimport { Component, Prop, h, Element, Event, EventEmitter } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n \n@Component({\n tag: 'ifx-date-picker',\n styleUrl: 'date-picker.scss',\n shadow: true,\n formAssociated: true,\n})\n\nexport class DatePicker {\n private inputId: string = `ifx-date-picker-${++datePickerId}`;\n\n @Element() el: HTMLElement;\n @Prop() size: string = 's';\n @Prop() error: boolean = false;\n @Prop() success: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() ariaLabel: string | null;\n @Prop() value: string;\n @Prop() type: string = 'date'\n @Prop() max: string;\n @Prop() min: string;\n @Prop() required: boolean = false;\n @Prop() label: string;\n @Prop() caption: string;\n @Prop() autocomplete: string = 'on';\n\n @AttachInternals() internals: ElementInternals;\n\n @Event() ifxDate: EventEmitter;\n\n getDate(e) { \n const inputValue = e.target.value;\n const selectedDate = new Date(inputValue);\n const day = selectedDate.getDate();\n const month = selectedDate.getMonth() + 1; \n const year = selectedDate.getFullYear();\n\n \n \n if (!inputValue) {\n this.internals.setFormValue(null);\n\n if(this.type === 'datetime-local') { \n const hours = selectedDate.getHours();\n const minutes = selectedDate.getMinutes();\n this.ifxDate.emit({day, month, year, hours, minutes});\n } else { \n this.ifxDate.emit({day, month, year});\n }\n return;\n }\n\n const input = this.el.shadowRoot.querySelector('.date__picker-input') as HTMLInputElement;\n input.classList.add('has-value');\n\n this.internals.setFormValue(selectedDate.toISOString().substring(0,10))\n if(this.type === 'datetime-local') { \n const hours = selectedDate.getHours();\n const minutes = selectedDate.getMinutes();\n this.ifxDate.emit({day, month, year, hours, minutes});\n } else { \n this.ifxDate.emit({day, month, year})\n }\n }\n\n handleInputFocusOnIconClick() { \n const input = this.el.shadowRoot.querySelector('.date__picker-input') as HTMLInputElement;\n if(input) { \n input.focus()\n }\n }\n\n getBrowser() {\n if( navigator.userAgent.indexOf(\"Chrome\") != -1 ) {\n return \"Chrome\";\n } else if( navigator.userAgent.indexOf(\"Opera\") != -1 ) {\n return \"Opera\";\n } else if( navigator.userAgent.indexOf(\"MSIE\") != -1 ) {\n return \"IE\";\n } else if( navigator.userAgent.indexOf(\"Firefox\") != -1 ) {\n return \"Firefox\";\n } else {\n return \"unknown\";\n }\n }\n\n setFireFoxClasses() { \n const browser = this.getBrowser()\n const input = this.el.shadowRoot.querySelector('.date__picker-input');\n\n if(browser === 'Firefox') { \n input.classList.add('firefox__classes')\n } else if(input.classList.contains('firefox__classes')) { \n input.classList.remove('firefox__classes')\n }\n }\n\n componentDidLoad() { \n this.setFireFoxClasses()\n }\n\n componentWillUpdate() { \n if (this.value) {\n this.getDate({ target: { value: this.value } });\n }\n trackComponent('ifx-date-picker')\n }\n\n formResetCallback() {\n this.internals.setFormValue(null);\n }\n\n render() {\n return (\n <div class={`date__picker-container ${this.error ? 'error' : ''} ${this.disabled ? 'disabled': ''}`}>\n\n <label class='label__wrapper' htmlFor={ this.inputId }>\n { this.label?.trim() }\n <span class={`asterisk ${this.required ? 'required' : \"\"} ${this.error ? 'error' : \"\"}`}>*</span>\n </label>\n\n <div class={`input__wrapper ${this.size === 'l' ? 'large' : 'small'} ${this.disabled ? 'disabled' : ''}`}>\n <input\n type={this.type}\n autocomplete={this.autocomplete}\n class={`date__picker-input ${this.error ? 'error' : \"\"} ${this.success ? \"success\" : \"\"}`}\n disabled={this.disabled ? true : undefined}\n aria-invalid={this.error ? true : undefined}\n aria-label={this.ariaLabel}\n max={this.max}\n min={this.min}\n value={this.value}\n required={this.required}\n onChange={(e) => this.getDate(e)} />\n <div class=\"icon__wrapper\" role=\"button\" onClick={() => this.handleInputFocusOnIconClick()}>\n <ifx-icon icon='calendar16' aria-hidden=\"true\"></ifx-icon>\n </div>\n </div>\n\n { this.caption?.trim() && (\n <div class='caption__wrapper'>\n { this.caption.trim() }\n </div> \n )}\n </div>\n )\n }\n}\n\nlet datePickerId = 0;"],"mappings":"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","ignoreList":[]}