@fundamental-ngx/ui5-webcomponents 0.64.2-rc.8 → 0.64.2

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 (298) hide show
  1. package/README.md +16 -0
  2. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-badge.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-group.mjs +8 -3
  4. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-group.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar.mjs +8 -3
  6. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-ui5-webcomponents-bar.mjs.map +1 -1
  8. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs-item.mjs +12 -4
  9. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs-item.mjs.map +1 -1
  10. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs.mjs +8 -3
  11. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs.mjs.map +1 -1
  12. package/fesm2022/fundamental-ngx-ui5-webcomponents-busy-indicator.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-ui5-webcomponents-button-badge.mjs.map +1 -1
  14. package/fesm2022/fundamental-ngx-ui5-webcomponents-button.mjs +8 -3
  15. package/fesm2022/fundamental-ngx-ui5-webcomponents-button.mjs.map +1 -1
  16. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-date-range.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-date.mjs.map +1 -1
  18. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-legend-item.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-legend.mjs.map +1 -1
  20. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar.mjs +8 -3
  21. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar.mjs.map +1 -1
  22. package/fesm2022/fundamental-ngx-ui5-webcomponents-card-header.mjs +8 -3
  23. package/fesm2022/fundamental-ngx-ui5-webcomponents-card-header.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-ui5-webcomponents-card.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-ui5-webcomponents-carousel.mjs +8 -3
  26. package/fesm2022/fundamental-ngx-ui5-webcomponents-carousel.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-ui5-webcomponents-check-box.mjs +8 -3
  28. package/fesm2022/fundamental-ngx-ui5-webcomponents-check-box.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-item.mjs +8 -3
  30. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-item.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-popover.mjs +8 -3
  32. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-popover.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette.mjs +8 -3
  34. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-picker.mjs +8 -3
  36. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-picker.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-custom.mjs +8 -3
  38. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-custom.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs +8 -3
  40. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item.mjs +8 -3
  42. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box.mjs +8 -3
  44. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-picker.mjs +8 -3
  46. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-picker.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-range-picker.mjs +8 -3
  48. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-range-picker.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-input.mjs +8 -3
  50. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-input.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-picker.mjs +8 -3
  52. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-picker.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-ui5-webcomponents-day-picker.mjs.map +1 -1
  54. package/fesm2022/fundamental-ngx-ui5-webcomponents-dialog.mjs +8 -3
  55. package/fesm2022/fundamental-ngx-ui5-webcomponents-dialog.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-ui5-webcomponents-drop-indicator.mjs.map +1 -1
  57. package/fesm2022/fundamental-ngx-ui5-webcomponents-dynamic-date-range.mjs +8 -3
  58. package/fesm2022/fundamental-ngx-ui5-webcomponents-dynamic-date-range.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-ui5-webcomponents-expandable-text.mjs.map +1 -1
  60. package/fesm2022/fundamental-ngx-ui5-webcomponents-file-uploader.mjs +10 -3
  61. package/fesm2022/fundamental-ngx-ui5-webcomponents-file-uploader.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-ui5-webcomponents-form-group.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-ui5-webcomponents-form-item.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-ui5-webcomponents-form.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-ui5-webcomponents-icon.mjs +11 -4
  66. package/fesm2022/fundamental-ngx-ui5-webcomponents-icon.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-ui5-webcomponents-input-icon.mjs +8 -3
  68. package/fesm2022/fundamental-ngx-ui5-webcomponents-input-icon.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-ui5-webcomponents-input.mjs +8 -3
  70. package/fesm2022/fundamental-ngx-ui5-webcomponents-input.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-ui5-webcomponents-label.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-ui5-webcomponents-link.mjs +12 -4
  73. package/fesm2022/fundamental-ngx-ui5-webcomponents-link.mjs.map +1 -1
  74. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-custom.mjs +13 -5
  75. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-custom.mjs.map +1 -1
  76. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group-header.mjs +8 -3
  77. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group-header.mjs.map +1 -1
  78. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group.mjs +8 -3
  79. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group.mjs.map +1 -1
  80. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-standard.mjs +13 -5
  81. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-standard.mjs.map +1 -1
  82. package/fesm2022/fundamental-ngx-ui5-webcomponents-list.mjs +8 -3
  83. package/fesm2022/fundamental-ngx-ui5-webcomponents-list.mjs.map +1 -1
  84. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item-group.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item.mjs +13 -5
  86. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-separator.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu.mjs +8 -3
  89. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu.mjs.map +1 -1
  90. package/fesm2022/fundamental-ngx-ui5-webcomponents-message-strip.mjs +8 -3
  91. package/fesm2022/fundamental-ngx-ui5-webcomponents-message-strip.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-ui5-webcomponents-month-picker.mjs.map +1 -1
  93. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-custom.mjs +8 -3
  94. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-custom.mjs.map +1 -1
  95. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs +8 -3
  96. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs.map +1 -1
  97. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item.mjs +8 -3
  98. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item.mjs.map +1 -1
  99. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box.mjs +11 -3
  100. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box.mjs.map +1 -1
  101. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-input.mjs +8 -3
  102. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-input.mjs.map +1 -1
  103. package/fesm2022/fundamental-ngx-ui5-webcomponents-option-custom.mjs +8 -3
  104. package/fesm2022/fundamental-ngx-ui5-webcomponents-option-custom.mjs.map +1 -1
  105. package/fesm2022/fundamental-ngx-ui5-webcomponents-option.mjs +8 -3
  106. package/fesm2022/fundamental-ngx-ui5-webcomponents-option.mjs.map +1 -1
  107. package/fesm2022/fundamental-ngx-ui5-webcomponents-panel.mjs +8 -3
  108. package/fesm2022/fundamental-ngx-ui5-webcomponents-panel.mjs.map +1 -1
  109. package/fesm2022/fundamental-ngx-ui5-webcomponents-popover.mjs +8 -3
  110. package/fesm2022/fundamental-ngx-ui5-webcomponents-popover.mjs.map +1 -1
  111. package/fesm2022/fundamental-ngx-ui5-webcomponents-progress-indicator.mjs.map +1 -1
  112. package/fesm2022/fundamental-ngx-ui5-webcomponents-radio-button.mjs +8 -3
  113. package/fesm2022/fundamental-ngx-ui5-webcomponents-radio-button.mjs.map +1 -1
  114. package/fesm2022/fundamental-ngx-ui5-webcomponents-range-slider.mjs +8 -3
  115. package/fesm2022/fundamental-ngx-ui5-webcomponents-range-slider.mjs.map +1 -1
  116. package/fesm2022/fundamental-ngx-ui5-webcomponents-rating-indicator.mjs +18 -5
  117. package/fesm2022/fundamental-ngx-ui5-webcomponents-rating-indicator.mjs.map +1 -1
  118. package/fesm2022/fundamental-ngx-ui5-webcomponents-responsive-popover.mjs +8 -3
  119. package/fesm2022/fundamental-ngx-ui5-webcomponents-responsive-popover.mjs.map +1 -1
  120. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button-item.mjs +8 -3
  121. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button-item.mjs.map +1 -1
  122. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button.mjs +10 -3
  123. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button.mjs.map +1 -1
  124. package/fesm2022/fundamental-ngx-ui5-webcomponents-select.mjs +11 -3
  125. package/fesm2022/fundamental-ngx-ui5-webcomponents-select.mjs.map +1 -1
  126. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider-handle.mjs.map +1 -1
  127. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider-tooltip.mjs.map +1 -1
  128. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider.mjs +8 -3
  129. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider.mjs.map +1 -1
  130. package/fesm2022/fundamental-ngx-ui5-webcomponents-special-calendar-date.mjs.map +1 -1
  131. package/fesm2022/fundamental-ngx-ui5-webcomponents-split-button.mjs +8 -3
  132. package/fesm2022/fundamental-ngx-ui5-webcomponents-split-button.mjs.map +1 -1
  133. package/fesm2022/fundamental-ngx-ui5-webcomponents-step-input.mjs +8 -3
  134. package/fesm2022/fundamental-ngx-ui5-webcomponents-step-input.mjs.map +1 -1
  135. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-custom.mjs +8 -3
  136. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-custom.mjs.map +1 -1
  137. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-group.mjs +8 -3
  138. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-group.mjs.map +1 -1
  139. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item.mjs +8 -3
  140. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item.mjs.map +1 -1
  141. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-list-item.mjs +13 -5
  142. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-list-item.mjs.map +1 -1
  143. package/fesm2022/fundamental-ngx-ui5-webcomponents-switch.mjs +8 -3
  144. package/fesm2022/fundamental-ngx-ui5-webcomponents-switch.mjs.map +1 -1
  145. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab-container.mjs +8 -3
  146. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab-container.mjs.map +1 -1
  147. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab-separator.mjs.map +1 -1
  148. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab.mjs +8 -3
  149. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab.mjs.map +1 -1
  150. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-cell.mjs.map +1 -1
  151. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-group-row.mjs.map +1 -1
  152. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-growing.mjs +8 -3
  153. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-growing.mjs.map +1 -1
  154. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-cell-action-a-i.mjs +8 -3
  155. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-cell-action-a-i.mjs.map +1 -1
  156. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-cell.mjs.map +1 -1
  157. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-row.mjs.map +1 -1
  158. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action-navigation.mjs +8 -3
  159. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action-navigation.mjs.map +1 -1
  160. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action.mjs +8 -3
  161. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action.mjs.map +1 -1
  162. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row.mjs.map +1 -1
  163. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-multi.mjs +8 -3
  164. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-multi.mjs.map +1 -1
  165. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-single.mjs +8 -3
  166. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-single.mjs.map +1 -1
  167. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection.mjs +8 -3
  168. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection.mjs.map +1 -1
  169. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-virtualizer.mjs +8 -3
  170. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-virtualizer.mjs.map +1 -1
  171. package/fesm2022/fundamental-ngx-ui5-webcomponents-table.mjs +8 -3
  172. package/fesm2022/fundamental-ngx-ui5-webcomponents-table.mjs.map +1 -1
  173. package/fesm2022/fundamental-ngx-ui5-webcomponents-tag.mjs +8 -3
  174. package/fesm2022/fundamental-ngx-ui5-webcomponents-tag.mjs.map +1 -1
  175. package/fesm2022/fundamental-ngx-ui5-webcomponents-text-area.mjs +8 -3
  176. package/fesm2022/fundamental-ngx-ui5-webcomponents-text-area.mjs.map +1 -1
  177. package/fesm2022/fundamental-ngx-ui5-webcomponents-text.mjs.map +1 -1
  178. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-picker-clock.mjs.map +1 -1
  179. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-picker.mjs +8 -3
  180. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-picker.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-selection-clocks.mjs.map +1 -1
  182. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-selection-inputs.mjs.map +1 -1
  183. package/fesm2022/fundamental-ngx-ui5-webcomponents-title.mjs.map +1 -1
  184. package/fesm2022/fundamental-ngx-ui5-webcomponents-toast.mjs +8 -3
  185. package/fesm2022/fundamental-ngx-ui5-webcomponents-toast.mjs.map +1 -1
  186. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-button.mjs +8 -3
  187. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-button.mjs.map +1 -1
  188. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-spin-button.mjs +8 -3
  189. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-spin-button.mjs.map +1 -1
  190. package/fesm2022/fundamental-ngx-ui5-webcomponents-token.mjs.map +1 -1
  191. package/fesm2022/fundamental-ngx-ui5-webcomponents-tokenizer.mjs +8 -3
  192. package/fesm2022/fundamental-ngx-ui5-webcomponents-tokenizer.mjs.map +1 -1
  193. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-button.mjs +8 -3
  194. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-button.mjs.map +1 -1
  195. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-item.mjs.map +1 -1
  196. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select-option.mjs.map +1 -1
  197. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select.mjs +8 -3
  198. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select.mjs.map +1 -1
  199. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-separator.mjs.map +1 -1
  200. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-spacer.mjs.map +1 -1
  201. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar.mjs +2 -2
  202. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar.mjs.map +1 -1
  203. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs +13 -5
  204. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs.map +1 -1
  205. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item.mjs +13 -5
  206. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item.mjs.map +1 -1
  207. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree.mjs +8 -3
  208. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree.mjs.map +1 -1
  209. package/fesm2022/fundamental-ngx-ui5-webcomponents-year-picker.mjs.map +1 -1
  210. package/fesm2022/fundamental-ngx-ui5-webcomponents-year-range-picker.mjs.map +1 -1
  211. package/fesm2022/fundamental-ngx-ui5-webcomponents.mjs +661 -204
  212. package/fesm2022/fundamental-ngx-ui5-webcomponents.mjs.map +1 -1
  213. package/package.json +4 -4
  214. package/types/fundamental-ngx-ui5-webcomponents-avatar-group.d.ts +1 -0
  215. package/types/fundamental-ngx-ui5-webcomponents-avatar.d.ts +1 -0
  216. package/types/fundamental-ngx-ui5-webcomponents-breadcrumbs-item.d.ts +3 -1
  217. package/types/fundamental-ngx-ui5-webcomponents-breadcrumbs.d.ts +1 -0
  218. package/types/fundamental-ngx-ui5-webcomponents-button.d.ts +1 -0
  219. package/types/fundamental-ngx-ui5-webcomponents-calendar.d.ts +1 -0
  220. package/types/fundamental-ngx-ui5-webcomponents-card-header.d.ts +1 -0
  221. package/types/fundamental-ngx-ui5-webcomponents-carousel.d.ts +1 -0
  222. package/types/fundamental-ngx-ui5-webcomponents-check-box.d.ts +1 -0
  223. package/types/fundamental-ngx-ui5-webcomponents-color-palette-item.d.ts +1 -0
  224. package/types/fundamental-ngx-ui5-webcomponents-color-palette-popover.d.ts +1 -0
  225. package/types/fundamental-ngx-ui5-webcomponents-color-palette.d.ts +1 -0
  226. package/types/fundamental-ngx-ui5-webcomponents-color-picker.d.ts +1 -0
  227. package/types/fundamental-ngx-ui5-webcomponents-combo-box-item-custom.d.ts +1 -0
  228. package/types/fundamental-ngx-ui5-webcomponents-combo-box-item-group.d.ts +1 -0
  229. package/types/fundamental-ngx-ui5-webcomponents-combo-box-item.d.ts +1 -0
  230. package/types/fundamental-ngx-ui5-webcomponents-combo-box.d.ts +1 -0
  231. package/types/fundamental-ngx-ui5-webcomponents-date-picker.d.ts +1 -0
  232. package/types/fundamental-ngx-ui5-webcomponents-date-range-picker.d.ts +1 -0
  233. package/types/fundamental-ngx-ui5-webcomponents-date-time-input.d.ts +1 -0
  234. package/types/fundamental-ngx-ui5-webcomponents-date-time-picker.d.ts +1 -0
  235. package/types/fundamental-ngx-ui5-webcomponents-dialog.d.ts +1 -0
  236. package/types/fundamental-ngx-ui5-webcomponents-dynamic-date-range.d.ts +1 -0
  237. package/types/fundamental-ngx-ui5-webcomponents-file-uploader.d.ts +1 -0
  238. package/types/fundamental-ngx-ui5-webcomponents-icon.d.ts +3 -0
  239. package/types/fundamental-ngx-ui5-webcomponents-input-icon.d.ts +1 -0
  240. package/types/fundamental-ngx-ui5-webcomponents-input.d.ts +1 -0
  241. package/types/fundamental-ngx-ui5-webcomponents-link.d.ts +3 -1
  242. package/types/fundamental-ngx-ui5-webcomponents-list-item-custom.d.ts +7 -3
  243. package/types/fundamental-ngx-ui5-webcomponents-list-item-group-header.d.ts +1 -0
  244. package/types/fundamental-ngx-ui5-webcomponents-list-item-group.d.ts +1 -0
  245. package/types/fundamental-ngx-ui5-webcomponents-list-item-standard.d.ts +7 -3
  246. package/types/fundamental-ngx-ui5-webcomponents-list.d.ts +1 -0
  247. package/types/fundamental-ngx-ui5-webcomponents-menu-item.d.ts +7 -3
  248. package/types/fundamental-ngx-ui5-webcomponents-menu.d.ts +1 -0
  249. package/types/fundamental-ngx-ui5-webcomponents-message-strip.d.ts +1 -0
  250. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-custom.d.ts +1 -0
  251. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.d.ts +1 -0
  252. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item.d.ts +1 -0
  253. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box.d.ts +4 -0
  254. package/types/fundamental-ngx-ui5-webcomponents-multi-input.d.ts +1 -0
  255. package/types/fundamental-ngx-ui5-webcomponents-option-custom.d.ts +1 -0
  256. package/types/fundamental-ngx-ui5-webcomponents-option.d.ts +1 -0
  257. package/types/fundamental-ngx-ui5-webcomponents-panel.d.ts +1 -0
  258. package/types/fundamental-ngx-ui5-webcomponents-popover.d.ts +1 -0
  259. package/types/fundamental-ngx-ui5-webcomponents-radio-button.d.ts +1 -0
  260. package/types/fundamental-ngx-ui5-webcomponents-range-slider.d.ts +1 -0
  261. package/types/fundamental-ngx-ui5-webcomponents-rating-indicator.d.ts +9 -1
  262. package/types/fundamental-ngx-ui5-webcomponents-responsive-popover.d.ts +1 -0
  263. package/types/fundamental-ngx-ui5-webcomponents-segmented-button-item.d.ts +1 -0
  264. package/types/fundamental-ngx-ui5-webcomponents-segmented-button.d.ts +1 -0
  265. package/types/fundamental-ngx-ui5-webcomponents-select.d.ts +1 -0
  266. package/types/fundamental-ngx-ui5-webcomponents-slider.d.ts +1 -0
  267. package/types/fundamental-ngx-ui5-webcomponents-split-button.d.ts +1 -0
  268. package/types/fundamental-ngx-ui5-webcomponents-step-input.d.ts +1 -0
  269. package/types/fundamental-ngx-ui5-webcomponents-suggestion-item-custom.d.ts +1 -0
  270. package/types/fundamental-ngx-ui5-webcomponents-suggestion-item-group.d.ts +1 -0
  271. package/types/fundamental-ngx-ui5-webcomponents-suggestion-item.d.ts +1 -0
  272. package/types/fundamental-ngx-ui5-webcomponents-suggestion-list-item.d.ts +7 -3
  273. package/types/fundamental-ngx-ui5-webcomponents-switch.d.ts +1 -0
  274. package/types/fundamental-ngx-ui5-webcomponents-tab-container.d.ts +1 -0
  275. package/types/fundamental-ngx-ui5-webcomponents-tab.d.ts +1 -0
  276. package/types/fundamental-ngx-ui5-webcomponents-table-growing.d.ts +1 -0
  277. package/types/fundamental-ngx-ui5-webcomponents-table-header-cell-action-a-i.d.ts +1 -0
  278. package/types/fundamental-ngx-ui5-webcomponents-table-row-action-navigation.d.ts +1 -0
  279. package/types/fundamental-ngx-ui5-webcomponents-table-row-action.d.ts +1 -0
  280. package/types/fundamental-ngx-ui5-webcomponents-table-selection-multi.d.ts +1 -0
  281. package/types/fundamental-ngx-ui5-webcomponents-table-selection-single.d.ts +1 -0
  282. package/types/fundamental-ngx-ui5-webcomponents-table-selection.d.ts +1 -0
  283. package/types/fundamental-ngx-ui5-webcomponents-table-virtualizer.d.ts +1 -0
  284. package/types/fundamental-ngx-ui5-webcomponents-table.d.ts +1 -0
  285. package/types/fundamental-ngx-ui5-webcomponents-tag.d.ts +1 -0
  286. package/types/fundamental-ngx-ui5-webcomponents-text-area.d.ts +1 -0
  287. package/types/fundamental-ngx-ui5-webcomponents-time-picker.d.ts +1 -0
  288. package/types/fundamental-ngx-ui5-webcomponents-toast.d.ts +1 -0
  289. package/types/fundamental-ngx-ui5-webcomponents-toggle-button.d.ts +1 -0
  290. package/types/fundamental-ngx-ui5-webcomponents-toggle-spin-button.d.ts +1 -0
  291. package/types/fundamental-ngx-ui5-webcomponents-tokenizer.d.ts +1 -0
  292. package/types/fundamental-ngx-ui5-webcomponents-toolbar-button.d.ts +1 -0
  293. package/types/fundamental-ngx-ui5-webcomponents-toolbar-select.d.ts +1 -0
  294. package/types/fundamental-ngx-ui5-webcomponents-toolbar.d.ts +1 -1
  295. package/types/fundamental-ngx-ui5-webcomponents-tree-item-custom.d.ts +7 -3
  296. package/types/fundamental-ngx-ui5-webcomponents-tree-item.d.ts +7 -3
  297. package/types/fundamental-ngx-ui5-webcomponents-tree.d.ts +1 -0
  298. package/types/fundamental-ngx-ui5-webcomponents.d.ts +154 -40
@@ -70,7 +70,7 @@ export { default as ToolbarDesign } from '@ui5/webcomponents/dist/types/ToolbarD
70
70
  export { default as ToolbarItemOverflowBehavior } from '@ui5/webcomponents/dist/types/ToolbarItemOverflowBehavior.js';
71
71
  export { default as WrappingType } from '@ui5/webcomponents/dist/types/WrappingType.js';
72
72
  import * as i0 from '@angular/core';
73
- import { InjectionToken, inject, ElementRef, ChangeDetectorRef, forwardRef, Directive, input, booleanAttribute, output, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component, computed, signal, Injectable } from '@angular/core';
73
+ import { InjectionToken, inject, ElementRef, ChangeDetectorRef, forwardRef, Directive, input, booleanAttribute, output, Injector, DestroyRef, runInInjectionContext, effect, ChangeDetectionStrategy, Component, computed, signal, Injectable } from '@angular/core';
74
74
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
75
75
  import '@ui5/webcomponents/dist/Avatar.js';
76
76
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
@@ -79,6 +79,8 @@ import '@ui5/webcomponents/dist/AvatarGroup.js';
79
79
  import '@ui5/webcomponents/dist/Bar.js';
80
80
  import '@ui5/webcomponents/dist/Breadcrumbs.js';
81
81
  import '@ui5/webcomponents/dist/BreadcrumbsItem.js';
82
+ import * as i1 from '@fundamental-ngx/ui5-webcomponents-base/router-link';
83
+ import { Ui5RouterLinkBridgeDirective } from '@fundamental-ngx/ui5-webcomponents-base/router-link';
82
84
  import '@ui5/webcomponents/dist/BusyIndicator.js';
83
85
  import '@ui5/webcomponents/dist/Button.js';
84
86
  import '@ui5/webcomponents/dist/ButtonBadge.js';
@@ -91,7 +93,7 @@ import '@ui5/webcomponents/dist/Card.js';
91
93
  import '@ui5/webcomponents/dist/CardHeader.js';
92
94
  import '@ui5/webcomponents/dist/Carousel.js';
93
95
  import '@ui5/webcomponents/dist/CheckBox.js';
94
- import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
96
+ import * as i1$1 from '@fundamental-ngx/ui5-webcomponents/utils';
95
97
  import { CVA_CONFIG as CVA_CONFIG$1, GenericControlValueAccessor as GenericControlValueAccessor$1 } from '@fundamental-ngx/ui5-webcomponents/utils';
96
98
  import '@ui5/webcomponents/dist/ColorPalette.js';
97
99
  import '@ui5/webcomponents/dist/ColorPaletteItem.js';
@@ -516,6 +518,7 @@ class Avatar {
516
518
  * @private
517
519
  */
518
520
  this._contentDensityObserver = inject(ContentDensityObserver);
521
+ this._destroyRef = inject(DestroyRef);
519
522
  }
520
523
  get element() {
521
524
  return this.elementRef.nativeElement;
@@ -562,17 +565,21 @@ class Avatar {
562
565
  'ui5Click',
563
566
  ];
564
567
  // Synchronize outputs (events)
568
+ const _listeners = [];
565
569
  for (const outputName of outputsToSync) {
566
570
  // Map Angular output name to UI5 web component event name
567
571
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
568
572
  // Ensure the output property exists and has an emit function before adding listener
569
573
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
570
574
  // Cast the listener to the correct type to satisfy TypeScript
571
- wcElement.addEventListener(eventName, (e) => {
575
+ const listener = (e) => {
572
576
  this[outputName].emit(e);
573
- });
577
+ };
578
+ wcElement.addEventListener(eventName, listener);
579
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
574
580
  }
575
581
  }
582
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
576
583
  }
577
584
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Avatar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
578
585
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Avatar, isStandalone: true, selector: "ui5-avatar, [ui5-avatar]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, fallbackIcon: { classPropertyName: "fallbackIcon", publicName: "fallbackIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, shape: { classPropertyName: "shape", publicName: "shape", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -780,6 +787,7 @@ class AvatarGroup {
780
787
  * @private
781
788
  */
782
789
  this._contentDensityObserver = inject(ContentDensityObserver);
790
+ this._destroyRef = inject(DestroyRef);
783
791
  }
784
792
  /**
785
793
  * Returns an array containing the `AvatarColorScheme` values that correspond to the avatars in the component.
@@ -834,17 +842,21 @@ class AvatarGroup {
834
842
  'ui5Overflow',
835
843
  ];
836
844
  // Synchronize outputs (events)
845
+ const _listeners = [];
837
846
  for (const outputName of outputsToSync) {
838
847
  // Map Angular output name to UI5 web component event name
839
848
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
840
849
  // Ensure the output property exists and has an emit function before adding listener
841
850
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
842
851
  // Cast the listener to the correct type to satisfy TypeScript
843
- wcElement.addEventListener(eventName, (e) => {
852
+ const listener = (e) => {
844
853
  this[outputName].emit(e);
845
- });
854
+ };
855
+ wcElement.addEventListener(eventName, listener);
856
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
846
857
  }
847
858
  }
859
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
848
860
  }
849
861
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: AvatarGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
850
862
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: AvatarGroup, isStandalone: true, selector: "ui5-avatar-group, [ui5-avatar-group]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5Overflow: "ui5Overflow" }, providers: [
@@ -1063,6 +1075,7 @@ class Breadcrumbs {
1063
1075
  * @private
1064
1076
  */
1065
1077
  this._contentDensityObserver = inject(ContentDensityObserver);
1078
+ this._destroyRef = inject(DestroyRef);
1066
1079
  }
1067
1080
  get element() {
1068
1081
  return this.elementRef.nativeElement;
@@ -1101,17 +1114,21 @@ class Breadcrumbs {
1101
1114
  'ui5ItemClick',
1102
1115
  ];
1103
1116
  // Synchronize outputs (events)
1117
+ const _listeners = [];
1104
1118
  for (const outputName of outputsToSync) {
1105
1119
  // Map Angular output name to UI5 web component event name
1106
1120
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
1107
1121
  // Ensure the output property exists and has an emit function before adding listener
1108
1122
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
1109
1123
  // Cast the listener to the correct type to satisfy TypeScript
1110
- wcElement.addEventListener(eventName, (e) => {
1124
+ const listener = (e) => {
1111
1125
  this[outputName].emit(e);
1112
- });
1126
+ };
1127
+ wcElement.addEventListener(eventName, listener);
1128
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
1113
1129
  }
1114
1130
  }
1131
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
1115
1132
  }
1116
1133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Breadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1117
1134
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Breadcrumbs, isStandalone: true, selector: "ui5-breadcrumbs, [ui5-breadcrumbs]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, separators: { classPropertyName: "separators", publicName: "separators", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5ItemClick: "ui5ItemClick" }, providers: [
@@ -1206,6 +1223,7 @@ class BreadcrumbsItem {
1206
1223
  * @private
1207
1224
  */
1208
1225
  this._contentDensityObserver = inject(ContentDensityObserver);
1226
+ this._destroyRef = inject(DestroyRef);
1209
1227
  }
1210
1228
  get element() {
1211
1229
  return this.elementRef.nativeElement;
@@ -1244,24 +1262,28 @@ class BreadcrumbsItem {
1244
1262
  'ui5Click',
1245
1263
  ];
1246
1264
  // Synchronize outputs (events)
1265
+ const _listeners = [];
1247
1266
  for (const outputName of outputsToSync) {
1248
1267
  // Map Angular output name to UI5 web component event name
1249
1268
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
1250
1269
  // Ensure the output property exists and has an emit function before adding listener
1251
1270
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
1252
1271
  // Cast the listener to the correct type to satisfy TypeScript
1253
- wcElement.addEventListener(eventName, (e) => {
1272
+ const listener = (e) => {
1254
1273
  this[outputName].emit(e);
1255
- });
1274
+ };
1275
+ wcElement.addEventListener(eventName, listener);
1276
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
1256
1277
  }
1257
1278
  }
1279
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
1258
1280
  }
1259
1281
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: BreadcrumbsItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1260
1282
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: BreadcrumbsItem, isStandalone: true, selector: "ui5-breadcrumbs-item, [ui5-breadcrumbs-item]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
1261
1283
  contentDensityObserverProviders({
1262
1284
  supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
1263
1285
  })
1264
- ], exportAs: ["ui5BreadcrumbsItem"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1286
+ ], exportAs: ["ui5BreadcrumbsItem"], hostDirectives: [{ directive: i1.Ui5RouterLinkBridgeDirective }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1265
1287
  }
1266
1288
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: BreadcrumbsItem, decorators: [{
1267
1289
  type: Component,
@@ -1270,6 +1292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
1270
1292
  selector: 'ui5-breadcrumbs-item, [ui5-breadcrumbs-item]',
1271
1293
  template: '<ng-content></ng-content>',
1272
1294
  exportAs: 'ui5BreadcrumbsItem',
1295
+ hostDirectives: [Ui5RouterLinkBridgeDirective],
1273
1296
  providers: [
1274
1297
  contentDensityObserverProviders({
1275
1298
  supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
@@ -1563,6 +1586,7 @@ class Button {
1563
1586
  * @private
1564
1587
  */
1565
1588
  this._contentDensityObserver = inject(ContentDensityObserver);
1589
+ this._destroyRef = inject(DestroyRef);
1566
1590
  }
1567
1591
  get element() {
1568
1592
  return this.elementRef.nativeElement;
@@ -1613,17 +1637,21 @@ class Button {
1613
1637
  'ui5Click',
1614
1638
  ];
1615
1639
  // Synchronize outputs (events)
1640
+ const _listeners = [];
1616
1641
  for (const outputName of outputsToSync) {
1617
1642
  // Map Angular output name to UI5 web component event name
1618
1643
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
1619
1644
  // Ensure the output property exists and has an emit function before adding listener
1620
1645
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
1621
1646
  // Cast the listener to the correct type to satisfy TypeScript
1622
- wcElement.addEventListener(eventName, (e) => {
1647
+ const listener = (e) => {
1623
1648
  this[outputName].emit(e);
1624
- });
1649
+ };
1650
+ wcElement.addEventListener(eventName, listener);
1651
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
1625
1652
  }
1626
1653
  }
1654
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
1627
1655
  }
1628
1656
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Button, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1629
1657
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Button, isStandalone: true, selector: "ui5-button, [ui5-button]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: "endIcon", publicName: "endIcon", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, submits: { classPropertyName: "submits", publicName: "submits", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -1860,6 +1888,7 @@ class Calendar {
1860
1888
  * @private
1861
1889
  */
1862
1890
  this._contentDensityObserver = inject(ContentDensityObserver);
1891
+ this._destroyRef = inject(DestroyRef);
1863
1892
  }
1864
1893
  get element() {
1865
1894
  return this.elementRef.nativeElement;
@@ -1905,17 +1934,21 @@ class Calendar {
1905
1934
  'ui5SelectionChange',
1906
1935
  ];
1907
1936
  // Synchronize outputs (events)
1937
+ const _listeners = [];
1908
1938
  for (const outputName of outputsToSync) {
1909
1939
  // Map Angular output name to UI5 web component event name
1910
1940
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
1911
1941
  // Ensure the output property exists and has an emit function before adding listener
1912
1942
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
1913
1943
  // Cast the listener to the correct type to satisfy TypeScript
1914
- wcElement.addEventListener(eventName, (e) => {
1944
+ const listener = (e) => {
1915
1945
  this[outputName].emit(e);
1916
- });
1946
+ };
1947
+ wcElement.addEventListener(eventName, listener);
1948
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
1917
1949
  }
1918
1950
  }
1951
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
1919
1952
  }
1920
1953
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Calendar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1921
1954
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Calendar, isStandalone: true, selector: "ui5-calendar, [ui5-calendar]", inputs: { calendarWeekNumbering: { classPropertyName: "calendarWeekNumbering", publicName: "calendarWeekNumbering", isSignal: true, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: true, isRequired: false, transformFunction: null }, formatPattern: { classPropertyName: "formatPattern", publicName: "formatPattern", isSignal: true, isRequired: false, transformFunction: null }, hideWeekNumbers: { classPropertyName: "hideWeekNumbers", publicName: "hideWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, primaryCalendarType: { classPropertyName: "primaryCalendarType", publicName: "primaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, secondaryCalendarType: { classPropertyName: "secondaryCalendarType", publicName: "secondaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -2467,6 +2500,7 @@ class CardHeader {
2467
2500
  * @private
2468
2501
  */
2469
2502
  this._contentDensityObserver = inject(ContentDensityObserver);
2503
+ this._destroyRef = inject(DestroyRef);
2470
2504
  }
2471
2505
  get element() {
2472
2506
  return this.elementRef.nativeElement;
@@ -2506,17 +2540,21 @@ class CardHeader {
2506
2540
  'ui5Click',
2507
2541
  ];
2508
2542
  // Synchronize outputs (events)
2543
+ const _listeners = [];
2509
2544
  for (const outputName of outputsToSync) {
2510
2545
  // Map Angular output name to UI5 web component event name
2511
2546
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
2512
2547
  // Ensure the output property exists and has an emit function before adding listener
2513
2548
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
2514
2549
  // Cast the listener to the correct type to satisfy TypeScript
2515
- wcElement.addEventListener(eventName, (e) => {
2550
+ const listener = (e) => {
2516
2551
  this[outputName].emit(e);
2517
- });
2552
+ };
2553
+ wcElement.addEventListener(eventName, listener);
2554
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
2518
2555
  }
2519
2556
  }
2557
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
2520
2558
  }
2521
2559
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2522
2560
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: CardHeader, isStandalone: true, selector: "ui5-card-header, [ui5-card-header]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, subtitleText: { classPropertyName: "subtitleText", publicName: "subtitleText", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -2655,6 +2693,7 @@ class Carousel {
2655
2693
  * @private
2656
2694
  */
2657
2695
  this._contentDensityObserver = inject(ContentDensityObserver);
2696
+ this._destroyRef = inject(DestroyRef);
2658
2697
  }
2659
2698
  /**
2660
2699
  * The indices of the currently visible items of the component.
@@ -2708,17 +2747,21 @@ class Carousel {
2708
2747
  'ui5Navigate',
2709
2748
  ];
2710
2749
  // Synchronize outputs (events)
2750
+ const _listeners = [];
2711
2751
  for (const outputName of outputsToSync) {
2712
2752
  // Map Angular output name to UI5 web component event name
2713
2753
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
2714
2754
  // Ensure the output property exists and has an emit function before adding listener
2715
2755
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
2716
2756
  // Cast the listener to the correct type to satisfy TypeScript
2717
- wcElement.addEventListener(eventName, (e) => {
2757
+ const listener = (e) => {
2718
2758
  this[outputName].emit(e);
2719
- });
2759
+ };
2760
+ wcElement.addEventListener(eventName, listener);
2761
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
2720
2762
  }
2721
2763
  }
2764
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
2722
2765
  }
2723
2766
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Carousel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2724
2767
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Carousel, isStandalone: true, selector: "ui5-carousel, [ui5-carousel]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, arrowsPlacement: { classPropertyName: "arrowsPlacement", publicName: "arrowsPlacement", isSignal: true, isRequired: false, transformFunction: null }, backgroundDesign: { classPropertyName: "backgroundDesign", publicName: "backgroundDesign", isSignal: true, isRequired: false, transformFunction: null }, cyclic: { classPropertyName: "cyclic", publicName: "cyclic", isSignal: true, isRequired: false, transformFunction: null }, hideNavigationArrows: { classPropertyName: "hideNavigationArrows", publicName: "hideNavigationArrows", isSignal: true, isRequired: false, transformFunction: null }, hidePageIndicator: { classPropertyName: "hidePageIndicator", publicName: "hidePageIndicator", isSignal: true, isRequired: false, transformFunction: null }, itemsPerPage: { classPropertyName: "itemsPerPage", publicName: "itemsPerPage", isSignal: true, isRequired: false, transformFunction: null }, pageIndicatorBackgroundDesign: { classPropertyName: "pageIndicatorBackgroundDesign", publicName: "pageIndicatorBackgroundDesign", isSignal: true, isRequired: false, transformFunction: null }, pageIndicatorBorderDesign: { classPropertyName: "pageIndicatorBorderDesign", publicName: "pageIndicatorBorderDesign", isSignal: true, isRequired: false, transformFunction: null }, pageIndicatorType: { classPropertyName: "pageIndicatorType", publicName: "pageIndicatorType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Navigate: "ui5Navigate" }, providers: [
@@ -2852,6 +2895,7 @@ class CheckBox {
2852
2895
  * @private
2853
2896
  */
2854
2897
  this._contentDensityObserver = inject(ContentDensityObserver);
2898
+ this._destroyRef = inject(DestroyRef);
2855
2899
  }
2856
2900
  get element() {
2857
2901
  return this.elementRef.nativeElement;
@@ -2900,17 +2944,21 @@ class CheckBox {
2900
2944
  'ui5Change',
2901
2945
  ];
2902
2946
  // Synchronize outputs (events)
2947
+ const _listeners = [];
2903
2948
  for (const outputName of outputsToSync) {
2904
2949
  // Map Angular output name to UI5 web component event name
2905
2950
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
2906
2951
  // Ensure the output property exists and has an emit function before adding listener
2907
2952
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
2908
2953
  // Cast the listener to the correct type to satisfy TypeScript
2909
- wcElement.addEventListener(eventName, (e) => {
2954
+ const listener = (e) => {
2910
2955
  this[outputName].emit(e);
2911
- });
2956
+ };
2957
+ wcElement.addEventListener(eventName, listener);
2958
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
2912
2959
  }
2913
2960
  }
2961
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
2914
2962
  }
2915
2963
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CheckBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2916
2964
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: CheckBox, isStandalone: true, selector: "ui5-checkbox, [ui5-checkbox]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayOnly: { classPropertyName: "displayOnly", publicName: "displayOnly", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -2925,7 +2973,7 @@ class CheckBox {
2925
2973
  transformValue: (v) => !!v
2926
2974
  }
2927
2975
  }
2928
- ], exportAs: ["ui5CheckBox"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2976
+ ], exportAs: ["ui5CheckBox"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2929
2977
  }
2930
2978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CheckBox, decorators: [{
2931
2979
  type: Component,
@@ -3001,6 +3049,7 @@ class ColorPalette {
3001
3049
  * @private
3002
3050
  */
3003
3051
  this._contentDensityObserver = inject(ContentDensityObserver);
3052
+ this._destroyRef = inject(DestroyRef);
3004
3053
  }
3005
3054
  get element() {
3006
3055
  return this.elementRef.nativeElement;
@@ -3038,17 +3087,21 @@ class ColorPalette {
3038
3087
  'ui5ItemClick',
3039
3088
  ];
3040
3089
  // Synchronize outputs (events)
3090
+ const _listeners = [];
3041
3091
  for (const outputName of outputsToSync) {
3042
3092
  // Map Angular output name to UI5 web component event name
3043
3093
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3044
3094
  // Ensure the output property exists and has an emit function before adding listener
3045
3095
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3046
3096
  // Cast the listener to the correct type to satisfy TypeScript
3047
- wcElement.addEventListener(eventName, (e) => {
3097
+ const listener = (e) => {
3048
3098
  this[outputName].emit(e);
3049
- });
3099
+ };
3100
+ wcElement.addEventListener(eventName, listener);
3101
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3050
3102
  }
3051
3103
  }
3104
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3052
3105
  }
3053
3106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ColorPalette, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3054
3107
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ColorPalette, isStandalone: true, selector: "ui5-color-palette, [ui5-color-palette]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5ItemClick: "ui5ItemClick" }, providers: [
@@ -3108,6 +3161,7 @@ class ColorPaletteItem {
3108
3161
  * @private
3109
3162
  */
3110
3163
  this._contentDensityObserver = inject(ContentDensityObserver);
3164
+ this._destroyRef = inject(DestroyRef);
3111
3165
  }
3112
3166
  get element() {
3113
3167
  return this.elementRef.nativeElement;
@@ -3146,17 +3200,21 @@ class ColorPaletteItem {
3146
3200
  'ui5Click',
3147
3201
  ];
3148
3202
  // Synchronize outputs (events)
3203
+ const _listeners = [];
3149
3204
  for (const outputName of outputsToSync) {
3150
3205
  // Map Angular output name to UI5 web component event name
3151
3206
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3152
3207
  // Ensure the output property exists and has an emit function before adding listener
3153
3208
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3154
3209
  // Cast the listener to the correct type to satisfy TypeScript
3155
- wcElement.addEventListener(eventName, (e) => {
3210
+ const listener = (e) => {
3156
3211
  this[outputName].emit(e);
3157
- });
3212
+ };
3213
+ wcElement.addEventListener(eventName, listener);
3214
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3158
3215
  }
3159
3216
  }
3217
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3160
3218
  }
3161
3219
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ColorPaletteItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3162
3220
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ColorPaletteItem, isStandalone: true, selector: "ui5-color-palette-item, [ui5-color-palette-item]", inputs: { selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -3269,6 +3327,7 @@ class ColorPalettePopover {
3269
3327
  * @private
3270
3328
  */
3271
3329
  this._contentDensityObserver = inject(ContentDensityObserver);
3330
+ this._destroyRef = inject(DestroyRef);
3272
3331
  }
3273
3332
  get element() {
3274
3333
  return this.elementRef.nativeElement;
@@ -3314,17 +3373,21 @@ class ColorPalettePopover {
3314
3373
  'ui5ItemClick',
3315
3374
  ];
3316
3375
  // Synchronize outputs (events)
3376
+ const _listeners = [];
3317
3377
  for (const outputName of outputsToSync) {
3318
3378
  // Map Angular output name to UI5 web component event name
3319
3379
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3320
3380
  // Ensure the output property exists and has an emit function before adding listener
3321
3381
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3322
3382
  // Cast the listener to the correct type to satisfy TypeScript
3323
- wcElement.addEventListener(eventName, (e) => {
3383
+ const listener = (e) => {
3324
3384
  this[outputName].emit(e);
3325
- });
3385
+ };
3386
+ wcElement.addEventListener(eventName, listener);
3387
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3326
3388
  }
3327
3389
  }
3390
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3328
3391
  }
3329
3392
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ColorPalettePopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3330
3393
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ColorPalettePopover, isStandalone: true, selector: "ui5-color-palette-popover, [ui5-color-palette-popover]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, defaultColor: { classPropertyName: "defaultColor", publicName: "defaultColor", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, opener: { classPropertyName: "opener", publicName: "opener", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, showDefaultColor: { classPropertyName: "showDefaultColor", publicName: "showDefaultColor", isSignal: true, isRequired: false, transformFunction: null }, showMoreColors: { classPropertyName: "showMoreColors", publicName: "showMoreColors", isSignal: true, isRequired: false, transformFunction: null }, showRecentColors: { classPropertyName: "showRecentColors", publicName: "showRecentColors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Close: "ui5Close", ui5ItemClick: "ui5ItemClick" }, providers: [
@@ -3391,6 +3454,7 @@ class ColorPicker {
3391
3454
  * @private
3392
3455
  */
3393
3456
  this._contentDensityObserver = inject(ContentDensityObserver);
3457
+ this._destroyRef = inject(DestroyRef);
3394
3458
  }
3395
3459
  get element() {
3396
3460
  return this.elementRef.nativeElement;
@@ -3431,17 +3495,21 @@ class ColorPicker {
3431
3495
  'ui5Change',
3432
3496
  ];
3433
3497
  // Synchronize outputs (events)
3498
+ const _listeners = [];
3434
3499
  for (const outputName of outputsToSync) {
3435
3500
  // Map Angular output name to UI5 web component event name
3436
3501
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3437
3502
  // Ensure the output property exists and has an emit function before adding listener
3438
3503
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3439
3504
  // Cast the listener to the correct type to satisfy TypeScript
3440
- wcElement.addEventListener(eventName, (e) => {
3505
+ const listener = (e) => {
3441
3506
  this[outputName].emit(e);
3442
- });
3507
+ };
3508
+ wcElement.addEventListener(eventName, listener);
3509
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3443
3510
  }
3444
3511
  }
3512
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3445
3513
  }
3446
3514
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ColorPicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3447
3515
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ColorPicker, isStandalone: true, selector: "ui5-color-picker, [ui5-color-picker]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, simplified: { classPropertyName: "simplified", publicName: "simplified", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -3629,6 +3697,7 @@ class ComboBox {
3629
3697
  * @private
3630
3698
  */
3631
3699
  this._contentDensityObserver = inject(ContentDensityObserver);
3700
+ this._destroyRef = inject(DestroyRef);
3632
3701
  }
3633
3702
  get element() {
3634
3703
  return this.elementRef.nativeElement;
@@ -3683,17 +3752,21 @@ class ComboBox {
3683
3752
  'ui5SelectionChange',
3684
3753
  ];
3685
3754
  // Synchronize outputs (events)
3755
+ const _listeners = [];
3686
3756
  for (const outputName of outputsToSync) {
3687
3757
  // Map Angular output name to UI5 web component event name
3688
3758
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3689
3759
  // Ensure the output property exists and has an emit function before adding listener
3690
3760
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3691
3761
  // Cast the listener to the correct type to satisfy TypeScript
3692
- wcElement.addEventListener(eventName, (e) => {
3762
+ const listener = (e) => {
3693
3763
  this[outputName].emit(e);
3694
- });
3764
+ };
3765
+ wcElement.addEventListener(eventName, listener);
3766
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3695
3767
  }
3696
3768
  }
3769
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3697
3770
  }
3698
3771
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3699
3772
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBox, isStandalone: true, selector: "ui5-combobox, [ui5-combobox]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, selectedValue: { classPropertyName: "selectedValue", publicName: "selectedValue", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -3708,7 +3781,7 @@ class ComboBox {
3708
3781
  transformValue: (v) => v || ''
3709
3782
  }
3710
3783
  }
3711
- ], exportAs: ["ui5ComboBox"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3784
+ ], exportAs: ["ui5ComboBox"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3712
3785
  }
3713
3786
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBox, decorators: [{
3714
3787
  type: Component,
@@ -3784,6 +3857,7 @@ class ComboBoxItem {
3784
3857
  * @private
3785
3858
  */
3786
3859
  this._contentDensityObserver = inject(ContentDensityObserver);
3860
+ this._destroyRef = inject(DestroyRef);
3787
3861
  }
3788
3862
  get element() {
3789
3863
  return this.elementRef.nativeElement;
@@ -3822,17 +3896,21 @@ class ComboBoxItem {
3822
3896
  'ui5Click',
3823
3897
  ];
3824
3898
  // Synchronize outputs (events)
3899
+ const _listeners = [];
3825
3900
  for (const outputName of outputsToSync) {
3826
3901
  // Map Angular output name to UI5 web component event name
3827
3902
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3828
3903
  // Ensure the output property exists and has an emit function before adding listener
3829
3904
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3830
3905
  // Cast the listener to the correct type to satisfy TypeScript
3831
- wcElement.addEventListener(eventName, (e) => {
3906
+ const listener = (e) => {
3832
3907
  this[outputName].emit(e);
3833
- });
3908
+ };
3909
+ wcElement.addEventListener(eventName, listener);
3910
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3834
3911
  }
3835
3912
  }
3913
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3836
3914
  }
3837
3915
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBoxItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3838
3916
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBoxItem, isStandalone: true, selector: "ui5-cb-item, [ui5-cb-item]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -3910,6 +3988,7 @@ class ComboBoxItemCustom {
3910
3988
  * @private
3911
3989
  */
3912
3990
  this._contentDensityObserver = inject(ContentDensityObserver);
3991
+ this._destroyRef = inject(DestroyRef);
3913
3992
  }
3914
3993
  get element() {
3915
3994
  return this.elementRef.nativeElement;
@@ -3947,17 +4026,21 @@ class ComboBoxItemCustom {
3947
4026
  'ui5Click',
3948
4027
  ];
3949
4028
  // Synchronize outputs (events)
4029
+ const _listeners = [];
3950
4030
  for (const outputName of outputsToSync) {
3951
4031
  // Map Angular output name to UI5 web component event name
3952
4032
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
3953
4033
  // Ensure the output property exists and has an emit function before adding listener
3954
4034
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
3955
4035
  // Cast the listener to the correct type to satisfy TypeScript
3956
- wcElement.addEventListener(eventName, (e) => {
4036
+ const listener = (e) => {
3957
4037
  this[outputName].emit(e);
3958
- });
4038
+ };
4039
+ wcElement.addEventListener(eventName, listener);
4040
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
3959
4041
  }
3960
4042
  }
4043
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
3961
4044
  }
3962
4045
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBoxItemCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
3963
4046
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBoxItemCustom, isStandalone: true, selector: "ui5-cb-item-custom, [ui5-cb-item-custom]", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -4061,6 +4144,7 @@ class ComboBoxItemGroup {
4061
4144
  * @private
4062
4145
  */
4063
4146
  this._contentDensityObserver = inject(ContentDensityObserver);
4147
+ this._destroyRef = inject(DestroyRef);
4064
4148
  }
4065
4149
  get element() {
4066
4150
  return this.elementRef.nativeElement;
@@ -4100,17 +4184,21 @@ class ComboBoxItemGroup {
4100
4184
  'ui5MoveOver',
4101
4185
  ];
4102
4186
  // Synchronize outputs (events)
4187
+ const _listeners = [];
4103
4188
  for (const outputName of outputsToSync) {
4104
4189
  // Map Angular output name to UI5 web component event name
4105
4190
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
4106
4191
  // Ensure the output property exists and has an emit function before adding listener
4107
4192
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
4108
4193
  // Cast the listener to the correct type to satisfy TypeScript
4109
- wcElement.addEventListener(eventName, (e) => {
4194
+ const listener = (e) => {
4110
4195
  this[outputName].emit(e);
4111
- });
4196
+ };
4197
+ wcElement.addEventListener(eventName, listener);
4198
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
4112
4199
  }
4113
4200
  }
4201
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
4114
4202
  }
4115
4203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBoxItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4116
4204
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBoxItemGroup, isStandalone: true, selector: "ui5-cb-item-group, [ui5-cb-item-group]", inputs: { headerAccessibleName: { classPropertyName: "headerAccessibleName", publicName: "headerAccessibleName", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver" }, providers: [
@@ -4318,6 +4406,7 @@ class DatePicker {
4318
4406
  * @private
4319
4407
  */
4320
4408
  this._contentDensityObserver = inject(ContentDensityObserver);
4409
+ this._destroyRef = inject(DestroyRef);
4321
4410
  }
4322
4411
  /**
4323
4412
  * Currently selected date represented as a Local JavaScript Date instance.
@@ -4394,17 +4483,21 @@ class DatePicker {
4394
4483
  'ui5ValueStateChange',
4395
4484
  ];
4396
4485
  // Synchronize outputs (events)
4486
+ const _listeners = [];
4397
4487
  for (const outputName of outputsToSync) {
4398
4488
  // Map Angular output name to UI5 web component event name
4399
4489
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
4400
4490
  // Ensure the output property exists and has an emit function before adding listener
4401
4491
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
4402
4492
  // Cast the listener to the correct type to satisfy TypeScript
4403
- wcElement.addEventListener(eventName, (e) => {
4493
+ const listener = (e) => {
4404
4494
  this[outputName].emit(e);
4405
- });
4495
+ };
4496
+ wcElement.addEventListener(eventName, listener);
4497
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
4406
4498
  }
4407
4499
  }
4500
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
4408
4501
  }
4409
4502
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4410
4503
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: DatePicker, isStandalone: true, selector: "ui5-date-picker, [ui5-date-picker]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, calendarWeekNumbering: { classPropertyName: "calendarWeekNumbering", publicName: "calendarWeekNumbering", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: true, isRequired: false, transformFunction: null }, formatPattern: { classPropertyName: "formatPattern", publicName: "formatPattern", isSignal: true, isRequired: false, transformFunction: null }, hideWeekNumbers: { classPropertyName: "hideWeekNumbers", publicName: "hideWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, primaryCalendarType: { classPropertyName: "primaryCalendarType", publicName: "primaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, secondaryCalendarType: { classPropertyName: "secondaryCalendarType", publicName: "secondaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [
@@ -4419,7 +4512,7 @@ class DatePicker {
4419
4512
  transformValue: (v) => v || ''
4420
4513
  }
4421
4514
  }
4422
- ], exportAs: ["ui5DatePicker"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4515
+ ], exportAs: ["ui5DatePicker"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4423
4516
  }
4424
4517
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DatePicker, decorators: [{
4425
4518
  type: Component,
@@ -4645,6 +4738,7 @@ class DateRangePicker {
4645
4738
  * @private
4646
4739
  */
4647
4740
  this._contentDensityObserver = inject(ContentDensityObserver);
4741
+ this._destroyRef = inject(DestroyRef);
4648
4742
  }
4649
4743
  /**
4650
4744
  * **Note:** The getter method is inherited and not supported. If called it will return an empty value.
@@ -4743,17 +4837,21 @@ class DateRangePicker {
4743
4837
  'ui5ValueStateChange',
4744
4838
  ];
4745
4839
  // Synchronize outputs (events)
4840
+ const _listeners = [];
4746
4841
  for (const outputName of outputsToSync) {
4747
4842
  // Map Angular output name to UI5 web component event name
4748
4843
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
4749
4844
  // Ensure the output property exists and has an emit function before adding listener
4750
4845
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
4751
4846
  // Cast the listener to the correct type to satisfy TypeScript
4752
- wcElement.addEventListener(eventName, (e) => {
4847
+ const listener = (e) => {
4753
4848
  this[outputName].emit(e);
4754
- });
4849
+ };
4850
+ wcElement.addEventListener(eventName, listener);
4851
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
4755
4852
  }
4756
4853
  }
4854
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
4757
4855
  }
4758
4856
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DateRangePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4759
4857
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: DateRangePicker, isStandalone: true, selector: "ui5-daterange-picker, [ui5-daterange-picker]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, calendarWeekNumbering: { classPropertyName: "calendarWeekNumbering", publicName: "calendarWeekNumbering", isSignal: true, isRequired: false, transformFunction: null }, delimiter: { classPropertyName: "delimiter", publicName: "delimiter", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: true, isRequired: false, transformFunction: null }, formatPattern: { classPropertyName: "formatPattern", publicName: "formatPattern", isSignal: true, isRequired: false, transformFunction: null }, hideWeekNumbers: { classPropertyName: "hideWeekNumbers", publicName: "hideWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, primaryCalendarType: { classPropertyName: "primaryCalendarType", publicName: "primaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, secondaryCalendarType: { classPropertyName: "secondaryCalendarType", publicName: "secondaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showTwoMonths: { classPropertyName: "showTwoMonths", publicName: "showTwoMonths", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [
@@ -4768,7 +4866,7 @@ class DateRangePicker {
4768
4866
  transformValue: (v) => v || ''
4769
4867
  }
4770
4868
  }
4771
- ], exportAs: ["ui5DateRangePicker"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4869
+ ], exportAs: ["ui5DateRangePicker"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4772
4870
  }
4773
4871
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DateRangePicker, decorators: [{
4774
4872
  type: Component,
@@ -4988,6 +5086,7 @@ class DateTimeInput {
4988
5086
  * @private
4989
5087
  */
4990
5088
  this._contentDensityObserver = inject(ContentDensityObserver);
5089
+ this._destroyRef = inject(DestroyRef);
4991
5090
  }
4992
5091
  get element() {
4993
5092
  return this.elementRef.nativeElement;
@@ -5046,17 +5145,21 @@ class DateTimeInput {
5046
5145
  'ui5SelectionChange',
5047
5146
  ];
5048
5147
  // Synchronize outputs (events)
5148
+ const _listeners = [];
5049
5149
  for (const outputName of outputsToSync) {
5050
5150
  // Map Angular output name to UI5 web component event name
5051
5151
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
5052
5152
  // Ensure the output property exists and has an emit function before adding listener
5053
5153
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
5054
5154
  // Cast the listener to the correct type to satisfy TypeScript
5055
- wcElement.addEventListener(eventName, (e) => {
5155
+ const listener = (e) => {
5056
5156
  this[outputName].emit(e);
5057
- });
5157
+ };
5158
+ wcElement.addEventListener(eventName, listener);
5159
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
5058
5160
  }
5059
5161
  }
5162
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
5060
5163
  }
5061
5164
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DateTimeInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5062
5165
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: DateTimeInput, isStandalone: true, selector: "ui5-datetime-input, [ui5-datetime-input]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showSuggestions: { classPropertyName: "showSuggestions", publicName: "showSuggestions", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5Select: "ui5Select", ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -5071,7 +5174,7 @@ class DateTimeInput {
5071
5174
  transformValue: (v) => v || ''
5072
5175
  }
5073
5176
  }
5074
- ], exportAs: ["ui5DateTimeInput"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5177
+ ], exportAs: ["ui5DateTimeInput"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5075
5178
  }
5076
5179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DateTimeInput, decorators: [{
5077
5180
  type: Component,
@@ -5281,6 +5384,7 @@ class DateTimePicker {
5281
5384
  * @private
5282
5385
  */
5283
5386
  this._contentDensityObserver = inject(ContentDensityObserver);
5387
+ this._destroyRef = inject(DestroyRef);
5284
5388
  }
5285
5389
  /**
5286
5390
  * Currently selected date represented as a Local JavaScript Date instance.
@@ -5357,17 +5461,21 @@ class DateTimePicker {
5357
5461
  'ui5ValueStateChange',
5358
5462
  ];
5359
5463
  // Synchronize outputs (events)
5464
+ const _listeners = [];
5360
5465
  for (const outputName of outputsToSync) {
5361
5466
  // Map Angular output name to UI5 web component event name
5362
5467
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
5363
5468
  // Ensure the output property exists and has an emit function before adding listener
5364
5469
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
5365
5470
  // Cast the listener to the correct type to satisfy TypeScript
5366
- wcElement.addEventListener(eventName, (e) => {
5471
+ const listener = (e) => {
5367
5472
  this[outputName].emit(e);
5368
- });
5473
+ };
5474
+ wcElement.addEventListener(eventName, listener);
5475
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
5369
5476
  }
5370
5477
  }
5478
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
5371
5479
  }
5372
5480
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DateTimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5373
5481
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: DateTimePicker, isStandalone: true, selector: "ui5-datetime-picker, [ui5-datetime-picker]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, calendarWeekNumbering: { classPropertyName: "calendarWeekNumbering", publicName: "calendarWeekNumbering", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: true, isRequired: false, transformFunction: null }, formatPattern: { classPropertyName: "formatPattern", publicName: "formatPattern", isSignal: true, isRequired: false, transformFunction: null }, hideWeekNumbers: { classPropertyName: "hideWeekNumbers", publicName: "hideWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, primaryCalendarType: { classPropertyName: "primaryCalendarType", publicName: "primaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, secondaryCalendarType: { classPropertyName: "secondaryCalendarType", publicName: "secondaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [
@@ -5382,7 +5490,7 @@ class DateTimePicker {
5382
5490
  transformValue: (v) => v || ''
5383
5491
  }
5384
5492
  }
5385
- ], exportAs: ["ui5DateTimePicker"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5493
+ ], exportAs: ["ui5DateTimePicker"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5386
5494
  }
5387
5495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DateTimePicker, decorators: [{
5388
5496
  type: Component,
@@ -5692,6 +5800,7 @@ class Dialog {
5692
5800
  * @private
5693
5801
  */
5694
5802
  this._contentDensityObserver = inject(ContentDensityObserver);
5803
+ this._destroyRef = inject(DestroyRef);
5695
5804
  }
5696
5805
  get element() {
5697
5806
  return this.elementRef.nativeElement;
@@ -5745,17 +5854,21 @@ class Dialog {
5745
5854
  'ui5Open',
5746
5855
  ];
5747
5856
  // Synchronize outputs (events)
5857
+ const _listeners = [];
5748
5858
  for (const outputName of outputsToSync) {
5749
5859
  // Map Angular output name to UI5 web component event name
5750
5860
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
5751
5861
  // Ensure the output property exists and has an emit function before adding listener
5752
5862
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
5753
5863
  // Cast the listener to the correct type to satisfy TypeScript
5754
- wcElement.addEventListener(eventName, (e) => {
5864
+ const listener = (e) => {
5755
5865
  this[outputName].emit(e);
5756
- });
5866
+ };
5867
+ wcElement.addEventListener(eventName, listener);
5868
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
5757
5869
  }
5758
5870
  }
5871
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
5759
5872
  }
5760
5873
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Dialog, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5761
5874
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Dialog, isStandalone: true, selector: "ui5-dialog, [ui5-dialog]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, draggable: { classPropertyName: "draggable", publicName: "draggable", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, initialFocus: { classPropertyName: "initialFocus", publicName: "initialFocus", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, preventFocusRestore: { classPropertyName: "preventFocusRestore", publicName: "preventFocusRestore", isSignal: true, isRequired: false, transformFunction: null }, preventInitialFocus: { classPropertyName: "preventInitialFocus", publicName: "preventInitialFocus", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, showFullscreenButton: { classPropertyName: "showFullscreenButton", publicName: "showFullscreenButton", isSignal: true, isRequired: false, transformFunction: null }, state: { classPropertyName: "state", publicName: "state", isSignal: true, isRequired: false, transformFunction: null }, stretch: { classPropertyName: "stretch", publicName: "stretch", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5BeforeClose: "ui5BeforeClose", ui5BeforeOpen: "ui5BeforeOpen", ui5Close: "ui5Close", ui5Open: "ui5Open" }, providers: [
@@ -5899,6 +6012,7 @@ class DynamicDateRange {
5899
6012
  * @private
5900
6013
  */
5901
6014
  this._contentDensityObserver = inject(ContentDensityObserver);
6015
+ this._destroyRef = inject(DestroyRef);
5902
6016
  }
5903
6017
  get element() {
5904
6018
  return this.elementRef.nativeElement;
@@ -5937,17 +6051,21 @@ class DynamicDateRange {
5937
6051
  'ui5Change',
5938
6052
  ];
5939
6053
  // Synchronize outputs (events)
6054
+ const _listeners = [];
5940
6055
  for (const outputName of outputsToSync) {
5941
6056
  // Map Angular output name to UI5 web component event name
5942
6057
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
5943
6058
  // Ensure the output property exists and has an emit function before adding listener
5944
6059
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
5945
6060
  // Cast the listener to the correct type to satisfy TypeScript
5946
- wcElement.addEventListener(eventName, (e) => {
6061
+ const listener = (e) => {
5947
6062
  this[outputName].emit(e);
5948
- });
6063
+ };
6064
+ wcElement.addEventListener(eventName, listener);
6065
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
5949
6066
  }
5950
6067
  }
6068
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
5951
6069
  }
5952
6070
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DynamicDateRange, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5953
6071
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: DynamicDateRange, isStandalone: true, selector: "ui5-dynamic-date-range, [ui5-dynamic-date-range]", inputs: { accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -6203,6 +6321,7 @@ class FileUploader {
6203
6321
  * @private
6204
6322
  */
6205
6323
  this._contentDensityObserver = inject(ContentDensityObserver);
6324
+ this._destroyRef = inject(DestroyRef);
6206
6325
  // Internal signal to track files from change events
6207
6326
  this._filesSignal = signal(null, /* @ts-ignore */
6208
6327
  ...(ngDevMode ? [{ debugName: "_filesSignal" }] : /* istanbul ignore next */ []));
@@ -6256,27 +6375,33 @@ class FileUploader {
6256
6375
  'ui5FileSizeExceed',
6257
6376
  ];
6258
6377
  // Synchronize outputs (events)
6378
+ const _listeners = [];
6259
6379
  for (const outputName of outputsToSync) {
6260
6380
  // Map Angular output name to UI5 web component event name
6261
6381
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
6262
6382
  // Ensure the output property exists and has an emit function before adding listener
6263
6383
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
6264
6384
  // Cast the listener to the correct type to satisfy TypeScript
6265
- wcElement.addEventListener(eventName, (e) => {
6385
+ const listener = (e) => {
6266
6386
  // Update files signal when change event fires
6267
6387
  if (eventName === 'change') {
6268
6388
  const customEvent = e;
6269
6389
  // Use files from event detail, fallback to web component property
6390
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
6270
6391
  const filesValue = customEvent.detail?.files || wcElement.files || null;
6271
6392
  this._filesSignal.set(filesValue);
6272
6393
  }
6273
6394
  this[outputName].emit(e);
6274
- });
6395
+ };
6396
+ wcElement.addEventListener(eventName, listener);
6397
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
6275
6398
  }
6276
6399
  }
6400
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
6277
6401
  // Initialize files signal with current state using delayed initialization
6278
6402
  // to handle web component timing properly
6279
6403
  const initializeFiles = () => {
6404
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
6280
6405
  const currentValue = wcElement.files || null;
6281
6406
  if (JSON.stringify(currentValue) !== JSON.stringify(this._filesSignal())) {
6282
6407
  this._filesSignal.set(currentValue);
@@ -6301,7 +6426,7 @@ class FileUploader {
6301
6426
  transformValue: (v) => v || ''
6302
6427
  }
6303
6428
  }
6304
- ], exportAs: ["ui5FileUploader"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6429
+ ], exportAs: ["ui5FileUploader"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6305
6430
  }
6306
6431
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: FileUploader, decorators: [{
6307
6432
  type: Component,
@@ -6829,6 +6954,8 @@ class Icon {
6829
6954
  When this slot is used, the component renders a `<span>` instead of an `<svg>`.
6830
6955
  Accessibility is fully delegated to the application — set `accessible-name` and `mode` explicitly.
6831
6956
 
6957
+ **Note:** To control the glyph size, set `font-size` on the `ui5-icon` host element.
6958
+
6832
6959
  **Example:**
6833
6960
  ```html
6834
6961
  <ui5-icon mode="Image" accessible-name="Home">
@@ -6850,7 +6977,7 @@ class Icon {
6850
6977
  this.slots = [
6851
6978
  {
6852
6979
  "name": "fontIcon",
6853
- "description": "Defines the font icon to be used as an icon.\nIntended for font-based icon libraries where\nthe application loads the font and provides a slotted element with the unicode character.\nWhen this slot is used, the component renders a `<span>` instead of an `<svg>`.\nAccessibility is fully delegated to the application — set `accessible-name` and `mode` explicitly.\n\n**Example:**\n```html\n<ui5-icon mode=\"Image\" accessible-name=\"Home\">\n <i class=\"fa fa-home\" slot=\"fontIcon\"></i>\n</ui5-icon>\n```",
6980
+ "description": "Defines the font icon to be used as an icon.\nIntended for font-based icon libraries where\nthe application loads the font and provides a slotted element with the unicode character.\nWhen this slot is used, the component renders a `<span>` instead of an `<svg>`.\nAccessibility is fully delegated to the application — set `accessible-name` and `mode` explicitly.\n\n**Note:** To control the glyph size, set `font-size` on the `ui5-icon` host element.\n\n**Example:**\n```html\n<ui5-icon mode=\"Image\" accessible-name=\"Home\">\n <i class=\"fa fa-home\" slot=\"fontIcon\"></i>\n</ui5-icon>\n```",
6854
6981
  "since": "2.23.0"
6855
6982
  }
6856
6983
  ];
@@ -6862,6 +6989,7 @@ class Icon {
6862
6989
  * @private
6863
6990
  */
6864
6991
  this._contentDensityObserver = inject(ContentDensityObserver);
6992
+ this._destroyRef = inject(DestroyRef);
6865
6993
  }
6866
6994
  get element() {
6867
6995
  return this.elementRef.nativeElement;
@@ -6902,17 +7030,21 @@ class Icon {
6902
7030
  'ui5Click',
6903
7031
  ];
6904
7032
  // Synchronize outputs (events)
7033
+ const _listeners = [];
6905
7034
  for (const outputName of outputsToSync) {
6906
7035
  // Map Angular output name to UI5 web component event name
6907
7036
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
6908
7037
  // Ensure the output property exists and has an emit function before adding listener
6909
7038
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
6910
7039
  // Cast the listener to the correct type to satisfy TypeScript
6911
- wcElement.addEventListener(eventName, (e) => {
7040
+ const listener = (e) => {
6912
7041
  this[outputName].emit(e);
6913
- });
7042
+ };
7043
+ wcElement.addEventListener(eventName, listener);
7044
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
6914
7045
  }
6915
7046
  }
7047
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
6916
7048
  }
6917
7049
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Icon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6918
7050
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Icon, isStandalone: true, selector: "ui5-icon, [ui5-icon]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -7130,6 +7262,7 @@ class Input {
7130
7262
  * @private
7131
7263
  */
7132
7264
  this._contentDensityObserver = inject(ContentDensityObserver);
7265
+ this._destroyRef = inject(DestroyRef);
7133
7266
  }
7134
7267
  get element() {
7135
7268
  return this.elementRef.nativeElement;
@@ -7188,17 +7321,21 @@ class Input {
7188
7321
  'ui5SelectionChange',
7189
7322
  ];
7190
7323
  // Synchronize outputs (events)
7324
+ const _listeners = [];
7191
7325
  for (const outputName of outputsToSync) {
7192
7326
  // Map Angular output name to UI5 web component event name
7193
7327
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
7194
7328
  // Ensure the output property exists and has an emit function before adding listener
7195
7329
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
7196
7330
  // Cast the listener to the correct type to satisfy TypeScript
7197
- wcElement.addEventListener(eventName, (e) => {
7331
+ const listener = (e) => {
7198
7332
  this[outputName].emit(e);
7199
- });
7333
+ };
7334
+ wcElement.addEventListener(eventName, listener);
7335
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
7200
7336
  }
7201
7337
  }
7338
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
7202
7339
  }
7203
7340
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Input, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7204
7341
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Input, isStandalone: true, selector: "ui5-input, [ui5-input]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showSuggestions: { classPropertyName: "showSuggestions", publicName: "showSuggestions", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5Select: "ui5Select", ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -7213,7 +7350,7 @@ class Input {
7213
7350
  transformValue: (v) => v || ''
7214
7351
  }
7215
7352
  }
7216
- ], exportAs: ["ui5Input"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7353
+ ], exportAs: ["ui5Input"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7217
7354
  }
7218
7355
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Input, decorators: [{
7219
7356
  type: Component,
@@ -7269,6 +7406,7 @@ class InputIcon {
7269
7406
  * @private
7270
7407
  */
7271
7408
  this._contentDensityObserver = inject(ContentDensityObserver);
7409
+ this._destroyRef = inject(DestroyRef);
7272
7410
  }
7273
7411
  get element() {
7274
7412
  return this.elementRef.nativeElement;
@@ -7306,17 +7444,21 @@ class InputIcon {
7306
7444
  'ui5Click',
7307
7445
  ];
7308
7446
  // Synchronize outputs (events)
7447
+ const _listeners = [];
7309
7448
  for (const outputName of outputsToSync) {
7310
7449
  // Map Angular output name to UI5 web component event name
7311
7450
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
7312
7451
  // Ensure the output property exists and has an emit function before adding listener
7313
7452
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
7314
7453
  // Cast the listener to the correct type to satisfy TypeScript
7315
- wcElement.addEventListener(eventName, (e) => {
7454
+ const listener = (e) => {
7316
7455
  this[outputName].emit(e);
7317
- });
7456
+ };
7457
+ wcElement.addEventListener(eventName, listener);
7458
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
7318
7459
  }
7319
7460
  }
7461
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
7320
7462
  }
7321
7463
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: InputIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7322
7464
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: InputIcon, isStandalone: true, selector: "ui5-input-icon, [ui5-input-icon]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -7623,6 +7765,7 @@ class Link {
7623
7765
  * @private
7624
7766
  */
7625
7767
  this._contentDensityObserver = inject(ContentDensityObserver);
7768
+ this._destroyRef = inject(DestroyRef);
7626
7769
  }
7627
7770
  get element() {
7628
7771
  return this.elementRef.nativeElement;
@@ -7672,24 +7815,28 @@ class Link {
7672
7815
  'ui5Click',
7673
7816
  ];
7674
7817
  // Synchronize outputs (events)
7818
+ const _listeners = [];
7675
7819
  for (const outputName of outputsToSync) {
7676
7820
  // Map Angular output name to UI5 web component event name
7677
7821
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
7678
7822
  // Ensure the output property exists and has an emit function before adding listener
7679
7823
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
7680
7824
  // Cast the listener to the correct type to satisfy TypeScript
7681
- wcElement.addEventListener(eventName, (e) => {
7825
+ const listener = (e) => {
7682
7826
  this[outputName].emit(e);
7683
- });
7827
+ };
7828
+ wcElement.addEventListener(eventName, listener);
7829
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
7684
7830
  }
7685
7831
  }
7832
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
7686
7833
  }
7687
7834
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Link, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7688
7835
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Link, isStandalone: true, selector: "ui5-link, [ui5-link]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: "endIcon", publicName: "endIcon", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, interactiveAreaSize: { classPropertyName: "interactiveAreaSize", publicName: "interactiveAreaSize", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
7689
7836
  contentDensityObserverProviders({
7690
7837
  supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
7691
7838
  })
7692
- ], exportAs: ["ui5Link"], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7839
+ ], exportAs: ["ui5Link"], hostDirectives: [{ directive: i1.Ui5RouterLinkBridgeDirective }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7693
7840
  }
7694
7841
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Link, decorators: [{
7695
7842
  type: Component,
@@ -7698,6 +7845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
7698
7845
  selector: 'ui5-link, [ui5-link]',
7699
7846
  template: '<ng-content></ng-content>',
7700
7847
  exportAs: 'ui5Link',
7848
+ hostDirectives: [Ui5RouterLinkBridgeDirective],
7701
7849
  providers: [
7702
7850
  contentDensityObserverProviders({
7703
7851
  supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
@@ -7912,6 +8060,7 @@ class List {
7912
8060
  * @private
7913
8061
  */
7914
8062
  this._contentDensityObserver = inject(ContentDensityObserver);
8063
+ this._destroyRef = inject(DestroyRef);
7915
8064
  }
7916
8065
  /**
7917
8066
  * Returns an array containing the list item instances without the groups in a flat structure.
@@ -7978,17 +8127,21 @@ class List {
7978
8127
  'ui5SelectionChange',
7979
8128
  ];
7980
8129
  // Synchronize outputs (events)
8130
+ const _listeners = [];
7981
8131
  for (const outputName of outputsToSync) {
7982
8132
  // Map Angular output name to UI5 web component event name
7983
8133
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
7984
8134
  // Ensure the output property exists and has an emit function before adding listener
7985
8135
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
7986
8136
  // Cast the listener to the correct type to satisfy TypeScript
7987
- wcElement.addEventListener(eventName, (e) => {
8137
+ const listener = (e) => {
7988
8138
  this[outputName].emit(e);
7989
- });
8139
+ };
8140
+ wcElement.addEventListener(eventName, listener);
8141
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
7990
8142
  }
7991
8143
  }
8144
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
7992
8145
  }
7993
8146
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: List, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7994
8147
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: List, isStandalone: true, selector: "ui5-list, [ui5-list]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, footerText: { classPropertyName: "footerText", publicName: "footerText", isSignal: true, isRequired: false, transformFunction: null }, growing: { classPropertyName: "growing", publicName: "growing", isSignal: true, isRequired: false, transformFunction: null }, growingButtonText: { classPropertyName: "growingButtonText", publicName: "growingButtonText", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, indent: { classPropertyName: "indent", publicName: "indent", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, noDataText: { classPropertyName: "noDataText", publicName: "noDataText", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, separators: { classPropertyName: "separators", publicName: "separators", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5ItemClick: "ui5ItemClick", ui5ItemClose: "ui5ItemClose", ui5ItemDelete: "ui5ItemDelete", ui5ItemToggle: "ui5ItemToggle", ui5LoadMore: "ui5LoadMore", ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver", ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -8069,10 +8222,13 @@ class ListItemCustom {
8069
8222
  ...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
8070
8223
  /**
8071
8224
  * Defines the visual indication and behavior of the list items.
8072
- Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
8225
+ Available options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.
8073
8226
 
8074
8227
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
8075
- while with type `Inactive` and `Detail` - will not.
8228
+ while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
8229
+
8230
+ **Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled
8231
+ when the list has a selection mode. The `item-click` event is not fired for this type.
8076
8232
  */
8077
8233
  this.type = input("Active", /* @ts-ignore */
8078
8234
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ [])); // className is now passed
@@ -8128,6 +8284,7 @@ class ListItemCustom {
8128
8284
  * @private
8129
8285
  */
8130
8286
  this._contentDensityObserver = inject(ContentDensityObserver);
8287
+ this._destroyRef = inject(DestroyRef);
8131
8288
  }
8132
8289
  get element() {
8133
8290
  return this.elementRef.nativeElement;
@@ -8173,17 +8330,21 @@ class ListItemCustom {
8173
8330
  'ui5DetailClick',
8174
8331
  ];
8175
8332
  // Synchronize outputs (events)
8333
+ const _listeners = [];
8176
8334
  for (const outputName of outputsToSync) {
8177
8335
  // Map Angular output name to UI5 web component event name
8178
8336
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
8179
8337
  // Ensure the output property exists and has an emit function before adding listener
8180
8338
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
8181
8339
  // Cast the listener to the correct type to satisfy TypeScript
8182
- wcElement.addEventListener(eventName, (e) => {
8340
+ const listener = (e) => {
8183
8341
  this[outputName].emit(e);
8184
- });
8342
+ };
8343
+ wcElement.addEventListener(eventName, listener);
8344
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
8185
8345
  }
8186
8346
  }
8347
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
8187
8348
  }
8188
8349
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListItemCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8189
8350
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ListItemCustom, isStandalone: true, selector: "ui5-li-custom, [ui5-li-custom]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, navigated: { classPropertyName: "navigated", publicName: "navigated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5DetailClick: "ui5DetailClick" }, providers: [
@@ -8287,6 +8448,7 @@ class ListItemGroup {
8287
8448
  * @private
8288
8449
  */
8289
8450
  this._contentDensityObserver = inject(ContentDensityObserver);
8451
+ this._destroyRef = inject(DestroyRef);
8290
8452
  }
8291
8453
  get element() {
8292
8454
  return this.elementRef.nativeElement;
@@ -8326,17 +8488,21 @@ class ListItemGroup {
8326
8488
  'ui5MoveOver',
8327
8489
  ];
8328
8490
  // Synchronize outputs (events)
8491
+ const _listeners = [];
8329
8492
  for (const outputName of outputsToSync) {
8330
8493
  // Map Angular output name to UI5 web component event name
8331
8494
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
8332
8495
  // Ensure the output property exists and has an emit function before adding listener
8333
8496
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
8334
8497
  // Cast the listener to the correct type to satisfy TypeScript
8335
- wcElement.addEventListener(eventName, (e) => {
8498
+ const listener = (e) => {
8336
8499
  this[outputName].emit(e);
8337
- });
8500
+ };
8501
+ wcElement.addEventListener(eventName, listener);
8502
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
8338
8503
  }
8339
8504
  }
8505
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
8340
8506
  }
8341
8507
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8342
8508
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ListItemGroup, isStandalone: true, selector: "ui5-li-group, [ui5-li-group]", inputs: { headerAccessibleName: { classPropertyName: "headerAccessibleName", publicName: "headerAccessibleName", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver" }, providers: [
@@ -8426,6 +8592,7 @@ class ListItemGroupHeader {
8426
8592
  * @private
8427
8593
  */
8428
8594
  this._contentDensityObserver = inject(ContentDensityObserver);
8595
+ this._destroyRef = inject(DestroyRef);
8429
8596
  }
8430
8597
  get element() {
8431
8598
  return this.elementRef.nativeElement;
@@ -8463,17 +8630,21 @@ class ListItemGroupHeader {
8463
8630
  'ui5Click',
8464
8631
  ];
8465
8632
  // Synchronize outputs (events)
8633
+ const _listeners = [];
8466
8634
  for (const outputName of outputsToSync) {
8467
8635
  // Map Angular output name to UI5 web component event name
8468
8636
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
8469
8637
  // Ensure the output property exists and has an emit function before adding listener
8470
8638
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
8471
8639
  // Cast the listener to the correct type to satisfy TypeScript
8472
- wcElement.addEventListener(eventName, (e) => {
8640
+ const listener = (e) => {
8473
8641
  this[outputName].emit(e);
8474
- });
8642
+ };
8643
+ wcElement.addEventListener(eventName, listener);
8644
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
8475
8645
  }
8476
8646
  }
8647
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
8477
8648
  }
8478
8649
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListItemGroupHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8479
8650
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ListItemGroupHeader, isStandalone: true, selector: "ui5-li-group-header, [ui5-li-group-header]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -8588,10 +8759,13 @@ class ListItemStandard {
8588
8759
  ...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
8589
8760
  /**
8590
8761
  * Defines the visual indication and behavior of the list items.
8591
- Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
8762
+ Available options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.
8592
8763
 
8593
8764
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
8594
- while with type `Inactive` and `Detail` - will not.
8765
+ while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
8766
+
8767
+ **Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled
8768
+ when the list has a selection mode. The `item-click` event is not fired for this type.
8595
8769
  */
8596
8770
  this.type = input("Active", /* @ts-ignore */
8597
8771
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
@@ -8679,6 +8853,7 @@ class ListItemStandard {
8679
8853
  * @private
8680
8854
  */
8681
8855
  this._contentDensityObserver = inject(ContentDensityObserver);
8856
+ this._destroyRef = inject(DestroyRef);
8682
8857
  }
8683
8858
  get element() {
8684
8859
  return this.elementRef.nativeElement;
@@ -8731,17 +8906,21 @@ class ListItemStandard {
8731
8906
  'ui5DetailClick',
8732
8907
  ];
8733
8908
  // Synchronize outputs (events)
8909
+ const _listeners = [];
8734
8910
  for (const outputName of outputsToSync) {
8735
8911
  // Map Angular output name to UI5 web component event name
8736
8912
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
8737
8913
  // Ensure the output property exists and has an emit function before adding listener
8738
8914
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
8739
8915
  // Cast the listener to the correct type to satisfy TypeScript
8740
- wcElement.addEventListener(eventName, (e) => {
8916
+ const listener = (e) => {
8741
8917
  this[outputName].emit(e);
8742
- });
8918
+ };
8919
+ wcElement.addEventListener(eventName, listener);
8920
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
8743
8921
  }
8744
8922
  }
8923
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
8745
8924
  }
8746
8925
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListItemStandard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8747
8926
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ListItemStandard, isStandalone: true, selector: "ui5-li, [ui5-li]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, additionalTextState: { classPropertyName: "additionalTextState", publicName: "additionalTextState", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconEnd: { classPropertyName: "iconEnd", publicName: "iconEnd", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, navigated: { classPropertyName: "navigated", publicName: "navigated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5DetailClick: "ui5DetailClick" }, providers: [
@@ -8862,6 +9041,7 @@ class Menu {
8862
9041
  * @private
8863
9042
  */
8864
9043
  this._contentDensityObserver = inject(ContentDensityObserver);
9044
+ this._destroyRef = inject(DestroyRef);
8865
9045
  }
8866
9046
  get element() {
8867
9047
  return this.elementRef.nativeElement;
@@ -8908,17 +9088,21 @@ class Menu {
8908
9088
  'ui5Open',
8909
9089
  ];
8910
9090
  // Synchronize outputs (events)
9091
+ const _listeners = [];
8911
9092
  for (const outputName of outputsToSync) {
8912
9093
  // Map Angular output name to UI5 web component event name
8913
9094
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
8914
9095
  // Ensure the output property exists and has an emit function before adding listener
8915
9096
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
8916
9097
  // Cast the listener to the correct type to satisfy TypeScript
8917
- wcElement.addEventListener(eventName, (e) => {
9098
+ const listener = (e) => {
8918
9099
  this[outputName].emit(e);
8919
- });
9100
+ };
9101
+ wcElement.addEventListener(eventName, listener);
9102
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
8920
9103
  }
8921
9104
  }
9105
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
8922
9106
  }
8923
9107
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Menu, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8924
9108
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Menu, isStandalone: true, selector: "ui5-menu, [ui5-menu]", inputs: { headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, horizontalAlign: { classPropertyName: "horizontalAlign", publicName: "horizontalAlign", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, opener: { classPropertyName: "opener", publicName: "opener", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5BeforeClose: "ui5BeforeClose", ui5BeforeOpen: "ui5BeforeOpen", ui5Close: "ui5Close", ui5ItemClick: "ui5ItemClick", ui5Open: "ui5Open" }, providers: [
@@ -9043,10 +9227,13 @@ class MenuItem {
9043
9227
  ...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
9044
9228
  /**
9045
9229
  * Defines the visual indication and behavior of the list items.
9046
- Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
9230
+ Available options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.
9047
9231
 
9048
9232
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
9049
- while with type `Inactive` and `Detail` - will not.
9233
+ while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
9234
+
9235
+ **Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled
9236
+ when the list has a selection mode. The `item-click` event is not fired for this type.
9050
9237
  */
9051
9238
  this.type = input("Active", /* @ts-ignore */
9052
9239
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ [])); // className is now passed
@@ -9151,6 +9338,7 @@ class MenuItem {
9151
9338
  * @private
9152
9339
  */
9153
9340
  this._contentDensityObserver = inject(ContentDensityObserver);
9341
+ this._destroyRef = inject(DestroyRef);
9154
9342
  }
9155
9343
  get element() {
9156
9344
  return this.elementRef.nativeElement;
@@ -9207,17 +9395,21 @@ class MenuItem {
9207
9395
  'ui5Open',
9208
9396
  ];
9209
9397
  // Synchronize outputs (events)
9398
+ const _listeners = [];
9210
9399
  for (const outputName of outputsToSync) {
9211
9400
  // Map Angular output name to UI5 web component event name
9212
9401
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
9213
9402
  // Ensure the output property exists and has an emit function before adding listener
9214
9403
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
9215
9404
  // Cast the listener to the correct type to satisfy TypeScript
9216
- wcElement.addEventListener(eventName, (e) => {
9405
+ const listener = (e) => {
9217
9406
  this[outputName].emit(e);
9218
- });
9407
+ };
9408
+ wcElement.addEventListener(eventName, listener);
9409
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
9219
9410
  }
9220
9411
  }
9412
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
9221
9413
  }
9222
9414
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9223
9415
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MenuItem, isStandalone: true, selector: "ui5-menu-item, [ui5-menu-item]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, navigated: { classPropertyName: "navigated", publicName: "navigated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5BeforeClose: "ui5BeforeClose", ui5BeforeOpen: "ui5BeforeOpen", ui5Check: "ui5Check", ui5Click: "ui5Click", ui5Close: "ui5Close", ui5DetailClick: "ui5DetailClick", ui5Open: "ui5Open" }, providers: [
@@ -9455,6 +9647,7 @@ class MessageStrip {
9455
9647
  * @private
9456
9648
  */
9457
9649
  this._contentDensityObserver = inject(ContentDensityObserver);
9650
+ this._destroyRef = inject(DestroyRef);
9458
9651
  }
9459
9652
  get element() {
9460
9653
  return this.elementRef.nativeElement;
@@ -9494,17 +9687,21 @@ class MessageStrip {
9494
9687
  'ui5Close',
9495
9688
  ];
9496
9689
  // Synchronize outputs (events)
9690
+ const _listeners = [];
9497
9691
  for (const outputName of outputsToSync) {
9498
9692
  // Map Angular output name to UI5 web component event name
9499
9693
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
9500
9694
  // Ensure the output property exists and has an emit function before adding listener
9501
9695
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
9502
9696
  // Cast the listener to the correct type to satisfy TypeScript
9503
- wcElement.addEventListener(eventName, (e) => {
9697
+ const listener = (e) => {
9504
9698
  this[outputName].emit(e);
9505
- });
9699
+ };
9700
+ wcElement.addEventListener(eventName, listener);
9701
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
9506
9702
  }
9507
9703
  }
9704
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
9508
9705
  }
9509
9706
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MessageStrip, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9510
9707
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MessageStrip, isStandalone: true, selector: "ui5-message-strip, [ui5-message-strip]", inputs: { colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, hideCloseButton: { classPropertyName: "hideCloseButton", publicName: "hideCloseButton", isSignal: true, isRequired: false, transformFunction: null }, hideIcon: { classPropertyName: "hideIcon", publicName: "hideIcon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Close: "ui5Close" }, providers: [
@@ -9730,6 +9927,9 @@ class MultiComboBox {
9730
9927
  ...(ngDevMode ? [{ debugName: "selectedValues" }] : /* istanbul ignore next */ []));
9731
9928
  /**
9732
9929
  * Defines whether the clear icon of the multi-combobox will be shown.
9930
+
9931
+ **Note:** The clear icon is only visible when there is text typed by the user
9932
+ and only clears the typed value, not the selected tokens.
9733
9933
  */
9734
9934
  this.showClearIcon = input(false, { ...(ngDevMode ? { debugName: "showClearIcon" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
9735
9935
  /**
@@ -9825,6 +10025,7 @@ class MultiComboBox {
9825
10025
  * @private
9826
10026
  */
9827
10027
  this._contentDensityObserver = inject(ContentDensityObserver);
10028
+ this._destroyRef = inject(DestroyRef);
9828
10029
  }
9829
10030
  get element() {
9830
10031
  return this.elementRef.nativeElement;
@@ -9882,17 +10083,21 @@ class MultiComboBox {
9882
10083
  'ui5ValueStateChange',
9883
10084
  ];
9884
10085
  // Synchronize outputs (events)
10086
+ const _listeners = [];
9885
10087
  for (const outputName of outputsToSync) {
9886
10088
  // Map Angular output name to UI5 web component event name
9887
10089
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
9888
10090
  // Ensure the output property exists and has an emit function before adding listener
9889
10091
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
9890
10092
  // Cast the listener to the correct type to satisfy TypeScript
9891
- wcElement.addEventListener(eventName, (e) => {
10093
+ const listener = (e) => {
9892
10094
  this[outputName].emit(e);
9893
- });
10095
+ };
10096
+ wcElement.addEventListener(eventName, listener);
10097
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
9894
10098
  }
9895
10099
  }
10100
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
9896
10101
  }
9897
10102
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9898
10103
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiComboBox, isStandalone: true, selector: "ui5-multi-combobox, [ui5-multi-combobox]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, noValidation: { classPropertyName: "noValidation", publicName: "noValidation", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showSelectAll: { classPropertyName: "showSelectAll", publicName: "showSelectAll", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5SelectionChange: "ui5SelectionChange", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [
@@ -9907,7 +10112,7 @@ class MultiComboBox {
9907
10112
  transformValue: (v) => v || ''
9908
10113
  }
9909
10114
  }
9910
- ], exportAs: ["ui5MultiComboBox"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10115
+ ], exportAs: ["ui5MultiComboBox"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9911
10116
  }
9912
10117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBox, decorators: [{
9913
10118
  type: Component,
@@ -9973,6 +10178,7 @@ class MultiComboBoxItem {
9973
10178
  * @private
9974
10179
  */
9975
10180
  this._contentDensityObserver = inject(ContentDensityObserver);
10181
+ this._destroyRef = inject(DestroyRef);
9976
10182
  }
9977
10183
  get element() {
9978
10184
  return this.elementRef.nativeElement;
@@ -10012,17 +10218,21 @@ class MultiComboBoxItem {
10012
10218
  'ui5Click',
10013
10219
  ];
10014
10220
  // Synchronize outputs (events)
10221
+ const _listeners = [];
10015
10222
  for (const outputName of outputsToSync) {
10016
10223
  // Map Angular output name to UI5 web component event name
10017
10224
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
10018
10225
  // Ensure the output property exists and has an emit function before adding listener
10019
10226
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
10020
10227
  // Cast the listener to the correct type to satisfy TypeScript
10021
- wcElement.addEventListener(eventName, (e) => {
10228
+ const listener = (e) => {
10022
10229
  this[outputName].emit(e);
10023
- });
10230
+ };
10231
+ wcElement.addEventListener(eventName, listener);
10232
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
10024
10233
  }
10025
10234
  }
10235
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
10026
10236
  }
10027
10237
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBoxItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10028
10238
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiComboBoxItem, isStandalone: true, selector: "ui5-mcb-item, [ui5-mcb-item]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -10100,6 +10310,7 @@ class MultiComboBoxItemCustom {
10100
10310
  * @private
10101
10311
  */
10102
10312
  this._contentDensityObserver = inject(ContentDensityObserver);
10313
+ this._destroyRef = inject(DestroyRef);
10103
10314
  }
10104
10315
  get element() {
10105
10316
  return this.elementRef.nativeElement;
@@ -10137,17 +10348,21 @@ class MultiComboBoxItemCustom {
10137
10348
  'ui5Click',
10138
10349
  ];
10139
10350
  // Synchronize outputs (events)
10351
+ const _listeners = [];
10140
10352
  for (const outputName of outputsToSync) {
10141
10353
  // Map Angular output name to UI5 web component event name
10142
10354
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
10143
10355
  // Ensure the output property exists and has an emit function before adding listener
10144
10356
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
10145
10357
  // Cast the listener to the correct type to satisfy TypeScript
10146
- wcElement.addEventListener(eventName, (e) => {
10358
+ const listener = (e) => {
10147
10359
  this[outputName].emit(e);
10148
- });
10360
+ };
10361
+ wcElement.addEventListener(eventName, listener);
10362
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
10149
10363
  }
10150
10364
  }
10365
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
10151
10366
  }
10152
10367
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBoxItemCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10153
10368
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiComboBoxItemCustom, isStandalone: true, selector: "ui5-mcb-item-custom, [ui5-mcb-item-custom]", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -10251,6 +10466,7 @@ class MultiComboBoxItemGroup {
10251
10466
  * @private
10252
10467
  */
10253
10468
  this._contentDensityObserver = inject(ContentDensityObserver);
10469
+ this._destroyRef = inject(DestroyRef);
10254
10470
  }
10255
10471
  get element() {
10256
10472
  return this.elementRef.nativeElement;
@@ -10290,17 +10506,21 @@ class MultiComboBoxItemGroup {
10290
10506
  'ui5MoveOver',
10291
10507
  ];
10292
10508
  // Synchronize outputs (events)
10509
+ const _listeners = [];
10293
10510
  for (const outputName of outputsToSync) {
10294
10511
  // Map Angular output name to UI5 web component event name
10295
10512
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
10296
10513
  // Ensure the output property exists and has an emit function before adding listener
10297
10514
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
10298
10515
  // Cast the listener to the correct type to satisfy TypeScript
10299
- wcElement.addEventListener(eventName, (e) => {
10516
+ const listener = (e) => {
10300
10517
  this[outputName].emit(e);
10301
- });
10518
+ };
10519
+ wcElement.addEventListener(eventName, listener);
10520
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
10302
10521
  }
10303
10522
  }
10523
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
10304
10524
  }
10305
10525
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBoxItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10306
10526
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiComboBoxItemGroup, isStandalone: true, selector: "ui5-mcb-item-group, [ui5-mcb-item-group]", inputs: { headerAccessibleName: { classPropertyName: "headerAccessibleName", publicName: "headerAccessibleName", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver" }, providers: [
@@ -10539,6 +10759,7 @@ class MultiInput {
10539
10759
  * @private
10540
10760
  */
10541
10761
  this._contentDensityObserver = inject(ContentDensityObserver);
10762
+ this._destroyRef = inject(DestroyRef);
10542
10763
  }
10543
10764
  get element() {
10544
10765
  return this.elementRef.nativeElement;
@@ -10600,17 +10821,21 @@ class MultiInput {
10600
10821
  'ui5ValueHelpTrigger',
10601
10822
  ];
10602
10823
  // Synchronize outputs (events)
10824
+ const _listeners = [];
10603
10825
  for (const outputName of outputsToSync) {
10604
10826
  // Map Angular output name to UI5 web component event name
10605
10827
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
10606
10828
  // Ensure the output property exists and has an emit function before adding listener
10607
10829
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
10608
10830
  // Cast the listener to the correct type to satisfy TypeScript
10609
- wcElement.addEventListener(eventName, (e) => {
10831
+ const listener = (e) => {
10610
10832
  this[outputName].emit(e);
10611
- });
10833
+ };
10834
+ wcElement.addEventListener(eventName, listener);
10835
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
10612
10836
  }
10613
10837
  }
10838
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
10614
10839
  }
10615
10840
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10616
10841
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiInput, isStandalone: true, selector: "ui5-multi-input, [ui5-multi-input]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showSuggestions: { classPropertyName: "showSuggestions", publicName: "showSuggestions", isSignal: true, isRequired: false, transformFunction: null }, showValueHelpIcon: { classPropertyName: "showValueHelpIcon", publicName: "showValueHelpIcon", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5Select: "ui5Select", ui5SelectionChange: "ui5SelectionChange", ui5TokenDelete: "ui5TokenDelete", ui5ValueHelpTrigger: "ui5ValueHelpTrigger" }, providers: [
@@ -10625,7 +10850,7 @@ class MultiInput {
10625
10850
  transformValue: (v) => v || ''
10626
10851
  }
10627
10852
  }
10628
- ], exportAs: ["ui5MultiInput"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10853
+ ], exportAs: ["ui5MultiInput"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10629
10854
  }
10630
10855
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiInput, decorators: [{
10631
10856
  type: Component,
@@ -10724,6 +10949,7 @@ class Option {
10724
10949
  * @private
10725
10950
  */
10726
10951
  this._contentDensityObserver = inject(ContentDensityObserver);
10952
+ this._destroyRef = inject(DestroyRef);
10727
10953
  }
10728
10954
  get element() {
10729
10955
  return this.elementRef.nativeElement;
@@ -10764,17 +10990,21 @@ class Option {
10764
10990
  'ui5Click',
10765
10991
  ];
10766
10992
  // Synchronize outputs (events)
10993
+ const _listeners = [];
10767
10994
  for (const outputName of outputsToSync) {
10768
10995
  // Map Angular output name to UI5 web component event name
10769
10996
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
10770
10997
  // Ensure the output property exists and has an emit function before adding listener
10771
10998
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
10772
10999
  // Cast the listener to the correct type to satisfy TypeScript
10773
- wcElement.addEventListener(eventName, (e) => {
11000
+ const listener = (e) => {
10774
11001
  this[outputName].emit(e);
10775
- });
11002
+ };
11003
+ wcElement.addEventListener(eventName, listener);
11004
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
10776
11005
  }
10777
11006
  }
11007
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
10778
11008
  }
10779
11009
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Option, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10780
11010
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Option, isStandalone: true, selector: "ui5-option, [ui5-option]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -10861,6 +11091,7 @@ class OptionCustom {
10861
11091
  * @private
10862
11092
  */
10863
11093
  this._contentDensityObserver = inject(ContentDensityObserver);
11094
+ this._destroyRef = inject(DestroyRef);
10864
11095
  }
10865
11096
  get element() {
10866
11097
  return this.elementRef.nativeElement;
@@ -10900,17 +11131,21 @@ class OptionCustom {
10900
11131
  'ui5Click',
10901
11132
  ];
10902
11133
  // Synchronize outputs (events)
11134
+ const _listeners = [];
10903
11135
  for (const outputName of outputsToSync) {
10904
11136
  // Map Angular output name to UI5 web component event name
10905
11137
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
10906
11138
  // Ensure the output property exists and has an emit function before adding listener
10907
11139
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
10908
11140
  // Cast the listener to the correct type to satisfy TypeScript
10909
- wcElement.addEventListener(eventName, (e) => {
11141
+ const listener = (e) => {
10910
11142
  this[outputName].emit(e);
10911
- });
11143
+ };
11144
+ wcElement.addEventListener(eventName, listener);
11145
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
10912
11146
  }
10913
11147
  }
11148
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
10914
11149
  }
10915
11150
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: OptionCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10916
11151
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: OptionCustom, isStandalone: true, selector: "ui5-option-custom, [ui5-option-custom]", inputs: { displayText: { classPropertyName: "displayText", publicName: "displayText", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -11027,6 +11262,7 @@ class Panel {
11027
11262
  * @private
11028
11263
  */
11029
11264
  this._contentDensityObserver = inject(ContentDensityObserver);
11265
+ this._destroyRef = inject(DestroyRef);
11030
11266
  }
11031
11267
  get element() {
11032
11268
  return this.elementRef.nativeElement;
@@ -11070,17 +11306,21 @@ class Panel {
11070
11306
  'ui5Toggle',
11071
11307
  ];
11072
11308
  // Synchronize outputs (events)
11309
+ const _listeners = [];
11073
11310
  for (const outputName of outputsToSync) {
11074
11311
  // Map Angular output name to UI5 web component event name
11075
11312
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
11076
11313
  // Ensure the output property exists and has an emit function before adding listener
11077
11314
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
11078
11315
  // Cast the listener to the correct type to satisfy TypeScript
11079
- wcElement.addEventListener(eventName, (e) => {
11316
+ const listener = (e) => {
11080
11317
  this[outputName].emit(e);
11081
- });
11318
+ };
11319
+ wcElement.addEventListener(eventName, listener);
11320
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
11082
11321
  }
11083
11322
  }
11323
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
11084
11324
  }
11085
11325
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Panel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11086
11326
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Panel, isStandalone: true, selector: "ui5-panel, [ui5-panel]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, fixed: { classPropertyName: "fixed", publicName: "fixed", isSignal: true, isRequired: false, transformFunction: null }, headerLevel: { classPropertyName: "headerLevel", publicName: "headerLevel", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, noAnimation: { classPropertyName: "noAnimation", publicName: "noAnimation", isSignal: true, isRequired: false, transformFunction: null }, stickyHeader: { classPropertyName: "stickyHeader", publicName: "stickyHeader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Toggle: "ui5Toggle" }, providers: [
@@ -11261,6 +11501,7 @@ class Popover {
11261
11501
  * @private
11262
11502
  */
11263
11503
  this._contentDensityObserver = inject(ContentDensityObserver);
11504
+ this._destroyRef = inject(DestroyRef);
11264
11505
  }
11265
11506
  get element() {
11266
11507
  return this.elementRef.nativeElement;
@@ -11317,17 +11558,21 @@ class Popover {
11317
11558
  'ui5Open',
11318
11559
  ];
11319
11560
  // Synchronize outputs (events)
11561
+ const _listeners = [];
11320
11562
  for (const outputName of outputsToSync) {
11321
11563
  // Map Angular output name to UI5 web component event name
11322
11564
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
11323
11565
  // Ensure the output property exists and has an emit function before adding listener
11324
11566
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
11325
11567
  // Cast the listener to the correct type to satisfy TypeScript
11326
- wcElement.addEventListener(eventName, (e) => {
11568
+ const listener = (e) => {
11327
11569
  this[outputName].emit(e);
11328
- });
11570
+ };
11571
+ wcElement.addEventListener(eventName, listener);
11572
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
11329
11573
  }
11330
11574
  }
11575
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
11331
11576
  }
11332
11577
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Popover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11333
11578
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Popover, isStandalone: true, selector: "ui5-popover, [ui5-popover]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, allowTargetOverlap: { classPropertyName: "allowTargetOverlap", publicName: "allowTargetOverlap", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, hideArrow: { classPropertyName: "hideArrow", publicName: "hideArrow", isSignal: true, isRequired: false, transformFunction: null }, horizontalAlign: { classPropertyName: "horizontalAlign", publicName: "horizontalAlign", isSignal: true, isRequired: false, transformFunction: null }, initialFocus: { classPropertyName: "initialFocus", publicName: "initialFocus", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, opener: { classPropertyName: "opener", publicName: "opener", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, preventFocusRestore: { classPropertyName: "preventFocusRestore", publicName: "preventFocusRestore", isSignal: true, isRequired: false, transformFunction: null }, preventInitialFocus: { classPropertyName: "preventInitialFocus", publicName: "preventInitialFocus", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, verticalAlign: { classPropertyName: "verticalAlign", publicName: "verticalAlign", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5BeforeClose: "ui5BeforeClose", ui5BeforeOpen: "ui5BeforeOpen", ui5Close: "ui5Close", ui5Open: "ui5Open" }, providers: [
@@ -11543,6 +11788,7 @@ class RadioButton {
11543
11788
  * @private
11544
11789
  */
11545
11790
  this._contentDensityObserver = inject(ContentDensityObserver);
11791
+ this._destroyRef = inject(DestroyRef);
11546
11792
  }
11547
11793
  get element() {
11548
11794
  return this.elementRef.nativeElement;
@@ -11589,17 +11835,21 @@ class RadioButton {
11589
11835
  'ui5Change',
11590
11836
  ];
11591
11837
  // Synchronize outputs (events)
11838
+ const _listeners = [];
11592
11839
  for (const outputName of outputsToSync) {
11593
11840
  // Map Angular output name to UI5 web component event name
11594
11841
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
11595
11842
  // Ensure the output property exists and has an emit function before adding listener
11596
11843
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
11597
11844
  // Cast the listener to the correct type to satisfy TypeScript
11598
- wcElement.addEventListener(eventName, (e) => {
11845
+ const listener = (e) => {
11599
11846
  this[outputName].emit(e);
11600
- });
11847
+ };
11848
+ wcElement.addEventListener(eventName, listener);
11849
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
11601
11850
  }
11602
11851
  }
11852
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
11603
11853
  }
11604
11854
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RadioButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11605
11855
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RadioButton, isStandalone: true, selector: "ui5-radio-button, [ui5-radio-button]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -11614,7 +11864,7 @@ class RadioButton {
11614
11864
  isRadioButton: true
11615
11865
  }
11616
11866
  }
11617
- ], exportAs: ["ui5RadioButton"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11867
+ ], exportAs: ["ui5RadioButton"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11618
11868
  }
11619
11869
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RadioButton, decorators: [{
11620
11870
  type: Component,
@@ -11748,6 +11998,7 @@ class RangeSlider {
11748
11998
  * @private
11749
11999
  */
11750
12000
  this._contentDensityObserver = inject(ContentDensityObserver);
12001
+ this._destroyRef = inject(DestroyRef);
11751
12002
  }
11752
12003
  get element() {
11753
12004
  return this.elementRef.nativeElement;
@@ -11797,17 +12048,21 @@ class RangeSlider {
11797
12048
  'ui5Input',
11798
12049
  ];
11799
12050
  // Synchronize outputs (events)
12051
+ const _listeners = [];
11800
12052
  for (const outputName of outputsToSync) {
11801
12053
  // Map Angular output name to UI5 web component event name
11802
12054
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
11803
12055
  // Ensure the output property exists and has an emit function before adding listener
11804
12056
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
11805
12057
  // Cast the listener to the correct type to satisfy TypeScript
11806
- wcElement.addEventListener(eventName, (e) => {
12058
+ const listener = (e) => {
11807
12059
  this[outputName].emit(e);
11808
- });
12060
+ };
12061
+ wcElement.addEventListener(eventName, listener);
12062
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
11809
12063
  }
11810
12064
  }
12065
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
11811
12066
  }
11812
12067
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RangeSlider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11813
12068
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RangeSlider, isStandalone: true, selector: "ui5-range-slider, [ui5-range-slider]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editableTooltip: { classPropertyName: "editableTooltip", publicName: "editableTooltip", isSignal: true, isRequired: false, transformFunction: null }, endValue: { classPropertyName: "endValue", publicName: "endValue", isSignal: true, isRequired: false, transformFunction: null }, labelInterval: { classPropertyName: "labelInterval", publicName: "labelInterval", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, showTickmarks: { classPropertyName: "showTickmarks", publicName: "showTickmarks", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, startValue: { classPropertyName: "startValue", publicName: "startValue", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, tickmarks: { classPropertyName: "tickmarks", publicName: "tickmarks", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Input: "ui5Input" }, providers: [
@@ -11822,7 +12077,7 @@ class RangeSlider {
11822
12077
  transformValue: (v) => v || ''
11823
12078
  }
11824
12079
  }
11825
- ], exportAs: ["ui5RangeSlider"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12080
+ ], exportAs: ["ui5RangeSlider"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11826
12081
  }
11827
12082
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RangeSlider, decorators: [{
11828
12083
  type: Component,
@@ -11867,6 +12122,13 @@ class RatingIndicator {
11867
12122
  **Note:** A disabled component is completely noninteractive.
11868
12123
  */
11869
12124
  this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
12125
+ /**
12126
+ * Defines whether the component is in display-only mode.
12127
+
12128
+ **Note:** A display-only component is visually identical to read-only
12129
+ but cannot receive focus and is not announced by screen readers.
12130
+ */
12131
+ this.displayOnly = input(false, { ...(ngDevMode ? { debugName: "displayOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
11870
12132
  /**
11871
12133
  * The number of displayed rating symbols.
11872
12134
  */
@@ -11926,6 +12188,7 @@ class RatingIndicator {
11926
12188
  * @private
11927
12189
  */
11928
12190
  this._contentDensityObserver = inject(ContentDensityObserver);
12191
+ this._destroyRef = inject(DestroyRef);
11929
12192
  }
11930
12193
  get element() {
11931
12194
  return this.elementRef.nativeElement;
@@ -11936,6 +12199,7 @@ class RatingIndicator {
11936
12199
  'accessibleName',
11937
12200
  'accessibleNameRef',
11938
12201
  'disabled',
12202
+ 'displayOnly',
11939
12203
  'max',
11940
12204
  'ratedIcon',
11941
12205
  'readonly',
@@ -11972,20 +12236,24 @@ class RatingIndicator {
11972
12236
  'ui5Change',
11973
12237
  ];
11974
12238
  // Synchronize outputs (events)
12239
+ const _listeners = [];
11975
12240
  for (const outputName of outputsToSync) {
11976
12241
  // Map Angular output name to UI5 web component event name
11977
12242
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
11978
12243
  // Ensure the output property exists and has an emit function before adding listener
11979
12244
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
11980
12245
  // Cast the listener to the correct type to satisfy TypeScript
11981
- wcElement.addEventListener(eventName, (e) => {
12246
+ const listener = (e) => {
11982
12247
  this[outputName].emit(e);
11983
- });
12248
+ };
12249
+ wcElement.addEventListener(eventName, listener);
12250
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
11984
12251
  }
11985
12252
  }
12253
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
11986
12254
  }
11987
12255
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RatingIndicator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11988
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RatingIndicator, isStandalone: true, selector: "ui5-rating-indicator, [ui5-rating-indicator]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, ratedIcon: { classPropertyName: "ratedIcon", publicName: "ratedIcon", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, unratedIcon: { classPropertyName: "unratedIcon", publicName: "unratedIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
12256
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: RatingIndicator, isStandalone: true, selector: "ui5-rating-indicator, [ui5-rating-indicator]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayOnly: { classPropertyName: "displayOnly", publicName: "displayOnly", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, ratedIcon: { classPropertyName: "ratedIcon", publicName: "ratedIcon", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, unratedIcon: { classPropertyName: "unratedIcon", publicName: "unratedIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
11989
12257
  contentDensityObserverProviders({
11990
12258
  supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]
11991
12259
  })
@@ -12005,7 +12273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
12005
12273
  ],
12006
12274
  changeDetection: ChangeDetectionStrategy.OnPush,
12007
12275
  }]
12008
- }], propDecorators: { accessibleName: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleName", required: false }] }], accessibleNameRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleNameRef", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], ratedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratedIcon", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], unratedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "unratedIcon", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], ui5Change: [{ type: i0.Output, args: ["ui5Change"] }] } });
12276
+ }], propDecorators: { accessibleName: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleName", required: false }] }], accessibleNameRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "accessibleNameRef", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], displayOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayOnly", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], ratedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "ratedIcon", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], unratedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "unratedIcon", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], ui5Change: [{ type: i0.Output, args: ["ui5Change"] }] } });
12009
12277
 
12010
12278
  class ResponsivePopover {
12011
12279
  constructor() {
@@ -12163,6 +12431,7 @@ class ResponsivePopover {
12163
12431
  * @private
12164
12432
  */
12165
12433
  this._contentDensityObserver = inject(ContentDensityObserver);
12434
+ this._destroyRef = inject(DestroyRef);
12166
12435
  }
12167
12436
  get element() {
12168
12437
  return this.elementRef.nativeElement;
@@ -12219,17 +12488,21 @@ class ResponsivePopover {
12219
12488
  'ui5Open',
12220
12489
  ];
12221
12490
  // Synchronize outputs (events)
12491
+ const _listeners = [];
12222
12492
  for (const outputName of outputsToSync) {
12223
12493
  // Map Angular output name to UI5 web component event name
12224
12494
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
12225
12495
  // Ensure the output property exists and has an emit function before adding listener
12226
12496
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
12227
12497
  // Cast the listener to the correct type to satisfy TypeScript
12228
- wcElement.addEventListener(eventName, (e) => {
12498
+ const listener = (e) => {
12229
12499
  this[outputName].emit(e);
12230
- });
12500
+ };
12501
+ wcElement.addEventListener(eventName, listener);
12502
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
12231
12503
  }
12232
12504
  }
12505
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
12233
12506
  }
12234
12507
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsivePopover, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12235
12508
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ResponsivePopover, isStandalone: true, selector: "ui5-responsive-popover, [ui5-responsive-popover]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, allowTargetOverlap: { classPropertyName: "allowTargetOverlap", publicName: "allowTargetOverlap", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, hideArrow: { classPropertyName: "hideArrow", publicName: "hideArrow", isSignal: true, isRequired: false, transformFunction: null }, horizontalAlign: { classPropertyName: "horizontalAlign", publicName: "horizontalAlign", isSignal: true, isRequired: false, transformFunction: null }, initialFocus: { classPropertyName: "initialFocus", publicName: "initialFocus", isSignal: true, isRequired: false, transformFunction: null }, modal: { classPropertyName: "modal", publicName: "modal", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, opener: { classPropertyName: "opener", publicName: "opener", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, preventFocusRestore: { classPropertyName: "preventFocusRestore", publicName: "preventFocusRestore", isSignal: true, isRequired: false, transformFunction: null }, preventInitialFocus: { classPropertyName: "preventInitialFocus", publicName: "preventInitialFocus", isSignal: true, isRequired: false, transformFunction: null }, resizable: { classPropertyName: "resizable", publicName: "resizable", isSignal: true, isRequired: false, transformFunction: null }, verticalAlign: { classPropertyName: "verticalAlign", publicName: "verticalAlign", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5BeforeClose: "ui5BeforeClose", ui5BeforeOpen: "ui5BeforeOpen", ui5Close: "ui5Close", ui5Open: "ui5Open" }, providers: [
@@ -12336,6 +12609,7 @@ class SegmentedButton {
12336
12609
  * @private
12337
12610
  */
12338
12611
  this._contentDensityObserver = inject(ContentDensityObserver);
12612
+ this._destroyRef = inject(DestroyRef);
12339
12613
  // Internal signal to track selectedItems from selection-change events
12340
12614
  this._selectedItemsSignal = signal([], /* @ts-ignore */
12341
12615
  ...(ngDevMode ? [{ debugName: "_selectedItemsSignal" }] : /* istanbul ignore next */ []));
@@ -12380,27 +12654,33 @@ class SegmentedButton {
12380
12654
  'ui5SelectionChange',
12381
12655
  ];
12382
12656
  // Synchronize outputs (events)
12657
+ const _listeners = [];
12383
12658
  for (const outputName of outputsToSync) {
12384
12659
  // Map Angular output name to UI5 web component event name
12385
12660
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
12386
12661
  // Ensure the output property exists and has an emit function before adding listener
12387
12662
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
12388
12663
  // Cast the listener to the correct type to satisfy TypeScript
12389
- wcElement.addEventListener(eventName, (e) => {
12664
+ const listener = (e) => {
12390
12665
  // Update selectedItems signal when selection-change event fires
12391
12666
  if (eventName === 'selection-change') {
12392
12667
  const customEvent = e;
12393
12668
  // Use selectedItems from event detail, fallback to web component property
12669
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12394
12670
  const selectedItemsValue = customEvent.detail?.selectedItems || wcElement.selectedItems || [];
12395
12671
  this._selectedItemsSignal.set(selectedItemsValue);
12396
12672
  }
12397
12673
  this[outputName].emit(e);
12398
- });
12674
+ };
12675
+ wcElement.addEventListener(eventName, listener);
12676
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
12399
12677
  }
12400
12678
  }
12679
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
12401
12680
  // Initialize selectedItems signal with current state using delayed initialization
12402
12681
  // to handle web component timing properly
12403
12682
  const initializeSelectedItems = () => {
12683
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12404
12684
  const currentValue = wcElement.selectedItems || [];
12405
12685
  if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedItemsSignal())) {
12406
12686
  this._selectedItemsSignal.set(currentValue);
@@ -12524,6 +12804,7 @@ class SegmentedButtonItem {
12524
12804
  * @private
12525
12805
  */
12526
12806
  this._contentDensityObserver = inject(ContentDensityObserver);
12807
+ this._destroyRef = inject(DestroyRef);
12527
12808
  }
12528
12809
  get element() {
12529
12810
  return this.elementRef.nativeElement;
@@ -12567,17 +12848,21 @@ class SegmentedButtonItem {
12567
12848
  'ui5Click',
12568
12849
  ];
12569
12850
  // Synchronize outputs (events)
12851
+ const _listeners = [];
12570
12852
  for (const outputName of outputsToSync) {
12571
12853
  // Map Angular output name to UI5 web component event name
12572
12854
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
12573
12855
  // Ensure the output property exists and has an emit function before adding listener
12574
12856
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
12575
12857
  // Cast the listener to the correct type to satisfy TypeScript
12576
- wcElement.addEventListener(eventName, (e) => {
12858
+ const listener = (e) => {
12577
12859
  this[outputName].emit(e);
12578
- });
12860
+ };
12861
+ wcElement.addEventListener(eventName, listener);
12862
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
12579
12863
  }
12580
12864
  }
12865
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
12581
12866
  }
12582
12867
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SegmentedButtonItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12583
12868
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: SegmentedButtonItem, isStandalone: true, selector: "ui5-segmented-button-item, [ui5-segmented-button-item]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -12765,6 +13050,7 @@ class Select {
12765
13050
  * @private
12766
13051
  */
12767
13052
  this._contentDensityObserver = inject(ContentDensityObserver);
13053
+ this._destroyRef = inject(DestroyRef);
12768
13054
  // Internal signal to track selectedOption from change events
12769
13055
  this._selectedOptionSignal = signal(undefined, /* @ts-ignore */
12770
13056
  ...(ngDevMode ? [{ debugName: "_selectedOptionSignal" }] : /* istanbul ignore next */ []));
@@ -12818,17 +13104,19 @@ class Select {
12818
13104
  'ui5Open',
12819
13105
  ];
12820
13106
  // Synchronize outputs (events)
13107
+ const _listeners = [];
12821
13108
  for (const outputName of outputsToSync) {
12822
13109
  // Map Angular output name to UI5 web component event name
12823
13110
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
12824
13111
  // Ensure the output property exists and has an emit function before adding listener
12825
13112
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
12826
13113
  // Cast the listener to the correct type to satisfy TypeScript
12827
- wcElement.addEventListener(eventName, (e) => {
13114
+ const listener = (e) => {
12828
13115
  // Update selectedOption signal when change event fires
12829
13116
  if (eventName === 'change') {
12830
13117
  const customEvent = e;
12831
13118
  // Use selectedOption from event detail, fallback to web component property
13119
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12832
13120
  const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption || undefined;
12833
13121
  this._selectedOptionSignal.set(selectedOptionValue);
12834
13122
  }
@@ -12836,16 +13124,21 @@ class Select {
12836
13124
  if (eventName === 'live-change') {
12837
13125
  const customEvent = e;
12838
13126
  // Use selectedOption from event detail, fallback to web component property
13127
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12839
13128
  const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption || undefined;
12840
13129
  this._selectedOptionSignal.set(selectedOptionValue);
12841
13130
  }
12842
13131
  this[outputName].emit(e);
12843
- });
13132
+ };
13133
+ wcElement.addEventListener(eventName, listener);
13134
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
12844
13135
  }
12845
13136
  }
13137
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
12846
13138
  // Initialize selectedOption signal with current state using delayed initialization
12847
13139
  // to handle web component timing properly
12848
13140
  const initializeSelectedOption = () => {
13141
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
12849
13142
  const currentValue = wcElement.selectedOption || undefined;
12850
13143
  if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedOptionSignal())) {
12851
13144
  this._selectedOptionSignal.set(currentValue);
@@ -12870,7 +13163,7 @@ class Select {
12870
13163
  transformValue: (v) => v || ''
12871
13164
  }
12872
13165
  }
12873
- ], exportAs: ["ui5Select"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13166
+ ], exportAs: ["ui5Select"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12874
13167
  }
12875
13168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Select, decorators: [{
12876
13169
  type: Component,
@@ -12999,6 +13292,7 @@ class Slider {
12999
13292
  * @private
13000
13293
  */
13001
13294
  this._contentDensityObserver = inject(ContentDensityObserver);
13295
+ this._destroyRef = inject(DestroyRef);
13002
13296
  }
13003
13297
  get element() {
13004
13298
  return this.elementRef.nativeElement;
@@ -13047,17 +13341,21 @@ class Slider {
13047
13341
  'ui5Input',
13048
13342
  ];
13049
13343
  // Synchronize outputs (events)
13344
+ const _listeners = [];
13050
13345
  for (const outputName of outputsToSync) {
13051
13346
  // Map Angular output name to UI5 web component event name
13052
13347
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
13053
13348
  // Ensure the output property exists and has an emit function before adding listener
13054
13349
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
13055
13350
  // Cast the listener to the correct type to satisfy TypeScript
13056
- wcElement.addEventListener(eventName, (e) => {
13351
+ const listener = (e) => {
13057
13352
  this[outputName].emit(e);
13058
- });
13353
+ };
13354
+ wcElement.addEventListener(eventName, listener);
13355
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
13059
13356
  }
13060
13357
  }
13358
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
13061
13359
  }
13062
13360
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Slider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13063
13361
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Slider, isStandalone: true, selector: "ui5-slider, [ui5-slider]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, editableTooltip: { classPropertyName: "editableTooltip", publicName: "editableTooltip", isSignal: true, isRequired: false, transformFunction: null }, labelInterval: { classPropertyName: "labelInterval", publicName: "labelInterval", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, showTickmarks: { classPropertyName: "showTickmarks", publicName: "showTickmarks", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, tickmarks: { classPropertyName: "tickmarks", publicName: "tickmarks", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Input: "ui5Input" }, providers: [
@@ -13072,7 +13370,7 @@ class Slider {
13072
13370
  transformValue: (v) => v || ''
13073
13371
  }
13074
13372
  }
13075
- ], exportAs: ["ui5Slider"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13373
+ ], exportAs: ["ui5Slider"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13076
13374
  }
13077
13375
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Slider, decorators: [{
13078
13376
  type: Component,
@@ -13355,6 +13653,7 @@ class SplitButton {
13355
13653
  * @private
13356
13654
  */
13357
13655
  this._contentDensityObserver = inject(ContentDensityObserver);
13656
+ this._destroyRef = inject(DestroyRef);
13358
13657
  }
13359
13658
  get element() {
13360
13659
  return this.elementRef.nativeElement;
@@ -13397,17 +13696,21 @@ class SplitButton {
13397
13696
  'ui5Click',
13398
13697
  ];
13399
13698
  // Synchronize outputs (events)
13699
+ const _listeners = [];
13400
13700
  for (const outputName of outputsToSync) {
13401
13701
  // Map Angular output name to UI5 web component event name
13402
13702
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
13403
13703
  // Ensure the output property exists and has an emit function before adding listener
13404
13704
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
13405
13705
  // Cast the listener to the correct type to satisfy TypeScript
13406
- wcElement.addEventListener(eventName, (e) => {
13706
+ const listener = (e) => {
13407
13707
  this[outputName].emit(e);
13408
- });
13708
+ };
13709
+ wcElement.addEventListener(eventName, listener);
13710
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
13409
13711
  }
13410
13712
  }
13713
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
13411
13714
  }
13412
13715
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SplitButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13413
13716
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: SplitButton, isStandalone: true, selector: "ui5-split-button, [ui5-split-button]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, activeArrowButton: { classPropertyName: "activeArrowButton", publicName: "activeArrowButton", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5ArrowClick: "ui5ArrowClick", ui5Click: "ui5Click" }, providers: [
@@ -13554,6 +13857,7 @@ class StepInput {
13554
13857
  * @private
13555
13858
  */
13556
13859
  this._contentDensityObserver = inject(ContentDensityObserver);
13860
+ this._destroyRef = inject(DestroyRef);
13557
13861
  }
13558
13862
  get element() {
13559
13863
  return this.elementRef.nativeElement;
@@ -13604,17 +13908,21 @@ class StepInput {
13604
13908
  'ui5ValueStateChange',
13605
13909
  ];
13606
13910
  // Synchronize outputs (events)
13911
+ const _listeners = [];
13607
13912
  for (const outputName of outputsToSync) {
13608
13913
  // Map Angular output name to UI5 web component event name
13609
13914
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
13610
13915
  // Ensure the output property exists and has an emit function before adding listener
13611
13916
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
13612
13917
  // Cast the listener to the correct type to satisfy TypeScript
13613
- wcElement.addEventListener(eventName, (e) => {
13918
+ const listener = (e) => {
13614
13919
  this[outputName].emit(e);
13615
- });
13920
+ };
13921
+ wcElement.addEventListener(eventName, listener);
13922
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
13616
13923
  }
13617
13924
  }
13925
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
13618
13926
  }
13619
13927
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: StepInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13620
13928
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: StepInput, isStandalone: true, selector: "ui5-step-input, [ui5-step-input]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valuePrecision: { classPropertyName: "valuePrecision", publicName: "valuePrecision", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Input: "ui5Input", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [
@@ -13665,6 +13973,7 @@ class SuggestionItem {
13665
13973
  * @private
13666
13974
  */
13667
13975
  this._contentDensityObserver = inject(ContentDensityObserver);
13976
+ this._destroyRef = inject(DestroyRef);
13668
13977
  }
13669
13978
  get element() {
13670
13979
  return this.elementRef.nativeElement;
@@ -13702,17 +14011,21 @@ class SuggestionItem {
13702
14011
  'ui5Click',
13703
14012
  ];
13704
14013
  // Synchronize outputs (events)
14014
+ const _listeners = [];
13705
14015
  for (const outputName of outputsToSync) {
13706
14016
  // Map Angular output name to UI5 web component event name
13707
14017
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
13708
14018
  // Ensure the output property exists and has an emit function before adding listener
13709
14019
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
13710
14020
  // Cast the listener to the correct type to satisfy TypeScript
13711
- wcElement.addEventListener(eventName, (e) => {
14021
+ const listener = (e) => {
13712
14022
  this[outputName].emit(e);
13713
- });
14023
+ };
14024
+ wcElement.addEventListener(eventName, listener);
14025
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
13714
14026
  }
13715
14027
  }
14028
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
13716
14029
  }
13717
14030
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SuggestionItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13718
14031
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: SuggestionItem, isStandalone: true, selector: "ui5-suggestion-item, [ui5-suggestion-item]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -13784,6 +14097,7 @@ class SuggestionItemCustom {
13784
14097
  * @private
13785
14098
  */
13786
14099
  this._contentDensityObserver = inject(ContentDensityObserver);
14100
+ this._destroyRef = inject(DestroyRef);
13787
14101
  }
13788
14102
  get element() {
13789
14103
  return this.elementRef.nativeElement;
@@ -13820,17 +14134,21 @@ class SuggestionItemCustom {
13820
14134
  'ui5Click',
13821
14135
  ];
13822
14136
  // Synchronize outputs (events)
14137
+ const _listeners = [];
13823
14138
  for (const outputName of outputsToSync) {
13824
14139
  // Map Angular output name to UI5 web component event name
13825
14140
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
13826
14141
  // Ensure the output property exists and has an emit function before adding listener
13827
14142
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
13828
14143
  // Cast the listener to the correct type to satisfy TypeScript
13829
- wcElement.addEventListener(eventName, (e) => {
14144
+ const listener = (e) => {
13830
14145
  this[outputName].emit(e);
13831
- });
14146
+ };
14147
+ wcElement.addEventListener(eventName, listener);
14148
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
13832
14149
  }
13833
14150
  }
14151
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
13834
14152
  }
13835
14153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SuggestionItemCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13836
14154
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: SuggestionItemCustom, isStandalone: true, selector: "ui5-suggestion-item-custom, [ui5-suggestion-item-custom]", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -13934,6 +14252,7 @@ class SuggestionItemGroup {
13934
14252
  * @private
13935
14253
  */
13936
14254
  this._contentDensityObserver = inject(ContentDensityObserver);
14255
+ this._destroyRef = inject(DestroyRef);
13937
14256
  }
13938
14257
  get element() {
13939
14258
  return this.elementRef.nativeElement;
@@ -13973,17 +14292,21 @@ class SuggestionItemGroup {
13973
14292
  'ui5MoveOver',
13974
14293
  ];
13975
14294
  // Synchronize outputs (events)
14295
+ const _listeners = [];
13976
14296
  for (const outputName of outputsToSync) {
13977
14297
  // Map Angular output name to UI5 web component event name
13978
14298
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
13979
14299
  // Ensure the output property exists and has an emit function before adding listener
13980
14300
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
13981
14301
  // Cast the listener to the correct type to satisfy TypeScript
13982
- wcElement.addEventListener(eventName, (e) => {
14302
+ const listener = (e) => {
13983
14303
  this[outputName].emit(e);
13984
- });
14304
+ };
14305
+ wcElement.addEventListener(eventName, listener);
14306
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
13985
14307
  }
13986
14308
  }
14309
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
13987
14310
  }
13988
14311
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SuggestionItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13989
14312
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: SuggestionItemGroup, isStandalone: true, selector: "ui5-suggestion-item-group, [ui5-suggestion-item-group]", inputs: { headerAccessibleName: { classPropertyName: "headerAccessibleName", publicName: "headerAccessibleName", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver" }, providers: [
@@ -14098,10 +14421,13 @@ class SuggestionListItem {
14098
14421
  ...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
14099
14422
  /**
14100
14423
  * Defines the visual indication and behavior of the list items.
14101
- Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
14424
+ Available options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.
14102
14425
 
14103
14426
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
14104
- while with type `Inactive` and `Detail` - will not.
14427
+ while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
14428
+
14429
+ **Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled
14430
+ when the list has a selection mode. The `item-click` event is not fired for this type.
14105
14431
  */
14106
14432
  this.type = input("Active", /* @ts-ignore */
14107
14433
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
@@ -14189,6 +14515,7 @@ class SuggestionListItem {
14189
14515
  * @private
14190
14516
  */
14191
14517
  this._contentDensityObserver = inject(ContentDensityObserver);
14518
+ this._destroyRef = inject(DestroyRef);
14192
14519
  }
14193
14520
  get element() {
14194
14521
  return this.elementRef.nativeElement;
@@ -14241,17 +14568,21 @@ class SuggestionListItem {
14241
14568
  'ui5DetailClick',
14242
14569
  ];
14243
14570
  // Synchronize outputs (events)
14571
+ const _listeners = [];
14244
14572
  for (const outputName of outputsToSync) {
14245
14573
  // Map Angular output name to UI5 web component event name
14246
14574
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
14247
14575
  // Ensure the output property exists and has an emit function before adding listener
14248
14576
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
14249
14577
  // Cast the listener to the correct type to satisfy TypeScript
14250
- wcElement.addEventListener(eventName, (e) => {
14578
+ const listener = (e) => {
14251
14579
  this[outputName].emit(e);
14252
- });
14580
+ };
14581
+ wcElement.addEventListener(eventName, listener);
14582
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
14253
14583
  }
14254
14584
  }
14585
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
14255
14586
  }
14256
14587
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SuggestionListItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14257
14588
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: SuggestionListItem, isStandalone: true, selector: "ui5-li-suggestion-item, [ui5-li-suggestion-item]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, additionalTextState: { classPropertyName: "additionalTextState", publicName: "additionalTextState", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconEnd: { classPropertyName: "iconEnd", publicName: "iconEnd", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, navigated: { classPropertyName: "navigated", publicName: "navigated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5DetailClick: "ui5DetailClick" }, providers: [
@@ -14371,6 +14702,7 @@ class Switch {
14371
14702
  * @private
14372
14703
  */
14373
14704
  this._contentDensityObserver = inject(ContentDensityObserver);
14705
+ this._destroyRef = inject(DestroyRef);
14374
14706
  }
14375
14707
  get element() {
14376
14708
  return this.elementRef.nativeElement;
@@ -14418,17 +14750,21 @@ class Switch {
14418
14750
  'ui5Change',
14419
14751
  ];
14420
14752
  // Synchronize outputs (events)
14753
+ const _listeners = [];
14421
14754
  for (const outputName of outputsToSync) {
14422
14755
  // Map Angular output name to UI5 web component event name
14423
14756
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
14424
14757
  // Ensure the output property exists and has an emit function before adding listener
14425
14758
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
14426
14759
  // Cast the listener to the correct type to satisfy TypeScript
14427
- wcElement.addEventListener(eventName, (e) => {
14760
+ const listener = (e) => {
14428
14761
  this[outputName].emit(e);
14429
- });
14762
+ };
14763
+ wcElement.addEventListener(eventName, listener);
14764
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
14430
14765
  }
14431
14766
  }
14767
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
14432
14768
  }
14433
14769
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Switch, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14434
14770
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Switch, isStandalone: true, selector: "ui5-switch, [ui5-switch]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, textOff: { classPropertyName: "textOff", publicName: "textOff", isSignal: true, isRequired: false, transformFunction: null }, textOn: { classPropertyName: "textOn", publicName: "textOn", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -14443,7 +14779,7 @@ class Switch {
14443
14779
  transformValue: (v) => !!v
14444
14780
  }
14445
14781
  }
14446
- ], exportAs: ["ui5Switch"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14782
+ ], exportAs: ["ui5Switch"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14447
14783
  }
14448
14784
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Switch, decorators: [{
14449
14785
  type: Component,
@@ -14560,6 +14896,7 @@ class Tab {
14560
14896
  * @private
14561
14897
  */
14562
14898
  this._contentDensityObserver = inject(ContentDensityObserver);
14899
+ this._destroyRef = inject(DestroyRef);
14563
14900
  }
14564
14901
  get element() {
14565
14902
  return this.elementRef.nativeElement;
@@ -14602,17 +14939,21 @@ class Tab {
14602
14939
  'ui5Click',
14603
14940
  ];
14604
14941
  // Synchronize outputs (events)
14942
+ const _listeners = [];
14605
14943
  for (const outputName of outputsToSync) {
14606
14944
  // Map Angular output name to UI5 web component event name
14607
14945
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
14608
14946
  // Ensure the output property exists and has an emit function before adding listener
14609
14947
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
14610
14948
  // Cast the listener to the correct type to satisfy TypeScript
14611
- wcElement.addEventListener(eventName, (e) => {
14949
+ const listener = (e) => {
14612
14950
  this[outputName].emit(e);
14613
- });
14951
+ };
14952
+ wcElement.addEventListener(eventName, listener);
14953
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
14614
14954
  }
14615
14955
  }
14956
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
14616
14957
  }
14617
14958
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Tab, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14618
14959
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Tab, isStandalone: true, selector: "ui5-tab, [ui5-tab]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -14744,6 +15085,7 @@ class TabContainer {
14744
15085
  * @private
14745
15086
  */
14746
15087
  this._contentDensityObserver = inject(ContentDensityObserver);
15088
+ this._destroyRef = inject(DestroyRef);
14747
15089
  }
14748
15090
  /**
14749
15091
  * Returns all slotted tabs and their subTabs in a flattened array.
@@ -14795,17 +15137,21 @@ class TabContainer {
14795
15137
  'ui5TabSelect',
14796
15138
  ];
14797
15139
  // Synchronize outputs (events)
15140
+ const _listeners = [];
14798
15141
  for (const outputName of outputsToSync) {
14799
15142
  // Map Angular output name to UI5 web component event name
14800
15143
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
14801
15144
  // Ensure the output property exists and has an emit function before adding listener
14802
15145
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
14803
15146
  // Cast the listener to the correct type to satisfy TypeScript
14804
- wcElement.addEventListener(eventName, (e) => {
15147
+ const listener = (e) => {
14805
15148
  this[outputName].emit(e);
14806
- });
15149
+ };
15150
+ wcElement.addEventListener(eventName, listener);
15151
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
14807
15152
  }
14808
15153
  }
15154
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
14809
15155
  }
14810
15156
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TabContainer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14811
15157
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TabContainer, isStandalone: true, selector: "ui5-tabcontainer, [ui5-tabcontainer]", inputs: { collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, contentBackgroundDesign: { classPropertyName: "contentBackgroundDesign", publicName: "contentBackgroundDesign", isSignal: true, isRequired: false, transformFunction: null }, headerBackgroundDesign: { classPropertyName: "headerBackgroundDesign", publicName: "headerBackgroundDesign", isSignal: true, isRequired: false, transformFunction: null }, noAutoSelection: { classPropertyName: "noAutoSelection", publicName: "noAutoSelection", isSignal: true, isRequired: false, transformFunction: null }, overflowMode: { classPropertyName: "overflowMode", publicName: "overflowMode", isSignal: true, isRequired: false, transformFunction: null }, tabLayout: { classPropertyName: "tabLayout", publicName: "tabLayout", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver", ui5TabSelect: "ui5TabSelect" }, providers: [
@@ -15003,6 +15349,7 @@ class Table {
15003
15349
  * @private
15004
15350
  */
15005
15351
  this._contentDensityObserver = inject(ContentDensityObserver);
15352
+ this._destroyRef = inject(DestroyRef);
15006
15353
  }
15007
15354
  get element() {
15008
15355
  return this.elementRef.nativeElement;
@@ -15049,17 +15396,21 @@ class Table {
15049
15396
  'ui5RowClick',
15050
15397
  ];
15051
15398
  // Synchronize outputs (events)
15399
+ const _listeners = [];
15052
15400
  for (const outputName of outputsToSync) {
15053
15401
  // Map Angular output name to UI5 web component event name
15054
15402
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
15055
15403
  // Ensure the output property exists and has an emit function before adding listener
15056
15404
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
15057
15405
  // Cast the listener to the correct type to satisfy TypeScript
15058
- wcElement.addEventListener(eventName, (e) => {
15406
+ const listener = (e) => {
15059
15407
  this[outputName].emit(e);
15060
- });
15408
+ };
15409
+ wcElement.addEventListener(eventName, listener);
15410
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
15061
15411
  }
15062
15412
  }
15413
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
15063
15414
  }
15064
15415
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Table, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15065
15416
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Table, isStandalone: true, selector: "ui5-table, [ui5-table]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, alternateRowColors: { classPropertyName: "alternateRowColors", publicName: "alternateRowColors", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, noDataText: { classPropertyName: "noDataText", publicName: "noDataText", isSignal: true, isRequired: false, transformFunction: null }, overflowMode: { classPropertyName: "overflowMode", publicName: "overflowMode", isSignal: true, isRequired: false, transformFunction: null }, rowActionCount: { classPropertyName: "rowActionCount", publicName: "rowActionCount", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver", ui5RowActionClick: "ui5RowActionClick", ui5RowClick: "ui5RowClick" }, providers: [
@@ -15359,6 +15710,7 @@ class TableGrowing {
15359
15710
  * @private
15360
15711
  */
15361
15712
  this._contentDensityObserver = inject(ContentDensityObserver);
15713
+ this._destroyRef = inject(DestroyRef);
15362
15714
  }
15363
15715
  get element() {
15364
15716
  return this.elementRef.nativeElement;
@@ -15397,17 +15749,21 @@ class TableGrowing {
15397
15749
  'ui5LoadMore',
15398
15750
  ];
15399
15751
  // Synchronize outputs (events)
15752
+ const _listeners = [];
15400
15753
  for (const outputName of outputsToSync) {
15401
15754
  // Map Angular output name to UI5 web component event name
15402
15755
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
15403
15756
  // Ensure the output property exists and has an emit function before adding listener
15404
15757
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
15405
15758
  // Cast the listener to the correct type to satisfy TypeScript
15406
- wcElement.addEventListener(eventName, (e) => {
15759
+ const listener = (e) => {
15407
15760
  this[outputName].emit(e);
15408
- });
15761
+ };
15762
+ wcElement.addEventListener(eventName, listener);
15763
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
15409
15764
  }
15410
15765
  }
15766
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
15411
15767
  }
15412
15768
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableGrowing, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15413
15769
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableGrowing, isStandalone: true, selector: "ui5-table-growing, [ui5-table-growing]", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, subtext: { classPropertyName: "subtext", publicName: "subtext", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5LoadMore: "ui5LoadMore" }, providers: [
@@ -15608,6 +15964,7 @@ class TableHeaderCellActionAI {
15608
15964
  * @private
15609
15965
  */
15610
15966
  this._contentDensityObserver = inject(ContentDensityObserver);
15967
+ this._destroyRef = inject(DestroyRef);
15611
15968
  }
15612
15969
  get element() {
15613
15970
  return this.elementRef.nativeElement;
@@ -15618,17 +15975,21 @@ class TableHeaderCellActionAI {
15618
15975
  'ui5Click',
15619
15976
  ];
15620
15977
  // Synchronize outputs (events)
15978
+ const _listeners = [];
15621
15979
  for (const outputName of outputsToSync) {
15622
15980
  // Map Angular output name to UI5 web component event name
15623
15981
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
15624
15982
  // Ensure the output property exists and has an emit function before adding listener
15625
15983
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
15626
15984
  // Cast the listener to the correct type to satisfy TypeScript
15627
- wcElement.addEventListener(eventName, (e) => {
15985
+ const listener = (e) => {
15628
15986
  this[outputName].emit(e);
15629
- });
15987
+ };
15988
+ wcElement.addEventListener(eventName, listener);
15989
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
15630
15990
  }
15631
15991
  }
15992
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
15632
15993
  }
15633
15994
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableHeaderCellActionAI, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15634
15995
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: TableHeaderCellActionAI, isStandalone: true, selector: "ui5-table-header-cell-action-ai, [ui5-table-header-cell-action-ai]", outputs: { ui5Click: "ui5Click" }, providers: [
@@ -15918,6 +16279,7 @@ class TableRowAction {
15918
16279
  * @private
15919
16280
  */
15920
16281
  this._contentDensityObserver = inject(ContentDensityObserver);
16282
+ this._destroyRef = inject(DestroyRef);
15921
16283
  }
15922
16284
  get element() {
15923
16285
  return this.elementRef.nativeElement;
@@ -15956,17 +16318,21 @@ class TableRowAction {
15956
16318
  'ui5Click',
15957
16319
  ];
15958
16320
  // Synchronize outputs (events)
16321
+ const _listeners = [];
15959
16322
  for (const outputName of outputsToSync) {
15960
16323
  // Map Angular output name to UI5 web component event name
15961
16324
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
15962
16325
  // Ensure the output property exists and has an emit function before adding listener
15963
16326
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
15964
16327
  // Cast the listener to the correct type to satisfy TypeScript
15965
- wcElement.addEventListener(eventName, (e) => {
16328
+ const listener = (e) => {
15966
16329
  this[outputName].emit(e);
15967
- });
16330
+ };
16331
+ wcElement.addEventListener(eventName, listener);
16332
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
15968
16333
  }
15969
16334
  }
16335
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
15970
16336
  }
15971
16337
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableRowAction, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15972
16338
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableRowAction, isStandalone: true, selector: "ui5-table-row-action, [ui5-table-row-action]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, invisible: { classPropertyName: "invisible", publicName: "invisible", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -16015,6 +16381,7 @@ class TableRowActionNavigation {
16015
16381
  * @private
16016
16382
  */
16017
16383
  this._contentDensityObserver = inject(ContentDensityObserver);
16384
+ this._destroyRef = inject(DestroyRef);
16018
16385
  }
16019
16386
  get element() {
16020
16387
  return this.elementRef.nativeElement;
@@ -16052,17 +16419,21 @@ class TableRowActionNavigation {
16052
16419
  'ui5Click',
16053
16420
  ];
16054
16421
  // Synchronize outputs (events)
16422
+ const _listeners = [];
16055
16423
  for (const outputName of outputsToSync) {
16056
16424
  // Map Angular output name to UI5 web component event name
16057
16425
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16058
16426
  // Ensure the output property exists and has an emit function before adding listener
16059
16427
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16060
16428
  // Cast the listener to the correct type to satisfy TypeScript
16061
- wcElement.addEventListener(eventName, (e) => {
16429
+ const listener = (e) => {
16062
16430
  this[outputName].emit(e);
16063
- });
16431
+ };
16432
+ wcElement.addEventListener(eventName, listener);
16433
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16064
16434
  }
16065
16435
  }
16436
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16066
16437
  }
16067
16438
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableRowActionNavigation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16068
16439
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableRowActionNavigation, isStandalone: true, selector: "ui5-table-row-action-navigation, [ui5-table-row-action-navigation]", inputs: { interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, invisible: { classPropertyName: "invisible", publicName: "invisible", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -16111,6 +16482,7 @@ class TableSelection {
16111
16482
  * @private
16112
16483
  */
16113
16484
  this._contentDensityObserver = inject(ContentDensityObserver);
16485
+ this._destroyRef = inject(DestroyRef);
16114
16486
  }
16115
16487
  get element() {
16116
16488
  return this.elementRef.nativeElement;
@@ -16148,17 +16520,21 @@ class TableSelection {
16148
16520
  'ui5Change',
16149
16521
  ];
16150
16522
  // Synchronize outputs (events)
16523
+ const _listeners = [];
16151
16524
  for (const outputName of outputsToSync) {
16152
16525
  // Map Angular output name to UI5 web component event name
16153
16526
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16154
16527
  // Ensure the output property exists and has an emit function before adding listener
16155
16528
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16156
16529
  // Cast the listener to the correct type to satisfy TypeScript
16157
- wcElement.addEventListener(eventName, (e) => {
16530
+ const listener = (e) => {
16158
16531
  this[outputName].emit(e);
16159
- });
16532
+ };
16533
+ wcElement.addEventListener(eventName, listener);
16534
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16160
16535
  }
16161
16536
  }
16537
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16162
16538
  }
16163
16539
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableSelection, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16164
16540
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableSelection, isStandalone: true, selector: "ui5-table-selection, [ui5-table-selection]", inputs: { mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -16212,6 +16588,7 @@ class TableSelectionMulti {
16212
16588
  * @private
16213
16589
  */
16214
16590
  this._contentDensityObserver = inject(ContentDensityObserver);
16591
+ this._destroyRef = inject(DestroyRef);
16215
16592
  }
16216
16593
  get element() {
16217
16594
  return this.elementRef.nativeElement;
@@ -16250,17 +16627,21 @@ class TableSelectionMulti {
16250
16627
  'ui5Change',
16251
16628
  ];
16252
16629
  // Synchronize outputs (events)
16630
+ const _listeners = [];
16253
16631
  for (const outputName of outputsToSync) {
16254
16632
  // Map Angular output name to UI5 web component event name
16255
16633
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16256
16634
  // Ensure the output property exists and has an emit function before adding listener
16257
16635
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16258
16636
  // Cast the listener to the correct type to satisfy TypeScript
16259
- wcElement.addEventListener(eventName, (e) => {
16637
+ const listener = (e) => {
16260
16638
  this[outputName].emit(e);
16261
- });
16639
+ };
16640
+ wcElement.addEventListener(eventName, listener);
16641
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16262
16642
  }
16263
16643
  }
16644
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16264
16645
  }
16265
16646
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableSelectionMulti, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16266
16647
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableSelectionMulti, isStandalone: true, selector: "ui5-table-selection-multi, [ui5-table-selection-multi]", inputs: { behavior: { classPropertyName: "behavior", publicName: "behavior", isSignal: true, isRequired: false, transformFunction: null }, headerSelector: { classPropertyName: "headerSelector", publicName: "headerSelector", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -16309,6 +16690,7 @@ class TableSelectionSingle {
16309
16690
  * @private
16310
16691
  */
16311
16692
  this._contentDensityObserver = inject(ContentDensityObserver);
16693
+ this._destroyRef = inject(DestroyRef);
16312
16694
  }
16313
16695
  get element() {
16314
16696
  return this.elementRef.nativeElement;
@@ -16346,17 +16728,21 @@ class TableSelectionSingle {
16346
16728
  'ui5Change',
16347
16729
  ];
16348
16730
  // Synchronize outputs (events)
16731
+ const _listeners = [];
16349
16732
  for (const outputName of outputsToSync) {
16350
16733
  // Map Angular output name to UI5 web component event name
16351
16734
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16352
16735
  // Ensure the output property exists and has an emit function before adding listener
16353
16736
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16354
16737
  // Cast the listener to the correct type to satisfy TypeScript
16355
- wcElement.addEventListener(eventName, (e) => {
16738
+ const listener = (e) => {
16356
16739
  this[outputName].emit(e);
16357
- });
16740
+ };
16741
+ wcElement.addEventListener(eventName, listener);
16742
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16358
16743
  }
16359
16744
  }
16745
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16360
16746
  }
16361
16747
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableSelectionSingle, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16362
16748
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableSelectionSingle, isStandalone: true, selector: "ui5-table-selection-single, [ui5-table-selection-single]", inputs: { behavior: { classPropertyName: "behavior", publicName: "behavior", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change" }, providers: [
@@ -16416,6 +16802,7 @@ class TableVirtualizer {
16416
16802
  * @private
16417
16803
  */
16418
16804
  this._contentDensityObserver = inject(ContentDensityObserver);
16805
+ this._destroyRef = inject(DestroyRef);
16419
16806
  }
16420
16807
  get element() {
16421
16808
  return this.elementRef.nativeElement;
@@ -16454,17 +16841,21 @@ class TableVirtualizer {
16454
16841
  'ui5RangeChange',
16455
16842
  ];
16456
16843
  // Synchronize outputs (events)
16844
+ const _listeners = [];
16457
16845
  for (const outputName of outputsToSync) {
16458
16846
  // Map Angular output name to UI5 web component event name
16459
16847
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16460
16848
  // Ensure the output property exists and has an emit function before adding listener
16461
16849
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16462
16850
  // Cast the listener to the correct type to satisfy TypeScript
16463
- wcElement.addEventListener(eventName, (e) => {
16851
+ const listener = (e) => {
16464
16852
  this[outputName].emit(e);
16465
- });
16853
+ };
16854
+ wcElement.addEventListener(eventName, listener);
16855
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16466
16856
  }
16467
16857
  }
16858
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16468
16859
  }
16469
16860
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TableVirtualizer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16470
16861
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TableVirtualizer, isStandalone: true, selector: "ui5-table-virtualizer, [ui5-table-virtualizer]", inputs: { extraRows: { classPropertyName: "extraRows", publicName: "extraRows", isSignal: true, isRequired: false, transformFunction: null }, rowCount: { classPropertyName: "rowCount", publicName: "rowCount", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5RangeChange: "ui5RangeChange" }, providers: [
@@ -16570,6 +16961,7 @@ class Tag {
16570
16961
  * @private
16571
16962
  */
16572
16963
  this._contentDensityObserver = inject(ContentDensityObserver);
16964
+ this._destroyRef = inject(DestroyRef);
16573
16965
  }
16574
16966
  get element() {
16575
16967
  return this.elementRef.nativeElement;
@@ -16611,17 +17003,21 @@ class Tag {
16611
17003
  'ui5Click',
16612
17004
  ];
16613
17005
  // Synchronize outputs (events)
17006
+ const _listeners = [];
16614
17007
  for (const outputName of outputsToSync) {
16615
17008
  // Map Angular output name to UI5 web component event name
16616
17009
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16617
17010
  // Ensure the output property exists and has an emit function before adding listener
16618
17011
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16619
17012
  // Cast the listener to the correct type to satisfy TypeScript
16620
- wcElement.addEventListener(eventName, (e) => {
17013
+ const listener = (e) => {
16621
17014
  this[outputName].emit(e);
16622
- });
17015
+ };
17016
+ wcElement.addEventListener(eventName, listener);
17017
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16623
17018
  }
16624
17019
  }
17020
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16625
17021
  }
16626
17022
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Tag, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16627
17023
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Tag, isStandalone: true, selector: "ui5-tag, [ui5-tag]", inputs: { colorScheme: { classPropertyName: "colorScheme", publicName: "colorScheme", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, hideStateIcon: { classPropertyName: "hideStateIcon", publicName: "hideStateIcon", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -16905,6 +17301,7 @@ class TextArea {
16905
17301
  * @private
16906
17302
  */
16907
17303
  this._contentDensityObserver = inject(ContentDensityObserver);
17304
+ this._destroyRef = inject(DestroyRef);
16908
17305
  }
16909
17306
  get element() {
16910
17307
  return this.elementRef.nativeElement;
@@ -16959,17 +17356,21 @@ class TextArea {
16959
17356
  'ui5Select',
16960
17357
  ];
16961
17358
  // Synchronize outputs (events)
17359
+ const _listeners = [];
16962
17360
  for (const outputName of outputsToSync) {
16963
17361
  // Map Angular output name to UI5 web component event name
16964
17362
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
16965
17363
  // Ensure the output property exists and has an emit function before adding listener
16966
17364
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
16967
17365
  // Cast the listener to the correct type to satisfy TypeScript
16968
- wcElement.addEventListener(eventName, (e) => {
17366
+ const listener = (e) => {
16969
17367
  this[outputName].emit(e);
16970
- });
17368
+ };
17369
+ wcElement.addEventListener(eventName, listener);
17370
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
16971
17371
  }
16972
17372
  }
17373
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
16973
17374
  }
16974
17375
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TextArea, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16975
17376
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TextArea, isStandalone: true, selector: "ui5-textarea, [ui5-textarea]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, growing: { classPropertyName: "growing", publicName: "growing", isSignal: true, isRequired: false, transformFunction: null }, growingMaxRows: { classPropertyName: "growingMaxRows", publicName: "growingMaxRows", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, showExceededText: { classPropertyName: "showExceededText", publicName: "showExceededText", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Input: "ui5Input", ui5Scroll: "ui5Scroll", ui5Select: "ui5Select" }, providers: [
@@ -16984,7 +17385,7 @@ class TextArea {
16984
17385
  transformValue: (v) => v || ''
16985
17386
  }
16986
17387
  }
16987
- ], exportAs: ["ui5TextArea"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17388
+ ], exportAs: ["ui5TextArea"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16988
17389
  }
16989
17390
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TextArea, decorators: [{
16990
17391
  type: Component,
@@ -17151,6 +17552,7 @@ class TimePicker {
17151
17552
  * @private
17152
17553
  */
17153
17554
  this._contentDensityObserver = inject(ContentDensityObserver);
17555
+ this._destroyRef = inject(DestroyRef);
17154
17556
  }
17155
17557
  /**
17156
17558
  * Currently selected time represented as JavaScript Date instance
@@ -17211,17 +17613,21 @@ class TimePicker {
17211
17613
  'ui5Open',
17212
17614
  ];
17213
17615
  // Synchronize outputs (events)
17616
+ const _listeners = [];
17214
17617
  for (const outputName of outputsToSync) {
17215
17618
  // Map Angular output name to UI5 web component event name
17216
17619
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
17217
17620
  // Ensure the output property exists and has an emit function before adding listener
17218
17621
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
17219
17622
  // Cast the listener to the correct type to satisfy TypeScript
17220
- wcElement.addEventListener(eventName, (e) => {
17623
+ const listener = (e) => {
17221
17624
  this[outputName].emit(e);
17222
- });
17625
+ };
17626
+ wcElement.addEventListener(eventName, listener);
17627
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
17223
17628
  }
17224
17629
  }
17630
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
17225
17631
  }
17226
17632
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TimePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17227
17633
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TimePicker, isStandalone: true, selector: "ui5-time-picker, [ui5-time-picker]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: true, isRequired: false, transformFunction: null }, formatPattern: { classPropertyName: "formatPattern", publicName: "formatPattern", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open" }, providers: [
@@ -17236,7 +17642,7 @@ class TimePicker {
17236
17642
  transformValue: (v) => v || ''
17237
17643
  }
17238
17644
  }
17239
- ], exportAs: ["ui5TimePicker"], hostDirectives: [{ directive: i1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17645
+ ], exportAs: ["ui5TimePicker"], hostDirectives: [{ directive: i1$1.GenericControlValueAccessor }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
17240
17646
  }
17241
17647
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TimePicker, decorators: [{
17242
17648
  type: Component,
@@ -17644,6 +18050,7 @@ class Toast {
17644
18050
  * @private
17645
18051
  */
17646
18052
  this._contentDensityObserver = inject(ContentDensityObserver);
18053
+ this._destroyRef = inject(DestroyRef);
17647
18054
  }
17648
18055
  get element() {
17649
18056
  return this.elementRef.nativeElement;
@@ -17682,17 +18089,21 @@ class Toast {
17682
18089
  'ui5Close',
17683
18090
  ];
17684
18091
  // Synchronize outputs (events)
18092
+ const _listeners = [];
17685
18093
  for (const outputName of outputsToSync) {
17686
18094
  // Map Angular output name to UI5 web component event name
17687
18095
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
17688
18096
  // Ensure the output property exists and has an emit function before adding listener
17689
18097
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
17690
18098
  // Cast the listener to the correct type to satisfy TypeScript
17691
- wcElement.addEventListener(eventName, (e) => {
18099
+ const listener = (e) => {
17692
18100
  this[outputName].emit(e);
17693
- });
18101
+ };
18102
+ wcElement.addEventListener(eventName, listener);
18103
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
17694
18104
  }
17695
18105
  }
18106
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
17696
18107
  }
17697
18108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Toast, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17698
18109
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Toast, isStandalone: true, selector: "ui5-toast, [ui5-toast]", inputs: { duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Close: "ui5Close" }, providers: [
@@ -17886,6 +18297,7 @@ class ToggleButton {
17886
18297
  * @private
17887
18298
  */
17888
18299
  this._contentDensityObserver = inject(ContentDensityObserver);
18300
+ this._destroyRef = inject(DestroyRef);
17889
18301
  }
17890
18302
  get element() {
17891
18303
  return this.elementRef.nativeElement;
@@ -17937,17 +18349,21 @@ class ToggleButton {
17937
18349
  'ui5Click',
17938
18350
  ];
17939
18351
  // Synchronize outputs (events)
18352
+ const _listeners = [];
17940
18353
  for (const outputName of outputsToSync) {
17941
18354
  // Map Angular output name to UI5 web component event name
17942
18355
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
17943
18356
  // Ensure the output property exists and has an emit function before adding listener
17944
18357
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
17945
18358
  // Cast the listener to the correct type to satisfy TypeScript
17946
- wcElement.addEventListener(eventName, (e) => {
18359
+ const listener = (e) => {
17947
18360
  this[outputName].emit(e);
17948
- });
18361
+ };
18362
+ wcElement.addEventListener(eventName, listener);
18363
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
17949
18364
  }
17950
18365
  }
18366
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
17951
18367
  }
17952
18368
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToggleButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17953
18369
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToggleButton, isStandalone: true, selector: "ui5-toggle-button, [ui5-toggle-button]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: "endIcon", publicName: "endIcon", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, submits: { classPropertyName: "submits", publicName: "submits", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -18141,6 +18557,7 @@ class ToggleSpinButton {
18141
18557
  * @private
18142
18558
  */
18143
18559
  this._contentDensityObserver = inject(ContentDensityObserver);
18560
+ this._destroyRef = inject(DestroyRef);
18144
18561
  }
18145
18562
  get element() {
18146
18563
  return this.elementRef.nativeElement;
@@ -18192,17 +18609,21 @@ class ToggleSpinButton {
18192
18609
  'ui5Click',
18193
18610
  ];
18194
18611
  // Synchronize outputs (events)
18612
+ const _listeners = [];
18195
18613
  for (const outputName of outputsToSync) {
18196
18614
  // Map Angular output name to UI5 web component event name
18197
18615
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
18198
18616
  // Ensure the output property exists and has an emit function before adding listener
18199
18617
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
18200
18618
  // Cast the listener to the correct type to satisfy TypeScript
18201
- wcElement.addEventListener(eventName, (e) => {
18619
+ const listener = (e) => {
18202
18620
  this[outputName].emit(e);
18203
- });
18621
+ };
18622
+ wcElement.addEventListener(eventName, listener);
18623
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
18204
18624
  }
18205
18625
  }
18626
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
18206
18627
  }
18207
18628
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToggleSpinButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18208
18629
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToggleSpinButton, isStandalone: true, selector: "ui5-toggle-spin-button, [ui5-toggle-spin-button]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: "endIcon", publicName: "endIcon", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, loadingDelay: { classPropertyName: "loadingDelay", publicName: "loadingDelay", isSignal: true, isRequired: false, transformFunction: null }, pressed: { classPropertyName: "pressed", publicName: "pressed", isSignal: true, isRequired: false, transformFunction: null }, submits: { classPropertyName: "submits", publicName: "submits", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -18417,6 +18838,7 @@ class Tokenizer {
18417
18838
  * @private
18418
18839
  */
18419
18840
  this._contentDensityObserver = inject(ContentDensityObserver);
18841
+ this._destroyRef = inject(DestroyRef);
18420
18842
  }
18421
18843
  get element() {
18422
18844
  return this.elementRef.nativeElement;
@@ -18460,17 +18882,21 @@ class Tokenizer {
18460
18882
  'ui5TokenDelete',
18461
18883
  ];
18462
18884
  // Synchronize outputs (events)
18885
+ const _listeners = [];
18463
18886
  for (const outputName of outputsToSync) {
18464
18887
  // Map Angular output name to UI5 web component event name
18465
18888
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
18466
18889
  // Ensure the output property exists and has an emit function before adding listener
18467
18890
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
18468
18891
  // Cast the listener to the correct type to satisfy TypeScript
18469
- wcElement.addEventListener(eventName, (e) => {
18892
+ const listener = (e) => {
18470
18893
  this[outputName].emit(e);
18471
- });
18894
+ };
18895
+ wcElement.addEventListener(eventName, listener);
18896
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
18472
18897
  }
18473
18898
  }
18899
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
18474
18900
  }
18475
18901
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Tokenizer, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18476
18902
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Tokenizer, isStandalone: true, selector: "ui5-tokenizer, [ui5-tokenizer]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, multiLine: { classPropertyName: "multiLine", publicName: "multiLine", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, showClearAll: { classPropertyName: "showClearAll", publicName: "showClearAll", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5SelectionChange: "ui5SelectionChange", ui5TokenDelete: "ui5TokenDelete" }, providers: [
@@ -18540,7 +18966,7 @@ class Toolbar {
18540
18966
  *
18541
18967
  * - **(default)**: Defines the items of the component.
18542
18968
 
18543
- **Note:** Currently only `ui5-toolbar-button`, `ui5-toolbar-select`, `ui5-toolbar-separator` and `ui5-toolbar-spacer` are allowed here.
18969
+ **Note:** Use `ui5-toolbar-button`, `ui5-toolbar-select`, `ui5-toolbar-separator` and `ui5-toolbar-spacer` for the most common toolbar actions. To place any other UI5 Web Component into the toolbar and have it participate in overflow handling, wrap it in a `ui5-toolbar-item`.
18544
18970
  *
18545
18971
  * @example
18546
18972
  * ```html
@@ -18556,7 +18982,7 @@ class Toolbar {
18556
18982
  this.slots = [
18557
18983
  {
18558
18984
  "name": "default",
18559
- "description": "Defines the items of the component.\n\n**Note:** Currently only `ui5-toolbar-button`, `ui5-toolbar-select`, `ui5-toolbar-separator` and `ui5-toolbar-spacer` are allowed here."
18985
+ "description": "Defines the items of the component.\n\n**Note:** Use `ui5-toolbar-button`, `ui5-toolbar-select`, `ui5-toolbar-separator` and `ui5-toolbar-spacer` for the most common toolbar actions. To place any other UI5 Web Component into the toolbar and have it participate in overflow handling, wrap it in a `ui5-toolbar-item`."
18560
18986
  }
18561
18987
  ];
18562
18988
  this.elementRef = inject(ElementRef);
@@ -18742,6 +19168,7 @@ class ToolbarButton {
18742
19168
  * @private
18743
19169
  */
18744
19170
  this._contentDensityObserver = inject(ContentDensityObserver);
19171
+ this._destroyRef = inject(DestroyRef);
18745
19172
  }
18746
19173
  get element() {
18747
19174
  return this.elementRef.nativeElement;
@@ -18790,17 +19217,21 @@ class ToolbarButton {
18790
19217
  'ui5Click',
18791
19218
  ];
18792
19219
  // Synchronize outputs (events)
19220
+ const _listeners = [];
18793
19221
  for (const outputName of outputsToSync) {
18794
19222
  // Map Angular output name to UI5 web component event name
18795
19223
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
18796
19224
  // Ensure the output property exists and has an emit function before adding listener
18797
19225
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
18798
19226
  // Cast the listener to the correct type to satisfy TypeScript
18799
- wcElement.addEventListener(eventName, (e) => {
19227
+ const listener = (e) => {
18800
19228
  this[outputName].emit(e);
18801
- });
19229
+ };
19230
+ wcElement.addEventListener(eventName, listener);
19231
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
18802
19232
  }
18803
19233
  }
19234
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
18804
19235
  }
18805
19236
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolbarButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
18806
19237
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarButton, isStandalone: true, selector: "ui5-toolbar-button, [ui5-toolbar-button]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, design: { classPropertyName: "design", publicName: "design", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, endIcon: { classPropertyName: "endIcon", publicName: "endIcon", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", isSignal: true, isRequired: false, transformFunction: null }, showOverflowText: { classPropertyName: "showOverflowText", publicName: "showOverflowText", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -19032,6 +19463,7 @@ class ToolbarSelect {
19032
19463
  * @private
19033
19464
  */
19034
19465
  this._contentDensityObserver = inject(ContentDensityObserver);
19466
+ this._destroyRef = inject(DestroyRef);
19035
19467
  }
19036
19468
  get element() {
19037
19469
  return this.elementRef.nativeElement;
@@ -19077,17 +19509,21 @@ class ToolbarSelect {
19077
19509
  'ui5Open',
19078
19510
  ];
19079
19511
  // Synchronize outputs (events)
19512
+ const _listeners = [];
19080
19513
  for (const outputName of outputsToSync) {
19081
19514
  // Map Angular output name to UI5 web component event name
19082
19515
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
19083
19516
  // Ensure the output property exists and has an emit function before adding listener
19084
19517
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
19085
19518
  // Cast the listener to the correct type to satisfy TypeScript
19086
- wcElement.addEventListener(eventName, (e) => {
19519
+ const listener = (e) => {
19087
19520
  this[outputName].emit(e);
19088
- });
19521
+ };
19522
+ wcElement.addEventListener(eventName, listener);
19523
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
19089
19524
  }
19090
19525
  }
19526
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
19091
19527
  }
19092
19528
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ToolbarSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19093
19529
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ToolbarSelect, isStandalone: true, selector: "ui5-toolbar-select, [ui5-toolbar-select]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, overflowPriority: { classPropertyName: "overflowPriority", publicName: "overflowPriority", isSignal: true, isRequired: false, transformFunction: null }, preventOverflowClosing: { classPropertyName: "preventOverflowClosing", publicName: "preventOverflowClosing", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Open: "ui5Open" }, providers: [
@@ -19511,6 +19947,7 @@ class Tree {
19511
19947
  * @private
19512
19948
  */
19513
19949
  this._contentDensityObserver = inject(ContentDensityObserver);
19950
+ this._destroyRef = inject(DestroyRef);
19514
19951
  }
19515
19952
  get element() {
19516
19953
  return this.elementRef.nativeElement;
@@ -19561,17 +19998,21 @@ class Tree {
19561
19998
  'ui5SelectionChange',
19562
19999
  ];
19563
20000
  // Synchronize outputs (events)
20001
+ const _listeners = [];
19564
20002
  for (const outputName of outputsToSync) {
19565
20003
  // Map Angular output name to UI5 web component event name
19566
20004
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
19567
20005
  // Ensure the output property exists and has an emit function before adding listener
19568
20006
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
19569
20007
  // Cast the listener to the correct type to satisfy TypeScript
19570
- wcElement.addEventListener(eventName, (e) => {
20008
+ const listener = (e) => {
19571
20009
  this[outputName].emit(e);
19572
- });
20010
+ };
20011
+ wcElement.addEventListener(eventName, listener);
20012
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
19573
20013
  }
19574
20014
  }
20015
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
19575
20016
  }
19576
20017
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Tree, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19577
20018
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Tree, isStandalone: true, selector: "ui5-tree, [ui5-tree]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, footerText: { classPropertyName: "footerText", publicName: "footerText", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, noDataText: { classPropertyName: "noDataText", publicName: "noDataText", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5ItemClick: "ui5ItemClick", ui5ItemDelete: "ui5ItemDelete", ui5ItemMouseout: "ui5ItemMouseout", ui5ItemMouseover: "ui5ItemMouseover", ui5ItemToggle: "ui5ItemToggle", ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver", ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -19698,10 +20139,13 @@ class TreeItem {
19698
20139
  ...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
19699
20140
  /**
19700
20141
  * Defines the visual indication and behavior of the list items.
19701
- Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
20142
+ Available options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.
19702
20143
 
19703
20144
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
19704
- while with type `Inactive` and `Detail` - will not.
20145
+ while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
20146
+
20147
+ **Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled
20148
+ when the list has a selection mode. The `item-click` event is not fired for this type.
19705
20149
  */
19706
20150
  this.type = input("Active", /* @ts-ignore */
19707
20151
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ [])); // className is now passed
@@ -19769,6 +20213,7 @@ class TreeItem {
19769
20213
  * @private
19770
20214
  */
19771
20215
  this._contentDensityObserver = inject(ContentDensityObserver);
20216
+ this._destroyRef = inject(DestroyRef);
19772
20217
  }
19773
20218
  get element() {
19774
20219
  return this.elementRef.nativeElement;
@@ -19821,17 +20266,21 @@ class TreeItem {
19821
20266
  'ui5DetailClick',
19822
20267
  ];
19823
20268
  // Synchronize outputs (events)
20269
+ const _listeners = [];
19824
20270
  for (const outputName of outputsToSync) {
19825
20271
  // Map Angular output name to UI5 web component event name
19826
20272
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
19827
20273
  // Ensure the output property exists and has an emit function before adding listener
19828
20274
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
19829
20275
  // Cast the listener to the correct type to satisfy TypeScript
19830
- wcElement.addEventListener(eventName, (e) => {
20276
+ const listener = (e) => {
19831
20277
  this[outputName].emit(e);
19832
- });
20278
+ };
20279
+ wcElement.addEventListener(eventName, listener);
20280
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
19833
20281
  }
19834
20282
  }
20283
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
19835
20284
  }
19836
20285
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TreeItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19837
20286
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TreeItem, isStandalone: true, selector: "ui5-tree-item, [ui5-tree-item]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, additionalTextState: { classPropertyName: "additionalTextState", publicName: "additionalTextState", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, hasChildren: { classPropertyName: "hasChildren", publicName: "hasChildren", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, navigated: { classPropertyName: "navigated", publicName: "navigated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5DetailClick: "ui5DetailClick" }, providers: [
@@ -19952,10 +20401,13 @@ class TreeItemCustom {
19952
20401
  ...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
19953
20402
  /**
19954
20403
  * Defines the visual indication and behavior of the list items.
19955
- Available options are `Active` (by default), `Inactive`, `Detail` and `Navigation`.
20404
+ Available options are `Active` (by default), `Inactive`, `InactiveSelectable`, `Detail` and `Navigation`.
19956
20405
 
19957
20406
  **Note:** When set to `Active` or `Navigation`, the item will provide visual response upon press and hover,
19958
- while with type `Inactive` and `Detail` - will not.
20407
+ while with type `Inactive`, `InactiveSelectable` and `Detail` - will not.
20408
+
20409
+ **Note:** `InactiveSelectable` behaves like `Inactive` but allows selection (checkbox/radio) to be toggled
20410
+ when the list has a selection mode. The `item-click` event is not fired for this type.
19959
20411
  */
19960
20412
  this.type = input("Active", /* @ts-ignore */
19961
20413
  ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ [])); // className is now passed
@@ -20028,6 +20480,7 @@ class TreeItemCustom {
20028
20480
  * @private
20029
20481
  */
20030
20482
  this._contentDensityObserver = inject(ContentDensityObserver);
20483
+ this._destroyRef = inject(DestroyRef);
20031
20484
  }
20032
20485
  get element() {
20033
20486
  return this.elementRef.nativeElement;
@@ -20079,17 +20532,21 @@ class TreeItemCustom {
20079
20532
  'ui5DetailClick',
20080
20533
  ];
20081
20534
  // Synchronize outputs (events)
20535
+ const _listeners = [];
20082
20536
  for (const outputName of outputsToSync) {
20083
20537
  // Map Angular output name to UI5 web component event name
20084
20538
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
20085
20539
  // Ensure the output property exists and has an emit function before adding listener
20086
20540
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
20087
20541
  // Cast the listener to the correct type to satisfy TypeScript
20088
- wcElement.addEventListener(eventName, (e) => {
20542
+ const listener = (e) => {
20089
20543
  this[outputName].emit(e);
20090
- });
20544
+ };
20545
+ wcElement.addEventListener(eventName, listener);
20546
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
20091
20547
  }
20092
20548
  }
20549
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
20093
20550
  }
20094
20551
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TreeItemCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20095
20552
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: TreeItemCustom, isStandalone: true, selector: "ui5-tree-item-custom, [ui5-tree-item-custom]", inputs: { accessibilityAttributes: { classPropertyName: "accessibilityAttributes", publicName: "accessibilityAttributes", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleRole: { classPropertyName: "accessibleRole", publicName: "accessibleRole", isSignal: true, isRequired: false, transformFunction: null }, additionalTextState: { classPropertyName: "additionalTextState", publicName: "additionalTextState", isSignal: true, isRequired: false, transformFunction: null }, expanded: { classPropertyName: "expanded", publicName: "expanded", isSignal: true, isRequired: false, transformFunction: null }, hasChildren: { classPropertyName: "hasChildren", publicName: "hasChildren", isSignal: true, isRequired: false, transformFunction: null }, hideSelectionElement: { classPropertyName: "hideSelectionElement", publicName: "hideSelectionElement", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, indeterminate: { classPropertyName: "indeterminate", publicName: "indeterminate", isSignal: true, isRequired: false, transformFunction: null }, movable: { classPropertyName: "movable", publicName: "movable", isSignal: true, isRequired: false, transformFunction: null }, navigated: { classPropertyName: "navigated", publicName: "navigated", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click", ui5DetailClick: "ui5DetailClick" }, providers: [