@infineon/infineon-design-system-stencil 35.4.3--canary.1904.729ed31665247b9ddbccea97165dd861cf75ee3d.0 → 35.4.3--canary.1904.5714b2e528e5a8082b1fb28d3d6ff6b89080e8fa.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 (600) 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 +6 -3
  4. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/ifx-alert_2.cjs.entry.js +6 -2
  6. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ifx-badge.cjs.entry.js +7 -3
  8. package/dist/cjs/ifx-badge.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ifx-basic-table.cjs.entry.js +6 -3
  10. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +6 -3
  12. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ifx-button.cjs.entry.js +6 -3
  14. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ifx-card.cjs.entry.js +8 -5
  16. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +6 -3
  18. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ifx-checkbox.cjs.entry.js +8 -5
  20. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ifx-chip_3.cjs.entry.js +17 -12
  22. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ifx-content-switcher.cjs.entry.js +6 -3
  24. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ifx-date-picker.cjs.entry.js +9 -4
  26. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ifx-dropdown.cjs.entry.js +6 -3
  28. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ifx-file-upload.cjs.entry.js +7 -4
  30. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ifx-footer.cjs.entry.js +9 -6
  32. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ifx-icon-button.cjs.entry.js +6 -3
  34. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ifx-icon.cjs.entry.js +7 -3
  36. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ifx-indicator.cjs.entry.js +7 -4
  38. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ifx-link.cjs.entry.js +7 -3
  40. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ifx-modal.cjs.entry.js +7 -4
  42. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ifx-multiselect.cjs.entry.js +5 -2
  44. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ifx-navbar.cjs.entry.js +1 -1
  46. package/dist/cjs/ifx-notification.cjs.entry.js +8 -4
  47. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ifx-progress-bar.cjs.entry.js +7 -3
  49. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +6 -3
  51. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ifx-radio-button.cjs.entry.js +7 -4
  53. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ifx-search-bar.cjs.entry.js +6 -3
  55. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ifx-search-field.cjs.entry.js +7 -3
  57. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ifx-segmented-control.cjs.entry.js +7 -4
  59. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ifx-select.cjs.entry.js +7 -4
  61. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ifx-sidebar.cjs.entry.js +1 -1
  63. package/dist/cjs/ifx-slider.cjs.entry.js +7 -4
  64. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ifx-spinner_2.cjs.entry.js +15 -9
  66. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ifx-status.cjs.entry.js +7 -3
  68. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ifx-stepper.cjs.entry.js +7 -4
  70. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ifx-switch.cjs.entry.js +6 -3
  72. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ifx-table.cjs.entry.js +7 -4
  74. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ifx-tabs.cjs.entry.js +7 -4
  76. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ifx-tag.cjs.entry.js +7 -3
  78. package/dist/cjs/ifx-tag.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ifx-textarea.cjs.entry.js +6 -3
  80. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ifx-tooltip.cjs.entry.js +9 -6
  82. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ifx-tree-view.cjs.entry.js +7 -3
  84. package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -1
  85. package/dist/cjs/{tracking-d694a34b.js → tracking-f00364dc.js} +2 -2
  86. package/dist/cjs/tracking-f00364dc.js.map +1 -0
  87. package/dist/collection/components/accordion/accordion.js +5 -3
  88. package/dist/collection/components/accordion/accordion.js.map +1 -1
  89. package/dist/collection/components/alert/alert.js +5 -1
  90. package/dist/collection/components/alert/alert.js.map +1 -1
  91. package/dist/collection/components/badge/badge.js +6 -2
  92. package/dist/collection/components/badge/badge.js.map +1 -1
  93. package/dist/collection/components/breadcrumb/breadcrumb.js +5 -2
  94. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  95. package/dist/collection/components/button/button.js +5 -2
  96. package/dist/collection/components/button/button.js.map +1 -1
  97. package/dist/collection/components/card/card.js +7 -4
  98. package/dist/collection/components/card/card.js.map +1 -1
  99. package/dist/collection/components/checkbox/checkbox.js +7 -4
  100. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  101. package/dist/collection/components/checkbox-group/checkbox-group.js +5 -2
  102. package/dist/collection/components/checkbox-group/checkbox-group.js.map +1 -1
  103. package/dist/collection/components/chip/chip.js +12 -9
  104. package/dist/collection/components/chip/chip.js.map +1 -1
  105. package/dist/collection/components/content-switcher/content-switcher.js +5 -2
  106. package/dist/collection/components/content-switcher/content-switcher.js.map +1 -1
  107. package/dist/collection/components/date-picker/date-picker.js +8 -3
  108. package/dist/collection/components/date-picker/date-picker.js.map +1 -1
  109. package/dist/collection/components/dropdown/dropdown.js +5 -2
  110. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  111. package/dist/collection/components/file-upload/file-upload.js +6 -3
  112. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  113. package/dist/collection/components/footer/footer.js +8 -5
  114. package/dist/collection/components/footer/footer.js.map +1 -1
  115. package/dist/collection/components/icon/infineonIconStencil.js +6 -2
  116. package/dist/collection/components/icon/infineonIconStencil.js.map +1 -1
  117. package/dist/collection/components/icon-button/icon-button.js +5 -2
  118. package/dist/collection/components/icon-button/icon-button.js.map +1 -1
  119. package/dist/collection/components/indicator/indicator.js +6 -3
  120. package/dist/collection/components/indicator/indicator.js.map +1 -1
  121. package/dist/collection/components/link/link.js +6 -2
  122. package/dist/collection/components/link/link.js.map +1 -1
  123. package/dist/collection/components/modal/modal.js +6 -3
  124. package/dist/collection/components/modal/modal.js.map +1 -1
  125. package/dist/collection/components/notification/notification.js +7 -3
  126. package/dist/collection/components/notification/notification.js.map +1 -1
  127. package/dist/collection/components/pagination/pagination.js +5 -2
  128. package/dist/collection/components/pagination/pagination.js.map +1 -1
  129. package/dist/collection/components/progress-bar/progress-bar.js +6 -2
  130. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  131. package/dist/collection/components/radio-button/radio-button.js +6 -3
  132. package/dist/collection/components/radio-button/radio-button.js.map +1 -1
  133. package/dist/collection/components/radio-button-group/radio-button-group.js +5 -2
  134. package/dist/collection/components/radio-button-group/radio-button-group.js.map +1 -1
  135. package/dist/collection/components/search-bar/search-bar.js +5 -2
  136. package/dist/collection/components/search-bar/search-bar.js.map +1 -1
  137. package/dist/collection/components/search-field/search-field.js +6 -2
  138. package/dist/collection/components/search-field/search-field.js.map +1 -1
  139. package/dist/collection/components/segmented-control/segmented-control.js +6 -3
  140. package/dist/collection/components/segmented-control/segmented-control.js.map +1 -1
  141. package/dist/collection/components/select/multi-select/multiselect.js +4 -1
  142. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  143. package/dist/collection/components/select/single-select/select.js +6 -3
  144. package/dist/collection/components/select/single-select/select.js.map +1 -1
  145. package/dist/collection/components/slider/slider.js +6 -3
  146. package/dist/collection/components/slider/slider.js.map +1 -1
  147. package/dist/collection/components/spinner/spinner.js +7 -3
  148. package/dist/collection/components/spinner/spinner.js.map +1 -1
  149. package/dist/collection/components/status/status.js +6 -2
  150. package/dist/collection/components/status/status.js.map +1 -1
  151. package/dist/collection/components/stepper/stepper.js +6 -3
  152. package/dist/collection/components/stepper/stepper.js.map +1 -1
  153. package/dist/collection/components/switch/switch.js +5 -2
  154. package/dist/collection/components/switch/switch.js.map +1 -1
  155. package/dist/collection/components/table-advanced-version/table.js +6 -3
  156. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  157. package/dist/collection/components/table-basic-version/table.js +5 -2
  158. package/dist/collection/components/table-basic-version/table.js.map +1 -1
  159. package/dist/collection/components/tabs/tabs.js +6 -3
  160. package/dist/collection/components/tabs/tabs.js.map +1 -1
  161. package/dist/collection/components/tag/tag.js +6 -2
  162. package/dist/collection/components/tag/tag.js.map +1 -1
  163. package/dist/collection/components/text-field/text-field.js +8 -5
  164. package/dist/collection/components/text-field/text-field.js.map +1 -1
  165. package/dist/collection/components/textarea/textarea.js +5 -2
  166. package/dist/collection/components/textarea/textarea.js.map +1 -1
  167. package/dist/collection/components/tooltip/tooltip.js +8 -5
  168. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  169. package/dist/collection/components/tree-view/tree-view.js +6 -2
  170. package/dist/collection/components/tree-view/tree-view.js.map +1 -1
  171. package/dist/collection/global/utils/dom-utils.js +15 -0
  172. package/dist/collection/global/utils/dom-utils.js.map +1 -0
  173. package/dist/collection/global/utils/tracking.js +1 -1
  174. package/dist/collection/global/utils/tracking.js.map +1 -1
  175. package/dist/components/ifx-accordion-item.js +1 -1
  176. package/dist/components/ifx-accordion.js +1 -1
  177. package/dist/components/ifx-alert.js +1 -1
  178. package/dist/components/ifx-badge.js +7 -3
  179. package/dist/components/ifx-badge.js.map +1 -1
  180. package/dist/components/ifx-basic-table.js +6 -3
  181. package/dist/components/ifx-basic-table.js.map +1 -1
  182. package/dist/components/ifx-breadcrumb-item-label.js +1 -1
  183. package/dist/components/ifx-breadcrumb.js +6 -3
  184. package/dist/components/ifx-breadcrumb.js.map +1 -1
  185. package/dist/components/ifx-button.js +1 -1
  186. package/dist/components/ifx-card.js +8 -5
  187. package/dist/components/ifx-card.js.map +1 -1
  188. package/dist/components/ifx-checkbox-group.js +7 -4
  189. package/dist/components/ifx-checkbox-group.js.map +1 -1
  190. package/dist/components/ifx-checkbox.js +1 -1
  191. package/dist/components/ifx-chip-item.js +1 -1
  192. package/dist/components/ifx-chip.js +1 -1
  193. package/dist/components/ifx-content-switcher.js +6 -3
  194. package/dist/components/ifx-content-switcher.js.map +1 -1
  195. package/dist/components/ifx-date-picker.js +10 -5
  196. package/dist/components/ifx-date-picker.js.map +1 -1
  197. package/dist/components/ifx-download.js +1 -1
  198. package/dist/components/ifx-dropdown-item.js +1 -1
  199. package/dist/components/ifx-dropdown-trigger-button.js +2 -2
  200. package/dist/components/ifx-dropdown.js +6 -3
  201. package/dist/components/ifx-dropdown.js.map +1 -1
  202. package/dist/components/ifx-faq.js +3 -3
  203. package/dist/components/ifx-file-upload.js +11 -8
  204. package/dist/components/ifx-file-upload.js.map +1 -1
  205. package/dist/components/ifx-filter-accordion.js +2 -2
  206. package/dist/components/ifx-filter-bar.js +2 -2
  207. package/dist/components/ifx-filter-search.js +2 -2
  208. package/dist/components/ifx-footer.js +9 -6
  209. package/dist/components/ifx-footer.js.map +1 -1
  210. package/dist/components/ifx-icon-button.js +1 -1
  211. package/dist/components/ifx-icon.js +1 -1
  212. package/dist/components/ifx-icons-preview.js +4 -4
  213. package/dist/components/ifx-indicator.js +1 -1
  214. package/dist/components/ifx-link.js +1 -1
  215. package/dist/components/ifx-list-entry.js +3 -3
  216. package/dist/components/ifx-list.js +2 -2
  217. package/dist/components/ifx-modal.js +9 -6
  218. package/dist/components/ifx-modal.js.map +1 -1
  219. package/dist/components/ifx-multiselect.js +1 -1
  220. package/dist/components/ifx-navbar-item.js +2 -2
  221. package/dist/components/ifx-navbar.js +2 -2
  222. package/dist/components/ifx-notification.js +1 -1
  223. package/dist/components/ifx-overview-table.js +3 -3
  224. package/dist/components/ifx-pagination.js +1 -1
  225. package/dist/components/ifx-progress-bar.js +1 -1
  226. package/dist/components/ifx-radio-button-group.js +7 -4
  227. package/dist/components/ifx-radio-button-group.js.map +1 -1
  228. package/dist/components/ifx-radio-button.js +1 -1
  229. package/dist/components/ifx-search-bar.js +8 -5
  230. package/dist/components/ifx-search-bar.js.map +1 -1
  231. package/dist/components/ifx-search-field.js +1 -1
  232. package/dist/components/ifx-segment.js +1 -1
  233. package/dist/components/ifx-segmented-control.js +8 -5
  234. package/dist/components/ifx-segmented-control.js.map +1 -1
  235. package/dist/components/ifx-select.js +1 -1
  236. package/dist/components/ifx-set-filter.js +5 -5
  237. package/dist/components/ifx-sidebar-item.js +2 -2
  238. package/dist/components/ifx-sidebar.js +1 -1
  239. package/dist/components/ifx-slider.js +8 -5
  240. package/dist/components/ifx-slider.js.map +1 -1
  241. package/dist/components/ifx-spinner.js +1 -1
  242. package/dist/components/ifx-status.js +7 -3
  243. package/dist/components/ifx-status.js.map +1 -1
  244. package/dist/components/ifx-step.js +1 -1
  245. package/dist/components/ifx-stepper.js +7 -4
  246. package/dist/components/ifx-stepper.js.map +1 -1
  247. package/dist/components/ifx-switch.js +6 -3
  248. package/dist/components/ifx-switch.js.map +1 -1
  249. package/dist/components/ifx-table.js +16 -13
  250. package/dist/components/ifx-table.js.map +1 -1
  251. package/dist/components/ifx-tabs.js +8 -5
  252. package/dist/components/ifx-tabs.js.map +1 -1
  253. package/dist/components/ifx-tag.js +8 -4
  254. package/dist/components/ifx-tag.js.map +1 -1
  255. package/dist/components/ifx-template.js +1 -1
  256. package/dist/components/ifx-templates-ui.js +8 -8
  257. package/dist/components/ifx-text-field.js +1 -1
  258. package/dist/components/ifx-textarea.js +6 -3
  259. package/dist/components/ifx-textarea.js.map +1 -1
  260. package/dist/components/ifx-tooltip.js +10 -7
  261. package/dist/components/ifx-tooltip.js.map +1 -1
  262. package/dist/components/ifx-tree-view-item.js +2 -2
  263. package/dist/components/ifx-tree-view.js +7 -3
  264. package/dist/components/ifx-tree-view.js.map +1 -1
  265. package/dist/components/{p-fdb5d137.js → p-06d65f7f.js} +11 -8
  266. package/dist/components/p-06d65f7f.js.map +1 -0
  267. package/dist/components/{p-d9476097.js → p-095fe089.js} +8 -4
  268. package/dist/components/p-095fe089.js.map +1 -0
  269. package/dist/components/{p-ed808c2b.js → p-11f73aa8.js} +8 -5
  270. package/dist/components/p-11f73aa8.js.map +1 -0
  271. package/dist/components/{p-c3ea47a9.js → p-15733194.js} +3 -3
  272. package/dist/components/{p-c3ea47a9.js.map → p-15733194.js.map} +1 -1
  273. package/dist/components/{p-ea769a07.js → p-18cb44c1.js} +8 -5
  274. package/dist/components/p-18cb44c1.js.map +1 -0
  275. package/dist/components/{p-3e9b6355.js → p-2537eaf4.js} +9 -5
  276. package/dist/components/p-2537eaf4.js.map +1 -0
  277. package/dist/components/{p-a0d81b42.js → p-2ab1960f.js} +8 -4
  278. package/dist/components/p-2ab1960f.js.map +1 -0
  279. package/dist/components/{p-188d9cbb.js → p-5b74932c.js} +9 -6
  280. package/dist/components/p-5b74932c.js.map +1 -0
  281. package/dist/components/{p-bb1128ae.js → p-6ecb6a6f.js} +2 -2
  282. package/dist/components/p-6ecb6a6f.js.map +1 -0
  283. package/dist/components/{p-5be59836.js → p-869e8cfa.js} +8 -4
  284. package/dist/components/p-869e8cfa.js.map +1 -0
  285. package/dist/components/{p-85d5b54e.js → p-88300d0a.js} +7 -4
  286. package/dist/components/p-88300d0a.js.map +1 -0
  287. package/dist/components/{p-93b8dbba.js → p-93610755.js} +8 -4
  288. package/dist/components/p-93610755.js.map +1 -0
  289. package/dist/components/{p-30ba81f3.js → p-98a1a1bb.js} +11 -7
  290. package/dist/components/p-98a1a1bb.js.map +1 -0
  291. package/dist/components/p-a22c9102.js +18 -0
  292. package/dist/components/p-a22c9102.js.map +1 -0
  293. package/dist/components/{p-8760752b.js → p-afc1e484.js} +10 -7
  294. package/dist/components/p-afc1e484.js.map +1 -0
  295. package/dist/components/{p-b40948da.js → p-b684c707.js} +16 -13
  296. package/dist/components/p-b684c707.js.map +1 -0
  297. package/dist/components/{p-cf9d0421.js → p-bd8ef20c.js} +8 -5
  298. package/dist/components/p-bd8ef20c.js.map +1 -0
  299. package/dist/components/{p-e19718bf.js → p-c552672c.js} +2 -2
  300. package/dist/components/{p-e19718bf.js.map → p-c552672c.js.map} +1 -1
  301. package/dist/components/{p-eb3a17e1.js → p-c7aa770d.js} +8 -5
  302. package/dist/components/p-c7aa770d.js.map +1 -0
  303. package/dist/components/{p-59715dd7.js → p-c9ba8fd6.js} +7 -4
  304. package/dist/components/p-c9ba8fd6.js.map +1 -0
  305. package/dist/components/{p-a50b09b5.js → p-cc1b75d2.js} +6 -6
  306. package/dist/components/{p-a50b09b5.js.map → p-cc1b75d2.js.map} +1 -1
  307. package/dist/components/{p-d7226b8c.js → p-fcb7cd87.js} +9 -5
  308. package/dist/components/p-fcb7cd87.js.map +1 -0
  309. package/dist/components/{p-c3853636.js → p-fce8d48f.js} +10 -7
  310. package/dist/components/p-fce8d48f.js.map +1 -0
  311. package/dist/esm/dom-utils-693bd28d.js +18 -0
  312. package/dist/esm/dom-utils-693bd28d.js.map +1 -0
  313. package/dist/esm/ifx-accordion_2.entry.js +6 -3
  314. package/dist/esm/ifx-accordion_2.entry.js.map +1 -1
  315. package/dist/esm/ifx-alert_2.entry.js +6 -2
  316. package/dist/esm/ifx-alert_2.entry.js.map +1 -1
  317. package/dist/esm/ifx-badge.entry.js +8 -4
  318. package/dist/esm/ifx-badge.entry.js.map +1 -1
  319. package/dist/esm/ifx-basic-table.entry.js +6 -3
  320. package/dist/esm/ifx-basic-table.entry.js.map +1 -1
  321. package/dist/esm/ifx-breadcrumb.entry.js +6 -3
  322. package/dist/esm/ifx-breadcrumb.entry.js.map +1 -1
  323. package/dist/esm/ifx-button.entry.js +6 -3
  324. package/dist/esm/ifx-button.entry.js.map +1 -1
  325. package/dist/esm/ifx-card.entry.js +8 -5
  326. package/dist/esm/ifx-card.entry.js.map +1 -1
  327. package/dist/esm/ifx-checkbox-group.entry.js +6 -3
  328. package/dist/esm/ifx-checkbox-group.entry.js.map +1 -1
  329. package/dist/esm/ifx-checkbox.entry.js +8 -5
  330. package/dist/esm/ifx-checkbox.entry.js.map +1 -1
  331. package/dist/esm/ifx-chip_3.entry.js +17 -12
  332. package/dist/esm/ifx-chip_3.entry.js.map +1 -1
  333. package/dist/esm/ifx-content-switcher.entry.js +6 -3
  334. package/dist/esm/ifx-content-switcher.entry.js.map +1 -1
  335. package/dist/esm/ifx-date-picker.entry.js +9 -4
  336. package/dist/esm/ifx-date-picker.entry.js.map +1 -1
  337. package/dist/esm/ifx-dropdown.entry.js +6 -3
  338. package/dist/esm/ifx-dropdown.entry.js.map +1 -1
  339. package/dist/esm/ifx-file-upload.entry.js +7 -4
  340. package/dist/esm/ifx-file-upload.entry.js.map +1 -1
  341. package/dist/esm/ifx-footer.entry.js +9 -6
  342. package/dist/esm/ifx-footer.entry.js.map +1 -1
  343. package/dist/esm/ifx-icon-button.entry.js +6 -3
  344. package/dist/esm/ifx-icon-button.entry.js.map +1 -1
  345. package/dist/esm/ifx-icon.entry.js +8 -4
  346. package/dist/esm/ifx-icon.entry.js.map +1 -1
  347. package/dist/esm/ifx-indicator.entry.js +7 -4
  348. package/dist/esm/ifx-indicator.entry.js.map +1 -1
  349. package/dist/esm/ifx-link.entry.js +8 -4
  350. package/dist/esm/ifx-link.entry.js.map +1 -1
  351. package/dist/esm/ifx-modal.entry.js +7 -4
  352. package/dist/esm/ifx-modal.entry.js.map +1 -1
  353. package/dist/esm/ifx-multiselect.entry.js +5 -2
  354. package/dist/esm/ifx-multiselect.entry.js.map +1 -1
  355. package/dist/esm/ifx-navbar.entry.js +1 -1
  356. package/dist/esm/ifx-notification.entry.js +9 -5
  357. package/dist/esm/ifx-notification.entry.js.map +1 -1
  358. package/dist/esm/ifx-progress-bar.entry.js +8 -4
  359. package/dist/esm/ifx-progress-bar.entry.js.map +1 -1
  360. package/dist/esm/ifx-radio-button-group.entry.js +6 -3
  361. package/dist/esm/ifx-radio-button-group.entry.js.map +1 -1
  362. package/dist/esm/ifx-radio-button.entry.js +7 -4
  363. package/dist/esm/ifx-radio-button.entry.js.map +1 -1
  364. package/dist/esm/ifx-search-bar.entry.js +6 -3
  365. package/dist/esm/ifx-search-bar.entry.js.map +1 -1
  366. package/dist/esm/ifx-search-field.entry.js +8 -4
  367. package/dist/esm/ifx-search-field.entry.js.map +1 -1
  368. package/dist/esm/ifx-segmented-control.entry.js +7 -4
  369. package/dist/esm/ifx-segmented-control.entry.js.map +1 -1
  370. package/dist/esm/ifx-select.entry.js +7 -4
  371. package/dist/esm/ifx-select.entry.js.map +1 -1
  372. package/dist/esm/ifx-sidebar.entry.js +1 -1
  373. package/dist/esm/ifx-slider.entry.js +7 -4
  374. package/dist/esm/ifx-slider.entry.js.map +1 -1
  375. package/dist/esm/ifx-spinner_2.entry.js +16 -10
  376. package/dist/esm/ifx-spinner_2.entry.js.map +1 -1
  377. package/dist/esm/ifx-status.entry.js +8 -4
  378. package/dist/esm/ifx-status.entry.js.map +1 -1
  379. package/dist/esm/ifx-stepper.entry.js +7 -4
  380. package/dist/esm/ifx-stepper.entry.js.map +1 -1
  381. package/dist/esm/ifx-switch.entry.js +6 -3
  382. package/dist/esm/ifx-switch.entry.js.map +1 -1
  383. package/dist/esm/ifx-table.entry.js +7 -4
  384. package/dist/esm/ifx-table.entry.js.map +1 -1
  385. package/dist/esm/ifx-tabs.entry.js +7 -4
  386. package/dist/esm/ifx-tabs.entry.js.map +1 -1
  387. package/dist/esm/ifx-tag.entry.js +8 -4
  388. package/dist/esm/ifx-tag.entry.js.map +1 -1
  389. package/dist/esm/ifx-textarea.entry.js +6 -3
  390. package/dist/esm/ifx-textarea.entry.js.map +1 -1
  391. package/dist/esm/ifx-tooltip.entry.js +9 -6
  392. package/dist/esm/ifx-tooltip.entry.js.map +1 -1
  393. package/dist/esm/ifx-tree-view.entry.js +8 -4
  394. package/dist/esm/ifx-tree-view.entry.js.map +1 -1
  395. package/dist/esm/{tracking-12578d67.js → tracking-a7efdbcd.js} +2 -2
  396. package/dist/esm/tracking-a7efdbcd.js.map +1 -0
  397. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  398. package/dist/infineon-design-system-stencil/p-0e01ddde.entry.js +2 -0
  399. package/dist/infineon-design-system-stencil/p-0e01ddde.entry.js.map +1 -0
  400. package/dist/infineon-design-system-stencil/p-1645e1cf.entry.js +2 -0
  401. package/dist/infineon-design-system-stencil/p-1645e1cf.entry.js.map +1 -0
  402. package/dist/infineon-design-system-stencil/p-177536a0.entry.js +2 -0
  403. package/dist/infineon-design-system-stencil/p-177536a0.entry.js.map +1 -0
  404. package/dist/infineon-design-system-stencil/p-1957235f.entry.js +2 -0
  405. package/dist/infineon-design-system-stencil/p-1957235f.entry.js.map +1 -0
  406. package/dist/infineon-design-system-stencil/p-1afe40e3.entry.js +2 -0
  407. package/dist/infineon-design-system-stencil/p-1afe40e3.entry.js.map +1 -0
  408. package/dist/infineon-design-system-stencil/p-1f356638.entry.js +2 -0
  409. package/dist/infineon-design-system-stencil/p-1f356638.entry.js.map +1 -0
  410. package/dist/infineon-design-system-stencil/p-1fd8eba9.entry.js +2 -0
  411. package/dist/infineon-design-system-stencil/p-1fd8eba9.entry.js.map +1 -0
  412. package/dist/infineon-design-system-stencil/p-232f959f.entry.js +2 -0
  413. package/dist/infineon-design-system-stencil/p-232f959f.entry.js.map +1 -0
  414. package/dist/infineon-design-system-stencil/p-313d3b95.entry.js +2 -0
  415. package/dist/infineon-design-system-stencil/p-313d3b95.entry.js.map +1 -0
  416. package/dist/infineon-design-system-stencil/p-326e17c6.entry.js +2 -0
  417. package/dist/infineon-design-system-stencil/p-326e17c6.entry.js.map +1 -0
  418. package/dist/infineon-design-system-stencil/p-35ec0810.entry.js +2 -0
  419. package/dist/infineon-design-system-stencil/p-35ec0810.entry.js.map +1 -0
  420. package/dist/infineon-design-system-stencil/p-3abd7673.entry.js +2 -0
  421. package/dist/infineon-design-system-stencil/p-3abd7673.entry.js.map +1 -0
  422. package/dist/infineon-design-system-stencil/p-41edd9c3.entry.js +2 -0
  423. package/dist/infineon-design-system-stencil/p-41edd9c3.entry.js.map +1 -0
  424. package/dist/infineon-design-system-stencil/p-48933066.entry.js +2 -0
  425. package/dist/infineon-design-system-stencil/p-48933066.entry.js.map +1 -0
  426. package/dist/infineon-design-system-stencil/p-4c9a1fea.entry.js +2 -0
  427. package/dist/infineon-design-system-stencil/p-4c9a1fea.entry.js.map +1 -0
  428. package/dist/infineon-design-system-stencil/p-557661dc.entry.js +2 -0
  429. package/dist/infineon-design-system-stencil/p-557661dc.entry.js.map +1 -0
  430. package/dist/infineon-design-system-stencil/{p-17d6e148.entry.js → p-6d72ad32.entry.js} +2 -2
  431. package/dist/infineon-design-system-stencil/{p-3af1c28b.entry.js → p-6e5f542a.entry.js} +3 -3
  432. package/dist/infineon-design-system-stencil/p-6e5f542a.entry.js.map +1 -0
  433. package/dist/infineon-design-system-stencil/{p-bb1128ae.js → p-6ecb6a6f.js} +1 -1
  434. package/dist/infineon-design-system-stencil/p-6ecb6a6f.js.map +1 -0
  435. package/dist/infineon-design-system-stencil/p-72d9d2a5.entry.js +2 -0
  436. package/dist/infineon-design-system-stencil/p-72d9d2a5.entry.js.map +1 -0
  437. package/dist/infineon-design-system-stencil/p-75533910.entry.js +2 -0
  438. package/dist/infineon-design-system-stencil/p-75533910.entry.js.map +1 -0
  439. package/dist/infineon-design-system-stencil/p-772c93a7.entry.js +2 -0
  440. package/dist/infineon-design-system-stencil/p-772c93a7.entry.js.map +1 -0
  441. package/dist/infineon-design-system-stencil/p-802aa0a0.entry.js +2 -0
  442. package/dist/infineon-design-system-stencil/p-802aa0a0.entry.js.map +1 -0
  443. package/dist/infineon-design-system-stencil/p-81050f2a.entry.js +2 -0
  444. package/dist/infineon-design-system-stencil/p-81050f2a.entry.js.map +1 -0
  445. package/dist/infineon-design-system-stencil/p-8e29852a.entry.js +2 -0
  446. package/dist/infineon-design-system-stencil/p-8e29852a.entry.js.map +1 -0
  447. package/dist/infineon-design-system-stencil/p-96d21b1e.entry.js +2 -0
  448. package/dist/infineon-design-system-stencil/p-96d21b1e.entry.js.map +1 -0
  449. package/dist/infineon-design-system-stencil/p-97a7da48.entry.js +2 -0
  450. package/dist/infineon-design-system-stencil/p-97a7da48.entry.js.map +1 -0
  451. package/dist/infineon-design-system-stencil/p-980c45b1.entry.js +2 -0
  452. package/dist/infineon-design-system-stencil/p-980c45b1.entry.js.map +1 -0
  453. package/dist/infineon-design-system-stencil/p-a02f6124.entry.js +2 -0
  454. package/dist/infineon-design-system-stencil/p-a02f6124.entry.js.map +1 -0
  455. package/dist/infineon-design-system-stencil/p-a22c9102.js +2 -0
  456. package/dist/infineon-design-system-stencil/p-a22c9102.js.map +1 -0
  457. package/dist/infineon-design-system-stencil/p-a7cc7223.entry.js +2 -0
  458. package/dist/infineon-design-system-stencil/p-a7cc7223.entry.js.map +1 -0
  459. package/dist/infineon-design-system-stencil/p-befa6ba0.entry.js +2 -0
  460. package/dist/infineon-design-system-stencil/p-befa6ba0.entry.js.map +1 -0
  461. package/dist/infineon-design-system-stencil/p-c16abd78.entry.js +2 -0
  462. package/dist/infineon-design-system-stencil/p-c16abd78.entry.js.map +1 -0
  463. package/dist/infineon-design-system-stencil/p-c196c9f5.entry.js +2 -0
  464. package/dist/infineon-design-system-stencil/p-c196c9f5.entry.js.map +1 -0
  465. package/dist/infineon-design-system-stencil/p-c5093f9d.entry.js +2 -0
  466. package/dist/infineon-design-system-stencil/p-c5093f9d.entry.js.map +1 -0
  467. package/dist/infineon-design-system-stencil/p-cedfe18b.entry.js +2 -0
  468. package/dist/infineon-design-system-stencil/p-cedfe18b.entry.js.map +1 -0
  469. package/dist/infineon-design-system-stencil/p-d9c9765b.entry.js +2 -0
  470. package/dist/infineon-design-system-stencil/p-d9c9765b.entry.js.map +1 -0
  471. package/dist/infineon-design-system-stencil/p-e296e298.entry.js +2 -0
  472. package/dist/infineon-design-system-stencil/p-e296e298.entry.js.map +1 -0
  473. package/dist/infineon-design-system-stencil/{p-f3f24bf1.entry.js → p-e5018880.entry.js} +2 -2
  474. package/dist/infineon-design-system-stencil/p-eec8a73d.entry.js +2 -0
  475. package/dist/infineon-design-system-stencil/p-eec8a73d.entry.js.map +1 -0
  476. package/dist/infineon-design-system-stencil/p-f28cf215.entry.js +2 -0
  477. package/dist/infineon-design-system-stencil/p-f28cf215.entry.js.map +1 -0
  478. package/dist/infineon-design-system-stencil/p-f291aa4b.entry.js +2 -0
  479. package/dist/infineon-design-system-stencil/p-f291aa4b.entry.js.map +1 -0
  480. package/dist/infineon-design-system-stencil/p-f5487da9.entry.js +2 -0
  481. package/dist/infineon-design-system-stencil/p-f5487da9.entry.js.map +1 -0
  482. package/dist/infineon-design-system-stencil/p-fdef4706.entry.js +2 -0
  483. package/dist/infineon-design-system-stencil/p-fdef4706.entry.js.map +1 -0
  484. package/dist/types/components/alert/alert.d.ts +1 -0
  485. package/dist/types/components/badge/badge.d.ts +1 -0
  486. package/dist/types/components/date-picker/date-picker.d.ts +1 -0
  487. package/dist/types/components/icon/infineonIconStencil.d.ts +1 -0
  488. package/dist/types/components/link/link.d.ts +1 -0
  489. package/dist/types/components/notification/notification.d.ts +1 -0
  490. package/dist/types/components/progress-bar/progress-bar.d.ts +1 -0
  491. package/dist/types/components/search-field/search-field.d.ts +1 -0
  492. package/dist/types/components/spinner/spinner.d.ts +1 -0
  493. package/dist/types/components/status/status.d.ts +1 -0
  494. package/dist/types/components/tag/tag.d.ts +1 -0
  495. package/dist/types/components/tree-view/tree-view.d.ts +1 -0
  496. package/dist/types/global/utils/dom-utils.d.ts +1 -0
  497. package/package.json +1 -1
  498. package/dist/cjs/tracking-d694a34b.js.map +0 -1
  499. package/dist/components/p-188d9cbb.js.map +0 -1
  500. package/dist/components/p-30ba81f3.js.map +0 -1
  501. package/dist/components/p-3e9b6355.js.map +0 -1
  502. package/dist/components/p-59715dd7.js.map +0 -1
  503. package/dist/components/p-5be59836.js.map +0 -1
  504. package/dist/components/p-85d5b54e.js.map +0 -1
  505. package/dist/components/p-8760752b.js.map +0 -1
  506. package/dist/components/p-93b8dbba.js.map +0 -1
  507. package/dist/components/p-a0d81b42.js.map +0 -1
  508. package/dist/components/p-b40948da.js.map +0 -1
  509. package/dist/components/p-bb1128ae.js.map +0 -1
  510. package/dist/components/p-c3853636.js.map +0 -1
  511. package/dist/components/p-cf9d0421.js.map +0 -1
  512. package/dist/components/p-d7226b8c.js.map +0 -1
  513. package/dist/components/p-d9476097.js.map +0 -1
  514. package/dist/components/p-ea769a07.js.map +0 -1
  515. package/dist/components/p-eb3a17e1.js.map +0 -1
  516. package/dist/components/p-ed808c2b.js.map +0 -1
  517. package/dist/components/p-fdb5d137.js.map +0 -1
  518. package/dist/esm/tracking-12578d67.js.map +0 -1
  519. package/dist/infineon-design-system-stencil/p-05a2190e.entry.js +0 -2
  520. package/dist/infineon-design-system-stencil/p-05a2190e.entry.js.map +0 -1
  521. package/dist/infineon-design-system-stencil/p-07b1a148.entry.js +0 -2
  522. package/dist/infineon-design-system-stencil/p-07b1a148.entry.js.map +0 -1
  523. package/dist/infineon-design-system-stencil/p-0a1e9a62.entry.js +0 -2
  524. package/dist/infineon-design-system-stencil/p-0a1e9a62.entry.js.map +0 -1
  525. package/dist/infineon-design-system-stencil/p-0b047405.entry.js +0 -2
  526. package/dist/infineon-design-system-stencil/p-0b047405.entry.js.map +0 -1
  527. package/dist/infineon-design-system-stencil/p-1093751e.entry.js +0 -2
  528. package/dist/infineon-design-system-stencil/p-1093751e.entry.js.map +0 -1
  529. package/dist/infineon-design-system-stencil/p-207ebcdd.entry.js +0 -2
  530. package/dist/infineon-design-system-stencil/p-207ebcdd.entry.js.map +0 -1
  531. package/dist/infineon-design-system-stencil/p-268f6956.entry.js +0 -2
  532. package/dist/infineon-design-system-stencil/p-268f6956.entry.js.map +0 -1
  533. package/dist/infineon-design-system-stencil/p-28da61d7.entry.js +0 -2
  534. package/dist/infineon-design-system-stencil/p-28da61d7.entry.js.map +0 -1
  535. package/dist/infineon-design-system-stencil/p-31f51a48.entry.js +0 -2
  536. package/dist/infineon-design-system-stencil/p-31f51a48.entry.js.map +0 -1
  537. package/dist/infineon-design-system-stencil/p-3af1c28b.entry.js.map +0 -1
  538. package/dist/infineon-design-system-stencil/p-486a988b.entry.js +0 -2
  539. package/dist/infineon-design-system-stencil/p-486a988b.entry.js.map +0 -1
  540. package/dist/infineon-design-system-stencil/p-4d602c18.entry.js +0 -2
  541. package/dist/infineon-design-system-stencil/p-4d602c18.entry.js.map +0 -1
  542. package/dist/infineon-design-system-stencil/p-575863fb.entry.js +0 -2
  543. package/dist/infineon-design-system-stencil/p-575863fb.entry.js.map +0 -1
  544. package/dist/infineon-design-system-stencil/p-591262a9.entry.js +0 -2
  545. package/dist/infineon-design-system-stencil/p-591262a9.entry.js.map +0 -1
  546. package/dist/infineon-design-system-stencil/p-5e2951b5.entry.js +0 -2
  547. package/dist/infineon-design-system-stencil/p-5e2951b5.entry.js.map +0 -1
  548. package/dist/infineon-design-system-stencil/p-61a68571.entry.js +0 -2
  549. package/dist/infineon-design-system-stencil/p-61a68571.entry.js.map +0 -1
  550. package/dist/infineon-design-system-stencil/p-64a526b7.entry.js +0 -2
  551. package/dist/infineon-design-system-stencil/p-64a526b7.entry.js.map +0 -1
  552. package/dist/infineon-design-system-stencil/p-68d05b63.entry.js +0 -2
  553. package/dist/infineon-design-system-stencil/p-68d05b63.entry.js.map +0 -1
  554. package/dist/infineon-design-system-stencil/p-6db38b82.entry.js +0 -2
  555. package/dist/infineon-design-system-stencil/p-6db38b82.entry.js.map +0 -1
  556. package/dist/infineon-design-system-stencil/p-74cc42b4.entry.js +0 -2
  557. package/dist/infineon-design-system-stencil/p-74cc42b4.entry.js.map +0 -1
  558. package/dist/infineon-design-system-stencil/p-76d3df14.entry.js +0 -2
  559. package/dist/infineon-design-system-stencil/p-76d3df14.entry.js.map +0 -1
  560. package/dist/infineon-design-system-stencil/p-7a3df785.entry.js +0 -2
  561. package/dist/infineon-design-system-stencil/p-7a3df785.entry.js.map +0 -1
  562. package/dist/infineon-design-system-stencil/p-7a612ecc.entry.js +0 -2
  563. package/dist/infineon-design-system-stencil/p-7a612ecc.entry.js.map +0 -1
  564. package/dist/infineon-design-system-stencil/p-7edc5e63.entry.js +0 -2
  565. package/dist/infineon-design-system-stencil/p-7edc5e63.entry.js.map +0 -1
  566. package/dist/infineon-design-system-stencil/p-826491b4.entry.js +0 -2
  567. package/dist/infineon-design-system-stencil/p-826491b4.entry.js.map +0 -1
  568. package/dist/infineon-design-system-stencil/p-8e5e3707.entry.js +0 -2
  569. package/dist/infineon-design-system-stencil/p-8e5e3707.entry.js.map +0 -1
  570. package/dist/infineon-design-system-stencil/p-92e5a592.entry.js +0 -2
  571. package/dist/infineon-design-system-stencil/p-92e5a592.entry.js.map +0 -1
  572. package/dist/infineon-design-system-stencil/p-9e070937.entry.js +0 -2
  573. package/dist/infineon-design-system-stencil/p-9e070937.entry.js.map +0 -1
  574. package/dist/infineon-design-system-stencil/p-a157eaf0.entry.js +0 -2
  575. package/dist/infineon-design-system-stencil/p-a157eaf0.entry.js.map +0 -1
  576. package/dist/infineon-design-system-stencil/p-a214a04e.entry.js +0 -2
  577. package/dist/infineon-design-system-stencil/p-a214a04e.entry.js.map +0 -1
  578. package/dist/infineon-design-system-stencil/p-a620ff8f.entry.js +0 -2
  579. package/dist/infineon-design-system-stencil/p-a620ff8f.entry.js.map +0 -1
  580. package/dist/infineon-design-system-stencil/p-a6654bf6.entry.js +0 -2
  581. package/dist/infineon-design-system-stencil/p-a6654bf6.entry.js.map +0 -1
  582. package/dist/infineon-design-system-stencil/p-bb1128ae.js.map +0 -1
  583. package/dist/infineon-design-system-stencil/p-c246faf0.entry.js +0 -2
  584. package/dist/infineon-design-system-stencil/p-c246faf0.entry.js.map +0 -1
  585. package/dist/infineon-design-system-stencil/p-c464c001.entry.js +0 -2
  586. package/dist/infineon-design-system-stencil/p-c464c001.entry.js.map +0 -1
  587. package/dist/infineon-design-system-stencil/p-ceafbfc5.entry.js +0 -2
  588. package/dist/infineon-design-system-stencil/p-ceafbfc5.entry.js.map +0 -1
  589. package/dist/infineon-design-system-stencil/p-d178ce4f.entry.js +0 -2
  590. package/dist/infineon-design-system-stencil/p-d178ce4f.entry.js.map +0 -1
  591. package/dist/infineon-design-system-stencil/p-d46ecb17.entry.js +0 -2
  592. package/dist/infineon-design-system-stencil/p-d46ecb17.entry.js.map +0 -1
  593. package/dist/infineon-design-system-stencil/p-d7ae75d7.entry.js +0 -2
  594. package/dist/infineon-design-system-stencil/p-d7ae75d7.entry.js.map +0 -1
  595. package/dist/infineon-design-system-stencil/p-dbfd8d45.entry.js +0 -2
  596. package/dist/infineon-design-system-stencil/p-dbfd8d45.entry.js.map +0 -1
  597. package/dist/infineon-design-system-stencil/p-e41e8c8b.entry.js +0 -2
  598. package/dist/infineon-design-system-stencil/p-e41e8c8b.entry.js.map +0 -1
  599. /package/dist/infineon-design-system-stencil/{p-17d6e148.entry.js.map → p-6d72ad32.entry.js.map} +0 -0
  600. /package/dist/infineon-design-system-stencil/{p-f3f24bf1.entry.js.map → p-e5018880.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../src/components/icon-button/icon-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host, Method, Element, Listen, Watch, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\n\nexport class IconButton {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary';\n @Prop() size: string;\n @Prop() disabled: boolean;\n @Prop() icon: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() shape: string = 'round';\n @Prop() ariaLabel: string | null;\n @State() internalIcon: string;\n @Element() el;\n\n private focusableElement: HTMLElement;\n \n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n componentWillLoad() {\n if (this.shape === '') {\n this.shape = 'round';\n }\n this.internalIcon = this.icon;\n trackComponent('ifx-icon-button')\n }\n\n render() {\n return (\n <Host \n aria-disabled={this.disabled}\n aria-label={this.ariaLabel}> \n {this.href ? (\n <a\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.href : undefined} \n target={this.target}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </a>\n ) : (\n <button\n class={this.getClassNames()}\n type=\"button\"\n disabled={this.disabled}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </button>\n )}\n </Host>\n );\n }\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary`\n : `${this.variant}` === 'tertiary'\n ? `tertiary`\n : `primary`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn icon-button',\n `btn-${this.shape}`,\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}"]}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../src/components/icon-button/icon-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, Host, Method, Element, Listen, Watch, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport classNames from 'classnames';\n\n@Component({\n tag: 'ifx-icon-button',\n styleUrl: 'icon-button.scss',\n shadow: true,\n})\n\nexport class IconButton {\n @Prop() variant: 'primary' | 'secondary' | 'tertiary';\n @Prop() size: string;\n @Prop() disabled: boolean;\n @Prop() icon: string;\n @Prop() href: string;\n @Prop() target: string = '_self';\n @Prop() shape: string = 'round';\n @Prop() ariaLabel: string | null;\n @State() internalIcon: string;\n @Element() el;\n\n private focusableElement: HTMLElement;\n \n @Listen('click', { capture: true })\n handleClick(event: Event) {\n if (this.disabled) {\n event.stopImmediatePropagation();\n }\n }\n\n @Watch('icon')\n updateIcon(newIcon: string) { \n this.internalIcon = newIcon;\n }\n\n @Method()\n async setFocus() {\n this.focusableElement.focus();\n }\n\n componentWillLoad() {\n if (this.shape === '') {\n this.shape = 'round';\n }\n this.internalIcon = this.icon;\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-icon-button')\n }\n }\n\n render() {\n return (\n <Host \n aria-disabled={this.disabled}\n aria-label={this.ariaLabel}> \n {this.href ? (\n <a\n ref={(el) => (this.focusableElement = el)}\n class={this.getClassNames()}\n href={!this.disabled ? this.href : undefined} \n target={this.target}\n rel={this.target === '_blank' ? 'noopener noreferrer' : undefined}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </a>\n ) : (\n <button\n class={this.getClassNames()}\n type=\"button\"\n disabled={this.disabled}\n >\n <ifx-icon icon={this.internalIcon}></ifx-icon>\n </button>\n )}\n </Host>\n );\n }\n\n getVariantClass() {\n return `${this.variant}` === \"secondary\"\n ? `secondary`\n : `${this.variant}` === 'tertiary'\n ? `tertiary`\n : `primary`;\n }\n\n getSizeClass() {\n if (`${this.size}` === \"xs\") {\n return \"xs\"\n }\n else if (`${this.size}` === \"s\") {\n return \"s\"\n }\n else if (`${this.size}` === \"l\") {\n return \"l\"\n }\n else return \"\";\n }\n\n getClassNames() {\n return classNames(\n 'btn icon-button',\n `btn-${this.shape}`,\n this.size && `btn-${this.getSizeClass()}`,\n `btn-${this.getVariantClass()}`,\n this.disabled ? 'disabled' : ''\n );\n }\n}"]}
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  export class Indicator {
4
5
  constructor() {
5
6
  this.inverted = false;
@@ -11,14 +12,16 @@ export class Indicator {
11
12
  }
12
13
  componentWillLoad() {
13
14
  this.handleNumber();
14
- trackComponent('ifx-indicator');
15
+ if (!isNestedInIfxComponent(this.el)) {
16
+ trackComponent('ifx-indicator');
17
+ }
15
18
  }
16
19
  componentWillUpdate() {
17
20
  this.handleNumber();
18
21
  }
19
22
  render() {
20
- return (h("div", { key: '0b81153c4087ab36c753595e2cee59ac3ff5c8ec', "aria-label": this.ariaLabel, class: 'indicator__container' }, this.variant === 'number' &&
21
- h("div", { key: 'e2c3cb995ef75258f19de816e3cac7ba6153f82a', class: `number__container ${this.inverted ? 'inverted' : ""}` }, h("div", { key: '2873b61cb9bfac65810e64f4a81ff5b7ecfbc1e2', class: "number__wrapper" }, this.filteredNumber)), this.variant === 'dot' && h("div", { key: '8fdc2e31b39d174ea306ba46b7e47b90cc4a5c6f', class: "dot__wrapper" })));
23
+ return (h("div", { key: 'eef97d49997e0007c0d9f57b9e6ee42c9f1e0658', "aria-label": this.ariaLabel, class: 'indicator__container' }, this.variant === 'number' &&
24
+ h("div", { key: 'cd7bf51af1c62eaf7d335f7078ea2a59a39f3cbc', class: `number__container ${this.inverted ? 'inverted' : ""}` }, h("div", { key: '16e4e74ba3812702841762a136e794cb31a27c23', class: "number__wrapper" }, this.filteredNumber)), this.variant === 'dot' && h("div", { key: '079148e275ba542ccb853d52235331b912e3b624', class: "dot__wrapper" })));
22
25
  }
23
26
  static get is() { return "ifx-indicator"; }
24
27
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"indicator.js","sourceRoot":"","sources":["../../../src/components/indicator/indicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAO7D,MAAM,OAAO,SAAS;IALtB;QAQU,aAAQ,GAAY,KAAK,CAAC;QAE1B,YAAO,GAAW,QAAQ,CAAA;QAC1B,WAAM,GAAW,CAAC,CAAC;KA4B5B;IA1BC,YAAY;QACV,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACtF,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,cAAc,CAAC,eAAe,CAAC,CAAA;IACjC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,0EAAiB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAC,sBAAsB;YAC3D,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAC1B,4DAAK,KAAK,EAAE,qBAAqB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/D,4DAAK,KAAK,EAAC,iBAAiB,IACzB,IAAI,CAAC,cAAc,CAChB,CACH;YACL,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,4DAAK,KAAK,EAAC,cAAc,GAAO,CACtD,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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}"]}
1
+ {"version":3,"file":"indicator.js","sourceRoot":"","sources":["../../../src/components/indicator/indicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAOtE,MAAM,OAAO,SAAS;IALtB;QAQU,aAAQ,GAAY,KAAK,CAAC;QAE1B,YAAO,GAAW,QAAQ,CAAA;QAC1B,WAAM,GAAW,CAAC,CAAC;KA8B5B;IA5BC,YAAY;QACV,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACtF,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,IAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,cAAc,CAAC,eAAe,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,YAAY,EAAE,CAAA;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,CACL,0EAAiB,IAAI,CAAC,SAAS,EAAE,KAAK,EAAC,sBAAsB;YAC3D,IAAI,CAAC,OAAO,KAAK,QAAQ;gBAC1B,4DAAK,KAAK,EAAE,qBAAqB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/D,4DAAK,KAAK,EAAC,iBAAiB,IACzB,IAAI,CAAC,cAAc,CAChB,CACH;YACL,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,4DAAK,KAAK,EAAC,cAAc,GAAO,CACtD,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Element, State } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking'; \nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\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 if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-indicator')\n }\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}"]}
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  import classNames from "classnames";
4
5
  export class Link {
5
6
  constructor() {
@@ -33,10 +34,12 @@ export class Link {
33
34
  }
34
35
  }
35
36
  componentWillLoad() {
36
- trackComponent('ifx-link');
37
+ if (!isNestedInIfxComponent(this.el)) {
38
+ trackComponent('ifx-link');
39
+ }
37
40
  }
38
41
  render() {
39
- return (h("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() }, h("slot", { key: '4a1504a55f658cebc4be7866146dc5992f49f30a' })));
42
+ return (h("a", { key: '34501f54b71028a9886ba198979aa55f88171921', 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() }, h("slot", { key: '5d1e1ff267036c8dfc2fbef139db404d9edf4300' })));
40
43
  }
41
44
  getSizeClass() {
42
45
  const small = this.size === 's' ? 'small' : null;
@@ -244,5 +247,6 @@ export class Link {
244
247
  "internalVariant": {}
245
248
  };
246
249
  }
250
+ static get elementRef() { return "el"; }
247
251
  }
248
252
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/components/link/link.tsx"],"names":[],"mappings":"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","sourcesContent":["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}"]}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/components/link/link.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, h, State, Element } from \"@stencil/core\";\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport classNames from 'classnames';\n \n@Component({\n tag: 'ifx-link',\n styleUrl: 'link.scss',\n shadow: true\n})\n\nexport class Link {\n @Element() el;\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 if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-link')\n }\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}"]}
@@ -1,5 +1,6 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  import { queryShadowRoot, isHidden, isFocusable } from "../../global/utils/focus-trap";
4
5
  import { animationTo, KEYFRAMES } from "../../global/utils/animation";
5
6
  export class IfxModal {
@@ -32,7 +33,9 @@ export class IfxModal {
32
33
  };
33
34
  }
34
35
  componentWillLoad() {
35
- trackComponent('ifx-modal');
36
+ if (!isNestedInIfxComponent(this.hostElement)) {
37
+ trackComponent('ifx-modal');
38
+ }
36
39
  }
37
40
  componentDidLoad() {
38
41
  // Query all focusable elements and store them in `focusableElements`.
@@ -174,8 +177,8 @@ export class IfxModal {
174
177
  }
175
178
  render() {
176
179
  const isAlertVariant = this.variant !== 'default';
177
- return (h(Host, { key: '626fa4938673d3f391822d5a1185e4624a304f37' }, h("div", { key: '62dc3352da6e19d1c8001319f5383968b88916f3', ref: (el) => (this.modalContainer = el), class: `modal-container ${this.showModal ? 'open' : ''}` }, h("div", { key: '047bc13f3bab5b3b3a31cecf16780dc51551853a', class: "modal-overlay", onClick: () => this.handleOverlayClick() }), h("div", { key: 'acb87187f010e0a0452ecf1893a0fddd39d1d61d', "data-focus-trap-edge": true, onFocus: this.handleTopFocus, tabindex: "0" }), h("div", { key: '168fa0a69262f58b539ef37485037c5c42736744', class: `modal-content-container ${this.size}`, role: "dialog", "aria-modal": "true", "aria-label": this.caption }, isAlertVariant ? (h("div", { class: `modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}` }, this.alertIcon ? h("ifx-icon", { icon: this.alertIcon }) : null)) : null, h("div", { key: '000f36bedc412a3c5743378c8d6b954bc4ba4adb', class: "modal-content" }, h("div", { key: 'dc0edddd16237eb702cdb759e43b5dc31138b2a3', class: "modal-header" }, h("h2", { key: 'f064f1a717eb1227cbc5cf87c4219921e06f357d', class: "modal-caption" }, this.caption), this.showCloseButton &&
178
- h("ifx-icon-button", { key: '2d7e69a849bd5c079ca7d6c207e9e109e9ba38cc', class: 'modal-close-button', ref: (el) => (this.closeButton = el), icon: "cross-16", variant: "tertiary", onClick: () => this.doBeforeClose('CLOSE_BUTTON') })), h("div", { key: '97ea7be5990e26353d5d0c06d4c91b67dcc39da3', class: "modal-body" }, h("slot", { key: '8903401607519aa2fe851eb87605d9e7c719701d', name: "content", onSlotchange: (e) => this.handleContentUpdate(e) })), h("div", { key: '408f0e612dbfe3345964eaf94038ef95c2e18905', class: `modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}` }, h("slot", { key: '8b68793e1cb95ab8ac44e817dcbc098c6f386914', name: "buttons", onSlotchange: (e) => this.handleButtonsSlotChange(e) })))), h("div", { key: '6ada1825e120f06e2291a1563b99428aaee21429', "data-focus-trap-edge": true, onFocus: this.handleBottomFocus, tabindex: "0" }))));
180
+ return (h(Host, { key: 'a708fd0da720aedaa40a0142146a026fa198e0bc' }, h("div", { key: '2249783645e2856011e24a5e48fa43623e47c151', ref: (el) => (this.modalContainer = el), class: `modal-container ${this.showModal ? 'open' : ''}` }, h("div", { key: 'e80787c6ae011341234462185588b61e0699cc05', class: "modal-overlay", onClick: () => this.handleOverlayClick() }), h("div", { key: '17e8a1e8fd121d45a2eb1e3b5ea815bd3e50c516', "data-focus-trap-edge": true, onFocus: this.handleTopFocus, tabindex: "0" }), h("div", { key: '5b24d3bbc6d50a2e70aaa908e8b56207c6b535d6', class: `modal-content-container ${this.size}`, role: "dialog", "aria-modal": "true", "aria-label": this.caption }, isAlertVariant ? (h("div", { class: `modal-icon-container ${this.variant === 'alert-brand' ? '' : 'danger'}` }, this.alertIcon ? h("ifx-icon", { icon: this.alertIcon }) : null)) : null, h("div", { key: '7679ea4179f66915dd510f6b7c6c1c3e6d7869b8', class: "modal-content" }, h("div", { key: '8ccb69bd7dd3229ce8ca0acd1b764a74e61e13bc', class: "modal-header" }, h("h2", { key: '1f4c9699d3bfeaaf569a7f5fc97facabbc1e2b4a', class: "modal-caption" }, this.caption), this.showCloseButton &&
181
+ h("ifx-icon-button", { key: '2f3cb76f3775319ed4e5d745f014bc2062d9e872', class: 'modal-close-button', ref: (el) => (this.closeButton = el), icon: "cross-16", variant: "tertiary", onClick: () => this.doBeforeClose('CLOSE_BUTTON') })), h("div", { key: '4ed7e3019673dab1076db0b109badbc1e50fd02d', class: "modal-body" }, h("slot", { key: '433d2413fa057aaa38357456958fe41175bd2061', name: "content", onSlotchange: (e) => this.handleContentUpdate(e) })), h("div", { key: '4c2ea669417446d15cb13bc83ee6f7878b8ab211', class: `modal-footer ${this.slotButtonsPresent ? 'buttons-present' : ''}` }, h("slot", { key: 'f680cfeeccb82a7f69d0e1efaa6bb68d4c25fe18', name: "buttons", onSlotchange: (e) => this.handleButtonsSlotChange(e) })))), h("div", { key: 'c9e1fa9d91f31453a33b2b30b0c979de00c06827', "data-focus-trap-edge": true, onFocus: this.handleBottomFocus, tabindex: "0" }))));
179
182
  }
180
183
  static get is() { return "ifx-modal"; }
181
184
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"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","sourcesContent":["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}"]}
1
+ {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../../src/components/modal/modal.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, Element, State, Event, Host, EventEmitter, h, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { 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 if(!isNestedInIfxComponent(this.hostElement)) { \n trackComponent('ifx-modal')\n }\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}"]}
@@ -1,12 +1,15 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  export class Notification {
4
5
  constructor() {
5
6
  this.variant = 'success';
6
7
  this.linkTarget = '_blank';
7
8
  }
8
9
  componentWillLoad() {
9
- trackComponent('ifx-notification');
10
+ if (!isNestedInIfxComponent(this.el)) {
11
+ trackComponent('ifx-notification');
12
+ }
10
13
  }
11
14
  getClassName() {
12
15
  switch (this.variant) {
@@ -23,8 +26,8 @@ export class Notification {
23
26
  }
24
27
  }
25
28
  render() {
26
- return (h(Host, { key: 'e9031e1641a115ff3c23b9bba59d20f82e43e187' }, h("div", { key: '6e4e3d196b0f224c46221e09bd8a955dc00c00c6', class: "ifx-notification__wrapper " + this.getClassName() }, h("div", { key: '84ca7f2e0bdb3e95ce080743069860ecc8db77b8', class: "ifx-notification__icon" }, h("ifx-icon", { key: '66fe9f6f1730398db15db5c5212b16572b7e4d91', icon: this.icon })), h("div", { key: 'c39e3c9f4050552937a0b1cafbed54089909b908', class: "ifx-notification__body" }, h("div", { key: '58b9cfe0b0e03f6e1186d5f6676b8cb2574daf44', class: "ifx-notification__slot" }, h("slot", { key: 'eaea2d61beb01dba6a270b3e1faecfe03ec37d5f' })), this.linkText && this.linkHref &&
27
- h("div", { key: 'aa1941c875065c257257f539b2cb7c6dadad632f', class: "ifx-notification__link" }, h("ifx-link", { key: '8fb78c246fbc7b8db3b143e1c046543beb7983f8', href: this.linkHref, target: this.linkTarget }, this.linkText, h("ifx-icon", { key: '1fee547e5476e9bc3140985fc957181fe877441b', icon: "arrow-right-16" })))))));
29
+ return (h(Host, { key: 'f4778d8c9d176d004af0356716b3f7dd6bdaaf2e' }, h("div", { key: 'be795f7d0819ad1f6847a5dd44e5c4d87f712956', class: "ifx-notification__wrapper " + this.getClassName() }, h("div", { key: 'c016988ac10a8f5b5bd7c808eb9a32ab624a88ec', class: "ifx-notification__icon" }, h("ifx-icon", { key: '52b0087e6be1fb1a2a53b7dc911a1f9cb82e241c', icon: this.icon })), h("div", { key: 'b474db0e0f1e233439efd5c296902a6e003f4da7', class: "ifx-notification__body" }, h("div", { key: 'ffa148a9926bb29a4b111e64c9a9a3f57f41a5a2', class: "ifx-notification__slot" }, h("slot", { key: '570ec61f92ff65c2cac316c6edcf2df46276ae51' })), this.linkText && this.linkHref &&
30
+ h("div", { key: 'dad0818ba2662f839a68a34e57a48e653fbae0c4', class: "ifx-notification__link" }, h("ifx-link", { key: '595e62d8ebeb1e71bbd5e963e06a7d8f6beffbfa', href: this.linkHref, target: this.linkTarget }, this.linkText, h("ifx-icon", { key: '63a580c022a66faaf91f7f92ff23d61158944555', icon: "arrow-right-16" })))))));
28
31
  }
29
32
  static get is() { return "ifx-notification"; }
30
33
  static get encapsulation() { return "shadow"; }
@@ -145,5 +148,6 @@ export class Notification {
145
148
  }
146
149
  };
147
150
  }
151
+ static get elementRef() { return "el"; }
148
152
  }
149
153
  //# sourceMappingURL=notification.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/components/notification/notification.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAS7D,MAAM,OAAO,YAAY;IALzB;QAOU,YAAO,GAAwB,SAAS,CAAC;QAGzC,eAAU,GAAW,QAAQ,CAAC;KA6CvC;IA3CC,iBAAiB;QACf,cAAc,CAAC,kBAAkB,CAAC,CAAA;IACpC,CAAC;IAEO,YAAY;QAClB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,SAAS;gBACZ,OAAO,oCAAoC,CAAC;YAC9C,KAAK,QAAQ;gBACX,OAAO,mCAAmC,CAAC;YAC7C,KAAK,OAAO;gBACV,OAAO,kCAAkC,CAAC;YAC5C,KAAK,SAAS;gBACZ,OAAO,oCAAoC,CAAC;YAC9C;gBACE,OAAO,oCAAoC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,4BAA4B,GAAG,IAAI,CAAC,YAAY,EAAE;gBAC5D,4DAAK,KAAK,EAAC,wBAAwB;oBACjC,iEAAU,IAAI,EAAE,IAAI,CAAC,IAAI,GAAa,CAClC;gBACN,4DAAK,KAAK,EAAC,wBAAwB;oBACjC,4DAAK,KAAK,EAAC,wBAAwB;wBACjC,8DAAO,CACH;oBACJ,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;wBAChC,4DAAK,KAAK,EAAC,wBAAwB;4BACjC,iEAAU,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU;gCACnD,IAAI,CAAC,QAAQ;gCAAC,iEAAU,IAAI,EAAC,gBAAgB,GACrC,CACA,CACP,CAEF,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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}"]}
1
+ {"version":3,"file":"notification.js","sourceRoot":"","sources":["../../../src/components/notification/notification.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAQtE,MAAM,OAAO,YAAY;IALzB;QAQU,YAAO,GAAwB,SAAS,CAAC;QAGzC,eAAU,GAAW,QAAQ,CAAC;KA+CvC;IA7CC,iBAAiB;QACf,IAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,cAAc,CAAC,kBAAkB,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,SAAS;gBACZ,OAAO,oCAAoC,CAAC;YAC9C,KAAK,QAAQ;gBACX,OAAO,mCAAmC,CAAC;YAC7C,KAAK,OAAO;gBACV,OAAO,kCAAkC,CAAC;YAC5C,KAAK,SAAS;gBACZ,OAAO,oCAAoC,CAAC;YAC9C;gBACE,OAAO,oCAAoC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,EAAC,IAAI;YACH,4DAAK,KAAK,EAAE,4BAA4B,GAAG,IAAI,CAAC,YAAY,EAAE;gBAC5D,4DAAK,KAAK,EAAC,wBAAwB;oBACjC,iEAAU,IAAI,EAAE,IAAI,CAAC,IAAI,GAAa,CAClC;gBACN,4DAAK,KAAK,EAAC,wBAAwB;oBACjC,4DAAK,KAAK,EAAC,wBAAwB;wBACjC,8DAAO,CACH;oBACJ,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;wBAChC,4DAAK,KAAK,EAAC,wBAAwB;4BACjC,iEAAU,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU;gCACnD,IAAI,CAAC,QAAQ;gCAAC,iEAAU,IAAI,EAAC,gBAAgB,GACrC,CACA,CACP,CAEF,CACF,CACD,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\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 @Element() el;\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 if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-notification')\n }\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}"]}
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  export class Pagination {
4
5
  constructor() {
5
6
  this.currentPage = 1;
@@ -71,7 +72,9 @@ export class Pagination {
71
72
  this.filteredItemsPerPage = items.map(item => (Object.assign(Object.assign({}, item), { label: item.label || item.value })));
72
73
  }
73
74
  componentWillLoad() {
74
- trackComponent('ifx-pagination');
75
+ if (!isNestedInIfxComponent(this.el)) {
76
+ trackComponent('ifx-pagination');
77
+ }
75
78
  this.calculateNumberOfPages();
76
79
  this.filterOptionsArray();
77
80
  this.updateVisiblePages();
@@ -123,7 +126,7 @@ export class Pagination {
123
126
  this.initPagination();
124
127
  }
125
128
  render() {
126
- return (h("div", { key: '43bfa18e4a2ad9061042ae48ba32b193002b5a81', class: "container" }, h("div", { key: '4af46992b54594a0dbd87b272c1df2bcee6bd15c', class: "items__per-page-wrapper" }, h("div", { key: 'ed6fe0ff066e8cf42e76d8327a7d30ac30b9cc02', class: "items__per-page-label" }, "Results per Page"), h("div", { key: 'cc4a8a25d7e86633f542c1a0b92eaf11e47fe921', class: "items__per-page-field" }, h("ifx-select", { key: '718ffae6176908eb3c36f23ab219404c39cd6e80', placeholder: 'false', "show-search": 'false', value: undefined, disabled: false, error: false, size: "s", options: this.filteredItemsPerPage, "placeholder-value": "Select" }))), h("div", { key: '18da06d6828fe9a58acc2b68ba47ffc7d322aef0', class: "items__total-wrapper" }, h("div", { key: 'e7396afc152c346c2ad5ab2d5b7d38c25c6b3486', class: "pagination" }, h("ifx-icon-button", { key: 'b22abc88bcb3312cfe85d4474ed9961b5000b1f1', class: "prev", icon: "arrow-left-16", onClick: () => this.changePage(this.internalPage - 1) }), h("ol", { key: 'c9e99496e86c8babe431b177f33a01907f402933' }, this.visiblePages.map((page, i) => typeof page === 'number' ? (h("li", { key: `page-${page}`, class: { [this.CLASS_ACTIVE]: page === this.internalPage }, "data-page": page }, h("a", { href: "javascript:void(0)" }, page))) : (h("li", { class: "ellipsis", key: `ellipsis-${i}` }, h("span", null, "..."))))), h("ifx-icon-button", { key: '3944a6eaf2081a9e467891fad430eae1d1e272d6', class: "next", icon: "arrow-right-16", onClick: () => this.changePage(this.internalPage + 1) })))));
129
+ return (h("div", { key: '120f6db1f0899a6cf1a0c8418c1712e1b50726d2', class: "container" }, h("div", { key: 'd21a7b940b7235c1d67c3ffa2bbb87463e9e0e1f', class: "items__per-page-wrapper" }, h("div", { key: '1747ac5690181c57305189fd2ace9e9651a01d28', class: "items__per-page-label" }, "Results per Page"), h("div", { key: 'a437b3410a46f1059b57ba2c9b7d3ac96a73d0b1', class: "items__per-page-field" }, h("ifx-select", { key: '6f01aaf8efecbbdeeb7180077e98dcf1851b130f', placeholder: 'false', "show-search": 'false', value: undefined, disabled: false, error: false, size: "s", options: this.filteredItemsPerPage, "placeholder-value": "Select" }))), h("div", { key: '45379d16c815cb271eab074bfb334256d0b8293e', class: "items__total-wrapper" }, h("div", { key: '8c567a2f79cee9affcd7002fcf6808dca68945d3', class: "pagination" }, h("ifx-icon-button", { key: '681ffc9a5f5d61520176fb2e4dfe44035d566a41', class: "prev", icon: "arrow-left-16", onClick: () => this.changePage(this.internalPage - 1) }), h("ol", { key: '19e46d1c5f3846f13186d587d5a01e1e2169db4f' }, this.visiblePages.map((page, i) => typeof page === 'number' ? (h("li", { key: `page-${page}`, class: { [this.CLASS_ACTIVE]: page === this.internalPage }, "data-page": page }, h("a", { href: "javascript:void(0)" }, page))) : (h("li", { class: "ellipsis", key: `ellipsis-${i}` }, h("span", null, "..."))))), h("ifx-icon-button", { key: '65b5dfd4edde059345875a0443edb218cde7d6ac', class: "next", icon: "arrow-right-16", onClick: () => this.changePage(this.internalPage + 1) })))));
127
130
  }
128
131
  static get is() { return "ifx-pagination"; }
129
132
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Element, Event, EventEmitter, Prop, State, Listen } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-pagination',\n styleUrl: 'pagination.scss',\n shadow: true\n})\nexport class Pagination {\n @Element() el: HTMLElement;\n @Event() ifxPageChange: EventEmitter;\n @Prop() currentPage: number = 1;\n @State() internalPage: number = 1;\n @State() internalItemsPerPage: number = 10;\n @State() numberOfPages: number[] = [];\n @Prop() total: number = 1;\n @Prop() itemsPerPage: any[] | string;\n @State() filteredItemsPerPage: any[] = [];\n @State() visiblePages: (number | string)[] = [];\n\n private CLASS_DISABLED = \"disabled\";\n private CLASS_ACTIVE = \"active\";\n private prevInternalPage: number;\n\n @Listen('ifxSelect')\n setItemsPerPage(e: CustomEvent) {\n const selectedValue = e.detail?.value || e.detail?.label; \n const newItemsPerPage = parseInt(selectedValue) || 10;\n\n if (newItemsPerPage === this.internalItemsPerPage) {\n return;\n }\n\n this.internalItemsPerPage = newItemsPerPage;\n this.internalPage = 1; \n this.calculateNumberOfPages();\n this.updateVisiblePages();\n this.handleEventEmission();\n }\n\n componentDidLoad() {\n this.initPagination();\n }\n\n updateVisiblePages() {\n const buffer = 2;\n const totalPages = this.numberOfPages.length;\n const current = this.internalPage;\n let pages: (number | string)[] = [];\n \n if (totalPages <= 5) {\n pages = [...this.numberOfPages];\n } else {\n pages.push(1);\n \n if (current > buffer + 1) pages.push('...');\n \n let start = Math.max(2, current - buffer);\n let end = Math.min(totalPages - 1, current + buffer);\n \n if (current <= buffer + 1) end = buffer * 2 + 1;\n if (current >= totalPages - buffer) start = totalPages - buffer * 2;\n \n for (let i = start; i <= end; i++) pages.push(i);\n \n if (current < totalPages - buffer) pages.push('...');\n pages.push(totalPages);\n }\n \n this.visiblePages = [...new Set(pages)];\n }\n\n calculateNumberOfPages() {\n const totalPages = Math.ceil(this.total / this.internalItemsPerPage);\n this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);\n this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));\n }\n\n filterOptionsArray() { \n const items = typeof this.itemsPerPage === 'string' ? \n JSON.parse(this.itemsPerPage) : this.itemsPerPage;\n this.filteredItemsPerPage = items.map(item => ({\n ...item,\n label: item.label || item.value\n }));\n }\n\n componentWillLoad() {\n trackComponent('ifx-pagination')\n this.calculateNumberOfPages();\n this.filterOptionsArray();\n this.updateVisiblePages();\n }\n\n componentWillUpdate() { \n if (this.prevInternalPage !== this.internalPage) {\n this.updateVisiblePages();\n this.prevInternalPage = this.internalPage;\n }\n }\n\n componentDidUpdate() {\n this.initPagination();\n }\n\n handleEventEmission() {\n this.ifxPageChange.emit({\n currentPage: this.internalPage,\n totalPages: this.numberOfPages.length,\n itemsPerPage: this.internalItemsPerPage\n });\n }\n\n initPagination() {\n const pagination = this.el.shadowRoot.querySelector('.pagination');\n if (!pagination) return;\n\n const updateButtons = () => {\n const prev = pagination.querySelector<HTMLButtonElement>('.prev');\n const next = pagination.querySelector<HTMLButtonElement>('.next');\n if (prev) {\n prev.disabled = this.internalPage === 1;\n prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);\n }\n if (next) {\n next.disabled = this.internalPage === this.numberOfPages.length;\n next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);\n }\n };\n\n pagination.querySelectorAll('li').forEach(li => {\n li.removeEventListener('click', this.handlePageClick);\n li.addEventListener('click', this.handlePageClick);\n });\n\n updateButtons();\n }\n\n private handlePageClick = (e: Event) => {\n const li = e.currentTarget as HTMLLIElement;\n const page = parseInt(li.dataset.page);\n if (!isNaN(page)) this.changePage(page);\n };\n\n changePage(newPage: number) {\n newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));\n if (newPage === this.internalPage) return;\n \n this.internalPage = newPage;\n this.handleEventEmission();\n this.initPagination();\n }\n\n render() {\n return (\n <div class=\"container\">\n <div class=\"items__per-page-wrapper\">\n <div class=\"items__per-page-label\">Results per Page</div>\n <div class=\"items__per-page-field\">\n <ifx-select\n placeholder='false'\n show-search='false'\n value={undefined}\n disabled={false}\n error={false}\n size=\"s\"\n options={this.filteredItemsPerPage}\n placeholder-value=\"Select\"\n ></ifx-select>\n </div>\n </div>\n \n <div class=\"items__total-wrapper\">\n <div class=\"pagination\">\n <ifx-icon-button\n class=\"prev\"\n icon=\"arrow-left-16\"\n onClick={() => this.changePage(this.internalPage - 1)}\n ></ifx-icon-button>\n \n <ol>\n {this.visiblePages.map((page, i) => typeof page === 'number' ? (\n <li \n key={`page-${page}`}\n class={{ [this.CLASS_ACTIVE]: page === this.internalPage }}\n data-page={page}\n >\n <a href=\"javascript:void(0)\">{page}</a>\n </li>\n ) : (\n <li class=\"ellipsis\" key={`ellipsis-${i}`}>\n <span>...</span>\n </li>\n ))}\n </ol>\n \n <ifx-icon-button\n class=\"next\"\n icon=\"arrow-right-16\"\n onClick={() => this.changePage(this.internalPage + 1)}\n ></ifx-icon-button>\n </div>\n </div>\n </div>\n );\n }\n}"]}
1
+ {"version":3,"file":"pagination.js","sourceRoot":"","sources":["../../../src/components/pagination/pagination.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Element, Event, EventEmitter, Prop, State, Listen } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-pagination',\n styleUrl: 'pagination.scss',\n shadow: true\n})\nexport class Pagination {\n @Element() el: HTMLElement;\n @Event() ifxPageChange: EventEmitter;\n @Prop() currentPage: number = 1;\n @State() internalPage: number = 1;\n @State() internalItemsPerPage: number = 10;\n @State() numberOfPages: number[] = [];\n @Prop() total: number = 1;\n @Prop() itemsPerPage: any[] | string;\n @State() filteredItemsPerPage: any[] = [];\n @State() visiblePages: (number | string)[] = [];\n\n private CLASS_DISABLED = \"disabled\";\n private CLASS_ACTIVE = \"active\";\n private prevInternalPage: number;\n\n @Listen('ifxSelect')\n setItemsPerPage(e: CustomEvent) {\n const selectedValue = e.detail?.value || e.detail?.label; \n const newItemsPerPage = parseInt(selectedValue) || 10;\n\n if (newItemsPerPage === this.internalItemsPerPage) {\n return;\n }\n\n this.internalItemsPerPage = newItemsPerPage;\n this.internalPage = 1; \n this.calculateNumberOfPages();\n this.updateVisiblePages();\n this.handleEventEmission();\n }\n\n componentDidLoad() {\n this.initPagination();\n }\n\n updateVisiblePages() {\n const buffer = 2;\n const totalPages = this.numberOfPages.length;\n const current = this.internalPage;\n let pages: (number | string)[] = [];\n \n if (totalPages <= 5) {\n pages = [...this.numberOfPages];\n } else {\n pages.push(1);\n \n if (current > buffer + 1) pages.push('...');\n \n let start = Math.max(2, current - buffer);\n let end = Math.min(totalPages - 1, current + buffer);\n \n if (current <= buffer + 1) end = buffer * 2 + 1;\n if (current >= totalPages - buffer) start = totalPages - buffer * 2;\n \n for (let i = start; i <= end; i++) pages.push(i);\n \n if (current < totalPages - buffer) pages.push('...');\n pages.push(totalPages);\n }\n \n this.visiblePages = [...new Set(pages)];\n }\n\n calculateNumberOfPages() {\n const totalPages = Math.ceil(this.total / this.internalItemsPerPage);\n this.numberOfPages = Array.from({ length: totalPages }, (_, i) => i + 1);\n this.internalPage = Math.max(1, Math.min(this.currentPage, totalPages));\n }\n\n filterOptionsArray() { \n const items = typeof this.itemsPerPage === 'string' ? \n JSON.parse(this.itemsPerPage) : this.itemsPerPage;\n this.filteredItemsPerPage = items.map(item => ({\n ...item,\n label: item.label || item.value\n }));\n }\n\n componentWillLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-pagination')\n }\n this.calculateNumberOfPages();\n this.filterOptionsArray();\n this.updateVisiblePages();\n }\n\n componentWillUpdate() { \n if (this.prevInternalPage !== this.internalPage) {\n this.updateVisiblePages();\n this.prevInternalPage = this.internalPage;\n }\n }\n\n componentDidUpdate() {\n this.initPagination();\n }\n\n handleEventEmission() {\n this.ifxPageChange.emit({\n currentPage: this.internalPage,\n totalPages: this.numberOfPages.length,\n itemsPerPage: this.internalItemsPerPage\n });\n }\n\n initPagination() {\n const pagination = this.el.shadowRoot.querySelector('.pagination');\n if (!pagination) return;\n\n const updateButtons = () => {\n const prev = pagination.querySelector<HTMLButtonElement>('.prev');\n const next = pagination.querySelector<HTMLButtonElement>('.next');\n if (prev) {\n prev.disabled = this.internalPage === 1;\n prev.classList.toggle(this.CLASS_DISABLED, this.internalPage === 1);\n }\n if (next) {\n next.disabled = this.internalPage === this.numberOfPages.length;\n next.classList.toggle(this.CLASS_DISABLED, this.internalPage === this.numberOfPages.length);\n }\n };\n\n pagination.querySelectorAll('li').forEach(li => {\n li.removeEventListener('click', this.handlePageClick);\n li.addEventListener('click', this.handlePageClick);\n });\n\n updateButtons();\n }\n\n private handlePageClick = (e: Event) => {\n const li = e.currentTarget as HTMLLIElement;\n const page = parseInt(li.dataset.page);\n if (!isNaN(page)) this.changePage(page);\n };\n\n changePage(newPage: number) {\n newPage = Math.max(1, Math.min(newPage, this.numberOfPages.length));\n if (newPage === this.internalPage) return;\n \n this.internalPage = newPage;\n this.handleEventEmission();\n this.initPagination();\n }\n\n render() {\n return (\n <div class=\"container\">\n <div class=\"items__per-page-wrapper\">\n <div class=\"items__per-page-label\">Results per Page</div>\n <div class=\"items__per-page-field\">\n <ifx-select\n placeholder='false'\n show-search='false'\n value={undefined}\n disabled={false}\n error={false}\n size=\"s\"\n options={this.filteredItemsPerPage}\n placeholder-value=\"Select\"\n ></ifx-select>\n </div>\n </div>\n \n <div class=\"items__total-wrapper\">\n <div class=\"pagination\">\n <ifx-icon-button\n class=\"prev\"\n icon=\"arrow-left-16\"\n onClick={() => this.changePage(this.internalPage - 1)}\n ></ifx-icon-button>\n \n <ol>\n {this.visiblePages.map((page, i) => typeof page === 'number' ? (\n <li \n key={`page-${page}`}\n class={{ [this.CLASS_ACTIVE]: page === this.internalPage }}\n data-page={page}\n >\n <a href=\"javascript:void(0)\">{page}</a>\n </li>\n ) : (\n <li class=\"ellipsis\" key={`ellipsis-${i}`}>\n <span>...</span>\n </li>\n ))}\n </ol>\n \n <ifx-icon-button\n class=\"next\"\n icon=\"arrow-right-16\"\n onClick={() => this.changePage(this.internalPage + 1)}\n ></ifx-icon-button>\n </div>\n </div>\n </div>\n );\n }\n}"]}
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  export class ProgressBar {
4
5
  constructor() {
5
6
  this.value = 0;
@@ -11,11 +12,13 @@ export class ProgressBar {
11
12
  }
12
13
  }
13
14
  componentWillLoad() {
14
- trackComponent('ifx-progress-bar');
15
+ if (!isNestedInIfxComponent(this.el)) {
16
+ trackComponent('ifx-progress-bar');
17
+ }
15
18
  this.internalValue = this.value;
16
19
  }
17
20
  render() {
18
- return (h("div", { key: '46fcb7108f7b9b0f39529e3518eda14a799967a1', "aria-label": 'a progress bar', "aria-value": this.value, class: `progress-bar ${this.size}` }, h("div", { key: '4ef3652d6641d7c8ecc7fa1e338fbafb1602bec3', class: "progress", style: { width: `${this.internalValue}%` } }, this.showLabel && this.size !== "s" && this.internalValue !== 0 && h("span", { key: '28fc6f424c210d7e0bb3aab37772d255597687fa', class: "label" }, `${this.internalValue}%`))));
21
+ return (h("div", { key: 'f32f05b8ca5034bbf4d3270972a84e1054c2a303', "aria-label": 'a progress bar', "aria-value": this.value, class: `progress-bar ${this.size}` }, h("div", { key: '971450ee9bf27ab0a45eea4428a19fa0812281af', class: "progress", style: { width: `${this.internalValue}%` } }, this.showLabel && this.size !== "s" && this.internalValue !== 0 && h("span", { key: '54763afdb23db9b4578f39d3230b3060bedc6149', class: "label" }, `${this.internalValue}%`))));
19
22
  }
20
23
  static get is() { return "ifx-progress-bar"; }
21
24
  static get encapsulation() { return "shadow"; }
@@ -97,6 +100,7 @@ export class ProgressBar {
97
100
  "internalValue": {}
98
101
  };
99
102
  }
103
+ static get elementRef() { return "el"; }
100
104
  static get watchers() {
101
105
  return [{
102
106
  "propName": "value",
@@ -1 +1 @@
1
- {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../src/components/progress-bar/progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAO7D,MAAM,OAAO,WAAW;IALxB;QAMU,UAAK,GAAW,CAAC,CAAC;QAElB,cAAS,GAAY,KAAK,CAAC;KAyBpC;IApBC,YAAY,CAAC,QAAgB,EAAE,QAAgB;QAC7C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,cAAc,CAAC,kBAAkB,CAAC,CAAA;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,0EAAgB,gBAAgB,gBAAa,IAAI,CAAC,KAAK,EAAG,KAAK,EAAE,gBAAgB,IAAI,CAAC,IAAI,EAAE;YAC1F,4DAAK,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,IAC7D,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,6DAAM,KAAK,EAAC,OAAO,IAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAQ,CACrH,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, State, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-progress-bar',\n styleUrl: 'progress-bar.scss',\n shadow: true\n})\nexport class ProgressBar {\n @Prop() value: number = 0;\n @Prop() size: string;\n @Prop() showLabel: boolean = false;\n\n @State() internalValue: number;\n\n @Watch('value')\n valueChanged(newValue: number, oldValue: number) {\n if (newValue !== oldValue) {\n this.internalValue = newValue;\n }\n }\n\n componentWillLoad() {\n trackComponent('ifx-progress-bar')\n this.internalValue = this.value;\n }\n\n render() {\n return (\n <div aria-label='a progress bar' aria-value={this.value} class={`progress-bar ${this.size}`}>\n <div class=\"progress\" style={{ width: `${this.internalValue}%` }}>\n {this.showLabel && this.size !== \"s\" && this.internalValue !== 0 && <span class=\"label\">{`${this.internalValue}%`}</span>}\n </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../src/components/progress-bar/progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAOtE,MAAM,OAAO,WAAW;IALxB;QAOU,UAAK,GAAW,CAAC,CAAC;QAElB,cAAS,GAAY,KAAK,CAAC;KA2BpC;IAtBC,YAAY,CAAC,QAAgB,EAAE,QAAgB;QAC7C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,cAAc,CAAC,kBAAkB,CAAC,CAAA;QACpC,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO,CACL,0EAAgB,gBAAgB,gBAAa,IAAI,CAAC,KAAK,EAAG,KAAK,EAAE,gBAAgB,IAAI,CAAC,IAAI,EAAE;YAC1F,4DAAK,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,aAAa,GAAG,EAAE,IAC7D,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,6DAAM,KAAK,EAAC,OAAO,IAAE,GAAG,IAAI,CAAC,aAAa,GAAG,CAAQ,CACrH,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Prop, h, State, Watch, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-progress-bar',\n styleUrl: 'progress-bar.scss',\n shadow: true\n})\nexport class ProgressBar {\n @Element() el: HTMLElement;\n @Prop() value: number = 0;\n @Prop() size: string;\n @Prop() showLabel: boolean = false;\n\n @State() internalValue: number;\n\n @Watch('value')\n valueChanged(newValue: number, oldValue: number) {\n if (newValue !== oldValue) {\n this.internalValue = newValue;\n }\n }\n\n componentWillLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-progress-bar')\n }\n this.internalValue = this.value;\n }\n\n render() {\n return (\n <div aria-label='a progress bar' aria-value={this.value} class={`progress-bar ${this.size}`}>\n <div class=\"progress\" style={{ width: `${this.internalValue}%` }}>\n {this.showLabel && this.size !== \"s\" && this.internalValue !== 0 && <span class=\"label\">{`${this.internalValue}%`}</span>}\n </div>\n </div>\n );\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  export class RadioButton {
4
5
  constructor() {
5
6
  this.disabled = false;
@@ -9,7 +10,9 @@ export class RadioButton {
9
10
  this.hasSlot = false;
10
11
  }
11
12
  componentWillLoad() {
12
- trackComponent('ifx-radio-button');
13
+ if (!isNestedInIfxComponent(this.el)) {
14
+ trackComponent('ifx-radio-button');
15
+ }
13
16
  // Fallback for form association
14
17
  this.fallbackInput = document.createElement('input');
15
18
  this.fallbackInput.type = 'radio';
@@ -89,10 +92,10 @@ export class RadioButton {
89
92
  }
90
93
  }
91
94
  render() {
92
- return (h("div", { key: '02589f3430ab75aad324b13f360f764a7d0670a4', role: "radio", "aria-checked": String(this.internalChecked), "aria-disabled": String(this.disabled), class: `radioButton__container ${this.size} ${this.disabled ? 'disabled' : ''}`, onClick: (e) => this.handleRadioButtonClick(e), tabindex: this.disabled ? -1 : 0 }, h("div", { key: '20f30688407c823a2918d1b3396dacd8fa21e622', class: `radioButton__wrapper
95
+ return (h("div", { key: '86e1f1b5a393d2ef1bad324e4689e0b4793385d6', role: "radio", "aria-checked": String(this.internalChecked), "aria-disabled": String(this.disabled), class: `radioButton__container ${this.size} ${this.disabled ? 'disabled' : ''}`, onClick: (e) => this.handleRadioButtonClick(e), tabindex: this.disabled ? -1 : 0 }, h("div", { key: '9fae7f09faaff51065de4e86f2b5a0b82eccb229', class: `radioButton__wrapper
93
96
  ${this.internalChecked ? 'checked' : ''}
94
97
  ${this.disabled ? 'disabled' : ''}
95
- ${this.error ? 'error' : ''}` }, this.internalChecked && h("div", { key: 'ad09df86d67f38157d6db4676a460c6da1b902d4', class: "radioButton__wrapper-mark" })), this.hasSlot && (h("div", { key: '78da819ecffc02c1d853d7578448f8c1c4d09d86', class: `label ${this.size === "m" ? "label-m" : ""} ${this.disabled ? 'disabled' : ''}` }, h("slot", { key: '1085dcb7e6812b6164221273b5b5077a20fa0507' }))), h("input", { key: '12fe17d84348785d9d0fa5997bf26ced36cbefaa', type: "radio", hidden: true, ref: el => this.inputElement = el, name: this.name, value: this.value, checked: this.internalChecked, disabled: this.disabled, onClick: (e) => e.stopPropagation() })));
98
+ ${this.error ? 'error' : ''}` }, this.internalChecked && h("div", { key: 'e3f3ae990414e3df82aee8a527e3fbaa7b152b8b', class: "radioButton__wrapper-mark" })), this.hasSlot && (h("div", { key: '783c079f344ac7d9b4eaf7191ca7448824357cb3', class: `label ${this.size === "m" ? "label-m" : ""} ${this.disabled ? 'disabled' : ''}` }, h("slot", { key: '673f5478818c6988592af884160d74c961cb170e' }))), h("input", { key: 'a8f62860909370729a73d11d49251087c1ef6417', type: "radio", hidden: true, ref: el => this.inputElement = el, name: this.name, value: this.value, checked: this.internalChecked, disabled: this.disabled, onClick: (e) => e.stopPropagation() })));
96
99
  }
97
100
  static get is() { return "ifx-radio-button"; }
98
101
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button.js","sourceRoot":"","sources":["../../../src/components/radio-button/radio-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Element, State, Event, EventEmitter, Listen, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\n\n@Component({\n tag: 'ifx-radio-button',\n styleUrl: 'radio-button.scss',\n shadow: true,\n formAssociated: true\n})\nexport class RadioButton {\n @Element() el: HTMLElement;\n @Prop() disabled: boolean = false;\n @Prop() value: string;\n @Prop() error: boolean = false;\n @Prop({ reflect: true }) size: \"s\" | \"m\" = \"s\";\n @Prop({ reflect: true }) name: string;\n @Prop({ mutable: true }) checked: boolean;\n @State() internalChecked: boolean = false;\n @State() hasSlot: boolean = false;\n\n private inputElement: HTMLInputElement;\n private internals: ElementInternals;\n private fallbackInput: HTMLInputElement;\n\n @Event({ eventName: 'ifxChange' }) ifxChange: EventEmitter;\n @Event({ eventName: 'ifxError' }) ifxError: EventEmitter;\n\n componentWillLoad() {\n trackComponent('ifx-radio-button')\n // Fallback for form association\n this.fallbackInput = document.createElement('input');\n this.fallbackInput.type = 'radio';\n this.fallbackInput.hidden = true;\n this.fallbackInput.className = '_ifx-radiobutton-fallback';\n this.fallbackInput.style.cssText = `\n display: none !important;\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n `;\n this.fallbackInput.setAttribute('aria-hidden', 'true');\n this.fallbackInput.tabIndex = -1;\n this.el.appendChild(this.fallbackInput);\n\n // Initialize ElementInternals if supported\n if ('attachInternals' in HTMLElement.prototype) {\n try {\n this.internals = this.el.attachInternals();\n } catch (e) {\n console.warn('ElementInternals not supported');\n }\n }\n\n // Initial state\n this.internalChecked = this.checked || false;\n this.hasSlot = !!this.el.querySelector('[slot]') || this.el.innerHTML.trim() !== '';\n }\n\n @Watch('checked')\n handleCheckedChange(newValue: boolean) {\n this.internalChecked = newValue;\n }\n\n @Watch('internalChecked')\n updateFormValue() {\n // Update both ElementInternals and fallback input\n if (this.internals?.setFormValue) {\n this.internals.setFormValue(this.internalChecked ? this.value : null);\n }\n this.fallbackInput.checked = this.internalChecked;\n this.fallbackInput.name = this.name;\n this.fallbackInput.value = this.value;\n this.fallbackInput.disabled = this.disabled;\n }\n\n @Watch('error')\n errorChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.ifxError.emit(newValue);\n }\n }\n\n handleRadioButtonClick(event: Event) {\n if (this.disabled) {\n event.stopPropagation();\n return;\n }\n\n this.inputElement.click();\n this.internalChecked = this.inputElement.checked;\n this.checked = this.internalChecked;\n this.ifxChange.emit(this.internalChecked);\n\n const changeEvent = new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: { checked: this.internalChecked }\n });\n this.el.dispatchEvent(changeEvent);\n }\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if ([' ', 'Enter'].includes(ev.key)) {\n ev.preventDefault();\n this.handleRadioButtonClick(new PointerEvent('click'));\n }\n }\n\n @Listen('change', { target: 'document' })\n handleExternalChange(event: Event) {\n const target = event.target as HTMLElement;\n if (target === this.el || target.tagName.toLowerCase() !== 'ifx-radio-button') return;\n \n if (target.getAttribute('name') === this.name) {\n this.internalChecked = false;\n }\n }\n\n render() {\n return (\n <div\n role=\"radio\"\n aria-checked={String(this.internalChecked)}\n aria-disabled={String(this.disabled)}\n class={`radioButton__container ${this.size} ${this.disabled ? 'disabled' : ''}`}\n onClick={(e) => this.handleRadioButtonClick(e)}\n tabindex={this.disabled ? -1 : 0}\n >\n <div\n class={`radioButton__wrapper \n ${this.internalChecked ? 'checked' : ''} \n ${this.disabled ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n >\n {this.internalChecked && <div class=\"radioButton__wrapper-mark\"></div>}\n </div>\n\n {this.hasSlot && (\n <div class={`label ${this.size === \"m\" ? \"label-m\" : \"\"} ${this.disabled ? 'disabled' : ''}`}>\n <slot />\n </div>\n )}\n\n <input\n type=\"radio\"\n hidden\n ref={el => this.inputElement = el}\n name={this.name}\n value={this.value}\n checked={this.internalChecked}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n );\n }\n}"]}
1
+ {"version":3,"file":"radio-button.js","sourceRoot":"","sources":["../../../src/components/radio-button/radio-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Element, State, Event, EventEmitter, Listen, Watch } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\n\n@Component({\n tag: 'ifx-radio-button',\n styleUrl: 'radio-button.scss',\n shadow: true,\n formAssociated: true\n})\nexport class RadioButton {\n @Element() el: HTMLElement;\n @Prop() disabled: boolean = false;\n @Prop() value: string;\n @Prop() error: boolean = false;\n @Prop({ reflect: true }) size: \"s\" | \"m\" = \"s\";\n @Prop({ reflect: true }) name: string;\n @Prop({ mutable: true }) checked: boolean;\n @State() internalChecked: boolean = false;\n @State() hasSlot: boolean = false;\n\n private inputElement: HTMLInputElement;\n private internals: ElementInternals;\n private fallbackInput: HTMLInputElement;\n\n @Event({ eventName: 'ifxChange' }) ifxChange: EventEmitter;\n @Event({ eventName: 'ifxError' }) ifxError: EventEmitter;\n\n componentWillLoad() {\n if(!isNestedInIfxComponent(this.el)) { \n trackComponent('ifx-radio-button')\n }\n // Fallback for form association\n this.fallbackInput = document.createElement('input');\n this.fallbackInput.type = 'radio';\n this.fallbackInput.hidden = true;\n this.fallbackInput.className = '_ifx-radiobutton-fallback';\n this.fallbackInput.style.cssText = `\n display: none !important;\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n `;\n this.fallbackInput.setAttribute('aria-hidden', 'true');\n this.fallbackInput.tabIndex = -1;\n this.el.appendChild(this.fallbackInput);\n\n // Initialize ElementInternals if supported\n if ('attachInternals' in HTMLElement.prototype) {\n try {\n this.internals = this.el.attachInternals();\n } catch (e) {\n console.warn('ElementInternals not supported');\n }\n }\n\n // Initial state\n this.internalChecked = this.checked || false;\n this.hasSlot = !!this.el.querySelector('[slot]') || this.el.innerHTML.trim() !== '';\n }\n\n @Watch('checked')\n handleCheckedChange(newValue: boolean) {\n this.internalChecked = newValue;\n }\n\n @Watch('internalChecked')\n updateFormValue() {\n // Update both ElementInternals and fallback input\n if (this.internals?.setFormValue) {\n this.internals.setFormValue(this.internalChecked ? this.value : null);\n }\n this.fallbackInput.checked = this.internalChecked;\n this.fallbackInput.name = this.name;\n this.fallbackInput.value = this.value;\n this.fallbackInput.disabled = this.disabled;\n }\n\n @Watch('error')\n errorChanged(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n this.ifxError.emit(newValue);\n }\n }\n\n handleRadioButtonClick(event: Event) {\n if (this.disabled) {\n event.stopPropagation();\n return;\n }\n\n this.inputElement.click();\n this.internalChecked = this.inputElement.checked;\n this.checked = this.internalChecked;\n this.ifxChange.emit(this.internalChecked);\n\n const changeEvent = new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: { checked: this.internalChecked }\n });\n this.el.dispatchEvent(changeEvent);\n }\n\n @Listen('keydown')\n handleKeyDown(ev: KeyboardEvent) {\n if ([' ', 'Enter'].includes(ev.key)) {\n ev.preventDefault();\n this.handleRadioButtonClick(new PointerEvent('click'));\n }\n }\n\n @Listen('change', { target: 'document' })\n handleExternalChange(event: Event) {\n const target = event.target as HTMLElement;\n if (target === this.el || target.tagName.toLowerCase() !== 'ifx-radio-button') return;\n \n if (target.getAttribute('name') === this.name) {\n this.internalChecked = false;\n }\n }\n\n render() {\n return (\n <div\n role=\"radio\"\n aria-checked={String(this.internalChecked)}\n aria-disabled={String(this.disabled)}\n class={`radioButton__container ${this.size} ${this.disabled ? 'disabled' : ''}`}\n onClick={(e) => this.handleRadioButtonClick(e)}\n tabindex={this.disabled ? -1 : 0}\n >\n <div\n class={`radioButton__wrapper \n ${this.internalChecked ? 'checked' : ''} \n ${this.disabled ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n >\n {this.internalChecked && <div class=\"radioButton__wrapper-mark\"></div>}\n </div>\n\n {this.hasSlot && (\n <div class={`label ${this.size === \"m\" ? \"label-m\" : \"\"} ${this.disabled ? 'disabled' : ''}`}>\n <slot />\n </div>\n )}\n\n <input\n type=\"radio\"\n hidden\n ref={el => this.inputElement = el}\n name={this.name}\n value={this.value}\n checked={this.internalChecked}\n disabled={this.disabled}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n );\n }\n}"]}
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { trackComponent } from "../../global/utils/tracking";
3
+ import { isNestedInIfxComponent } from "../../global/utils/dom-utils";
3
4
  export class RadioButtonGroup {
4
5
  constructor() {
5
6
  this.errorStates = new Map();
@@ -25,7 +26,9 @@ export class RadioButtonGroup {
25
26
  });
26
27
  }
27
28
  componentWillLoad() {
28
- trackComponent('ifx-radio-button-group');
29
+ if (!isNestedInIfxComponent(this.el)) {
30
+ trackComponent('ifx-radio-button-group');
31
+ }
29
32
  this.initializeState();
30
33
  }
31
34
  initializeState() {
@@ -42,7 +45,7 @@ export class RadioButtonGroup {
42
45
  this.hasErrors = Array.from(this.errorStates.values()).some((error) => error);
43
46
  }
44
47
  render() {
45
- return (h("div", { key: 'd16efdb1196d8b4caff6b92f42bcc0d0f8e493a7', class: 'radio-button-group-container' }, this.showGroupLabel ? h("div", { class: 'group-label' }, this.groupLabelText, " *") : '', h("div", { key: 'f59729a04fe82311d7a17a1e5cc3df82913e3fe7', class: `radio-button-group ${this.alignment} ${this.size}` }, h("slot", { key: '9d83ffb0c14be724cb941839f834a8a7201fb776', onSlotchange: this.handleSlotChange })), this.showCaption ? (h("div", { class: `caption ${this.hasErrors ? 'error' : 'default'}` }, this.showCaptionIcon ? h("div", { class: 'caption-icon' }, h("ifx-icon", { icon: "c-info-16" })) : '', h("div", { class: 'caption-text' }, this.captionText))) : ''));
48
+ return (h("div", { key: '0636774d636177886266e03cce05235f8fc347a4', class: 'radio-button-group-container' }, this.showGroupLabel ? h("div", { class: 'group-label' }, this.groupLabelText, " *") : '', h("div", { key: 'ef9212441d5e0a2dc74795e2bf8c79199bbfc9d5', class: `radio-button-group ${this.alignment} ${this.size}` }, h("slot", { key: '73dbf713760b20a7964ff4232172a5c8a864cad8', onSlotchange: this.handleSlotChange })), this.showCaption ? (h("div", { class: `caption ${this.hasErrors ? 'error' : 'default'}` }, this.showCaptionIcon ? h("div", { class: 'caption-icon' }, h("ifx-icon", { icon: "c-info-16" })) : '', h("div", { class: 'caption-text' }, this.captionText))) : ''));
46
49
  }
47
50
  static get is() { return "ifx-radio-button-group"; }
48
51
  static get encapsulation() { return "shadow"; }