@infineon/infineon-design-system-stencil 39.4.4--canary.2130.4e289d5eee4c0769b9458514c7fb228750796ed6.0 → 39.4.4--canary.1723.9b272b74ec2d7a1946e675696ed8c09294c36bc3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (786) hide show
  1. package/dist/cjs/ifx-accordion_2.cjs.entry.js +3 -1
  2. package/dist/cjs/ifx-accordion_2.cjs.entry.js.map +1 -0
  3. package/dist/cjs/ifx-action-list-item.cjs.entry.js +3 -1
  4. package/dist/cjs/ifx-action-list-item.cjs.entry.js.map +1 -0
  5. package/dist/cjs/ifx-action-list.cjs.entry.js +3 -1
  6. package/dist/cjs/ifx-action-list.cjs.entry.js.map +1 -0
  7. package/dist/cjs/ifx-alert_2.cjs.entry.js +3 -1
  8. package/dist/cjs/ifx-alert_2.cjs.entry.js.map +1 -0
  9. package/dist/cjs/ifx-basic-table.cjs.entry.js +3 -1
  10. package/dist/cjs/ifx-basic-table.cjs.entry.js.map +1 -0
  11. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js +3 -1
  12. package/dist/cjs/ifx-breadcrumb-item-label.cjs.entry.js.map +1 -0
  13. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js +3 -1
  14. package/dist/cjs/ifx-breadcrumb-item.cjs.entry.js.map +1 -0
  15. package/dist/cjs/ifx-breadcrumb.cjs.entry.js +3 -1
  16. package/dist/cjs/ifx-breadcrumb.cjs.entry.js.map +1 -0
  17. package/dist/cjs/ifx-button.cjs.entry.js +3 -1
  18. package/dist/cjs/ifx-button.cjs.entry.js.map +1 -0
  19. package/dist/cjs/ifx-card-headline.cjs.entry.js +3 -1
  20. package/dist/cjs/ifx-card-headline.cjs.entry.js.map +1 -0
  21. package/dist/cjs/ifx-card-image.cjs.entry.js +3 -1
  22. package/dist/cjs/ifx-card-image.cjs.entry.js.map +1 -0
  23. package/dist/cjs/ifx-card-links.cjs.entry.js +3 -1
  24. package/dist/cjs/ifx-card-links.cjs.entry.js.map +1 -0
  25. package/dist/cjs/ifx-card-overline.cjs.entry.js +3 -1
  26. package/dist/cjs/ifx-card-overline.cjs.entry.js.map +1 -0
  27. package/dist/cjs/ifx-card-text.cjs.entry.js +3 -1
  28. package/dist/cjs/ifx-card-text.cjs.entry.js.map +1 -0
  29. package/dist/cjs/ifx-card.cjs.entry.js +3 -1
  30. package/dist/cjs/ifx-card.cjs.entry.js.map +1 -0
  31. package/dist/cjs/ifx-checkbox-group.cjs.entry.js +3 -1
  32. package/dist/cjs/ifx-checkbox-group.cjs.entry.js.map +1 -0
  33. package/dist/cjs/ifx-checkbox.cjs.entry.js +3 -1
  34. package/dist/cjs/ifx-checkbox.cjs.entry.js.map +1 -0
  35. package/dist/cjs/ifx-chip_3.cjs.entry.js +3 -1
  36. package/dist/cjs/ifx-chip_3.cjs.entry.js.map +1 -0
  37. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js +3 -1
  38. package/dist/cjs/ifx-content-switcher-item.cjs.entry.js.map +1 -0
  39. package/dist/cjs/ifx-content-switcher.cjs.entry.js +3 -1
  40. package/dist/cjs/ifx-content-switcher.cjs.entry.js.map +1 -0
  41. package/dist/cjs/ifx-date-picker.cjs.entry.js +3 -1
  42. package/dist/cjs/ifx-date-picker.cjs.entry.js.map +1 -0
  43. package/dist/cjs/ifx-download.cjs.entry.js +3 -1
  44. package/dist/cjs/ifx-download.cjs.entry.js.map +1 -0
  45. package/dist/cjs/ifx-dropdown-header.cjs.entry.js +3 -1
  46. package/dist/cjs/ifx-dropdown-header.cjs.entry.js.map +1 -0
  47. package/dist/cjs/ifx-dropdown-item.cjs.entry.js +3 -1
  48. package/dist/cjs/ifx-dropdown-item.cjs.entry.js.map +1 -0
  49. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js +3 -1
  50. package/dist/cjs/ifx-dropdown-menu.cjs.entry.js.map +1 -0
  51. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js +3 -1
  52. package/dist/cjs/ifx-dropdown-separator.cjs.entry.js.map +1 -0
  53. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js +3 -1
  54. package/dist/cjs/ifx-dropdown-trigger-button.cjs.entry.js.map +1 -0
  55. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js +3 -1
  56. package/dist/cjs/ifx-dropdown-trigger.cjs.entry.js.map +1 -0
  57. package/dist/cjs/ifx-dropdown.cjs.entry.js +3 -1
  58. package/dist/cjs/ifx-dropdown.cjs.entry.js.map +1 -0
  59. package/dist/cjs/ifx-faq.cjs.entry.js +3 -1
  60. package/dist/cjs/ifx-faq.cjs.entry.js.map +1 -0
  61. package/dist/cjs/ifx-file-upload.cjs.entry.js +3 -1
  62. package/dist/cjs/ifx-file-upload.cjs.entry.js.map +1 -0
  63. package/dist/cjs/ifx-filter-accordion.cjs.entry.js +3 -1
  64. package/dist/cjs/ifx-filter-accordion.cjs.entry.js.map +1 -0
  65. package/dist/cjs/ifx-filter-bar.cjs.entry.js +3 -1
  66. package/dist/cjs/ifx-filter-bar.cjs.entry.js.map +1 -0
  67. package/dist/cjs/ifx-filter-search.cjs.entry.js +3 -1
  68. package/dist/cjs/ifx-filter-search.cjs.entry.js.map +1 -0
  69. package/dist/cjs/ifx-filter-type-group.cjs.entry.js +3 -1
  70. package/dist/cjs/ifx-filter-type-group.cjs.entry.js.map +1 -0
  71. package/dist/cjs/ifx-footer-column.cjs.entry.js +3 -1
  72. package/dist/cjs/ifx-footer-column.cjs.entry.js.map +1 -0
  73. package/dist/cjs/ifx-footer.cjs.entry.js +3 -1
  74. package/dist/cjs/ifx-footer.cjs.entry.js.map +1 -0
  75. package/dist/cjs/ifx-icon-button.cjs.entry.js +3 -1
  76. package/dist/cjs/ifx-icon-button.cjs.entry.js.map +1 -0
  77. package/dist/cjs/ifx-icon.cjs.entry.js +3 -1
  78. package/dist/cjs/ifx-icon.cjs.entry.js.map +1 -0
  79. package/dist/cjs/ifx-icons-preview.cjs.entry.js +3 -1
  80. package/dist/cjs/ifx-icons-preview.cjs.entry.js.map +1 -0
  81. package/dist/cjs/ifx-indicator.cjs.entry.js +3 -1
  82. package/dist/cjs/ifx-indicator.cjs.entry.js.map +1 -0
  83. package/dist/cjs/ifx-link.cjs.entry.js +3 -1
  84. package/dist/cjs/ifx-link.cjs.entry.js.map +1 -0
  85. package/dist/cjs/ifx-list-entry.cjs.entry.js +3 -1
  86. package/dist/cjs/ifx-list-entry.cjs.entry.js.map +1 -0
  87. package/dist/cjs/ifx-list.cjs.entry.js +3 -1
  88. package/dist/cjs/ifx-list.cjs.entry.js.map +1 -0
  89. package/dist/cjs/ifx-modal.cjs.entry.js +3 -1
  90. package/dist/cjs/ifx-modal.cjs.entry.js.map +1 -0
  91. package/dist/cjs/ifx-modal.entry.cjs.js.map +1 -1
  92. package/dist/cjs/ifx-multiselect_2.cjs.entry.js +3 -1
  93. package/dist/cjs/ifx-multiselect_2.cjs.entry.js.map +1 -0
  94. package/dist/cjs/ifx-navbar-item.cjs.entry.js +3 -1
  95. package/dist/cjs/ifx-navbar-item.cjs.entry.js.map +1 -0
  96. package/dist/cjs/ifx-navbar-profile.cjs.entry.js +3 -1
  97. package/dist/cjs/ifx-navbar-profile.cjs.entry.js.map +1 -0
  98. package/dist/cjs/ifx-navbar.cjs.entry.js +3 -1
  99. package/dist/cjs/ifx-navbar.cjs.entry.js.map +1 -0
  100. package/dist/cjs/ifx-notification.cjs.entry.js +3 -1
  101. package/dist/cjs/ifx-notification.cjs.entry.js.map +1 -0
  102. package/dist/cjs/ifx-overview-table.cjs.entry.js +3 -1
  103. package/dist/cjs/ifx-overview-table.cjs.entry.js.map +1 -0
  104. package/dist/cjs/ifx-progress-bar.cjs.entry.js +3 -1
  105. package/dist/cjs/ifx-progress-bar.cjs.entry.js.map +1 -0
  106. package/dist/cjs/ifx-radio-button-group.cjs.entry.js +3 -1
  107. package/dist/cjs/ifx-radio-button-group.cjs.entry.js.map +1 -0
  108. package/dist/cjs/ifx-radio-button.cjs.entry.js +3 -1
  109. package/dist/cjs/ifx-radio-button.cjs.entry.js.map +1 -0
  110. package/dist/cjs/ifx-search-bar.cjs.entry.js +3 -1
  111. package/dist/cjs/ifx-search-bar.cjs.entry.js.map +1 -0
  112. package/dist/cjs/ifx-search-field.cjs.entry.js +3 -1
  113. package/dist/cjs/ifx-search-field.cjs.entry.js.map +1 -0
  114. package/dist/cjs/ifx-segment.cjs.entry.js +3 -1
  115. package/dist/cjs/ifx-segment.cjs.entry.js.map +1 -0
  116. package/dist/cjs/ifx-segmented-control.cjs.entry.js +3 -1
  117. package/dist/cjs/ifx-segmented-control.cjs.entry.js.map +1 -0
  118. package/dist/cjs/ifx-select.cjs.entry.js +3 -1
  119. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -0
  120. package/dist/cjs/ifx-set-filter.cjs.entry.js +3 -1
  121. package/dist/cjs/ifx-set-filter.cjs.entry.js.map +1 -0
  122. package/dist/cjs/ifx-sidebar-item.cjs.entry.js +3 -1
  123. package/dist/cjs/ifx-sidebar-item.cjs.entry.js.map +1 -0
  124. package/dist/cjs/ifx-sidebar-title.cjs.entry.js +3 -1
  125. package/dist/cjs/ifx-sidebar-title.cjs.entry.js.map +1 -0
  126. package/dist/cjs/ifx-sidebar.cjs.entry.js +3 -1
  127. package/dist/cjs/ifx-sidebar.cjs.entry.js.map +1 -0
  128. package/dist/cjs/ifx-slider.cjs.entry.js +3 -1
  129. package/dist/cjs/ifx-slider.cjs.entry.js.map +1 -0
  130. package/dist/cjs/ifx-spinner_2.cjs.entry.js +3 -1
  131. package/dist/cjs/ifx-spinner_2.cjs.entry.js.map +1 -0
  132. package/dist/cjs/ifx-status.cjs.entry.js +3 -1
  133. package/dist/cjs/ifx-status.cjs.entry.js.map +1 -0
  134. package/dist/cjs/ifx-step.cjs.entry.js +3 -1
  135. package/dist/cjs/ifx-step.cjs.entry.js.map +1 -0
  136. package/dist/cjs/ifx-stepper.cjs.entry.js +3 -1
  137. package/dist/cjs/ifx-stepper.cjs.entry.js.map +1 -0
  138. package/dist/cjs/ifx-switch.cjs.entry.js +3 -1
  139. package/dist/cjs/ifx-switch.cjs.entry.js.map +1 -0
  140. package/dist/cjs/ifx-tab.cjs.entry.js +3 -1
  141. package/dist/cjs/ifx-tab.cjs.entry.js.map +1 -0
  142. package/dist/cjs/ifx-table.cjs.entry.js +3 -1
  143. package/dist/cjs/ifx-table.cjs.entry.js.map +1 -0
  144. package/dist/cjs/ifx-table.entry.cjs.js.map +1 -1
  145. package/dist/cjs/ifx-tabs.cjs.entry.js +3 -1
  146. package/dist/cjs/ifx-tabs.cjs.entry.js.map +1 -0
  147. package/dist/cjs/ifx-templates-ui.cjs.entry.js +3 -1
  148. package/dist/cjs/ifx-templates-ui.cjs.entry.js.map +1 -0
  149. package/dist/cjs/ifx-textarea.cjs.entry.js +3 -1
  150. package/dist/cjs/ifx-textarea.cjs.entry.js.map +1 -0
  151. package/dist/cjs/ifx-tooltip.cjs.entry.js +3 -1
  152. package/dist/cjs/ifx-tooltip.cjs.entry.js.map +1 -0
  153. package/dist/cjs/ifx-tree-view-item.cjs.entry.js +3 -1
  154. package/dist/cjs/ifx-tree-view-item.cjs.entry.js.map +1 -0
  155. package/dist/cjs/ifx-tree-view.cjs.entry.js +3 -1
  156. package/dist/cjs/ifx-tree-view.cjs.entry.js.map +1 -0
  157. package/dist/cjs/{index-DDktl7Xq.js → index-Dc5gCGlQ.js} +31 -88
  158. package/dist/cjs/index-Dc5gCGlQ.js.map +1 -0
  159. package/dist/cjs/index.cjs.js +2 -0
  160. package/dist/cjs/infineon-design-system-stencil.cjs.js +5 -3
  161. package/dist/cjs/infineon-design-system-stencil.cjs.js.map +1 -1
  162. package/dist/cjs/loader.cjs.js +4 -2
  163. package/dist/collection/collection-manifest.json +2 -2
  164. package/dist/collection/components/accordion/accordion.js +1 -1
  165. package/dist/collection/components/accordion/accordionItem.js +4 -4
  166. package/dist/collection/components/action-list/action-list-item.js +12 -12
  167. package/dist/collection/components/action-list/action-list.js +2 -2
  168. package/dist/collection/components/alert/alert.js +5 -5
  169. package/dist/collection/components/breadcrumb/breadcrumb-item-label.js +5 -5
  170. package/dist/collection/components/button/button.js +11 -11
  171. package/dist/collection/components/card/card-image/card-image.js +6 -6
  172. package/dist/collection/components/card/card.js +5 -5
  173. package/dist/collection/components/checkbox/checkbox.js +7 -7
  174. package/dist/collection/components/checkbox-group/checkbox-group.js +13 -13
  175. package/dist/collection/components/chip/chip-item/chip-item.js +3 -2
  176. package/dist/collection/components/chip/chip-item/chip-item.js.map +1 -1
  177. package/dist/collection/components/chip/chip.js +10 -10
  178. package/dist/collection/components/content-switcher/content-switcher-item.js +3 -3
  179. package/dist/collection/components/date-picker/date-picker.js +19 -19
  180. package/dist/collection/components/download/download.js +1 -1
  181. package/dist/collection/components/dropdown/dropdown-item/dropdown-item.js +5 -5
  182. package/dist/collection/components/dropdown/dropdown-menu/dropdown-menu.js +2 -2
  183. package/dist/collection/components/dropdown/dropdown-trigger/dropdown-trigger.js +1 -1
  184. package/dist/collection/components/dropdown/dropdown-trigger-button/dropdown-trigger-button.js +8 -8
  185. package/dist/collection/components/dropdown/dropdown.js +7 -7
  186. package/dist/collection/components/file-upload/file-upload.js +34 -33
  187. package/dist/collection/components/file-upload/file-upload.js.map +1 -1
  188. package/dist/collection/components/footer/footer.js +1 -1
  189. package/dist/collection/components/icon/infineonIconStencil.js +3 -3
  190. package/dist/collection/components/icon-button/icon-button.js +14 -14
  191. package/dist/collection/components/indicator/indicator.js +5 -5
  192. package/dist/collection/components/link/link.js +10 -10
  193. package/dist/collection/components/modal/modal.js +13 -13
  194. package/dist/collection/components/navigation/navbar/navbar-item.js +8 -8
  195. package/dist/collection/components/navigation/navbar/navbar-profile.js +6 -6
  196. package/dist/collection/components/navigation/navbar/navbar.js +5 -5
  197. package/dist/collection/components/navigation/sidebar/sidebar-item.js +8 -7
  198. package/dist/collection/components/navigation/sidebar/sidebar-item.js.map +1 -1
  199. package/dist/collection/components/navigation/sidebar/sidebar-title.js +1 -1
  200. package/dist/collection/components/navigation/sidebar/sidebar.js +12 -12
  201. package/dist/collection/components/notification/notification.js +8 -8
  202. package/dist/collection/components/pagination/pagination.js +5 -5
  203. package/dist/collection/components/progress-bar/progress-bar.js +4 -4
  204. package/dist/collection/components/radio-button/radio-button.js +9 -9
  205. package/dist/collection/components/radio-button-group/radio-button-group.js +13 -13
  206. package/dist/collection/components/search-bar/search-bar.js +7 -7
  207. package/dist/collection/components/search-field/search-field.js +24 -23
  208. package/dist/collection/components/search-field/search-field.js.map +1 -1
  209. package/dist/collection/components/segmented-control/segment/segment.js +7 -7
  210. package/dist/collection/components/segmented-control/segmented-control.js +5 -5
  211. package/dist/collection/components/select/multi-select/multiselect-option.js +5 -5
  212. package/dist/collection/components/select/multi-select/multiselect.js +27 -27
  213. package/dist/collection/components/select/single-select/select.js +86 -79
  214. package/dist/collection/components/select/single-select/select.js.map +1 -1
  215. package/dist/collection/components/slider/slider.js +22 -22
  216. package/dist/collection/components/spinner/spinner.js +7 -7
  217. package/dist/collection/components/status/status.js +4 -4
  218. package/dist/collection/components/stepper/step/step.js +6 -5
  219. package/dist/collection/components/stepper/step/step.js.map +1 -1
  220. package/dist/collection/components/stepper/stepper.js +8 -8
  221. package/dist/collection/components/switch/switch.js +5 -5
  222. package/dist/collection/components/table-advanced-version/filter-bar/filter-bar.js +2 -2
  223. package/dist/collection/components/table-advanced-version/filter-type-group/filter-accordion/filter-accordion.js +3 -3
  224. package/dist/collection/components/table-advanced-version/filter-type-group/filter-search/filter-search.js +10 -10
  225. package/dist/collection/components/table-advanced-version/list/list-entry/list-entry.js +6 -6
  226. package/dist/collection/components/table-advanced-version/list/list.js +5 -5
  227. package/dist/collection/components/table-advanced-version/set-filter/setFilter.js +9 -9
  228. package/dist/collection/components/table-advanced-version/table.js +19 -15
  229. package/dist/collection/components/table-advanced-version/table.js.map +1 -1
  230. package/dist/collection/components/table-basic-version/table.js +7 -7
  231. package/dist/collection/components/tabs/tab.js +6 -6
  232. package/dist/collection/components/tabs/tabs.js +3 -3
  233. package/dist/collection/components/templates/template/template.js +4 -4
  234. package/dist/collection/components/text-field/text-field.js +17 -17
  235. package/dist/collection/components/textarea/textarea.js +23 -23
  236. package/dist/collection/components/tooltip/tooltip.js +8 -8
  237. package/dist/collection/components/tree-view/tree-view-item.js +8 -8
  238. package/dist/collection/components/tree-view/tree-view.js +6 -6
  239. package/dist/components/ifx-accordion-item.js +1 -1
  240. package/dist/components/ifx-accordion.js +1 -1
  241. package/dist/components/ifx-action-list-item.js +2 -4
  242. package/dist/components/ifx-action-list-item.js.map +1 -1
  243. package/dist/components/ifx-action-list.js +2 -4
  244. package/dist/components/ifx-action-list.js.map +1 -1
  245. package/dist/components/ifx-alert.js +1 -1
  246. package/dist/components/ifx-basic-table.js +2 -4
  247. package/dist/components/ifx-basic-table.js.map +1 -1
  248. package/dist/components/ifx-breadcrumb-item-label.js +3 -5
  249. package/dist/components/ifx-breadcrumb-item-label.js.map +1 -1
  250. package/dist/components/ifx-breadcrumb-item.js +2 -4
  251. package/dist/components/ifx-breadcrumb-item.js.map +1 -1
  252. package/dist/components/ifx-breadcrumb.js +2 -4
  253. package/dist/components/ifx-breadcrumb.js.map +1 -1
  254. package/dist/components/ifx-button.js +1 -1
  255. package/dist/components/ifx-card-headline.js +2 -4
  256. package/dist/components/ifx-card-headline.js.map +1 -1
  257. package/dist/components/ifx-card-image.js +2 -4
  258. package/dist/components/ifx-card-image.js.map +1 -1
  259. package/dist/components/ifx-card-links.js +2 -4
  260. package/dist/components/ifx-card-links.js.map +1 -1
  261. package/dist/components/ifx-card-overline.js +2 -4
  262. package/dist/components/ifx-card-overline.js.map +1 -1
  263. package/dist/components/ifx-card-text.js +2 -4
  264. package/dist/components/ifx-card-text.js.map +1 -1
  265. package/dist/components/ifx-card.js +2 -4
  266. package/dist/components/ifx-card.js.map +1 -1
  267. package/dist/components/ifx-checkbox-group.js +3 -5
  268. package/dist/components/ifx-checkbox-group.js.map +1 -1
  269. package/dist/components/ifx-checkbox.js +1 -1
  270. package/dist/components/ifx-chip-item.js +1 -1
  271. package/dist/components/ifx-chip.js +1 -1
  272. package/dist/components/ifx-content-switcher-item.js +2 -4
  273. package/dist/components/ifx-content-switcher-item.js.map +1 -1
  274. package/dist/components/ifx-content-switcher.js +2 -4
  275. package/dist/components/ifx-content-switcher.js.map +1 -1
  276. package/dist/components/ifx-date-picker.js +3 -5
  277. package/dist/components/ifx-date-picker.js.map +1 -1
  278. package/dist/components/ifx-download.js +3 -5
  279. package/dist/components/ifx-download.js.map +1 -1
  280. package/dist/components/ifx-dropdown-header.js +2 -4
  281. package/dist/components/ifx-dropdown-header.js.map +1 -1
  282. package/dist/components/ifx-dropdown-item.js +3 -5
  283. package/dist/components/ifx-dropdown-item.js.map +1 -1
  284. package/dist/components/ifx-dropdown-menu.js +2 -4
  285. package/dist/components/ifx-dropdown-menu.js.map +1 -1
  286. package/dist/components/ifx-dropdown-separator.js +2 -4
  287. package/dist/components/ifx-dropdown-separator.js.map +1 -1
  288. package/dist/components/ifx-dropdown-trigger-button.js +4 -6
  289. package/dist/components/ifx-dropdown-trigger-button.js.map +1 -1
  290. package/dist/components/ifx-dropdown-trigger.js +2 -4
  291. package/dist/components/ifx-dropdown-trigger.js.map +1 -1
  292. package/dist/components/ifx-dropdown.js +2 -4
  293. package/dist/components/ifx-dropdown.js.map +1 -1
  294. package/dist/components/ifx-faq.js +5 -7
  295. package/dist/components/ifx-faq.js.map +1 -1
  296. package/dist/components/ifx-file-upload.js +7 -9
  297. package/dist/components/ifx-file-upload.js.map +1 -1
  298. package/dist/components/ifx-filter-accordion.js +4 -6
  299. package/dist/components/ifx-filter-accordion.js.map +1 -1
  300. package/dist/components/ifx-filter-bar.js +4 -6
  301. package/dist/components/ifx-filter-bar.js.map +1 -1
  302. package/dist/components/ifx-filter-search.js +4 -6
  303. package/dist/components/ifx-filter-search.js.map +1 -1
  304. package/dist/components/ifx-filter-type-group.js +2 -4
  305. package/dist/components/ifx-filter-type-group.js.map +1 -1
  306. package/dist/components/ifx-footer-column.js +2 -4
  307. package/dist/components/ifx-footer-column.js.map +1 -1
  308. package/dist/components/ifx-footer.js +2 -4
  309. package/dist/components/ifx-footer.js.map +1 -1
  310. package/dist/components/ifx-icon-button.js +1 -1
  311. package/dist/components/ifx-icon.js +1 -1
  312. package/dist/components/ifx-icons-preview.js +6 -8
  313. package/dist/components/ifx-icons-preview.js.map +1 -1
  314. package/dist/components/ifx-indicator.js +1 -1
  315. package/dist/components/ifx-link.js +1 -1
  316. package/dist/components/ifx-list-entry.js +5 -7
  317. package/dist/components/ifx-list-entry.js.map +1 -1
  318. package/dist/components/ifx-list.js +4 -6
  319. package/dist/components/ifx-list.js.map +1 -1
  320. package/dist/components/ifx-modal.js +4 -6
  321. package/dist/components/ifx-modal.js.map +1 -1
  322. package/dist/components/ifx-multiselect-option.js +1 -1
  323. package/dist/components/ifx-multiselect.js +1 -1
  324. package/dist/components/ifx-navbar-item.js +4 -6
  325. package/dist/components/ifx-navbar-item.js.map +1 -1
  326. package/dist/components/ifx-navbar-profile.js +2 -4
  327. package/dist/components/ifx-navbar-profile.js.map +1 -1
  328. package/dist/components/ifx-navbar.js +3 -5
  329. package/dist/components/ifx-navbar.js.map +1 -1
  330. package/dist/components/ifx-notification.js +1 -1
  331. package/dist/components/ifx-overview-table.js +5 -7
  332. package/dist/components/ifx-overview-table.js.map +1 -1
  333. package/dist/components/ifx-pagination.js +1 -1
  334. package/dist/components/ifx-progress-bar.js +1 -1
  335. package/dist/components/ifx-radio-button-group.js +3 -5
  336. package/dist/components/ifx-radio-button-group.js.map +1 -1
  337. package/dist/components/ifx-radio-button.js +1 -1
  338. package/dist/components/ifx-search-bar.js +4 -6
  339. package/dist/components/ifx-search-bar.js.map +1 -1
  340. package/dist/components/ifx-search-field.js +1 -1
  341. package/dist/components/ifx-segment.js +3 -5
  342. package/dist/components/ifx-segment.js.map +1 -1
  343. package/dist/components/ifx-segmented-control.js +3 -5
  344. package/dist/components/ifx-segmented-control.js.map +1 -1
  345. package/dist/components/ifx-select.js +1 -1
  346. package/dist/components/ifx-set-filter.js +9 -11
  347. package/dist/components/ifx-set-filter.js.map +1 -1
  348. package/dist/components/ifx-sidebar-item.js +5 -7
  349. package/dist/components/ifx-sidebar-item.js.map +1 -1
  350. package/dist/components/ifx-sidebar-title.js +2 -4
  351. package/dist/components/ifx-sidebar-title.js.map +1 -1
  352. package/dist/components/ifx-sidebar.js +3 -5
  353. package/dist/components/ifx-sidebar.js.map +1 -1
  354. package/dist/components/ifx-slider.js +3 -5
  355. package/dist/components/ifx-slider.js.map +1 -1
  356. package/dist/components/ifx-spinner.js +1 -1
  357. package/dist/components/ifx-status.js +2 -4
  358. package/dist/components/ifx-status.js.map +1 -1
  359. package/dist/components/ifx-step.js +4 -6
  360. package/dist/components/ifx-step.js.map +1 -1
  361. package/dist/components/ifx-stepper.js +2 -4
  362. package/dist/components/ifx-stepper.js.map +1 -1
  363. package/dist/components/ifx-switch.js +2 -4
  364. package/dist/components/ifx-switch.js.map +1 -1
  365. package/dist/components/ifx-tab.js +2 -4
  366. package/dist/components/ifx-tab.js.map +1 -1
  367. package/dist/components/ifx-table.js +15 -17
  368. package/dist/components/ifx-table.js.map +1 -1
  369. package/dist/components/ifx-tabs.js +4 -6
  370. package/dist/components/ifx-tabs.js.map +1 -1
  371. package/dist/components/ifx-template.js +1 -1
  372. package/dist/components/ifx-templates-ui.js +10 -12
  373. package/dist/components/ifx-templates-ui.js.map +1 -1
  374. package/dist/components/ifx-text-field.js +1 -1
  375. package/dist/components/ifx-textarea.js +2 -4
  376. package/dist/components/ifx-textarea.js.map +1 -1
  377. package/dist/components/ifx-tooltip.js +3 -5
  378. package/dist/components/ifx-tooltip.js.map +1 -1
  379. package/dist/components/ifx-tree-view-item.js +4 -6
  380. package/dist/components/ifx-tree-view-item.js.map +1 -1
  381. package/dist/components/ifx-tree-view.js +2 -4
  382. package/dist/components/ifx-tree-view.js.map +1 -1
  383. package/dist/components/index.js +25 -67
  384. package/dist/components/index.js.map +1 -1
  385. package/dist/components/{p-Clf62Zu5.js → p-4wfkxGlJ.js} +7 -9
  386. package/dist/components/p-4wfkxGlJ.js.map +1 -0
  387. package/dist/components/{p-DPN13Knu.js → p-BG0cmSVP.js} +7 -9
  388. package/dist/components/p-BG0cmSVP.js.map +1 -0
  389. package/dist/components/{p-BoK1X1nJ.js → p-BGgzlGhs.js} +4 -6
  390. package/dist/components/p-BGgzlGhs.js.map +1 -0
  391. package/dist/components/{p-Bt4MK7Mb.js → p-BQj9WQQe.js} +5 -7
  392. package/dist/components/p-BQj9WQQe.js.map +1 -0
  393. package/dist/components/{p-Dy153Xeh.js → p-BR9GBwm3.js} +4 -6
  394. package/dist/components/p-BR9GBwm3.js.map +1 -0
  395. package/dist/components/{p-1fzV7Zv1.js → p-BxahGQyq.js} +4 -6
  396. package/dist/components/p-BxahGQyq.js.map +1 -0
  397. package/dist/components/{p-CcrhUlD4.js → p-C12r4j5b.js} +4 -6
  398. package/dist/components/p-C12r4j5b.js.map +1 -0
  399. package/dist/components/{p-YPIdsxYd.js → p-CRSbKJxa.js} +5 -7
  400. package/dist/components/p-CRSbKJxa.js.map +1 -0
  401. package/dist/components/{p-CU8ZE6yG.js → p-CcGE_f9F.js} +7 -9
  402. package/dist/components/p-CcGE_f9F.js.map +1 -0
  403. package/dist/components/{p-BXtTIODa.js → p-CnXEcTdH.js} +5 -7
  404. package/dist/components/p-CnXEcTdH.js.map +1 -0
  405. package/dist/components/{p-MPqVXeG4.js → p-DFInpODO.js} +5 -7
  406. package/dist/components/p-DFInpODO.js.map +1 -0
  407. package/dist/components/{p-B0mNmKkJ.js → p-DHLzWSzN.js} +10 -12
  408. package/dist/components/p-DHLzWSzN.js.map +1 -0
  409. package/dist/components/{p-CB5foa-9.js → p-DNZFFt4T.js} +6 -8
  410. package/dist/components/p-DNZFFt4T.js.map +1 -0
  411. package/dist/components/{p-Bl0VvOaG.js → p-DRqwZrk0.js} +5 -7
  412. package/dist/components/p-DRqwZrk0.js.map +1 -0
  413. package/dist/components/{p-Crf-DluO.js → p-DdOsLLJc.js} +4 -6
  414. package/dist/components/p-DdOsLLJc.js.map +1 -0
  415. package/dist/components/{p-DPR3SJRC.js → p-DhNY6ZGA.js} +4 -6
  416. package/dist/components/p-DhNY6ZGA.js.map +1 -0
  417. package/dist/components/{p-B_8rp7VV.js → p-Djr4amRx.js} +6 -8
  418. package/dist/components/p-Djr4amRx.js.map +1 -0
  419. package/dist/components/{p-Cgqbp_bF.js → p-F-WOWp_H.js} +5 -7
  420. package/dist/components/p-F-WOWp_H.js.map +1 -0
  421. package/dist/components/{p-BDwn5rZl.js → p-R79iWjuc.js} +4 -6
  422. package/dist/components/p-R79iWjuc.js.map +1 -0
  423. package/dist/components/{p-BH1fOB-w.js → p-RF9z92mE.js} +4 -6
  424. package/dist/components/p-RF9z92mE.js.map +1 -0
  425. package/dist/components/{p-DHAEg73D.js → p-esRQWwdS.js} +9 -11
  426. package/dist/components/p-esRQWwdS.js.map +1 -0
  427. package/dist/components/{p-BgT5gPxL.js → p-v3vmQuAS.js} +6 -8
  428. package/dist/components/p-v3vmQuAS.js.map +1 -0
  429. package/dist/esm/ifx-accordion_2.entry.js +3 -1
  430. package/dist/esm/ifx-accordion_2.entry.js.map +1 -0
  431. package/dist/esm/ifx-action-list-item.entry.js +3 -1
  432. package/dist/esm/ifx-action-list.entry.js +3 -1
  433. package/dist/esm/ifx-alert_2.entry.js +3 -1
  434. package/dist/esm/ifx-alert_2.entry.js.map +1 -0
  435. package/dist/esm/ifx-basic-table.entry.js +3 -1
  436. package/dist/esm/ifx-breadcrumb-item-label.entry.js +3 -1
  437. package/dist/esm/ifx-breadcrumb-item.entry.js +3 -1
  438. package/dist/esm/ifx-breadcrumb.entry.js +3 -1
  439. package/dist/esm/ifx-button.entry.js +3 -1
  440. package/dist/esm/ifx-card-headline.entry.js +3 -1
  441. package/dist/esm/ifx-card-image.entry.js +3 -1
  442. package/dist/esm/ifx-card-links.entry.js +3 -1
  443. package/dist/esm/ifx-card-overline.entry.js +3 -1
  444. package/dist/esm/ifx-card-text.entry.js +3 -1
  445. package/dist/esm/ifx-card.entry.js +3 -1
  446. package/dist/esm/ifx-checkbox-group.entry.js +3 -1
  447. package/dist/esm/ifx-checkbox.entry.js +3 -1
  448. package/dist/esm/ifx-chip_3.entry.js +3 -1
  449. package/dist/esm/ifx-chip_3.entry.js.map +1 -0
  450. package/dist/esm/ifx-content-switcher-item.entry.js +3 -1
  451. package/dist/esm/ifx-content-switcher.entry.js +3 -1
  452. package/dist/esm/ifx-date-picker.entry.js +3 -1
  453. package/dist/esm/ifx-download.entry.js +3 -1
  454. package/dist/esm/ifx-dropdown-header.entry.js +3 -1
  455. package/dist/esm/ifx-dropdown-item.entry.js +3 -1
  456. package/dist/esm/ifx-dropdown-menu.entry.js +3 -1
  457. package/dist/esm/ifx-dropdown-separator.entry.js +3 -1
  458. package/dist/esm/ifx-dropdown-trigger-button.entry.js +3 -1
  459. package/dist/esm/ifx-dropdown-trigger.entry.js +3 -1
  460. package/dist/esm/ifx-dropdown.entry.js +3 -1
  461. package/dist/esm/ifx-faq.entry.js +3 -1
  462. package/dist/esm/ifx-file-upload.entry.js +3 -1
  463. package/dist/esm/ifx-filter-accordion.entry.js +3 -1
  464. package/dist/esm/ifx-filter-bar.entry.js +3 -1
  465. package/dist/esm/ifx-filter-search.entry.js +3 -1
  466. package/dist/esm/ifx-filter-type-group.entry.js +3 -1
  467. package/dist/esm/ifx-footer-column.entry.js +3 -1
  468. package/dist/esm/ifx-footer.entry.js +3 -1
  469. package/dist/esm/ifx-icon-button.entry.js +3 -1
  470. package/dist/esm/ifx-icon.entry.js +3 -1
  471. package/dist/esm/ifx-icons-preview.entry.js +3 -1
  472. package/dist/esm/ifx-indicator.entry.js +3 -1
  473. package/dist/esm/ifx-link.entry.js +3 -1
  474. package/dist/esm/ifx-list-entry.entry.js +3 -1
  475. package/dist/esm/ifx-list.entry.js +3 -1
  476. package/dist/esm/ifx-modal.entry.js +3 -1
  477. package/dist/esm/ifx-modal.entry.js.map +1 -1
  478. package/dist/esm/ifx-multiselect_2.entry.js +3 -1
  479. package/dist/esm/ifx-multiselect_2.entry.js.map +1 -0
  480. package/dist/esm/ifx-navbar-item.entry.js +3 -1
  481. package/dist/esm/ifx-navbar-profile.entry.js +3 -1
  482. package/dist/esm/ifx-navbar.entry.js +3 -1
  483. package/dist/esm/ifx-notification.entry.js +3 -1
  484. package/dist/esm/ifx-overview-table.entry.js +3 -1
  485. package/dist/esm/ifx-progress-bar.entry.js +3 -1
  486. package/dist/esm/ifx-radio-button-group.entry.js +3 -1
  487. package/dist/esm/ifx-radio-button.entry.js +3 -1
  488. package/dist/esm/ifx-search-bar.entry.js +3 -1
  489. package/dist/esm/ifx-search-field.entry.js +3 -1
  490. package/dist/esm/ifx-segment.entry.js +3 -1
  491. package/dist/esm/ifx-segmented-control.entry.js +3 -1
  492. package/dist/esm/ifx-select.entry.js +3 -1
  493. package/dist/esm/ifx-set-filter.entry.js +3 -1
  494. package/dist/esm/ifx-sidebar-item.entry.js +3 -1
  495. package/dist/esm/ifx-sidebar-title.entry.js +3 -1
  496. package/dist/esm/ifx-sidebar.entry.js +3 -1
  497. package/dist/esm/ifx-slider.entry.js +3 -1
  498. package/dist/esm/ifx-spinner_2.entry.js +3 -1
  499. package/dist/esm/ifx-spinner_2.entry.js.map +1 -0
  500. package/dist/esm/ifx-status.entry.js +3 -1
  501. package/dist/esm/ifx-step.entry.js +3 -1
  502. package/dist/esm/ifx-stepper.entry.js +3 -1
  503. package/dist/esm/ifx-switch.entry.js +3 -1
  504. package/dist/esm/ifx-tab.entry.js +3 -1
  505. package/dist/esm/ifx-table.entry.js +3 -1
  506. package/dist/esm/ifx-table.entry.js.map +1 -1
  507. package/dist/esm/ifx-tabs.entry.js +3 -1
  508. package/dist/esm/ifx-templates-ui.entry.js +3 -1
  509. package/dist/esm/ifx-textarea.entry.js +3 -1
  510. package/dist/esm/ifx-tooltip.entry.js +3 -1
  511. package/dist/esm/ifx-tree-view-item.entry.js +3 -1
  512. package/dist/esm/ifx-tree-view.entry.js +3 -1
  513. package/dist/esm/{index-Bq-7EdcD.js → index-PqnYwNKt.js} +31 -88
  514. package/dist/esm/index-PqnYwNKt.js.map +1 -0
  515. package/dist/esm/index.js +2 -0
  516. package/dist/esm/infineon-design-system-stencil.js +6 -4
  517. package/dist/esm/infineon-design-system-stencil.js.map +1 -1
  518. package/dist/esm/loader.js +5 -3
  519. package/dist/infineon-design-system-stencil/ifx-modal.entry.esm.js.map +1 -1
  520. package/dist/infineon-design-system-stencil/ifx-table.entry.esm.js.map +1 -1
  521. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  522. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  523. package/dist/infineon-design-system-stencil/{p-1c9012fe.entry.js → p-05f66dcb.entry.js} +2 -2
  524. package/dist/infineon-design-system-stencil/p-05f66dcb.entry.js.map +1 -0
  525. package/dist/infineon-design-system-stencil/{p-72264e5b.entry.js → p-060845fd.entry.js} +2 -2
  526. package/dist/infineon-design-system-stencil/p-060845fd.entry.js.map +1 -0
  527. package/dist/infineon-design-system-stencil/{p-3bb3ac65.entry.js → p-06d2f85b.entry.js} +2 -2
  528. package/dist/infineon-design-system-stencil/p-06d2f85b.entry.js.map +1 -0
  529. package/dist/infineon-design-system-stencil/{p-cba6f231.entry.js → p-0929589d.entry.js} +2 -2
  530. package/dist/infineon-design-system-stencil/p-0929589d.entry.js.map +1 -0
  531. package/dist/infineon-design-system-stencil/{p-0bebb0de.entry.js → p-0be8f0c9.entry.js} +2 -2
  532. package/dist/infineon-design-system-stencil/p-0be8f0c9.entry.js.map +1 -0
  533. package/dist/infineon-design-system-stencil/{p-62010e7d.entry.js → p-0fb9f42b.entry.js} +2 -2
  534. package/dist/infineon-design-system-stencil/p-0fb9f42b.entry.js.map +1 -0
  535. package/dist/infineon-design-system-stencil/{p-cebd7759.entry.js → p-116c853e.entry.js} +2 -2
  536. package/dist/infineon-design-system-stencil/p-116c853e.entry.js.map +1 -0
  537. package/dist/infineon-design-system-stencil/{p-8a772962.entry.js → p-169f26ae.entry.js} +2 -2
  538. package/dist/infineon-design-system-stencil/p-169f26ae.entry.js.map +1 -0
  539. package/dist/infineon-design-system-stencil/{p-06078b1f.entry.js → p-1c1b1a1f.entry.js} +2 -2
  540. package/dist/infineon-design-system-stencil/p-1c1b1a1f.entry.js.map +1 -0
  541. package/dist/infineon-design-system-stencil/{p-f0b5f4c6.entry.js → p-1d494424.entry.js} +2 -2
  542. package/dist/infineon-design-system-stencil/p-1d494424.entry.js.map +1 -0
  543. package/dist/infineon-design-system-stencil/{p-b4b5caa9.entry.js → p-22e9960d.entry.js} +2 -2
  544. package/dist/infineon-design-system-stencil/p-22e9960d.entry.js.map +1 -0
  545. package/dist/infineon-design-system-stencil/{p-b1f9abc9.entry.js → p-2503d869.entry.js} +2 -2
  546. package/dist/infineon-design-system-stencil/p-2503d869.entry.js.map +1 -0
  547. package/dist/infineon-design-system-stencil/{p-83c22f84.entry.js → p-273907cb.entry.js} +2 -2
  548. package/dist/infineon-design-system-stencil/p-273907cb.entry.js.map +1 -0
  549. package/dist/infineon-design-system-stencil/{p-e789404b.entry.js → p-2813423a.entry.js} +2 -2
  550. package/dist/infineon-design-system-stencil/p-2813423a.entry.js.map +1 -0
  551. package/dist/infineon-design-system-stencil/{p-1d9689b0.entry.js → p-2b4b2b06.entry.js} +2 -2
  552. package/dist/infineon-design-system-stencil/p-2b4b2b06.entry.js.map +1 -0
  553. package/dist/infineon-design-system-stencil/{p-824fea39.entry.js → p-2e172019.entry.js} +2 -2
  554. package/dist/infineon-design-system-stencil/p-2e172019.entry.js.map +1 -0
  555. package/dist/infineon-design-system-stencil/p-307e6a72.entry.js +2 -0
  556. package/dist/infineon-design-system-stencil/p-307e6a72.entry.js.map +1 -0
  557. package/dist/infineon-design-system-stencil/{p-4a9ff9c4.entry.js → p-35d2266a.entry.js} +2 -2
  558. package/dist/infineon-design-system-stencil/p-35d2266a.entry.js.map +1 -0
  559. package/dist/infineon-design-system-stencil/{p-950f6deb.entry.js → p-380368ca.entry.js} +2 -2
  560. package/dist/infineon-design-system-stencil/p-380368ca.entry.js.map +1 -0
  561. package/dist/infineon-design-system-stencil/{p-c2e0b4a4.entry.js → p-39561a49.entry.js} +2 -2
  562. package/dist/infineon-design-system-stencil/p-39561a49.entry.js.map +1 -0
  563. package/dist/infineon-design-system-stencil/{p-3ac3d580.entry.js → p-3d77ef02.entry.js} +2 -2
  564. package/dist/infineon-design-system-stencil/p-3d77ef02.entry.js.map +1 -0
  565. package/dist/infineon-design-system-stencil/{p-d06b42ca.entry.js → p-3eeacac9.entry.js} +2 -2
  566. package/dist/infineon-design-system-stencil/p-3eeacac9.entry.js.map +1 -0
  567. package/dist/infineon-design-system-stencil/{p-bd24344b.entry.js → p-45dad0d1.entry.js} +2 -2
  568. package/dist/infineon-design-system-stencil/p-45dad0d1.entry.js.map +1 -0
  569. package/dist/infineon-design-system-stencil/{p-007bb0d4.entry.js → p-4669e01f.entry.js} +2 -2
  570. package/dist/infineon-design-system-stencil/p-4669e01f.entry.js.map +1 -0
  571. package/dist/infineon-design-system-stencil/{p-25297147.entry.js → p-4da5a2a5.entry.js} +2 -2
  572. package/dist/infineon-design-system-stencil/p-4da5a2a5.entry.js.map +1 -0
  573. package/dist/infineon-design-system-stencil/{p-ce392453.entry.js → p-4fba0543.entry.js} +2 -2
  574. package/dist/infineon-design-system-stencil/p-4fba0543.entry.js.map +1 -0
  575. package/dist/infineon-design-system-stencil/{p-b9b806ee.entry.js → p-5367db9d.entry.js} +2 -2
  576. package/dist/infineon-design-system-stencil/p-5367db9d.entry.js.map +1 -0
  577. package/dist/infineon-design-system-stencil/{p-10ecab1b.entry.js → p-58dd6f5c.entry.js} +2 -2
  578. package/dist/infineon-design-system-stencil/p-58dd6f5c.entry.js.map +1 -0
  579. package/dist/infineon-design-system-stencil/{p-65aaabf2.entry.js → p-5b571505.entry.js} +2 -2
  580. package/dist/infineon-design-system-stencil/p-5b571505.entry.js.map +1 -0
  581. package/dist/infineon-design-system-stencil/{p-dbaf7efe.entry.js → p-5e3d0ff0.entry.js} +2 -2
  582. package/dist/infineon-design-system-stencil/p-5e3d0ff0.entry.js.map +1 -0
  583. package/dist/infineon-design-system-stencil/{p-fb69c115.entry.js → p-5fb3eb8b.entry.js} +2 -2
  584. package/dist/infineon-design-system-stencil/p-5fb3eb8b.entry.js.map +1 -0
  585. package/dist/infineon-design-system-stencil/{p-b2eb2f1a.entry.js → p-6a07106e.entry.js} +2 -2
  586. package/dist/infineon-design-system-stencil/p-6a07106e.entry.js.map +1 -0
  587. package/dist/infineon-design-system-stencil/{p-63d3ebeb.entry.js → p-6e115707.entry.js} +2 -2
  588. package/dist/infineon-design-system-stencil/p-6e115707.entry.js.map +1 -0
  589. package/dist/infineon-design-system-stencil/{p-416ce394.entry.js → p-6eb6af05.entry.js} +2 -2
  590. package/dist/infineon-design-system-stencil/p-6eb6af05.entry.js.map +1 -0
  591. package/dist/infineon-design-system-stencil/{p-2ca43bf3.entry.js → p-744c1c8e.entry.js} +2 -2
  592. package/dist/infineon-design-system-stencil/p-744c1c8e.entry.js.map +1 -0
  593. package/dist/infineon-design-system-stencil/{p-925e40f0.entry.js → p-760cfc7e.entry.js} +2 -2
  594. package/dist/infineon-design-system-stencil/p-760cfc7e.entry.js.map +1 -0
  595. package/dist/infineon-design-system-stencil/{p-ded7b72c.entry.js → p-8a58c2be.entry.js} +2 -2
  596. package/dist/infineon-design-system-stencil/p-8a58c2be.entry.js.map +1 -0
  597. package/dist/infineon-design-system-stencil/{p-b3880945.entry.js → p-8ceb2ccc.entry.js} +2 -2
  598. package/dist/infineon-design-system-stencil/p-8ceb2ccc.entry.js.map +1 -0
  599. package/dist/infineon-design-system-stencil/{p-3e703c9d.entry.js → p-92ee6f73.entry.js} +2 -2
  600. package/dist/infineon-design-system-stencil/p-92ee6f73.entry.js.map +1 -0
  601. package/dist/infineon-design-system-stencil/{p-e4fe1f48.entry.js → p-94dfe026.entry.js} +2 -2
  602. package/dist/infineon-design-system-stencil/p-94dfe026.entry.js.map +1 -0
  603. package/dist/infineon-design-system-stencil/{p-b332712f.entry.js → p-9517d1b0.entry.js} +2 -2
  604. package/dist/infineon-design-system-stencil/p-9517d1b0.entry.js.map +1 -0
  605. package/dist/infineon-design-system-stencil/{p-477daa59.entry.js → p-97b2ac42.entry.js} +2 -2
  606. package/dist/infineon-design-system-stencil/p-97b2ac42.entry.js.map +1 -0
  607. package/dist/infineon-design-system-stencil/{p-1746e211.entry.js → p-9b06df76.entry.js} +2 -2
  608. package/dist/infineon-design-system-stencil/p-9b06df76.entry.js.map +1 -0
  609. package/dist/infineon-design-system-stencil/{p-a6cf79f3.entry.js → p-9ba730bb.entry.js} +2 -2
  610. package/dist/infineon-design-system-stencil/p-9ba730bb.entry.js.map +1 -0
  611. package/dist/infineon-design-system-stencil/{p-dfcccf3a.entry.js → p-9deaa65e.entry.js} +2 -2
  612. package/dist/infineon-design-system-stencil/p-9deaa65e.entry.js.map +1 -0
  613. package/dist/infineon-design-system-stencil/p-PqnYwNKt.js +3 -0
  614. package/dist/infineon-design-system-stencil/p-PqnYwNKt.js.map +1 -0
  615. package/dist/infineon-design-system-stencil/{p-e8be789f.entry.js → p-a4dd2fe1.entry.js} +2 -2
  616. package/dist/infineon-design-system-stencil/p-a4dd2fe1.entry.js.map +1 -0
  617. package/dist/infineon-design-system-stencil/{p-31fa2365.entry.js → p-a85754a5.entry.js} +3 -3
  618. package/dist/infineon-design-system-stencil/p-a85754a5.entry.js.map +1 -0
  619. package/dist/infineon-design-system-stencil/{p-d8f5253e.entry.js → p-ab326703.entry.js} +2 -2
  620. package/dist/infineon-design-system-stencil/p-ab326703.entry.js.map +1 -0
  621. package/dist/infineon-design-system-stencil/{p-9a6089d5.entry.js → p-abd8bd80.entry.js} +2 -2
  622. package/dist/infineon-design-system-stencil/p-abd8bd80.entry.js.map +1 -0
  623. package/dist/infineon-design-system-stencil/{p-eabddf02.entry.js → p-b7672947.entry.js} +2 -2
  624. package/dist/infineon-design-system-stencil/p-b7672947.entry.js.map +1 -0
  625. package/dist/infineon-design-system-stencil/{p-a4fb097a.entry.js → p-bd8c6834.entry.js} +2 -2
  626. package/dist/infineon-design-system-stencil/p-bd8c6834.entry.js.map +1 -0
  627. package/dist/infineon-design-system-stencil/{p-e0f467af.entry.js → p-beaba918.entry.js} +2 -2
  628. package/dist/infineon-design-system-stencil/p-beaba918.entry.js.map +1 -0
  629. package/dist/infineon-design-system-stencil/{p-9ed4711b.entry.js → p-c578a728.entry.js} +2 -2
  630. package/dist/infineon-design-system-stencil/p-c578a728.entry.js.map +1 -0
  631. package/dist/infineon-design-system-stencil/{p-4770ef94.entry.js → p-c6826c1e.entry.js} +2 -2
  632. package/dist/infineon-design-system-stencil/p-c6826c1e.entry.js.map +1 -0
  633. package/dist/infineon-design-system-stencil/{p-2f5b757e.entry.js → p-ca312cbb.entry.js} +2 -2
  634. package/dist/infineon-design-system-stencil/p-ca312cbb.entry.js.map +1 -0
  635. package/dist/infineon-design-system-stencil/{p-e73a47d4.entry.js → p-ca870353.entry.js} +2 -2
  636. package/dist/infineon-design-system-stencil/p-ca870353.entry.js.map +1 -0
  637. package/dist/infineon-design-system-stencil/{p-96bc02ea.entry.js → p-ce799b3d.entry.js} +2 -2
  638. package/dist/infineon-design-system-stencil/p-ce799b3d.entry.js.map +1 -0
  639. package/dist/infineon-design-system-stencil/{p-338f6827.entry.js → p-d267f6d2.entry.js} +2 -2
  640. package/dist/infineon-design-system-stencil/p-d267f6d2.entry.js.map +1 -0
  641. package/dist/infineon-design-system-stencil/{p-b804f249.entry.js → p-d2b076fe.entry.js} +2 -2
  642. package/dist/infineon-design-system-stencil/p-d2b076fe.entry.js.map +1 -0
  643. package/dist/infineon-design-system-stencil/{p-b2066117.entry.js → p-d4373c36.entry.js} +2 -2
  644. package/dist/infineon-design-system-stencil/p-d4373c36.entry.js.map +1 -0
  645. package/dist/infineon-design-system-stencil/{p-c896041a.entry.js → p-d65a334c.entry.js} +2 -2
  646. package/dist/infineon-design-system-stencil/p-d65a334c.entry.js.map +1 -0
  647. package/dist/infineon-design-system-stencil/{p-81e4dc33.entry.js → p-dac7d817.entry.js} +2 -2
  648. package/dist/infineon-design-system-stencil/p-dac7d817.entry.js.map +1 -0
  649. package/dist/infineon-design-system-stencil/{p-233d0bd2.entry.js → p-dbc6ae20.entry.js} +2 -2
  650. package/dist/infineon-design-system-stencil/p-dbc6ae20.entry.js.map +1 -0
  651. package/dist/infineon-design-system-stencil/{p-0e98b1aa.entry.js → p-dcd0af23.entry.js} +2 -2
  652. package/dist/infineon-design-system-stencil/p-dcd0af23.entry.js.map +1 -0
  653. package/dist/infineon-design-system-stencil/{p-c65ca68b.entry.js → p-e3c11b6c.entry.js} +2 -2
  654. package/dist/infineon-design-system-stencil/p-e3c11b6c.entry.js.map +1 -0
  655. package/dist/infineon-design-system-stencil/{p-73c855a4.entry.js → p-e6c4c4cf.entry.js} +2 -2
  656. package/dist/infineon-design-system-stencil/p-e6c4c4cf.entry.js.map +1 -0
  657. package/dist/infineon-design-system-stencil/p-e78ffc43.entry.js +2 -0
  658. package/dist/infineon-design-system-stencil/p-e78ffc43.entry.js.map +1 -0
  659. package/dist/infineon-design-system-stencil/{p-5bddfe84.entry.js → p-e7c656cd.entry.js} +2 -2
  660. package/dist/infineon-design-system-stencil/p-e7c656cd.entry.js.map +1 -0
  661. package/dist/infineon-design-system-stencil/{p-2151343a.entry.js → p-edbfa46e.entry.js} +2 -2
  662. package/dist/infineon-design-system-stencil/p-edbfa46e.entry.js.map +1 -0
  663. package/dist/infineon-design-system-stencil/{p-2128c3a9.entry.js → p-ee04eb6e.entry.js} +2 -2
  664. package/dist/infineon-design-system-stencil/p-ee04eb6e.entry.js.map +1 -0
  665. package/dist/infineon-design-system-stencil/{p-a5c003d6.entry.js → p-f06b0ae3.entry.js} +2 -2
  666. package/dist/infineon-design-system-stencil/p-f06b0ae3.entry.js.map +1 -0
  667. package/dist/infineon-design-system-stencil/{p-7ac20ef4.entry.js → p-f1ba768a.entry.js} +2 -2
  668. package/dist/infineon-design-system-stencil/p-f1ba768a.entry.js.map +1 -0
  669. package/dist/infineon-design-system-stencil/{p-6f77f59d.entry.js → p-f2c8c7a6.entry.js} +2 -2
  670. package/dist/infineon-design-system-stencil/p-f2c8c7a6.entry.js.map +1 -0
  671. package/dist/infineon-design-system-stencil/p-fb92000d.entry.js +2 -0
  672. package/dist/infineon-design-system-stencil/p-fb92000d.entry.js.map +1 -0
  673. package/dist/infineon-design-system-stencil/{p-b12e396b.entry.js → p-fc359efa.entry.js} +2 -2
  674. package/dist/infineon-design-system-stencil/p-fc359efa.entry.js.map +1 -0
  675. package/dist/infineon-design-system-stencil/{p-5a279eb2.entry.js → p-fcae5dc1.entry.js} +2 -2
  676. package/dist/infineon-design-system-stencil/p-fcae5dc1.entry.js.map +1 -0
  677. package/dist/infineon-design-system-stencil/{p-1939e98d.entry.js → p-ff4cc197.entry.js} +2 -2
  678. package/dist/infineon-design-system-stencil/p-ff4cc197.entry.js.map +1 -0
  679. package/dist/types/stencil-public-runtime.d.ts +2 -49
  680. package/package.json +2 -2
  681. package/dist/cjs/index-DDktl7Xq.js.map +0 -1
  682. package/dist/components/p-1fzV7Zv1.js.map +0 -1
  683. package/dist/components/p-B0mNmKkJ.js.map +0 -1
  684. package/dist/components/p-BDwn5rZl.js.map +0 -1
  685. package/dist/components/p-BH1fOB-w.js.map +0 -1
  686. package/dist/components/p-BXtTIODa.js.map +0 -1
  687. package/dist/components/p-B_8rp7VV.js.map +0 -1
  688. package/dist/components/p-BgT5gPxL.js.map +0 -1
  689. package/dist/components/p-Bl0VvOaG.js.map +0 -1
  690. package/dist/components/p-BoK1X1nJ.js.map +0 -1
  691. package/dist/components/p-Bt4MK7Mb.js.map +0 -1
  692. package/dist/components/p-CB5foa-9.js.map +0 -1
  693. package/dist/components/p-CU8ZE6yG.js.map +0 -1
  694. package/dist/components/p-CcrhUlD4.js.map +0 -1
  695. package/dist/components/p-Cgqbp_bF.js.map +0 -1
  696. package/dist/components/p-Clf62Zu5.js.map +0 -1
  697. package/dist/components/p-Crf-DluO.js.map +0 -1
  698. package/dist/components/p-DHAEg73D.js.map +0 -1
  699. package/dist/components/p-DPN13Knu.js.map +0 -1
  700. package/dist/components/p-DPR3SJRC.js.map +0 -1
  701. package/dist/components/p-Dy153Xeh.js.map +0 -1
  702. package/dist/components/p-MPqVXeG4.js.map +0 -1
  703. package/dist/components/p-YPIdsxYd.js.map +0 -1
  704. package/dist/esm/index-Bq-7EdcD.js.map +0 -1
  705. package/dist/infineon-design-system-stencil/p-007bb0d4.entry.js.map +0 -1
  706. package/dist/infineon-design-system-stencil/p-06078b1f.entry.js.map +0 -1
  707. package/dist/infineon-design-system-stencil/p-0bebb0de.entry.js.map +0 -1
  708. package/dist/infineon-design-system-stencil/p-0e98b1aa.entry.js.map +0 -1
  709. package/dist/infineon-design-system-stencil/p-10ecab1b.entry.js.map +0 -1
  710. package/dist/infineon-design-system-stencil/p-1746e211.entry.js.map +0 -1
  711. package/dist/infineon-design-system-stencil/p-1939e98d.entry.js.map +0 -1
  712. package/dist/infineon-design-system-stencil/p-1c9012fe.entry.js.map +0 -1
  713. package/dist/infineon-design-system-stencil/p-1d9689b0.entry.js.map +0 -1
  714. package/dist/infineon-design-system-stencil/p-2128c3a9.entry.js.map +0 -1
  715. package/dist/infineon-design-system-stencil/p-2151343a.entry.js.map +0 -1
  716. package/dist/infineon-design-system-stencil/p-233d0bd2.entry.js.map +0 -1
  717. package/dist/infineon-design-system-stencil/p-25297147.entry.js.map +0 -1
  718. package/dist/infineon-design-system-stencil/p-2ca43bf3.entry.js.map +0 -1
  719. package/dist/infineon-design-system-stencil/p-2f5b757e.entry.js.map +0 -1
  720. package/dist/infineon-design-system-stencil/p-31fa2365.entry.js.map +0 -1
  721. package/dist/infineon-design-system-stencil/p-338f6827.entry.js.map +0 -1
  722. package/dist/infineon-design-system-stencil/p-3ac3d580.entry.js.map +0 -1
  723. package/dist/infineon-design-system-stencil/p-3bb3ac65.entry.js.map +0 -1
  724. package/dist/infineon-design-system-stencil/p-3e703c9d.entry.js.map +0 -1
  725. package/dist/infineon-design-system-stencil/p-416ce394.entry.js.map +0 -1
  726. package/dist/infineon-design-system-stencil/p-4770ef94.entry.js.map +0 -1
  727. package/dist/infineon-design-system-stencil/p-477daa59.entry.js.map +0 -1
  728. package/dist/infineon-design-system-stencil/p-4a9ff9c4.entry.js.map +0 -1
  729. package/dist/infineon-design-system-stencil/p-5a279eb2.entry.js.map +0 -1
  730. package/dist/infineon-design-system-stencil/p-5bddfe84.entry.js.map +0 -1
  731. package/dist/infineon-design-system-stencil/p-5cce03bf.entry.js +0 -2
  732. package/dist/infineon-design-system-stencil/p-5cce03bf.entry.js.map +0 -1
  733. package/dist/infineon-design-system-stencil/p-62010e7d.entry.js.map +0 -1
  734. package/dist/infineon-design-system-stencil/p-63d3ebeb.entry.js.map +0 -1
  735. package/dist/infineon-design-system-stencil/p-65aaabf2.entry.js.map +0 -1
  736. package/dist/infineon-design-system-stencil/p-6dd50243.entry.js +0 -2
  737. package/dist/infineon-design-system-stencil/p-6dd50243.entry.js.map +0 -1
  738. package/dist/infineon-design-system-stencil/p-6f77f59d.entry.js.map +0 -1
  739. package/dist/infineon-design-system-stencil/p-72264e5b.entry.js.map +0 -1
  740. package/dist/infineon-design-system-stencil/p-73c855a4.entry.js.map +0 -1
  741. package/dist/infineon-design-system-stencil/p-7ac20ef4.entry.js.map +0 -1
  742. package/dist/infineon-design-system-stencil/p-81e4dc33.entry.js.map +0 -1
  743. package/dist/infineon-design-system-stencil/p-824fea39.entry.js.map +0 -1
  744. package/dist/infineon-design-system-stencil/p-83c22f84.entry.js.map +0 -1
  745. package/dist/infineon-design-system-stencil/p-8a772962.entry.js.map +0 -1
  746. package/dist/infineon-design-system-stencil/p-925e40f0.entry.js.map +0 -1
  747. package/dist/infineon-design-system-stencil/p-950f6deb.entry.js.map +0 -1
  748. package/dist/infineon-design-system-stencil/p-96bc02ea.entry.js.map +0 -1
  749. package/dist/infineon-design-system-stencil/p-981391c7.entry.js +0 -2
  750. package/dist/infineon-design-system-stencil/p-981391c7.entry.js.map +0 -1
  751. package/dist/infineon-design-system-stencil/p-9a6089d5.entry.js.map +0 -1
  752. package/dist/infineon-design-system-stencil/p-9ed4711b.entry.js.map +0 -1
  753. package/dist/infineon-design-system-stencil/p-Bq-7EdcD.js +0 -3
  754. package/dist/infineon-design-system-stencil/p-Bq-7EdcD.js.map +0 -1
  755. package/dist/infineon-design-system-stencil/p-a4fb097a.entry.js.map +0 -1
  756. package/dist/infineon-design-system-stencil/p-a5c003d6.entry.js.map +0 -1
  757. package/dist/infineon-design-system-stencil/p-a6cf79f3.entry.js.map +0 -1
  758. package/dist/infineon-design-system-stencil/p-b12e396b.entry.js.map +0 -1
  759. package/dist/infineon-design-system-stencil/p-b1f9abc9.entry.js.map +0 -1
  760. package/dist/infineon-design-system-stencil/p-b2066117.entry.js.map +0 -1
  761. package/dist/infineon-design-system-stencil/p-b2eb2f1a.entry.js.map +0 -1
  762. package/dist/infineon-design-system-stencil/p-b332712f.entry.js.map +0 -1
  763. package/dist/infineon-design-system-stencil/p-b3880945.entry.js.map +0 -1
  764. package/dist/infineon-design-system-stencil/p-b4b5caa9.entry.js.map +0 -1
  765. package/dist/infineon-design-system-stencil/p-b804f249.entry.js.map +0 -1
  766. package/dist/infineon-design-system-stencil/p-b9b806ee.entry.js.map +0 -1
  767. package/dist/infineon-design-system-stencil/p-bd24344b.entry.js.map +0 -1
  768. package/dist/infineon-design-system-stencil/p-c2e0b4a4.entry.js.map +0 -1
  769. package/dist/infineon-design-system-stencil/p-c65ca68b.entry.js.map +0 -1
  770. package/dist/infineon-design-system-stencil/p-c896041a.entry.js.map +0 -1
  771. package/dist/infineon-design-system-stencil/p-cba6f231.entry.js.map +0 -1
  772. package/dist/infineon-design-system-stencil/p-ce392453.entry.js.map +0 -1
  773. package/dist/infineon-design-system-stencil/p-cebd7759.entry.js.map +0 -1
  774. package/dist/infineon-design-system-stencil/p-d06b42ca.entry.js.map +0 -1
  775. package/dist/infineon-design-system-stencil/p-d8f5253e.entry.js.map +0 -1
  776. package/dist/infineon-design-system-stencil/p-dbaf7efe.entry.js.map +0 -1
  777. package/dist/infineon-design-system-stencil/p-ded7b72c.entry.js.map +0 -1
  778. package/dist/infineon-design-system-stencil/p-dfcccf3a.entry.js.map +0 -1
  779. package/dist/infineon-design-system-stencil/p-e0f467af.entry.js.map +0 -1
  780. package/dist/infineon-design-system-stencil/p-e4fe1f48.entry.js.map +0 -1
  781. package/dist/infineon-design-system-stencil/p-e73a47d4.entry.js.map +0 -1
  782. package/dist/infineon-design-system-stencil/p-e789404b.entry.js.map +0 -1
  783. package/dist/infineon-design-system-stencil/p-e8be789f.entry.js.map +0 -1
  784. package/dist/infineon-design-system-stencil/p-eabddf02.entry.js.map +0 -1
  785. package/dist/infineon-design-system-stencil/p-f0b5f4c6.entry.js.map +0 -1
  786. package/dist/infineon-design-system-stencil/p-fb69c115.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../../src/components/file-upload/file-upload.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, State, Event, EventEmitter, Prop, Method, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\ninterface UploadTask {\n file: File;\n progress: number;\n intervalId: number | null;\n completed: boolean;\n error?: boolean;\n}\n\nexport type FileUploadErrorReason = 'network-error' | 'timeout' | 'file-too-large' | 'unsupported-type' | 'invalid-type' | 'custom' | (string & {});\n\n@Component({\n tag: 'ifx-file-upload',\n styleUrl: 'file-upload.scss',\n shadow: true,\n})\nexport class FileUpload {\n @Element() hostElement: HTMLElement;\n\n @Prop() dragAndDrop: boolean = false;\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() maxFileSizeMB: number = 7;\n /** Default set of allowed file extensions (used internally). Can be extended using `additionalAllowedFileTypes`. */\n @Prop() allowedFileTypes?: string | string[] = undefined;\n @Prop() additionalAllowedFileTypes?: string | string[] = [];\n /** When set to true, allows any file type to be uploaded (no file type restrictions). */\n @Prop() allowAnyFileType: boolean = false;\n /** Custom file extensions to allow (e.g., 'xml', 'asc', 'cfg'). Recommended format: without dots. Also accepts format with dots like '.xml'. Do not use wildcards like '*.xml'. */\n @Prop() allowedFileExtensions?: string | string[] = [];\n @Prop() uploadHandler?: (file: File, onProgress?: (progress: number) => void) => Promise<void>;\n\n private _maxFiles?: number;\n @Prop()\n get maxFiles(): number | undefined {\n return this._maxFiles;\n }\n set maxFiles(value: number | undefined) {\n if (typeof value === 'number' && value < 1) {\n console.warn('Invalid `maxFiles` value. Must be >= 1. Value ignored.');\n this._maxFiles = undefined;\n } else {\n this._maxFiles = value;\n }\n }\n\n @Prop() label: string = 'Label';\n @Prop() labelRequiredError: string = 'At least one file must be uploaded';\n @Prop() labelBrowseFiles: string = 'Browse files';\n @Prop() labelDragAndDrop: string = 'Drag & Drop or browse files to upload';\n @Prop() labelUploadedFilesHeading: string = 'Uploaded files';\n @Prop() labelFileTooLarge: string = 'Upload failed. Max file size: {{size}}MB.';\n @Prop() labelUnsupportedFileType: string = 'Unsupported file type.';\n @Prop() labelUploaded: string = 'Successfully uploaded';\n @Prop() labelUploadFailed: string = 'Upload failed. Please try again.';\n @Prop() labelSupportedFormatsTemplate: string = 'Supported file formats: {{types}}. Max file size: {{size}}MB.';\n @Prop() labelFileSingular: string = 'file';\n @Prop() labelFilePlural: string = 'files';\n @Prop() labelMaxFilesInfo?: string = 'Up to {{count}} {{files}}.';\n @Prop() labelMaxFilesExceeded: string = 'Upload limit exceeded. Only {{count}} {{files}} allowed.';\n\n @Prop() ariaLabelBrowseFiles: string = 'Browse files';\n @Prop() ariaLabelDropzone: string = 'Upload area. Click to browse or drag and drop files.';\n @Prop() ariaLabelFileInput: string = 'Upload file';\n @Prop() ariaLabelRemoveFile: string = 'Remove file';\n @Prop() ariaLabelCancelUpload: string = 'Cancel upload';\n @Prop() ariaLabelRetryUpload: string = 'Retry upload';\n @Prop() ariaLabelUploadingStatus: string = 'Upload in progress';\n @Prop() ariaLabelUploadedStatus: string = 'Upload completed';\n @Prop() ariaLabelUploadFailedStatus: string = 'Upload failed';\n\n private showDemoStates?: boolean;\n private internalId = `ifx-file-upload-${Math.random().toString(36).substr(2, 9)}`;\n\n @State() isDragOver: boolean = false;\n @State() files: File[] = [];\n @State() uploadTasks: UploadTask[] = [];\n @State() rejectedSizeFiles: string[] = [];\n @State() rejectedTypeFiles: string[] = [];\n @State() requiredError: boolean = false;\n @State() statusMessage: { type: 'error' | 'info' | 'success'; text: string } | null = null;\n\n @Event() ifxFileUploadAdd: EventEmitter<{ addedFiles: File[]; files: File[] }>;\n @Event() ifxFileUploadRemove: EventEmitter<{ removedFile: File; files: File[] }>;\n @Event() ifxFileUploadChange: EventEmitter<{ files: File[] }>;\n @Event() ifxFileUploadError: EventEmitter<{ errorType: string; file: File; message: string; reason?: string }>;\n @Event() ifxFileUploadInvalid: EventEmitter<{ file: File; reason: string }>;\n @Event() ifxFileUploadStart: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadComplete: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadAllComplete: EventEmitter<{ files: File[] }>;\n @Event() ifxFileUploadAbort: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadDrop: EventEmitter<{ droppedFiles: File[]; acceptedFiles: File[]; rejectedFiles: File[] }>;\n @Event() ifxFileUploadClick: EventEmitter<void>;\n @Event() ifxFileUploadMaxFilesExceeded: EventEmitter<{ maxFiles: number; attempted: number }>;\n @Event() ifxFileUploadValidation: EventEmitter<{ valid: boolean }>;\n @Event() ifxFileUploadRetry: EventEmitter<{ file: File }>;\n\n private fileInputEl: HTMLInputElement | null = null;\n\n private extensionToMimeMap: Record<string, string> = {\n /**\n * Maps file extensions to MIME types.\n * This is only used for translating `allowedFileTypes` (extensions) into MIME types,\n * and for labeling in the UI. It does NOT define which files are globally allowed.\n */\n\n // Images\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n\n // Documents\n pdf: 'application/pdf',\n doc: 'application/msword',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xls: 'application/vnd.ms-excel',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n ppt: 'application/vnd.ms-powerpoint',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n txt: 'text/plain',\n csv: 'text/csv',\n json: 'application/json',\n\n // Audio/Video\n mp3: 'audio/mpeg',\n wav: 'audio/wav',\n mp4: 'video/mp4',\n mov: 'video/quicktime',\n webm: 'video/webm',\n\n // Archive / Code\n zip: 'application/zip',\n rar: 'application/vnd.rar',\n tar: 'application/x-tar',\n gz: 'application/gzip',\n\n // Sonstiges\n xml: 'application/xml',\n html: 'text/html',\n css: 'text/css',\n js: 'application/javascript',\n };\n\n private validateRequired(): void {\n if (this.required && this.files.length === 0) {\n this.requiredError = true;\n\n if (this.statusMessage?.text !== this.labelRequiredError) {\n this.statusMessage = {\n type: 'error',\n text: this.labelRequiredError,\n };\n }\n\n this.ifxFileUploadValidation.emit({ valid: false });\n } else {\n this.requiredError = false;\n\n if (this.statusMessage?.text === this.labelRequiredError) {\n this.statusMessage = null;\n }\n\n this.ifxFileUploadValidation.emit({ valid: true });\n }\n }\n\n private pluralize(count: number): string {\n // If allowAnyFileType is true, use generic terms\n if (this.allowAnyFileType) {\n return count === 1 ? 'file' : 'files';\n }\n return count === 1 ? this.labelFileSingular : this.labelFilePlural;\n }\n\n private getNormalizedFileTypes(): string[] {\n // If allowedFileTypes is not set and allowedFileExtensions is set, return empty array\n if (!this.allowedFileTypes && this.allowedFileExtensions && this.getNormalizedFileExtensions().length > 0) {\n return [];\n }\n\n // If allowedFileTypes is not set and no allowedFileExtensions, use defaults\n if (!this.allowedFileTypes) {\n return ['jpg', 'jpeg', 'png', 'pdf', 'mov', 'mp3', 'mp4'];\n }\n\n if (Array.isArray(this.allowedFileTypes)) {\n return this.allowedFileTypes;\n }\n try {\n return JSON.parse(this.allowedFileTypes);\n } catch {\n return this.allowedFileTypes.split(',').map(t => t.trim());\n }\n }\n\n private getNormalizedFileExtensions(): string[] {\n if (!this.allowedFileExtensions) return [];\n if (Array.isArray(this.allowedFileExtensions)) {\n return this.allowedFileExtensions;\n }\n try {\n return JSON.parse(this.allowedFileExtensions);\n } catch {\n return this.allowedFileExtensions.split(',').map(t => t.trim());\n }\n }\n\n /**\n * Enhanced file type validation that supports:\n * - allowAnyFileType flag for unrestricted uploads (overrides all restrictions)\n * - allowedFileTypes (predefined extensions mapped to MIME types) - if not set and allowedFileExtensions is set, ignored\n * - additionalAllowedFileTypes (MIME types)\n * - allowedFileExtensions (custom extensions) - if only this is set, only these extensions are allowed\n */\n private isFileTypeAllowed(file: File): boolean {\n // If allowAnyFileType is true, accept all files (overrides all restrictions)\n if (this.allowAnyFileType) {\n return true;\n }\n\n const fileExtension = this.getFileExtension(file.name);\n\n // Check against allowedFileTypes (predefined extensions)\n const normalizedTypes = this.getNormalizedFileTypes();\n const allowedMimes = normalizedTypes.map(ext => this.extensionToMimeMap[ext.toLowerCase()]).filter(Boolean);\n\n if (allowedMimes.includes(file.type)) {\n return true;\n }\n\n // Check against additionalAllowedFileTypes (MIME types)\n const additionalMimeTypes = this.getAdditionalMimeTypes();\n if (additionalMimeTypes.includes(file.type)) {\n return true;\n }\n\n // Check against allowedFileExtensions (custom extensions)\n const customExtensions = this.getNormalizedFileExtensions();\n if (customExtensions.length > 0 && fileExtension) {\n for (const ext of customExtensions) {\n const normalizedExt = ext.startsWith('.') ? ext.substring(1).toLowerCase() : ext.toLowerCase();\n if (fileExtension === normalizedExt) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Extracts file extension from filename (without dot)\n */\n private getFileExtension(filename: string): string | null {\n const lastDotIndex = filename.lastIndexOf('.');\n if (lastDotIndex === -1 || lastDotIndex === filename.length - 1) {\n return null;\n }\n return filename.substring(lastDotIndex + 1).toLowerCase();\n }\n\n private getLabelFromMimeType(mime: string): string {\n for (const [ext, knownMime] of Object.entries(this.extensionToMimeMap)) {\n if (knownMime === mime) {\n return ext.toUpperCase();\n }\n }\n return mime; // fallback: show raw MIME\n }\n\n handleFileChange(event: Event) {\n const input = event.target as HTMLInputElement;\n if (!input.files) return;\n this.processFiles(input.files);\n }\n\n handleDrop(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver = false;\n if (event.dataTransfer?.files) {\n const droppedFiles = Array.from(event.dataTransfer.files);\n\n const acceptedFiles: File[] = [];\n const rejectedFiles: File[] = [];\n\n droppedFiles.forEach(file => {\n const isValidType = this.isFileTypeAllowed(file);\n const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;\n if (isValidType && isValidSize) acceptedFiles.push(file);\n else rejectedFiles.push(file);\n });\n\n this.ifxFileUploadDrop.emit({\n droppedFiles,\n acceptedFiles,\n rejectedFiles,\n });\n\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n handleDragOver(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n this.isDragOver = true;\n }\n\n handleDragLeave(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n this.isDragOver = false;\n }\n\n processFiles(fileList: FileList) {\n const selectedFiles = Array.from(fileList);\n\n const validFiles: File[] = [];\n const rejectedSize: string[] = [];\n const rejectedType: string[] = [];\n\n selectedFiles.forEach(file => {\n const isValidType = this.isFileTypeAllowed(file);\n const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;\n const isDuplicate = this.files.some(existing => existing.name === file.name && existing.size === file.size);\n\n if (isDuplicate) {\n this.ifxFileUploadInvalid.emit({ file, reason: 'duplicate' });\n this.ifxFileUploadError.emit({\n file,\n errorType: 'duplicate',\n message: `File \"${file.name}\" is already added`,\n reason: 'duplicate',\n });\n return;\n }\n\n if (isValidType && isValidSize) {\n validFiles.push(file);\n } else {\n if (!isValidType) {\n rejectedType.push(file.name);\n this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-type' });\n }\n if (!isValidSize) {\n rejectedSize.push(file.name);\n this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-size' });\n }\n this.ifxFileUploadError.emit({\n file,\n errorType: !isValidType ? 'invalid-type' : 'file-too-large',\n message: 'Invalid file rejected',\n reason: !isValidType ? 'unsupported-type' : 'file-too-large',\n });\n }\n });\n\n this.rejectedSizeFiles = [...this.rejectedSizeFiles, ...rejectedSize];\n this.rejectedTypeFiles = [...this.rejectedTypeFiles, ...rejectedType];\n\n if (this.maxFiles && this.files.length + validFiles.length > this.maxFiles) {\n const availableSlots = this.maxFiles - this.files.length;\n const limitedFiles = validFiles.slice(0, Math.max(availableSlots, 0));\n const overflowFiles = validFiles.slice(availableSlots);\n\n this.files = [...this.files, ...limitedFiles];\n\n limitedFiles.forEach(file => this.startUpload(file));\n\n if (limitedFiles.length > 0) {\n this.ifxFileUploadAdd.emit({ addedFiles: limitedFiles, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n }\n\n overflowFiles.forEach(file => {\n this.ifxFileUploadInvalid.emit({ file, reason: 'too-many-files' });\n this.ifxFileUploadError.emit({\n file,\n errorType: 'too-many-files',\n message: `Upload limit exceeded. Max ${this.maxFiles} files allowed.`,\n reason: 'too-many-files',\n });\n });\n\n if (overflowFiles.length > 0) {\n this.statusMessage = {\n type: 'error',\n text: this.labelMaxFilesExceeded.replace('{{count}}', this.maxFiles.toString()).replace('{{files}}', this.pluralize(this.maxFiles)),\n };\n this.ifxFileUploadMaxFilesExceeded.emit({\n maxFiles: this.maxFiles,\n attempted: this.files.length + validFiles.length,\n });\n }\n\n return;\n }\n\n validFiles.forEach(file => this.startUpload(file));\n this.files = [...this.files, ...validFiles];\n\n if (validFiles.length > 0) {\n this.ifxFileUploadAdd.emit({ addedFiles: validFiles, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n }\n\n this.validateRequired();\n }\n\n retryUpload(file: File) {\n const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);\n if (taskIndex !== -1) {\n this.uploadTasks.splice(taskIndex, 1);\n this.uploadTasks = [...this.uploadTasks];\n }\n this.ifxFileUploadRetry.emit({ file });\n this.startUpload(file);\n }\n\n private checkAndEmitAllComplete(): void {\n if (this.uploadTasks.every(t => t.completed || t.error)) {\n const hasSuccessfulUploads = this.uploadTasks.some(t => t.completed && !t.error);\n if (hasSuccessfulUploads) {\n const successfulFiles = this.uploadTasks.filter(t => t.completed && !t.error).map(t => t.file);\n this.ifxFileUploadAllComplete.emit({ files: successfulFiles });\n }\n }\n }\n\n private resetFileInput(): void {\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n }\n\n private updateTaskProgress(file: File, progress: number): void {\n const task = this.uploadTasks.find(t => t.file === file);\n if (task) {\n const newProgress = Math.max(task.progress, Math.min(100, progress));\n if (newProgress !== task.progress) {\n task.progress = newProgress;\n this.uploadTasks = [...this.uploadTasks];\n }\n }\n }\n\n startUpload(file: File) {\n this.ifxFileUploadStart.emit({ file });\n const task: UploadTask = {\n file,\n progress: 3, // Start with initial progress for better UX\n intervalId: null,\n completed: false,\n };\n this.uploadTasks = [...this.uploadTasks, task];\n\n if (this.uploadHandler) {\n this.uploadHandler(file, (percent: number) => {\n this.updateTaskProgress(file, percent);\n })\n .then(() => {\n task.progress = 100;\n task.completed = true;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadComplete.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.checkAndEmitAllComplete();\n })\n .catch(() => {\n task.error = true;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadError.emit({\n file,\n errorType: 'upload-failed',\n message: 'Upload handler rejected file',\n reason: 'custom',\n });\n this.checkAndEmitAllComplete();\n });\n } else {\n const totalSize = file.size;\n const fakeUploadSpeed = 100000;\n let uploaded = 0;\n task.intervalId = window.setInterval(() => {\n uploaded += fakeUploadSpeed / 5;\n const progress = Math.min(100, Math.round((uploaded / totalSize) * 100));\n this.updateTaskProgress(file, progress);\n\n if (progress >= 100) {\n clearInterval(task.intervalId!);\n task.completed = true;\n task.intervalId = null;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadComplete.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.checkAndEmitAllComplete();\n }\n }, 200);\n }\n }\n\n cancelUpload(file: File) {\n const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);\n if (taskIndex !== -1) {\n const task = this.uploadTasks[taskIndex];\n if (task?.intervalId !== null) {\n clearInterval(task.intervalId);\n }\n this.uploadTasks = this.uploadTasks.filter((_, i) => i !== taskIndex);\n }\n this.files = this.files.filter(f => f.name !== file.name);\n this.ifxFileUploadAbort.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.resetFileInput();\n this.validateRequired();\n }\n\n removeFile(file: File) {\n this.uploadTasks = this.uploadTasks.filter(task => task.file.name !== file.name);\n this.files = this.files.filter(f => f.name !== file.name);\n this.ifxFileUploadRemove.emit({ removedFile: file, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.validateRequired();\n\n this.resetFileInput();\n\n if (this.maxFiles && this.files.length < this.maxFiles && this.statusMessage?.text !== this.labelRequiredError) {\n this.statusMessage = null;\n }\n }\n\n clearRejectedFile(fileName: string, type: 'size' | 'type') {\n if (type === 'size') {\n this.rejectedSizeFiles = this.rejectedSizeFiles.filter(f => f !== fileName);\n } else {\n this.rejectedTypeFiles = this.rejectedTypeFiles.filter(f => f !== fileName);\n }\n\n this.resetFileInput();\n\n if (this.maxFiles && this.files.length < this.maxFiles) {\n this.statusMessage = null;\n }\n\n this.validateRequired();\n }\n\n splitFileNameParts(file: File): { base: string; ext: string } {\n const name = file.name;\n const dotIndex = name.lastIndexOf('.');\n if (dotIndex === -1) return { base: name, ext: '' };\n return {\n base: name.substring(0, dotIndex),\n ext: name.substring(dotIndex),\n };\n }\n\n getFileIcon(file: File): string {\n const extension = file.name.split('.').pop()?.toLowerCase();\n switch (extension) {\n case 'pdf':\n return 'file-pdf-16';\n case 'jpg':\n case 'jpeg':\n return 'file-jpg-16';\n case 'png':\n return 'file-png-16';\n case 'mov':\n return 'file-mov-16';\n case 'mp3':\n return 'file-mp3-16';\n case 'mp4':\n return 'file-mp4-16';\n default:\n return 'file-16';\n }\n }\n\n formatSize(bytes: number): string {\n if (bytes >= 1024 * 1024 * 1024) {\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n } else if (bytes >= 1024 * 1024) {\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n } else if (bytes >= 1024) {\n return `${(bytes / 1024).toFixed(0)} KB`;\n } else {\n return `${bytes} B`;\n }\n }\n\n getAcceptAttribute(): string {\n // If allowAnyFileType is true, don't restrict the input\n if (this.allowAnyFileType) {\n return '';\n }\n\n const acceptValues: string[] = [];\n\n // Add extensions from allowedFileTypes\n const extensionTypes = this.getNormalizedFileTypes().map(ext => '.' + ext.toLowerCase());\n acceptValues.push(...extensionTypes);\n\n // Add MIME types from additionalAllowedFileTypes\n const mimeTypes = this.getAdditionalMimeTypes();\n acceptValues.push(...mimeTypes);\n\n // Add custom file extensions\n const customExtensions = this.getNormalizedFileExtensions();\n customExtensions.forEach(ext => {\n const normalizedExt = ext.startsWith('.') ? ext : '.' + ext;\n acceptValues.push(normalizedExt);\n });\n\n return acceptValues.join(',');\n }\n\n private getFormattedProgressText(task: UploadTask): string {\n const uploadedSize = Math.round((task.progress / 100) * task.file.size);\n const uploadedText = this.formatSize(uploadedSize);\n const totalText = this.formatSize(task.file.size);\n return `${uploadedText} / ${totalText} uploaded`;\n }\n\n private getAdditionalMimeTypes(): string[] {\n if (!this.additionalAllowedFileTypes) return [];\n if (Array.isArray(this.additionalAllowedFileTypes)) return this.additionalAllowedFileTypes;\n return this.additionalAllowedFileTypes.split(',').map(t => t.trim());\n }\n\n private getSupportedFileText(): string {\n if (this.allowAnyFileType) {\n let text = `All file types allowed. Max file size: ${this.maxFileSizeMB}MB.`;\n if (this.labelMaxFilesInfo && this.maxFiles) {\n const fileWord = this.pluralize(this.maxFiles);\n const maxFilesText = this.labelMaxFilesInfo.replace('{{count}}', this.maxFiles.toString()).replace('{{files}}', fileWord);\n text += ` ${maxFilesText}`;\n }\n return text;\n }\n\n const allTypes: string[] = [];\n\n // Add extensions from allowedFileTypes\n const extensions = this.getNormalizedFileTypes().map(ext => ext.toUpperCase());\n allTypes.push(...extensions);\n\n // Add MIME types from additionalAllowedFileTypes\n const mimeTypes = this.getAdditionalMimeTypes().map(mime => this.getLabelFromMimeType(mime));\n allTypes.push(...mimeTypes);\n\n // Add custom file extensions\n const customExtensions = this.getNormalizedFileExtensions().map(ext => {\n const cleanExt = ext.startsWith('.') ? ext.substring(1) : ext;\n return cleanExt.toUpperCase();\n });\n allTypes.push(...customExtensions);\n\n const typesLabel = allTypes.join(', ');\n\n let text = this.labelSupportedFormatsTemplate.replace('{{types}}', typesLabel).replace('{{size}}', this.maxFileSizeMB.toString());\n\n if (this.labelMaxFilesInfo && this.maxFiles) {\n const fileWord = this.pluralize(this.maxFiles);\n const maxFilesText = this.labelMaxFilesInfo.replace('{{count}}', this.maxFiles.toString()).replace('{{files}}', fileWord);\n text += ` ${maxFilesText}`;\n }\n\n return text;\n }\n\n private getFormattedFileTooLargeText(): string {\n return this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString());\n }\n\n private renderStatusMessage() {\n if (!this.statusMessage) return null;\n\n return (\n <div class={`file-upload-status file-upload-status__${this.statusMessage.type}`}>\n {this.statusMessage.type === 'error' && <ifx-icon icon=\"c-warning-16\"></ifx-icon>}\n {this.statusMessage.text}\n </div>\n );\n }\n\n private isInputDisabled(): boolean {\n return this.disabled || (this.maxFiles !== undefined && this.files.length >= this.maxFiles);\n }\n\n async componentDidLoad() {\n if (!isNestedInIfxComponent(this.hostElement)) {\n const framework = detectFramework();\n trackComponent('ifx-file-upload', await framework);\n }\n\n if (this.hostElement.hasAttribute('show-demo-states')) {\n this.showDemoStates = true;\n }\n\n if (this.showDemoStates) {\n this.injectDemoState();\n }\n }\n\n // Storybook Demo\n @Method()\n async injectDemoState() {\n const dummyContent = new Array(50000).fill('a').join(''); // ~50 KB\n const bigContent = dummyContent + dummyContent; // ~100 KB\n\n const uploading = new File([dummyContent], 'Image.jpg', { type: 'image/jpeg' }); // ~50 KB\n const uploaded = new File([bigContent], 'File.pdf', { type: 'application/pdf' }); // ~100 KB\n const failed = new File([dummyContent], 'Text.docx', { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); // ~50 KB\n const tooLarge = new File([bigContent + bigContent + bigContent], 'Video.mp4', { type: 'video/mp4' }); // ~300 KB\n const unsupported = new File(['demo'], 'Script.exe', { type: 'application/x-msdownload' }); // very small\n\n this.files = [uploaded, uploading, failed];\n this.uploadTasks = [\n { file: uploaded, progress: 100, intervalId: null, completed: true },\n { file: uploading, progress: 40, intervalId: null, completed: false },\n { file: failed, progress: 80, intervalId: null, completed: false, error: true },\n ];\n this.rejectedSizeFiles = [tooLarge.name];\n this.rejectedTypeFiles = [unsupported.name];\n }\n\n // Storybook Demo\n @Method()\n async triggerDemoValidation(): Promise<void> {\n this.validateRequired();\n }\n\n render() {\n return (\n <div\n class={{\n 'file-upload-wrapper': true,\n 'disabled': this.disabled,\n }}\n >\n {this.label && (\n <label class=\"file-upload-label\" htmlFor={this.internalId}>\n {this.label}\n {this.required && <span class={`required ${this.requiredError ? 'error' : ''}`}>*</span>}\n </label>\n )}\n\n {this.dragAndDrop ? this.renderDragAndDropArea() : this.renderUploadArea()}\n\n {(this.files.length > 0 || this.rejectedSizeFiles.length > 0 || this.rejectedTypeFiles.length > 0) && (\n <div class=\"file-list-wrapper\">\n <div class=\"upload-heading\">{this.labelUploadedFilesHeading}</div>\n <ul class=\"file-list\">\n {this.rejectedSizeFiles.map(fileName => (\n <li class=\"file-item upload-failed\" key={`rejected-size-${fileName}`}>\n <div class=\"file-icon\">\n <ifx-icon icon=\"file-16\"></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{this.splitFileNameParts({ name: fileName } as File).base}</span>\n <span class=\"file-name-ext\">{this.splitFileNameParts({ name: fileName } as File).ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.clearRejectedFile(fileName, 'size')}\n ></ifx-icon-button>\n </div>\n </div>\n <div class=\"file-middle-row\">\n <span class=\"file-status\" aria-label={this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString())}>\n {this.getFormattedFileTooLargeText()}\n </span>\n </div>\n </div>\n </li>\n ))}\n\n {this.rejectedTypeFiles.map(fileName => (\n <li class=\"file-item upload-failed\" key={`rejected-type-${fileName}`}>\n <div class=\"file-icon\">\n <ifx-icon icon=\"file-16\"></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{this.splitFileNameParts({ name: fileName } as File).base}</span>\n <span class=\"file-name-ext\">{this.splitFileNameParts({ name: fileName } as File).ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.clearRejectedFile(fileName, 'type')}\n ></ifx-icon-button>\n </div>\n </div>\n <div class=\"file-middle-row\">\n <span class=\"file-status\" aria-label={this.labelUnsupportedFileType}>\n {this.labelUnsupportedFileType}\n </span>\n </div>\n </div>\n </li>\n ))}\n\n {this.files.map(file => {\n const task = this.uploadTasks.find(t => t.file.name === file.name);\n const progress = task?.progress ?? 100;\n const isUploading = task && !task.completed;\n const isError = task?.error === true;\n const itemClass = isError ? 'file-item upload-failed' : isUploading ? 'file-item uploading' : 'file-item upload-success';\n const uniqueKey = `${file.name}-${file.size}`;\n const { base, ext } = this.splitFileNameParts(file);\n\n return (\n <li class={itemClass} key={uniqueKey}>\n <div class=\"file-icon\">\n <ifx-icon icon={this.getFileIcon(file)}></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{base}</span>\n <span class=\"file-name-ext\">{ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"refresh-16\"\n size=\"s\"\n aria-label={this.ariaLabelRetryUpload}\n onClick={() => this.retryUpload(file)}\n style={{ display: isError ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"cross-16\"\n size=\"s\"\n aria-label={this.ariaLabelCancelUpload}\n onClick={() => this.cancelUpload(file)}\n style={{ display: isUploading ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.removeFile(file)}\n style={{ display: !isUploading ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n </div>\n </div>\n\n <div class=\"file-middle-row\">\n {isUploading && task && !task.error && (\n <span class=\"file-uploading\" aria-label={this.ariaLabelUploadingStatus}>\n {this.getFormattedProgressText(task)}\n </span>\n )}\n {!isUploading && !isError && (\n <span>\n <span class=\"file-size\">{this.formatSize(file.size)}</span>\n <span class=\"file-status\" aria-label={this.ariaLabelUploadedStatus}>\n <ifx-icon icon=\"check-16\"></ifx-icon>\n {this.labelUploaded}\n </span>\n </span>\n )}\n {isError && (\n <span class=\"file-status\" aria-label={this.ariaLabelUploadFailedStatus}>\n {this.labelUploadFailed}\n </span>\n )}\n </div>\n\n {isUploading && task && !task.error && (\n <div class=\"file-progress-row\">\n <ifx-progress-bar size=\"s\" value={progress} show-label=\"true\"></ifx-progress-bar>\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n )}\n </div>\n );\n }\n\n renderUploadArea() {\n const handleInputRef = (el: HTMLInputElement | null) => {\n this.fileInputEl = el;\n };\n\n return (\n <div class={{ 'upload-button': true }}>\n <ifx-button variant=\"secondary\" onClick={() => this.fileInputEl?.click()} disabled={this.isInputDisabled()} aria-label={this.ariaLabelBrowseFiles}>\n <ifx-icon icon=\"upload-16\"></ifx-icon>\n {this.labelBrowseFiles}\n </ifx-button>\n <input\n id={this.internalId}\n ref={handleInputRef}\n type=\"file\"\n accept={this.getAcceptAttribute()}\n multiple\n onChange={e => this.handleFileChange(e)}\n style={{ display: 'none' }}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelFileInput}\n />\n <p class=\"file-upload-info\">{this.getSupportedFileText()}</p>\n {this.renderStatusMessage()}\n </div>\n );\n }\n\n renderDragAndDropArea() {\n const handleInputRef = (el: HTMLInputElement | null) => {\n this.fileInputEl = el;\n };\n\n const triggerInputClick = () => {\n if (this.fileInputEl) {\n this.fileInputEl.click();\n }\n };\n\n return (\n <div class={{ disabled: this.isInputDisabled() }}>\n <div\n class={{ 'upload-dropzone': true, 'drag-over': this.isDragOver, 'error': this.requiredError }}\n onClick={triggerInputClick}\n onDragOver={e => this.handleDragOver(e)}\n onDragLeave={e => this.handleDragLeave(e)}\n onDrop={e => this.handleDrop(e)}\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaLabelDropzone}\n >\n <ifx-icon icon=\"upload-16\" class=\"custom-icon\"></ifx-icon>\n <p>{this.labelDragAndDrop}</p>\n <p class=\"file-upload-info\">{this.getSupportedFileText()}</p>\n <div style={{ height: '0px', overflow: 'hidden' }}>\n <input\n id={this.internalId}\n ref={handleInputRef}\n type=\"file\"\n accept={this.getAcceptAttribute()}\n multiple\n onChange={e => this.handleFileChange(e)}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelFileInput}\n />\n </div>\n </div>\n {this.renderStatusMessage()}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../../src/components/file-upload/file-upload.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, State, Event, EventEmitter, Prop, Method, Element } from '@stencil/core';\nimport { trackComponent } from '../../global/utils/tracking';\nimport { isNestedInIfxComponent } from '../../global/utils/dom-utils';\nimport { detectFramework } from '../../global/utils/framework-detection';\n\ninterface UploadTask {\n file: File;\n progress: number;\n intervalId: number | null;\n completed: boolean;\n error?: boolean;\n}\n\nexport type FileUploadErrorReason = 'network-error' | 'timeout' | 'file-too-large' | 'unsupported-type' | 'invalid-type' | 'custom' | (string & {});\n\n@Component({\n tag: 'ifx-file-upload',\n styleUrl: 'file-upload.scss',\n shadow: true,\n})\nexport class FileUpload {\n @Element() hostElement: HTMLElement;\n\n @Prop() dragAndDrop: boolean = false;\n @Prop() required: boolean = false;\n @Prop() disabled: boolean = false;\n @Prop() maxFileSizeMB: number = 7;\n /** Default set of allowed file extensions (used internally). Can be extended using `additionalAllowedFileTypes`. */\n @Prop() allowedFileTypes?: string | string[] = undefined;\n @Prop() additionalAllowedFileTypes?: string | string[] = [];\n /** When set to true, allows any file type to be uploaded (no file type restrictions). */\n @Prop() allowAnyFileType: boolean = false;\n /** Custom file extensions to allow (e.g., 'xml', 'asc', 'cfg'). Recommended format: without dots. Also accepts format with dots like '.xml'. Do not use wildcards like '*.xml'. */\n @Prop() allowedFileExtensions?: string | string[] = [];\n @Prop() uploadHandler?: (file: File, onProgress?: (progress: number) => void) => Promise<void>;\n\n private _maxFiles?: number;\n @Prop()\n get maxFiles(): number | undefined {\n return this._maxFiles;\n }\n set maxFiles(value: number | undefined) {\n if (typeof value === 'number' && value < 1) {\n console.warn('Invalid `maxFiles` value. Must be >= 1. Value ignored.');\n this._maxFiles = undefined;\n } else {\n this._maxFiles = value;\n }\n }\n\n @Prop() label: string = 'Label';\n @Prop() labelRequiredError: string = 'At least one file must be uploaded';\n @Prop() labelBrowseFiles: string = 'Browse files';\n @Prop() labelDragAndDrop: string = 'Drag & Drop or browse files to upload';\n @Prop() labelUploadedFilesHeading: string = 'Uploaded files';\n @Prop() labelFileTooLarge: string = 'Upload failed. Max file size: {{size}}MB.';\n @Prop() labelUnsupportedFileType: string = 'Unsupported file type.';\n @Prop() labelUploaded: string = 'Successfully uploaded';\n @Prop() labelUploadFailed: string = 'Upload failed. Please try again.';\n @Prop() labelSupportedFormatsTemplate: string = 'Supported file formats: {{types}}. Max file size: {{size}}MB.';\n @Prop() labelFileSingular: string = 'file';\n @Prop() labelFilePlural: string = 'files';\n @Prop() labelMaxFilesInfo?: string = 'Up to {{count}} {{files}}.';\n @Prop() labelMaxFilesExceeded: string = 'Upload limit exceeded. Only {{count}} {{files}} allowed.';\n\n @Prop() ariaLabelBrowseFiles: string = 'Browse files';\n @Prop() ariaLabelDropzone: string = 'Upload area. Click to browse or drag and drop files.';\n @Prop() ariaLabelFileInput: string = 'Upload file';\n @Prop() ariaLabelRemoveFile: string = 'Remove file';\n @Prop() ariaLabelCancelUpload: string = 'Cancel upload';\n @Prop() ariaLabelRetryUpload: string = 'Retry upload';\n @Prop() ariaLabelUploadingStatus: string = 'Upload in progress';\n @Prop() ariaLabelUploadedStatus: string = 'Upload completed';\n @Prop() ariaLabelUploadFailedStatus: string = 'Upload failed';\n\n private showDemoStates?: boolean;\n private internalId = `ifx-file-upload-${Math.random().toString(36).substr(2, 9)}`;\n\n @State() isDragOver: boolean = false;\n @State() files: File[] = [];\n @State() uploadTasks: UploadTask[] = [];\n @State() rejectedSizeFiles: string[] = [];\n @State() rejectedTypeFiles: string[] = [];\n @State() requiredError: boolean = false;\n @State() statusMessage: { type: 'error' | 'info' | 'success'; text: string } | null = null;\n\n @Event() ifxFileUploadAdd: EventEmitter<{ addedFiles: File[]; files: File[] }>;\n @Event() ifxFileUploadRemove: EventEmitter<{ removedFile: File; files: File[] }>;\n @Event() ifxFileUploadChange: EventEmitter<{ files: File[] }>;\n @Event() ifxFileUploadError: EventEmitter<{ errorType: string; file: File; message: string; reason?: string }>;\n @Event() ifxFileUploadInvalid: EventEmitter<{ file: File; reason: string }>;\n @Event() ifxFileUploadStart: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadComplete: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadAllComplete: EventEmitter<{ files: File[] }>;\n @Event() ifxFileUploadAbort: EventEmitter<{ file: File }>;\n @Event() ifxFileUploadDrop: EventEmitter<{ droppedFiles: File[]; acceptedFiles: File[]; rejectedFiles: File[] }>;\n @Event() ifxFileUploadClick: EventEmitter<void>;\n @Event() ifxFileUploadMaxFilesExceeded: EventEmitter<{ maxFiles: number; attempted: number }>;\n @Event() ifxFileUploadValidation: EventEmitter<{ valid: boolean }>;\n @Event() ifxFileUploadRetry: EventEmitter<{ file: File }>;\n\n private fileInputEl: HTMLInputElement | null = null;\n\n private extensionToMimeMap: Record<string, string> = {\n /**\n * Maps file extensions to MIME types.\n * This is only used for translating `allowedFileTypes` (extensions) into MIME types,\n * and for labeling in the UI. It does NOT define which files are globally allowed.\n */\n\n // Images\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n png: 'image/png',\n gif: 'image/gif',\n svg: 'image/svg+xml',\n webp: 'image/webp',\n\n // Documents\n pdf: 'application/pdf',\n doc: 'application/msword',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xls: 'application/vnd.ms-excel',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n ppt: 'application/vnd.ms-powerpoint',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n txt: 'text/plain',\n csv: 'text/csv',\n json: 'application/json',\n\n // Audio/Video\n mp3: 'audio/mpeg',\n wav: 'audio/wav',\n mp4: 'video/mp4',\n mov: 'video/quicktime',\n webm: 'video/webm',\n\n // Archive / Code\n zip: 'application/zip',\n rar: 'application/vnd.rar',\n tar: 'application/x-tar',\n gz: 'application/gzip',\n\n // Sonstiges\n xml: 'application/xml',\n html: 'text/html',\n css: 'text/css',\n js: 'application/javascript',\n };\n\n private validateRequired(): void {\n if (this.required && this.files.length === 0) {\n this.requiredError = true;\n\n if (this.statusMessage?.text !== this.labelRequiredError) {\n this.statusMessage = {\n type: 'error',\n text: this.labelRequiredError,\n };\n }\n\n this.ifxFileUploadValidation.emit({ valid: false });\n } else {\n this.requiredError = false;\n\n if (this.statusMessage?.text === this.labelRequiredError) {\n this.statusMessage = null;\n }\n\n this.ifxFileUploadValidation.emit({ valid: true });\n }\n }\n\n private pluralize(count: number): string {\n // If allowAnyFileType is true, use generic terms\n if (this.allowAnyFileType) {\n return count === 1 ? 'file' : 'files';\n }\n return count === 1 ? this.labelFileSingular : this.labelFilePlural;\n }\n\n private getNormalizedFileTypes(): string[] {\n // If allowedFileTypes is not set and allowedFileExtensions is set, return empty array\n if (!this.allowedFileTypes && this.allowedFileExtensions && this.getNormalizedFileExtensions().length > 0) {\n return [];\n }\n\n // If allowedFileTypes is not set and no allowedFileExtensions, use defaults\n if (!this.allowedFileTypes) {\n return ['jpg', 'jpeg', 'png', 'pdf', 'mov', 'mp3', 'mp4'];\n }\n\n if (Array.isArray(this.allowedFileTypes)) {\n return this.allowedFileTypes;\n }\n try {\n return JSON.parse(this.allowedFileTypes);\n } catch {\n return this.allowedFileTypes.split(',').map(t => t.trim());\n }\n }\n\n private getNormalizedFileExtensions(): string[] {\n if (!this.allowedFileExtensions) return [];\n if (Array.isArray(this.allowedFileExtensions)) {\n return this.allowedFileExtensions;\n }\n try {\n return JSON.parse(this.allowedFileExtensions);\n } catch {\n return this.allowedFileExtensions.split(',').map(t => t.trim());\n }\n }\n\n /**\n * Enhanced file type validation that supports:\n * - allowAnyFileType flag for unrestricted uploads (overrides all restrictions)\n * - allowedFileTypes (predefined extensions mapped to MIME types) - if not set and allowedFileExtensions is set, ignored\n * - additionalAllowedFileTypes (MIME types)\n * - allowedFileExtensions (custom extensions) - if only this is set, only these extensions are allowed\n */\n private isFileTypeAllowed(file: File): boolean {\n // If allowAnyFileType is true, accept all files (overrides all restrictions)\n if (this.allowAnyFileType) {\n return true;\n }\n\n const fileExtension = this.getFileExtension(file.name);\n\n // Check against allowedFileTypes (predefined extensions)\n const normalizedTypes = this.getNormalizedFileTypes();\n const allowedMimes = normalizedTypes.map(ext => this.extensionToMimeMap[ext.toLowerCase()]).filter(Boolean);\n\n if (allowedMimes.includes(file.type)) {\n return true;\n }\n\n // Check against additionalAllowedFileTypes (MIME types)\n const additionalMimeTypes = this.getAdditionalMimeTypes();\n if (additionalMimeTypes.includes(file.type)) {\n return true;\n }\n\n // Check against allowedFileExtensions (custom extensions)\n const customExtensions = this.getNormalizedFileExtensions();\n if (customExtensions.length > 0 && fileExtension) {\n for (const ext of customExtensions) {\n const normalizedExt = ext.startsWith('.') ? ext.substring(1).toLowerCase() : ext.toLowerCase();\n if (fileExtension === normalizedExt) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Extracts file extension from filename (without dot)\n */\n private getFileExtension(filename: string): string | null {\n const lastDotIndex = filename.lastIndexOf('.');\n if (lastDotIndex === -1 || lastDotIndex === filename.length - 1) {\n return null;\n }\n return filename.substring(lastDotIndex + 1).toLowerCase();\n }\n\n private getLabelFromMimeType(mime: string): string {\n for (const [ext, knownMime] of Object.entries(this.extensionToMimeMap)) {\n if (knownMime === mime) {\n return ext.toUpperCase();\n }\n }\n return mime; // fallback: show raw MIME\n }\n\n handleFileChange(event: Event) {\n const input = event.target as HTMLInputElement;\n if (!input.files) return;\n this.processFiles(input.files);\n }\n\n handleDrop(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n event.stopPropagation();\n this.isDragOver = false;\n if (event.dataTransfer?.files) {\n const droppedFiles = Array.from(event.dataTransfer.files);\n\n const acceptedFiles: File[] = [];\n const rejectedFiles: File[] = [];\n\n droppedFiles.forEach(file => {\n const isValidType = this.isFileTypeAllowed(file);\n const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;\n if (isValidType && isValidSize) acceptedFiles.push(file);\n else rejectedFiles.push(file);\n });\n\n this.ifxFileUploadDrop.emit({\n droppedFiles,\n acceptedFiles,\n rejectedFiles,\n });\n\n this.processFiles(event.dataTransfer.files);\n }\n }\n\n handleDragOver(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n this.isDragOver = true;\n }\n\n handleDragLeave(event: DragEvent) {\n if (this.disabled) return;\n event.preventDefault();\n this.isDragOver = false;\n }\n\n processFiles(fileList: FileList) {\n const selectedFiles = Array.from(fileList);\n\n const validFiles: File[] = [];\n const rejectedSize: string[] = [];\n const rejectedType: string[] = [];\n\n selectedFiles.forEach(file => {\n const isValidType = this.isFileTypeAllowed(file);\n const isValidSize = file.size <= this.maxFileSizeMB * 1024 * 1024;\n const isDuplicate = this.files.some(existing => existing.name === file.name && existing.size === file.size);\n\n if (isDuplicate) {\n this.ifxFileUploadInvalid.emit({ file, reason: 'duplicate' });\n this.ifxFileUploadError.emit({\n file,\n errorType: 'duplicate',\n message: `File \"${file.name}\" is already added`,\n reason: 'duplicate',\n });\n return;\n }\n\n if (isValidType && isValidSize) {\n validFiles.push(file);\n } else {\n if (!isValidType) {\n rejectedType.push(file.name);\n this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-type' });\n }\n if (!isValidSize) {\n rejectedSize.push(file.name);\n this.ifxFileUploadInvalid.emit({ file, reason: 'invalid-size' });\n }\n this.ifxFileUploadError.emit({\n file,\n errorType: !isValidType ? 'invalid-type' : 'file-too-large',\n message: 'Invalid file rejected',\n reason: !isValidType ? 'unsupported-type' : 'file-too-large',\n });\n }\n });\n\n this.rejectedSizeFiles = [...this.rejectedSizeFiles, ...rejectedSize];\n this.rejectedTypeFiles = [...this.rejectedTypeFiles, ...rejectedType];\n\n if (this.maxFiles && this.files.length + validFiles.length > this.maxFiles) {\n const availableSlots = this.maxFiles - this.files.length;\n const limitedFiles = validFiles.slice(0, Math.max(availableSlots, 0));\n const overflowFiles = validFiles.slice(availableSlots);\n\n this.files = [...this.files, ...limitedFiles];\n\n limitedFiles.forEach(file => this.startUpload(file));\n\n if (limitedFiles.length > 0) {\n this.ifxFileUploadAdd.emit({ addedFiles: limitedFiles, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n }\n\n overflowFiles.forEach(file => {\n this.ifxFileUploadInvalid.emit({ file, reason: 'too-many-files' });\n this.ifxFileUploadError.emit({\n file,\n errorType: 'too-many-files',\n message: `Upload limit exceeded. Max ${this.maxFiles} files allowed.`,\n reason: 'too-many-files',\n });\n });\n\n if (overflowFiles.length > 0) {\n this.statusMessage = {\n type: 'error',\n text: this.labelMaxFilesExceeded.replace('{{count}}', this.maxFiles.toString()).replace('{{files}}', this.pluralize(this.maxFiles)),\n };\n this.ifxFileUploadMaxFilesExceeded.emit({\n maxFiles: this.maxFiles,\n attempted: this.files.length + validFiles.length,\n });\n }\n\n return;\n }\n\n validFiles.forEach(file => this.startUpload(file));\n this.files = [...this.files, ...validFiles];\n\n if (validFiles.length > 0) {\n this.ifxFileUploadAdd.emit({ addedFiles: validFiles, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n }\n\n this.validateRequired();\n }\n\n retryUpload(file: File) {\n const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);\n if (taskIndex !== -1) {\n this.uploadTasks.splice(taskIndex, 1);\n this.uploadTasks = [...this.uploadTasks];\n }\n this.ifxFileUploadRetry.emit({ file });\n this.startUpload(file);\n }\n\n private checkAndEmitAllComplete(): void {\n if (this.uploadTasks.every(t => t.completed || t.error)) {\n const hasSuccessfulUploads = this.uploadTasks.some(t => t.completed && !t.error);\n if (hasSuccessfulUploads) {\n const successfulFiles = this.uploadTasks.filter(t => t.completed && !t.error).map(t => t.file);\n this.ifxFileUploadAllComplete.emit({ files: successfulFiles });\n }\n }\n }\n\n private resetFileInput(): void {\n if (this.fileInputEl) {\n this.fileInputEl.value = '';\n }\n }\n\n private updateTaskProgress(file: File, progress: number): void {\n const task = this.uploadTasks.find(t => t.file === file);\n if (task) {\n const newProgress = Math.max(task.progress, Math.min(100, progress));\n if (newProgress !== task.progress) {\n task.progress = newProgress;\n this.uploadTasks = [...this.uploadTasks];\n }\n }\n }\n\n startUpload(file: File) {\n this.ifxFileUploadStart.emit({ file });\n const task: UploadTask = {\n file,\n progress: 3, // Start with initial progress for better UX\n intervalId: null,\n completed: false,\n };\n this.uploadTasks = [...this.uploadTasks, task];\n\n if (this.uploadHandler) {\n this.uploadHandler(file, (percent: number) => {\n this.updateTaskProgress(file, percent);\n })\n .then(() => {\n task.progress = 100;\n task.completed = true;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadComplete.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.checkAndEmitAllComplete();\n })\n .catch(() => {\n task.error = true;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadError.emit({\n file,\n errorType: 'upload-failed',\n message: 'Upload handler rejected file',\n reason: 'custom',\n });\n this.checkAndEmitAllComplete();\n });\n } else {\n const totalSize = file.size;\n const fakeUploadSpeed = 100000;\n let uploaded = 0;\n task.intervalId = window.setInterval(() => {\n uploaded += fakeUploadSpeed / 5;\n const progress = Math.min(100, Math.round((uploaded / totalSize) * 100));\n this.updateTaskProgress(file, progress);\n\n if (progress >= 100) {\n clearInterval(task.intervalId!);\n task.completed = true;\n task.intervalId = null;\n this.uploadTasks = [...this.uploadTasks];\n this.ifxFileUploadComplete.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.checkAndEmitAllComplete();\n }\n }, 200);\n }\n }\n\n cancelUpload(file: File) {\n const taskIndex = this.uploadTasks.findIndex(t => t.file.name === file.name);\n if (taskIndex !== -1) {\n const task = this.uploadTasks[taskIndex];\n if (task?.intervalId !== null) {\n clearInterval(task.intervalId);\n }\n this.uploadTasks = this.uploadTasks.filter((_, i) => i !== taskIndex);\n }\n this.files = this.files.filter(f => f.name !== file.name);\n this.ifxFileUploadAbort.emit({ file });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.resetFileInput();\n this.validateRequired();\n }\n\n removeFile(file: File) {\n this.uploadTasks = this.uploadTasks.filter(task => task.file.name !== file.name);\n this.files = this.files.filter(f => f.name !== file.name);\n this.ifxFileUploadRemove.emit({ removedFile: file, files: this.files });\n this.ifxFileUploadChange.emit({ files: this.files });\n this.validateRequired();\n\n this.resetFileInput();\n\n if (this.maxFiles && this.files.length < this.maxFiles && this.statusMessage?.text !== this.labelRequiredError) {\n this.statusMessage = null;\n }\n }\n\n clearRejectedFile(fileName: string, type: 'size' | 'type') {\n if (type === 'size') {\n this.rejectedSizeFiles = this.rejectedSizeFiles.filter(f => f !== fileName);\n } else {\n this.rejectedTypeFiles = this.rejectedTypeFiles.filter(f => f !== fileName);\n }\n\n this.resetFileInput();\n\n if (this.maxFiles && this.files.length < this.maxFiles) {\n this.statusMessage = null;\n }\n\n this.validateRequired();\n }\n\n splitFileNameParts(file: File): { base: string; ext: string } {\n const name = file.name;\n const dotIndex = name.lastIndexOf('.');\n if (dotIndex === -1) return { base: name, ext: '' };\n return {\n base: name.substring(0, dotIndex),\n ext: name.substring(dotIndex),\n };\n }\n\n getFileIcon(file: File): string {\n const extension = file.name.split('.').pop()?.toLowerCase();\n switch (extension) {\n case 'pdf':\n return 'file-pdf-16';\n case 'jpg':\n case 'jpeg':\n return 'file-jpg-16';\n case 'png':\n return 'file-png-16';\n case 'mov':\n return 'file-mov-16';\n case 'mp3':\n return 'file-mp3-16';\n case 'mp4':\n return 'file-mp4-16';\n default:\n return 'file-16';\n }\n }\n\n formatSize(bytes: number): string {\n if (bytes >= 1024 * 1024 * 1024) {\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\n } else if (bytes >= 1024 * 1024) {\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n } else if (bytes >= 1024) {\n return `${(bytes / 1024).toFixed(0)} KB`;\n } else {\n return `${bytes} B`;\n }\n }\n\n getAcceptAttribute(): string {\n // If allowAnyFileType is true, don't restrict the input\n if (this.allowAnyFileType) {\n return '';\n }\n\n const acceptValues: string[] = [];\n\n // Add extensions from allowedFileTypes\n const extensionTypes = this.getNormalizedFileTypes().map(ext => '.' + ext.toLowerCase());\n acceptValues.push(...extensionTypes);\n\n // Add MIME types from additionalAllowedFileTypes\n const mimeTypes = this.getAdditionalMimeTypes();\n acceptValues.push(...mimeTypes);\n\n // Add custom file extensions\n const customExtensions = this.getNormalizedFileExtensions();\n customExtensions.forEach(ext => {\n const normalizedExt = ext.startsWith('.') ? ext : '.' + ext;\n acceptValues.push(normalizedExt);\n });\n\n return acceptValues.join(',');\n }\n\n private getFormattedProgressText(task: UploadTask): string {\n const uploadedSize = Math.round((task.progress / 100) * task.file.size);\n const uploadedText = this.formatSize(uploadedSize);\n const totalText = this.formatSize(task.file.size);\n return `${uploadedText} / ${totalText} uploaded`;\n }\n\n private getAdditionalMimeTypes(): string[] {\n if (!this.additionalAllowedFileTypes) return [];\n if (Array.isArray(this.additionalAllowedFileTypes)) return this.additionalAllowedFileTypes;\n return this.additionalAllowedFileTypes.split(',').map(t => t.trim());\n }\n\n private getSupportedFileText(): string {\n if (this.allowAnyFileType) {\n let text = `All file types allowed. Max file size: ${this.maxFileSizeMB}MB.`;\n if (this.labelMaxFilesInfo && this.maxFiles) {\n const fileWord = this.pluralize(this.maxFiles);\n const maxFilesText = this.labelMaxFilesInfo.replace('{{count}}', this.maxFiles.toString()).replace('{{files}}', fileWord);\n text += ` ${maxFilesText}`;\n }\n return text;\n }\n\n const allTypes: string[] = [];\n\n // Add extensions from allowedFileTypes\n const extensions = this.getNormalizedFileTypes().map(ext => ext.toUpperCase());\n allTypes.push(...extensions);\n\n // Add MIME types from additionalAllowedFileTypes\n const mimeTypes = this.getAdditionalMimeTypes().map(mime => this.getLabelFromMimeType(mime));\n allTypes.push(...mimeTypes);\n\n // Add custom file extensions\n const customExtensions = this.getNormalizedFileExtensions().map(ext => {\n const cleanExt = ext.startsWith('.') ? ext.substring(1) : ext;\n return cleanExt.toUpperCase();\n });\n allTypes.push(...customExtensions);\n\n const typesLabel = allTypes.join(', ');\n\n let text = this.labelSupportedFormatsTemplate.replace('{{types}}', typesLabel).replace('{{size}}', this.maxFileSizeMB.toString());\n\n if (this.labelMaxFilesInfo && this.maxFiles) {\n const fileWord = this.pluralize(this.maxFiles);\n const maxFilesText = this.labelMaxFilesInfo.replace('{{count}}', this.maxFiles.toString()).replace('{{files}}', fileWord);\n text += ` ${maxFilesText}`;\n }\n\n return text;\n }\n\n private getFormattedFileTooLargeText(): string {\n return this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString());\n }\n\n private renderStatusMessage() {\n if (!this.statusMessage) return null;\n\n return (\n <div class={`file-upload-status file-upload-status__${this.statusMessage.type}`}>\n {this.statusMessage.type === 'error' && <ifx-icon icon=\"c-warning-16\"></ifx-icon>}\n {this.statusMessage.text}\n </div>\n );\n }\n\n private isInputDisabled(): boolean {\n return this.disabled || (this.maxFiles !== undefined && this.files.length >= this.maxFiles);\n }\n\n async componentDidLoad() {\n if (!isNestedInIfxComponent(this.hostElement)) {\n const framework = detectFramework();\n trackComponent('ifx-file-upload', await framework);\n }\n\n if (this.hostElement.hasAttribute('show-demo-states')) {\n this.showDemoStates = true;\n }\n\n if (this.showDemoStates) {\n this.injectDemoState();\n }\n }\n\n // Storybook Demo\n @Method()\n async injectDemoState() {\n const dummyContent = new Array(50000).fill('a').join(''); // ~50 KB\n const bigContent = dummyContent + dummyContent; // ~100 KB\n\n const uploading = new File([dummyContent], 'Image.jpg', { type: 'image/jpeg' }); // ~50 KB\n const uploaded = new File([bigContent], 'File.pdf', { type: 'application/pdf' }); // ~100 KB\n const failed = new File([dummyContent], 'Text.docx', { type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' }); // ~50 KB\n const tooLarge = new File([bigContent + bigContent + bigContent], 'Video.mp4', { type: 'video/mp4' }); // ~300 KB\n const unsupported = new File(['demo'], 'Script.exe', { type: 'application/x-msdownload' }); // very small\n\n this.files = [uploaded, uploading, failed];\n this.uploadTasks = [\n { file: uploaded, progress: 100, intervalId: null, completed: true },\n { file: uploading, progress: 40, intervalId: null, completed: false },\n { file: failed, progress: 80, intervalId: null, completed: false, error: true },\n ];\n this.rejectedSizeFiles = [tooLarge.name];\n this.rejectedTypeFiles = [unsupported.name];\n }\n\n // Storybook Demo\n @Method()\n async triggerDemoValidation(): Promise<void> {\n this.validateRequired();\n }\n\n render() {\n return (\n <div\n class={{\n 'file-upload-wrapper': true,\n 'disabled': this.disabled,\n }}\n >\n {this.label && (\n <label class=\"file-upload-label\" htmlFor={this.internalId}>\n {this.label}\n {this.required && <span class={`required ${this.requiredError ? 'error' : ''}`}>*</span>}\n </label>\n )}\n\n {this.dragAndDrop ? this.renderDragAndDropArea() : this.renderUploadArea()}\n\n {(this.files.length > 0 || this.rejectedSizeFiles.length > 0 || this.rejectedTypeFiles.length > 0) && (\n <div class=\"file-list-wrapper\">\n <div class=\"upload-heading\">{this.labelUploadedFilesHeading}</div>\n <ul class=\"file-list\">\n {this.rejectedSizeFiles.map(fileName => (\n <li class=\"file-item upload-failed\" key={`rejected-size-${fileName}`}>\n <div class=\"file-icon\">\n <ifx-icon icon=\"file-16\"></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{this.splitFileNameParts({ name: fileName } as File).base}</span>\n <span class=\"file-name-ext\">{this.splitFileNameParts({ name: fileName } as File).ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.clearRejectedFile(fileName, 'size')}\n ></ifx-icon-button>\n </div>\n </div>\n <div class=\"file-middle-row\">\n <span class=\"file-status\" aria-label={this.labelFileTooLarge.replace('{{size}}', this.maxFileSizeMB.toString())}>\n {this.getFormattedFileTooLargeText()}\n </span>\n </div>\n </div>\n </li>\n ))}\n\n {this.rejectedTypeFiles.map(fileName => (\n <li class=\"file-item upload-failed\" key={`rejected-type-${fileName}`}>\n <div class=\"file-icon\">\n <ifx-icon icon=\"file-16\"></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{this.splitFileNameParts({ name: fileName } as File).base}</span>\n <span class=\"file-name-ext\">{this.splitFileNameParts({ name: fileName } as File).ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.clearRejectedFile(fileName, 'type')}\n ></ifx-icon-button>\n </div>\n </div>\n <div class=\"file-middle-row\">\n <span class=\"file-status\" aria-label={this.labelUnsupportedFileType}>\n {this.labelUnsupportedFileType}\n </span>\n </div>\n </div>\n </li>\n ))}\n\n {this.files.map(file => {\n const task = this.uploadTasks.find(t => t.file.name === file.name);\n const progress = task?.progress ?? 100;\n const isUploading = task && !task.completed;\n const isError = task?.error === true;\n const itemClass = isError ? 'file-item upload-failed' : isUploading ? 'file-item uploading' : 'file-item upload-success';\n const uniqueKey = `${file.name}-${file.size}`;\n const { base, ext } = this.splitFileNameParts(file);\n\n return (\n <li class={itemClass} key={uniqueKey}>\n <div class=\"file-icon\">\n <ifx-icon icon={this.getFileIcon(file)}></ifx-icon>\n </div>\n <div class=\"file-info\">\n <div class=\"file-top-row\">\n <span class=\"file-name-wrapper\">\n <span class=\"file-name-base\">{base}</span>\n <span class=\"file-name-ext\">{ext}</span>\n </span>\n <div class=\"file-actions\">\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"refresh-16\"\n size=\"s\"\n aria-label={this.ariaLabelRetryUpload}\n onClick={() => this.retryUpload(file)}\n style={{ display: isError ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"cross-16\"\n size=\"s\"\n aria-label={this.ariaLabelCancelUpload}\n onClick={() => this.cancelUpload(file)}\n style={{ display: isUploading ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n <ifx-icon-button\n shape=\"square\"\n variant=\"tertiary\"\n icon=\"delete-forever-16\"\n size=\"s\"\n aria-label={this.ariaLabelRemoveFile}\n onClick={() => this.removeFile(file)}\n style={{ display: !isUploading ? 'inline-flex' : 'none' }}\n ></ifx-icon-button>\n </div>\n </div>\n\n <div class=\"file-middle-row\">\n {isUploading && task && !task.error && (\n <span class=\"file-uploading\" aria-label={this.ariaLabelUploadingStatus}>\n {this.getFormattedProgressText(task)}\n </span>\n )}\n {!isUploading && !isError && (\n <span>\n <span class=\"file-size\">{this.formatSize(file.size)}</span>\n <span class=\"file-status\" aria-label={this.ariaLabelUploadedStatus}>\n <ifx-icon icon=\"check-16\"></ifx-icon>\n {this.labelUploaded}\n </span>\n </span>\n )}\n {isError && (\n <span class=\"file-status\" aria-label={this.ariaLabelUploadFailedStatus}>\n {this.labelUploadFailed}\n </span>\n )}\n </div>\n\n {isUploading && task && !task.error && (\n <div class=\"file-progress-row\">\n <ifx-progress-bar size=\"s\" value={progress} show-label=\"true\"></ifx-progress-bar>\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ul>\n </div>\n )}\n </div>\n );\n }\n\n renderUploadArea() {\n const handleInputRef = (el: HTMLInputElement | null) => {\n this.fileInputEl = el;\n };\n\n return (\n <div class={{ 'upload-button': true }}>\n <ifx-button variant=\"secondary\" onClick={() => this.fileInputEl?.click()} disabled={this.isInputDisabled()} aria-label={this.ariaLabelBrowseFiles}>\n <ifx-icon icon=\"upload-16\"></ifx-icon>\n {this.labelBrowseFiles}\n </ifx-button>\n <input\n id={this.internalId}\n ref={handleInputRef}\n type=\"file\"\n accept={this.getAcceptAttribute()}\n multiple\n onChange={e => this.handleFileChange(e)}\n style={{ display: 'none' }}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelFileInput}\n />\n <p class=\"file-upload-info\">{this.getSupportedFileText()}</p>\n {this.renderStatusMessage()}\n </div>\n );\n }\n\n renderDragAndDropArea() {\n const handleInputRef = (el: HTMLInputElement | null) => {\n this.fileInputEl = el;\n };\n\n const triggerInputClick = () => {\n if (this.fileInputEl) {\n this.fileInputEl.click();\n }\n };\n\n return (\n <div class={{ disabled: this.isInputDisabled() }}>\n <div\n class={{ 'upload-dropzone': true, 'drag-over': this.isDragOver, 'error': this.requiredError }}\n onClick={triggerInputClick}\n onDragOver={e => this.handleDragOver(e)}\n onDragLeave={e => this.handleDragLeave(e)}\n onDrop={e => this.handleDrop(e)}\n role=\"button\"\n tabIndex={0}\n aria-label={this.ariaLabelDropzone}\n >\n <ifx-icon icon=\"upload-16\" class=\"custom-icon\"></ifx-icon>\n <p>{this.labelDragAndDrop}</p>\n <p class=\"file-upload-info\">{this.getSupportedFileText()}</p>\n <div style={{ height: '0px', overflow: 'hidden' }}>\n <input\n id={this.internalId}\n ref={handleInputRef}\n type=\"file\"\n accept={this.getAcceptAttribute()}\n multiple\n onChange={e => this.handleFileChange(e)}\n disabled={this.isInputDisabled()}\n aria-label={this.ariaLabelFileInput}\n />\n </div>\n </div>\n {this.renderStatusMessage()}\n </div>\n );\n }\n}\n"]}
@@ -41,6 +41,7 @@ export class Footer {
41
41
  return {
42
42
  "copyrightText": {
43
43
  "type": "string",
44
+ "attribute": "copyright-text",
44
45
  "mutable": false,
45
46
  "complexType": {
46
47
  "original": "string",
@@ -56,7 +57,6 @@ export class Footer {
56
57
  "getter": false,
57
58
  "setter": false,
58
59
  "reflect": false,
59
- "attribute": "copyright-text",
60
60
  "defaultValue": "'\u00A9 1999 - ' + this.currentYear + ' Infineon Technologies AG'"
61
61
  }
62
62
  };
@@ -123,6 +123,7 @@ export class InfineonIconStencil {
123
123
  return {
124
124
  "icon": {
125
125
  "type": "string",
126
+ "attribute": "icon",
126
127
  "mutable": true,
127
128
  "complexType": {
128
129
  "original": "string",
@@ -138,11 +139,11 @@ export class InfineonIconStencil {
138
139
  "getter": false,
139
140
  "setter": false,
140
141
  "reflect": false,
141
- "attribute": "icon",
142
142
  "defaultValue": "\"\""
143
143
  },
144
144
  "ifxIcon": {
145
145
  "type": "any",
146
+ "attribute": "ifx-icon",
146
147
  "mutable": true,
147
148
  "complexType": {
148
149
  "original": "any",
@@ -157,8 +158,7 @@ export class InfineonIconStencil {
157
158
  },
158
159
  "getter": false,
159
160
  "setter": false,
160
- "reflect": false,
161
- "attribute": "ifx-icon"
161
+ "reflect": false
162
162
  }
163
163
  };
164
164
  }
@@ -73,6 +73,7 @@ export class IconButton {
73
73
  return {
74
74
  "variant": {
75
75
  "type": "string",
76
+ "attribute": "variant",
76
77
  "mutable": false,
77
78
  "complexType": {
78
79
  "original": "'primary' | 'secondary' | 'tertiary'",
@@ -87,11 +88,11 @@ export class IconButton {
87
88
  },
88
89
  "getter": false,
89
90
  "setter": false,
90
- "reflect": false,
91
- "attribute": "variant"
91
+ "reflect": false
92
92
  },
93
93
  "size": {
94
94
  "type": "string",
95
+ "attribute": "size",
95
96
  "mutable": false,
96
97
  "complexType": {
97
98
  "original": "string",
@@ -106,11 +107,11 @@ export class IconButton {
106
107
  },
107
108
  "getter": false,
108
109
  "setter": false,
109
- "reflect": false,
110
- "attribute": "size"
110
+ "reflect": false
111
111
  },
112
112
  "disabled": {
113
113
  "type": "boolean",
114
+ "attribute": "disabled",
114
115
  "mutable": false,
115
116
  "complexType": {
116
117
  "original": "boolean",
@@ -125,11 +126,11 @@ export class IconButton {
125
126
  },
126
127
  "getter": false,
127
128
  "setter": false,
128
- "reflect": false,
129
- "attribute": "disabled"
129
+ "reflect": false
130
130
  },
131
131
  "icon": {
132
132
  "type": "string",
133
+ "attribute": "icon",
133
134
  "mutable": false,
134
135
  "complexType": {
135
136
  "original": "string",
@@ -144,11 +145,11 @@ export class IconButton {
144
145
  },
145
146
  "getter": false,
146
147
  "setter": false,
147
- "reflect": false,
148
- "attribute": "icon"
148
+ "reflect": false
149
149
  },
150
150
  "href": {
151
151
  "type": "string",
152
+ "attribute": "href",
152
153
  "mutable": false,
153
154
  "complexType": {
154
155
  "original": "string",
@@ -163,11 +164,11 @@ export class IconButton {
163
164
  },
164
165
  "getter": false,
165
166
  "setter": false,
166
- "reflect": false,
167
- "attribute": "href"
167
+ "reflect": false
168
168
  },
169
169
  "target": {
170
170
  "type": "string",
171
+ "attribute": "target",
171
172
  "mutable": false,
172
173
  "complexType": {
173
174
  "original": "string",
@@ -183,11 +184,11 @@ export class IconButton {
183
184
  "getter": false,
184
185
  "setter": false,
185
186
  "reflect": false,
186
- "attribute": "target",
187
187
  "defaultValue": "'_self'"
188
188
  },
189
189
  "shape": {
190
190
  "type": "string",
191
+ "attribute": "shape",
191
192
  "mutable": false,
192
193
  "complexType": {
193
194
  "original": "string",
@@ -203,11 +204,11 @@ export class IconButton {
203
204
  "getter": false,
204
205
  "setter": false,
205
206
  "reflect": false,
206
- "attribute": "shape",
207
207
  "defaultValue": "'round'"
208
208
  },
209
209
  "ariaLabel": {
210
210
  "type": "string",
211
+ "attribute": "aria-label",
211
212
  "mutable": false,
212
213
  "complexType": {
213
214
  "original": "string | null",
@@ -222,8 +223,7 @@ export class IconButton {
222
223
  },
223
224
  "getter": false,
224
225
  "setter": false,
225
- "reflect": false,
226
- "attribute": "aria-label"
226
+ "reflect": false
227
227
  }
228
228
  };
229
229
  }
@@ -43,6 +43,7 @@ export class Indicator {
43
43
  return {
44
44
  "inverted": {
45
45
  "type": "boolean",
46
+ "attribute": "inverted",
46
47
  "mutable": false,
47
48
  "complexType": {
48
49
  "original": "boolean",
@@ -58,11 +59,11 @@ export class Indicator {
58
59
  "getter": false,
59
60
  "setter": false,
60
61
  "reflect": false,
61
- "attribute": "inverted",
62
62
  "defaultValue": "false"
63
63
  },
64
64
  "ariaLabel": {
65
65
  "type": "string",
66
+ "attribute": "aria-label",
66
67
  "mutable": false,
67
68
  "complexType": {
68
69
  "original": "string | null",
@@ -77,11 +78,11 @@ export class Indicator {
77
78
  },
78
79
  "getter": false,
79
80
  "setter": false,
80
- "reflect": false,
81
- "attribute": "aria-label"
81
+ "reflect": false
82
82
  },
83
83
  "variant": {
84
84
  "type": "string",
85
+ "attribute": "variant",
85
86
  "mutable": false,
86
87
  "complexType": {
87
88
  "original": "string",
@@ -97,11 +98,11 @@ export class Indicator {
97
98
  "getter": false,
98
99
  "setter": false,
99
100
  "reflect": false,
100
- "attribute": "variant",
101
101
  "defaultValue": "'number'"
102
102
  },
103
103
  "number": {
104
104
  "type": "number",
105
+ "attribute": "number",
105
106
  "mutable": false,
106
107
  "complexType": {
107
108
  "original": "number",
@@ -117,7 +118,6 @@ export class Indicator {
117
118
  "getter": false,
118
119
  "setter": false,
119
120
  "reflect": false,
120
- "attribute": "number",
121
121
  "defaultValue": "0"
122
122
  }
123
123
  };