@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
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-segmented-button-item.mjs","sources":["../../../../libs/ui5-webcomponents/segmented-button-item/index.ts","../../../../libs/ui5-webcomponents/segmented-button-item/fundamental-ngx-ui5-webcomponents-segmented-button-item.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SegmentedButtonItem.js';\nimport { default as _SegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButtonItem.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\n\n@Component({\n standalone: true,\n selector: 'ui5-segmented-button-item, [ui5-segmented-button-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SegmentedButtonItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedButtonItem implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _SegmentedButtonItem.prototype.accessibleDescription | undefined>();\n\n /**\n * Defines the IDs of the HTML Elements that describe the component.\n */\n accessibleDescriptionRef = input<typeof _SegmentedButtonItem.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _SegmentedButtonItem.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component.\n */\n accessibleNameRef = input<typeof _SegmentedButtonItem.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is disabled.\nA disabled component can't be selected or\nfocused, and it is not in the tab chain.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the icon, displayed as graphical element within the component.\nThe SAP-icons font provides numerous options.\n\nExample:\nSee all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n */\n icon = input<typeof _SegmentedButtonItem.prototype.icon | undefined>();\n\n /**\n * Determines whether the component is displayed as selected.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the tooltip of the component.\n\n**Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n */\n tooltip = input<typeof _SegmentedButtonItem.prototype.tooltip | undefined>(); // className is now passed\n\n\n\n /**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`.\n */\n ui5Click = output<UI5CustomEvent<_SegmentedButtonItem, 'click'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the text of the component.\n\n**Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n *\n * @example\n * ```html\n * <ui5-segmented-button-item>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-segmented-button-item>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the text of the component.\\n\\n**Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\"\n }\n ];\n\n\n public elementRef: ElementRef<_SegmentedButtonItem> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SegmentedButtonItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'icon',\n 'selected',\n 'tooltip',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Click',\n ];\n \n // Synchronize outputs (events)\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n wcElement.addEventListener(eventName, (e) => {\n\n this[outputName].emit(e as CustomEvent<any>);\n });\n }\n }\n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-segmented-button-item.mjs","sources":["../../../../libs/ui5-webcomponents/segmented-button-item/index.ts","../../../../libs/ui5-webcomponents/segmented-button-item/fundamental-ngx-ui5-webcomponents-segmented-button-item.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal,\n DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SegmentedButtonItem.js';\nimport { default as _SegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButtonItem.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\n\n\n@Component({\n standalone: true,\n selector: 'ui5-segmented-button-item, [ui5-segmented-button-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SegmentedButtonItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedButtonItem implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _SegmentedButtonItem.prototype.accessibleDescription | undefined>();\n\n /**\n * Defines the IDs of the HTML Elements that describe the component.\n */\n accessibleDescriptionRef = input<typeof _SegmentedButtonItem.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _SegmentedButtonItem.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component.\n */\n accessibleNameRef = input<typeof _SegmentedButtonItem.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is disabled.\nA disabled component can't be selected or\nfocused, and it is not in the tab chain.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the icon, displayed as graphical element within the component.\nThe SAP-icons font provides numerous options.\n\nExample:\nSee all the available icons within the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n */\n icon = input<typeof _SegmentedButtonItem.prototype.icon | undefined>();\n\n /**\n * Determines whether the component is displayed as selected.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the tooltip of the component.\n\n**Note:** A tooltip attribute should be provided for icon-only buttons, in order to represent their exact meaning/function.\n */\n tooltip = input<typeof _SegmentedButtonItem.prototype.tooltip | undefined>(); // className is now passed\n\n\n\n /**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n\n**Note:** The event will not be fired if the `disabled` property is set to `true`.\n */\n ui5Click = output<UI5CustomEvent<_SegmentedButtonItem, 'click'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the text of the component.\n\n**Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n *\n * @example\n * ```html\n * <ui5-segmented-button-item>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-segmented-button-item>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the text of the component.\\n\\n**Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\"\n }\n ];\n\n\n public elementRef: ElementRef<_SegmentedButtonItem> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n private readonly _destroyRef = inject(DestroyRef);\n\n get element(): _SegmentedButtonItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'icon',\n 'selected',\n 'tooltip',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Click',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n const listener = (e: Event): void => {\n\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, output, inject, ElementRef, Injector, signal, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, booleanAttribute, computed, output, inject, ElementRef, Injector, DestroyRef, signal, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/SegmentedButton.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -85,6 +85,7 @@ class SegmentedButton {
85
85
  * @private
86
86
  */
87
87
  this._contentDensityObserver = inject(ContentDensityObserver);
88
+ this._destroyRef = inject(DestroyRef);
88
89
  // Internal signal to track selectedItems from selection-change events
89
90
  this._selectedItemsSignal = signal([], /* @ts-ignore */
90
91
  ...(ngDevMode ? [{ debugName: "_selectedItemsSignal" }] : /* istanbul ignore next */ []));
@@ -129,27 +130,33 @@ class SegmentedButton {
129
130
  'ui5SelectionChange',
130
131
  ];
131
132
  // Synchronize outputs (events)
133
+ const _listeners = [];
132
134
  for (const outputName of outputsToSync) {
133
135
  // Map Angular output name to UI5 web component event name
134
136
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
135
137
  // Ensure the output property exists and has an emit function before adding listener
136
138
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
137
139
  // Cast the listener to the correct type to satisfy TypeScript
138
- wcElement.addEventListener(eventName, (e) => {
140
+ const listener = (e) => {
139
141
  // Update selectedItems signal when selection-change event fires
140
142
  if (eventName === 'selection-change') {
141
143
  const customEvent = e;
142
144
  // Use selectedItems from event detail, fallback to web component property
145
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
143
146
  const selectedItemsValue = customEvent.detail?.selectedItems || wcElement.selectedItems || [];
144
147
  this._selectedItemsSignal.set(selectedItemsValue);
145
148
  }
146
149
  this[outputName].emit(e);
147
- });
150
+ };
151
+ wcElement.addEventListener(eventName, listener);
152
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
148
153
  }
149
154
  }
155
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
150
156
  // Initialize selectedItems signal with current state using delayed initialization
151
157
  // to handle web component timing properly
152
158
  const initializeSelectedItems = () => {
159
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
153
160
  const currentValue = wcElement.selectedItems || [];
154
161
  if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedItemsSignal())) {
155
162
  this._selectedItemsSignal.set(currentValue);
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-segmented-button.mjs","sources":["../../../../libs/ui5-webcomponents/segmented-button/index.ts","../../../../libs/ui5-webcomponents/segmented-button/fundamental-ngx-ui5-webcomponents-segmented-button.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SegmentedButton.js';\nimport { default as _SegmentedButton } from '@ui5/webcomponents/dist/SegmentedButton.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\nimport { ISegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButton.js';\nimport { default as SegmentedButtonSelectionMode } from '@ui5/webcomponents/dist/types/SegmentedButtonSelectionMode.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-segmented-button, [ui5-segmented-button]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SegmentedButton',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedButton implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _SegmentedButton.prototype.accessibleDescription | undefined>();\n\n /**\n * Defines the IDs of the HTML Elements that describe the component.\n */\n accessibleDescriptionRef = input<typeof _SegmentedButton.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _SegmentedButton.prototype.accessibleName | undefined>();\n\n /**\n * Defines the IDs of the HTML Elements that label the component.\n */\n accessibleNameRef = input<typeof _SegmentedButton.prototype.accessibleNameRef | undefined>();\n\n /**\n * Determines whether the segmented button items should be sized to fit their content.\n\nIf set to `true`, each item will be sized to fit its content, with any extra space distributed after the last item.\nIf set to `false` (the default), all items will be equally sized to fill the available space.\n */\n itemsFitContent = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the component selection mode.\n */\n selectionMode = input<typeof _SegmentedButton.prototype.selectionMode | undefined>(\"Single\"); // className is now passed\n\n /**\n * Returns an array of the currently selected items.\n * @readonly This property is managed by the web component and updates reactively.\n * Based on schema: readonly field that updates via selection-change event parameters.\n */\n selectedItems = computed(() => this._selectedItemsSignal());\n\n\n /**\n * Fired when the selected item changes.\n */\n ui5SelectionChange = output<UI5CustomEvent<_SegmentedButton, 'selection-change'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the items of `ui5-segmented-button`.\n\n**Note:** Multiple items are allowed.\n\n**Note:** Use the `ui5-segmented-button-item` for the intended design.\n *\n * @example\n * ```html\n * <ui5-segmented-button>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-segmented-button>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the items of `ui5-segmented-button`.\\n\\n**Note:** Multiple items are allowed.\\n\\n**Note:** Use the `ui5-segmented-button-item` for the intended design.\"\n }\n ];\n\n\n public elementRef: ElementRef<_SegmentedButton> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n // Internal signal to track selectedItems from selection-change events\n private _selectedItemsSignal = signal<Array<ISegmentedButtonItem>>([]);\n\n get element(): _SegmentedButton {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'itemsFitContent',\n 'selectionMode',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5SelectionChange',\n ];\n \n // Synchronize outputs (events)\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n wcElement.addEventListener(eventName, (e) => {\n // Update selectedItems signal when selection-change event fires\n if (eventName === 'selection-change') {\n const customEvent = e as CustomEvent<any>;\n // Use selectedItems from event detail, fallback to web component property\n const selectedItemsValue = customEvent.detail?.selectedItems || wcElement.selectedItems || [];\n this._selectedItemsSignal.set(selectedItemsValue);\n }\n this[outputName].emit(e as CustomEvent<any>);\n });\n }\n }\n \n\n // Initialize selectedItems signal with current state using delayed initialization\n // to handle web component timing properly\n const initializeSelectedItems = (): void => {\n const currentValue = wcElement.selectedItems || [];\n if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedItemsSignal())) {\n this._selectedItemsSignal.set(currentValue);\n }\n };\n\n // Try immediate initialization\n initializeSelectedItems();\n\n // Fallback delayed initialization if web component needs more time\n // Use requestAnimationFrame for zoneless compatibility\n requestAnimationFrame(() => initializeSelectedItems());\n }\n}\n\n// Re-export types for convenience\nexport { ISegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButton.js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-segmented-button.mjs","sources":["../../../../libs/ui5-webcomponents/segmented-button/index.ts","../../../../libs/ui5-webcomponents/segmented-button/fundamental-ngx-ui5-webcomponents-segmented-button.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal,\n DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SegmentedButton.js';\nimport { default as _SegmentedButton } from '@ui5/webcomponents/dist/SegmentedButton.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { ISegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButton.js';\nimport { default as SegmentedButtonSelectionMode } from '@ui5/webcomponents/dist/types/SegmentedButtonSelectionMode.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-segmented-button, [ui5-segmented-button]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SegmentedButton',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedButton implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _SegmentedButton.prototype.accessibleDescription | undefined>();\n\n /**\n * Defines the IDs of the HTML Elements that describe the component.\n */\n accessibleDescriptionRef = input<typeof _SegmentedButton.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _SegmentedButton.prototype.accessibleName | undefined>();\n\n /**\n * Defines the IDs of the HTML Elements that label the component.\n */\n accessibleNameRef = input<typeof _SegmentedButton.prototype.accessibleNameRef | undefined>();\n\n /**\n * Determines whether the segmented button items should be sized to fit their content.\n\nIf set to `true`, each item will be sized to fit its content, with any extra space distributed after the last item.\nIf set to `false` (the default), all items will be equally sized to fill the available space.\n */\n itemsFitContent = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the component selection mode.\n */\n selectionMode = input<typeof _SegmentedButton.prototype.selectionMode | undefined>(\"Single\"); // className is now passed\n\n /**\n * Returns an array of the currently selected items.\n * @readonly This property is managed by the web component and updates reactively.\n * Based on schema: readonly field that updates via selection-change event parameters.\n */\n selectedItems = computed((): Array<ISegmentedButtonItem> => this._selectedItemsSignal());\n\n\n /**\n * Fired when the selected item changes.\n */\n ui5SelectionChange = output<UI5CustomEvent<_SegmentedButton, 'selection-change'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the items of `ui5-segmented-button`.\n\n**Note:** Multiple items are allowed.\n\n**Note:** Use the `ui5-segmented-button-item` for the intended design.\n *\n * @example\n * ```html\n * <ui5-segmented-button>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-segmented-button>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the items of `ui5-segmented-button`.\\n\\n**Note:** Multiple items are allowed.\\n\\n**Note:** Use the `ui5-segmented-button-item` for the intended design.\"\n }\n ];\n\n\n public elementRef: ElementRef<_SegmentedButton> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n private readonly _destroyRef = inject(DestroyRef);\n\n // Internal signal to track selectedItems from selection-change events\n private _selectedItemsSignal = signal<Array<ISegmentedButtonItem>>([]);\n\n get element(): _SegmentedButton {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'itemsFitContent',\n 'selectionMode',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5SelectionChange',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n const listener = (e: Event): void => {\n // Update selectedItems signal when selection-change event fires\n if (eventName === 'selection-change') {\n const customEvent = e as CustomEvent<any>;\n // Use selectedItems from event detail, fallback to web component property\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const selectedItemsValue = customEvent.detail?.selectedItems || wcElement.selectedItems! || [];\n this._selectedItemsSignal.set(selectedItemsValue);\n }\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\n \n\n // Initialize selectedItems signal with current state using delayed initialization\n // to handle web component timing properly\n const initializeSelectedItems = (): void => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const currentValue = wcElement.selectedItems! || [];\n if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedItemsSignal())) {\n this._selectedItemsSignal.set(currentValue);\n }\n };\n\n // Try immediate initialization\n initializeSelectedItems();\n\n // Fallback delayed initialization if web component needs more time\n // Use requestAnimationFrame for zoneless compatibility\n requestAnimationFrame((): void => initializeSelectedItems());\n }\n}\n\n// Re-export types for convenience\nexport { ISegmentedButtonItem } from '@ui5/webcomponents/dist/SegmentedButton.js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, computed, output, inject, ElementRef, Injector, signal, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, booleanAttribute, computed, output, inject, ElementRef, Injector, DestroyRef, signal, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/Select.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
  import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
@@ -168,6 +168,7 @@ class Select {
168
168
  * @private
169
169
  */
170
170
  this._contentDensityObserver = inject(ContentDensityObserver);
171
+ this._destroyRef = inject(DestroyRef);
171
172
  // Internal signal to track selectedOption from change events
172
173
  this._selectedOptionSignal = signal(undefined, /* @ts-ignore */
173
174
  ...(ngDevMode ? [{ debugName: "_selectedOptionSignal" }] : /* istanbul ignore next */ []));
@@ -221,17 +222,19 @@ class Select {
221
222
  'ui5Open',
222
223
  ];
223
224
  // Synchronize outputs (events)
225
+ const _listeners = [];
224
226
  for (const outputName of outputsToSync) {
225
227
  // Map Angular output name to UI5 web component event name
226
228
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
227
229
  // Ensure the output property exists and has an emit function before adding listener
228
230
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
229
231
  // Cast the listener to the correct type to satisfy TypeScript
230
- wcElement.addEventListener(eventName, (e) => {
232
+ const listener = (e) => {
231
233
  // Update selectedOption signal when change event fires
232
234
  if (eventName === 'change') {
233
235
  const customEvent = e;
234
236
  // Use selectedOption from event detail, fallback to web component property
237
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
235
238
  const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption || undefined;
236
239
  this._selectedOptionSignal.set(selectedOptionValue);
237
240
  }
@@ -239,16 +242,21 @@ class Select {
239
242
  if (eventName === 'live-change') {
240
243
  const customEvent = e;
241
244
  // Use selectedOption from event detail, fallback to web component property
245
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
242
246
  const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption || undefined;
243
247
  this._selectedOptionSignal.set(selectedOptionValue);
244
248
  }
245
249
  this[outputName].emit(e);
246
- });
250
+ };
251
+ wcElement.addEventListener(eventName, listener);
252
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
247
253
  }
248
254
  }
255
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
249
256
  // Initialize selectedOption signal with current state using delayed initialization
250
257
  // to handle web component timing properly
251
258
  const initializeSelectedOption = () => {
259
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
252
260
  const currentValue = wcElement.selectedOption || undefined;
253
261
  if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedOptionSignal())) {
254
262
  this._selectedOptionSignal.set(currentValue);
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-select.mjs","sources":["../../../../libs/ui5-webcomponents/select/index.ts","../../../../libs/ui5-webcomponents/select/fundamental-ngx-ui5-webcomponents-select.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/Select.js';\nimport { default as _Select } from '@ui5/webcomponents/dist/Select.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\nimport { GenericControlValueAccessor, CVA_CONFIG } from '@fundamental-ngx/ui5-webcomponents/utils';\nimport { IOption } from '@ui5/webcomponents/dist/Select.js';\nimport { default as SelectTextSeparator } from '@ui5/webcomponents/dist/types/SelectTextSeparator.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-select, [ui5-select]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5Select',\n hostDirectives: [GenericControlValueAccessor],\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n }),\n {\n provide: CVA_CONFIG,\n useValue: {\n property: 'value',\n events: ['change', 'liveChange'],\n transformValue: (v) => v || ''\n }\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Select implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _Select.prototype.accessibleDescription | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that describe the select.\n */\n accessibleDescriptionRef = input<typeof _Select.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _Select.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the select.\n */\n accessibleNameRef = input<typeof _Select.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Determines the name by which the component will be identified upon submission in an HTML form.\n\n**Note:** This property is only applicable within the context of an HTML Form element.\n */\n name = input<typeof _Select.prototype.name | undefined>();\n\n /**\n * Defines whether the component is read-only.\n\n**Note:** A read-only component is not editable,\nbut still provides visual feedback upon user interaction.\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the component is required.\n */\n required = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the separator type for the two columns layout when Select is in read-only mode.\n */\n textSeparator = input<typeof _Select.prototype.textSeparator | undefined>(\"Dash\");\n\n /**\n * Defines the tooltip of the select.\n */\n tooltip = input<typeof _Select.prototype.tooltip | undefined>();\n\n /**\n * Defines the value of the component:\n\n- when get - returns the value of the component or the value/text content of the selected option.\n- when set - selects the option with matching `value` property or text content.\n\n**Note:** Use either the Select's value or the Options' selected property.\nMixed usage could result in unexpected behavior.\n\n**Note:** If the given value does not match any existing option,\nno option will be selected and the Select component will be displayed as empty.\n */\n value = input<typeof _Select.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _Select.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n /**\n * Currently selected `ui5-option` element.\n * @readonly This property is managed by the web component and updates reactively.\n * Based on schema: readonly field that updates via change event parameters.\n */\n selectedOption = computed(() => this._selectedOptionSignal());\n\n\n /**\n * Fired when the selected option changes.\n */\n ui5Change = output<UI5CustomEvent<_Select, 'change'>>();\n\n /**\n * Fired after the component's dropdown menu closes.\n */\n ui5Close = output<UI5CustomEvent<_Select, 'close'>>();\n\n /**\n * Fired when the user navigates through the options, but the selection is not finalized,\nor when pressing the ESC key to revert the current selection.\n */\n ui5LiveChange = output<UI5CustomEvent<_Select, 'live-change'>>();\n\n /**\n * Fired after the component's dropdown menu opens.\n */\n ui5Open = output<UI5CustomEvent<_Select, 'open'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the component options.\n\n**Note:** Only one selected option is allowed.\nIf more than one option is defined as selected, the last one would be considered as the selected one.\n\n**Note:** Use the `ui5-option` component to define the desired options.\n * - **label**: Defines the HTML element that will be displayed in the component input part,\nrepresenting the selected option.\n\n**Note:** If not specified and `ui5-option-custom` is used,\neither the option's `display-text` or its textContent will be displayed.\n\n**Note:** If not specified and `ui5-option` is used,\nthe option's textContent will be displayed.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state.\n\n**Note:** If the component has `suggestionItems`,\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n *\n * @example\n * ```html\n * <ui5-select>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-select>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the component options.\\n\\n**Note:** Only one selected option is allowed.\\nIf more than one option is defined as selected, the last one would be considered as the selected one.\\n\\n**Note:** Use the `ui5-option` component to define the desired options.\"\n },\n {\n \"name\": \"label\",\n \"description\": \"Defines the HTML element that will be displayed in the component input part,\\nrepresenting the selected option.\\n\\n**Note:** If not specified and `ui5-option-custom` is used,\\neither the option's `display-text` or its textContent will be displayed.\\n\\n**Note:** If not specified and `ui5-option` is used,\\nthe option's textContent will be displayed.\",\n \"since\": \"1.17.0\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\n\\n**Note:** If not specified, a default text (in the respective language) will be displayed.\\n\\n**Note:** The `valueStateMessage` would be displayed,\\nwhen the component is in `Information`, `Critical` or `Negative` value state.\\n\\n**Note:** If the component has `suggestionItems`,\\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\"\n }\n ];\n\n\n public elementRef: ElementRef<_Select> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n // Internal signal to track selectedOption from change events\n private _selectedOptionSignal = signal<IOption | undefined>(undefined);\n\n get element(): _Select {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'name',\n 'readonly',\n 'required',\n 'textSeparator',\n 'tooltip',\n 'value',\n 'valueState',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Change',\n 'ui5Close',\n 'ui5LiveChange',\n 'ui5Open',\n ];\n \n // Synchronize outputs (events)\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n wcElement.addEventListener(eventName, (e) => {\n // Update selectedOption signal when change event fires\n if (eventName === 'change') {\n const customEvent = e as CustomEvent<any>;\n // Use selectedOption from event detail, fallback to web component property\n const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption || undefined;\n this._selectedOptionSignal.set(selectedOptionValue);\n }\n // Update selectedOption signal when live-change event fires\n if (eventName === 'live-change') {\n const customEvent = e as CustomEvent<any>;\n // Use selectedOption from event detail, fallback to web component property\n const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption || undefined;\n this._selectedOptionSignal.set(selectedOptionValue);\n }\n this[outputName].emit(e as CustomEvent<any>);\n });\n }\n }\n \n\n // Initialize selectedOption signal with current state using delayed initialization\n // to handle web component timing properly\n const initializeSelectedOption = (): void => {\n const currentValue = wcElement.selectedOption || undefined;\n if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedOptionSignal())) {\n this._selectedOptionSignal.set(currentValue);\n }\n };\n\n // Try immediate initialization\n initializeSelectedOption();\n\n // Fallback delayed initialization if web component needs more time\n // Use requestAnimationFrame for zoneless compatibility\n requestAnimationFrame(() => initializeSelectedOption());\n }\n}\n\n// Re-export types for convenience\nexport { IOption } from '@ui5/webcomponents/dist/Select.js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAkDa,MAAM,CAAA;AArBnB,IAAA,WAAA,GAAA;AAuBE;;AAEG;AACH,QAAA,IAAA,CAAA,qBAAqB,GAAG,KAAK;6GAA8D;AAE3F;;AAEG;AACH,QAAA,IAAA,CAAA,wBAAwB,GAAG,KAAK;gHAAiE;AAEjG;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAAuD;AAE7E;;AAEG;AACH,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK;yGAA0D;AAEnF;;;;AAIG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;;;AAIG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAA6C;AAEzD;;;;;AAKG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;AAEG;QACH,IAAA,CAAA,aAAa,GAAG,KAAK,CAAqD,MAAM;0FAAC;AAEjF;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK;+FAAgD;AAE/D;;;;;;;;;;;AAWG;QACH,IAAA,CAAA,KAAK,GAAG,KAAK,CAA6C,EAAE;kFAAC;AAE7D;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkD,MAAM;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAE5E;;;;AAIG;QACH,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,qBAAqB,EAAE;2FAAC;AAG7D;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,MAAM,EAAqC;AAEvD;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAoC;AAErD;;;AAGG;QACH,IAAA,CAAA,aAAa,GAAG,MAAM,EAA0C;AAEhE;;AAEG;QACH,IAAA,CAAA,OAAO,GAAG,MAAM,EAAmC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG;AACb,YAAA;AACI,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,aAAa,EAAE;AAClB,aAAA;AACD,YAAA;AACI,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,aAAa,EAAE,+VAA+V;AAC9W,gBAAA,OAAO,EAAE;AACZ,aAAA;AACD,YAAA;AACI,gBAAA,MAAM,EAAE,mBAAmB;AAC3B,gBAAA,aAAa,EAAE;AAClB;SACJ;AAGM,QAAA,IAAA,CAAA,UAAU,GAAwB,MAAM,CAAC,UAAU,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;;QAGjE,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAsB,SAAS;kGAAC;AAqGvE,IAAA;AAnGC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;AAE9B,QAAA,MAAM,YAAY,GAAG;YACnB,uBAAuB;YACvB,0BAA0B;YAC1B,gBAAgB;YAChB,mBAAmB;YACnB,UAAU;YACV,MAAM;YACN,UAAU;YACV,UAAU;YACV,eAAe;YACf,SAAS;YACT,OAAO;YACP,YAAY;SACb;;AAGD,QAAA,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;;YAEpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;;AAG9E,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;AAC9D,gBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAK;oBACxC,MAAM,CAAC,MAAK;;AAEV,wBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;wBAChC,IAAI,SAAS,EAAE;;;4BAGb,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gCAC/C;4BACF;;AAEA,4BAAA,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK;wBAC9B;AACF,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;QACF;AAGA,QAAA,MAAM,aAAa,GAAG;YACpB,WAAW;YACX,UAAU;YACV,eAAe;YACf,SAAS;SACV;;AAGD,QAAA,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE;;YAEtC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;;AAErG,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,gBAAgB,EAAE;;gBAEjG,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAI;;AAE1C,oBAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;wBAC1B,MAAM,WAAW,GAAG,CAAqB;;AAEzC,wBAAA,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,EAAE,cAAc,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS;AACvG,wBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC;oBACrD;;AAEA,oBAAA,IAAI,SAAS,KAAK,aAAa,EAAE;wBAC/B,MAAM,WAAW,GAAG,CAAqB;;AAEzC,wBAAA,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,EAAE,cAAc,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS;AACvG,wBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,mBAAmB,CAAC;oBACrD;oBACA,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAqB,CAAC;AAC9C,gBAAA,CAAC,CAAC;YACJ;QACF;;;QAKA,MAAM,wBAAwB,GAAG,MAAW;AAC1C,YAAA,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,IAAI,SAAS;AAC1D,YAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,EAAE;AACjF,gBAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC;YAC9C;AACF,QAAA,CAAC;;AAGD,QAAA,wBAAwB,EAAE;;;AAI1B,QAAA,qBAAqB,CAAC,MAAM,wBAAwB,EAAE,CAAC;IACzD;8GApRW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,wBAAA,EAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAfN;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E,CAAC;AACF,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,QAAQ,EAAE;AACR,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;oBAChC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;AAC7B;AACF;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAfS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAkB1B,MAAM,EAAA,UAAA,EAAA,CAAA;kBArBlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,WAAW;oBACrB,cAAc,EAAE,CAAC,2BAA2B,CAAC;AAC7C,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E,CAAC;AACF,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,QAAQ,EAAE;AACR,gCAAA,QAAQ,EAAE,OAAO;AACjB,gCAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;gCAChC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;AAC7B;AACF;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACjDD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-select.mjs","sources":["../../../../libs/ui5-webcomponents/select/index.ts","../../../../libs/ui5-webcomponents/select/fundamental-ngx-ui5-webcomponents-select.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal,\n DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/Select.js';\nimport { default as _Select } from '@ui5/webcomponents/dist/Select.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\nimport { GenericControlValueAccessor, CVA_CONFIG } from '@fundamental-ngx/ui5-webcomponents/utils';\n\nimport { IOption } from '@ui5/webcomponents/dist/Select.js';\nimport { default as SelectTextSeparator } from '@ui5/webcomponents/dist/types/SelectTextSeparator.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-select, [ui5-select]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5Select',\n hostDirectives: [GenericControlValueAccessor],\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n }),\n {\n provide: CVA_CONFIG,\n useValue: {\n property: 'value',\n events: ['change', 'liveChange'],\n transformValue: (v) => v || ''\n }\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Select implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _Select.prototype.accessibleDescription | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that describe the select.\n */\n accessibleDescriptionRef = input<typeof _Select.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _Select.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the select.\n */\n accessibleNameRef = input<typeof _Select.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Determines the name by which the component will be identified upon submission in an HTML form.\n\n**Note:** This property is only applicable within the context of an HTML Form element.\n */\n name = input<typeof _Select.prototype.name | undefined>();\n\n /**\n * Defines whether the component is read-only.\n\n**Note:** A read-only component is not editable,\nbut still provides visual feedback upon user interaction.\n */\n readonly = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the component is required.\n */\n required = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the separator type for the two columns layout when Select is in read-only mode.\n */\n textSeparator = input<typeof _Select.prototype.textSeparator | undefined>(\"Dash\");\n\n /**\n * Defines the tooltip of the select.\n */\n tooltip = input<typeof _Select.prototype.tooltip | undefined>();\n\n /**\n * Defines the value of the component:\n\n- when get - returns the value of the component or the value/text content of the selected option.\n- when set - selects the option with matching `value` property or text content.\n\n**Note:** Use either the Select's value or the Options' selected property.\nMixed usage could result in unexpected behavior.\n\n**Note:** If the given value does not match any existing option,\nno option will be selected and the Select component will be displayed as empty.\n */\n value = input<typeof _Select.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _Select.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n /**\n * Currently selected `ui5-option` element.\n * @readonly This property is managed by the web component and updates reactively.\n * Based on schema: readonly field that updates via change event parameters.\n */\n selectedOption = computed((): IOption | undefined => this._selectedOptionSignal());\n\n\n /**\n * Fired when the selected option changes.\n */\n ui5Change = output<UI5CustomEvent<_Select, 'change'>>();\n\n /**\n * Fired after the component's dropdown menu closes.\n */\n ui5Close = output<UI5CustomEvent<_Select, 'close'>>();\n\n /**\n * Fired when the user navigates through the options, but the selection is not finalized,\nor when pressing the ESC key to revert the current selection.\n */\n ui5LiveChange = output<UI5CustomEvent<_Select, 'live-change'>>();\n\n /**\n * Fired after the component's dropdown menu opens.\n */\n ui5Open = output<UI5CustomEvent<_Select, 'open'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the component options.\n\n**Note:** Only one selected option is allowed.\nIf more than one option is defined as selected, the last one would be considered as the selected one.\n\n**Note:** Use the `ui5-option` component to define the desired options.\n * - **label**: Defines the HTML element that will be displayed in the component input part,\nrepresenting the selected option.\n\n**Note:** If not specified and `ui5-option-custom` is used,\neither the option's `display-text` or its textContent will be displayed.\n\n**Note:** If not specified and `ui5-option` is used,\nthe option's textContent will be displayed.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\n\n**Note:** If not specified, a default text (in the respective language) will be displayed.\n\n**Note:** The `valueStateMessage` would be displayed,\nwhen the component is in `Information`, `Critical` or `Negative` value state.\n\n**Note:** If the component has `suggestionItems`,\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\n *\n * @example\n * ```html\n * <ui5-select>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-select>\n * ```\n *\n * @readonly\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_templates_and_slots | MDN Web Components Slots}\n */\n readonly slots = [\n {\n \"name\": \"default\",\n \"description\": \"Defines the component options.\\n\\n**Note:** Only one selected option is allowed.\\nIf more than one option is defined as selected, the last one would be considered as the selected one.\\n\\n**Note:** Use the `ui5-option` component to define the desired options.\"\n },\n {\n \"name\": \"label\",\n \"description\": \"Defines the HTML element that will be displayed in the component input part,\\nrepresenting the selected option.\\n\\n**Note:** If not specified and `ui5-option-custom` is used,\\neither the option's `display-text` or its textContent will be displayed.\\n\\n**Note:** If not specified and `ui5-option` is used,\\nthe option's textContent will be displayed.\",\n \"since\": \"1.17.0\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\n\\n**Note:** If not specified, a default text (in the respective language) will be displayed.\\n\\n**Note:** The `valueStateMessage` would be displayed,\\nwhen the component is in `Information`, `Critical` or `Negative` value state.\\n\\n**Note:** If the component has `suggestionItems`,\\nthe `valueStateMessage` would be displayed as part of the same popover, if used on desktop, or dialog - on phone.\"\n }\n ];\n\n\n public elementRef: ElementRef<_Select> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n private readonly _destroyRef = inject(DestroyRef);\n\n // Internal signal to track selectedOption from change events\n private _selectedOptionSignal = signal<IOption | undefined>(undefined);\n\n get element(): _Select {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleDescription',\n 'accessibleDescriptionRef',\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'name',\n 'readonly',\n 'required',\n 'textSeparator',\n 'tooltip',\n 'value',\n 'valueState',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Change',\n 'ui5Close',\n 'ui5LiveChange',\n 'ui5Open',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n const listener = (e: Event): void => {\n // Update selectedOption signal when change event fires\n if (eventName === 'change') {\n const customEvent = e as CustomEvent<any>;\n // Use selectedOption from event detail, fallback to web component property\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption! || undefined;\n this._selectedOptionSignal.set(selectedOptionValue);\n }\n // Update selectedOption signal when live-change event fires\n if (eventName === 'live-change') {\n const customEvent = e as CustomEvent<any>;\n // Use selectedOption from event detail, fallback to web component property\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const selectedOptionValue = customEvent.detail?.selectedOption || wcElement.selectedOption! || undefined;\n this._selectedOptionSignal.set(selectedOptionValue);\n }\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\n \n\n // Initialize selectedOption signal with current state using delayed initialization\n // to handle web component timing properly\n const initializeSelectedOption = (): void => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const currentValue = wcElement.selectedOption! || undefined;\n if (JSON.stringify(currentValue) !== JSON.stringify(this._selectedOptionSignal())) {\n this._selectedOptionSignal.set(currentValue);\n }\n };\n\n // Try immediate initialization\n initializeSelectedOption();\n\n // Fallback delayed initialization if web component needs more time\n // Use requestAnimationFrame for zoneless compatibility\n requestAnimationFrame((): void => initializeSelectedOption());\n }\n}\n\n// Re-export types for convenience\nexport { IOption } from '@ui5/webcomponents/dist/Select.js';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-slider-handle.mjs","sources":["../../../../libs/ui5-webcomponents/slider-handle/index.ts","../../../../libs/ui5-webcomponents/slider-handle/fundamental-ngx-ui5-webcomponents-slider-handle.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SliderHandle.js';\nimport { default as _SliderHandle } from '@ui5/webcomponents/dist/SliderHandle.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\n\n@Component({\n standalone: true,\n selector: 'ui5-slider-handle, [ui5-slider-handle]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SliderHandle',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderHandle implements AfterViewInit {\n // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_SliderHandle> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SliderHandle {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n \n \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAuCa,YAAY,CAAA;AAZzB,IAAA,WAAA,GAAA;;AAmBS,QAAA,IAAA,CAAA,UAAU,GAA8B,MAAM,CAAC,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAc1E,IAAA;AAZC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;IAMhC;8GA5BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,SAAA,EAPZ;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAS1B,YAAY,EAAA,UAAA,EAAA,CAAA;kBAZxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACtCD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-slider-handle.mjs","sources":["../../../../libs/ui5-webcomponents/slider-handle/index.ts","../../../../libs/ui5-webcomponents/slider-handle/fundamental-ngx-ui5-webcomponents-slider-handle.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SliderHandle.js';\nimport { default as _SliderHandle } from '@ui5/webcomponents/dist/SliderHandle.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\n\n\n@Component({\n standalone: true,\n selector: 'ui5-slider-handle, [ui5-slider-handle]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SliderHandle',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderHandle implements AfterViewInit {\n // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_SliderHandle> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SliderHandle {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n \n \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAwCa,YAAY,CAAA;AAZzB,IAAA,WAAA,GAAA;;AAmBS,QAAA,IAAA,CAAA,UAAU,GAA8B,MAAM,CAAC,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAc1E,IAAA;AAZC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;IAMhC;8GA5BW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,SAAA,EAPZ;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAS1B,YAAY,EAAA,UAAA,EAAA,CAAA;kBAZxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACvCD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-slider-tooltip.mjs","sources":["../../../../libs/ui5-webcomponents/slider-tooltip/index.ts","../../../../libs/ui5-webcomponents/slider-tooltip/fundamental-ngx-ui5-webcomponents-slider-tooltip.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SliderTooltip.js';\nimport { default as _SliderTooltip } from '@ui5/webcomponents/dist/SliderTooltip.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\n\n@Component({\n standalone: true,\n selector: 'ui5-slider-tooltip, [ui5-slider-tooltip]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SliderTooltip',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderTooltip implements AfterViewInit {\n // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_SliderTooltip> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SliderTooltip {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n \n \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAuCa,aAAa,CAAA;AAZ1B,IAAA,WAAA,GAAA;;AAmBS,QAAA,IAAA,CAAA,UAAU,GAA+B,MAAM,CAAC,UAAU,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAc1E,IAAA;AAZC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;IAMhC;8GA5BW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,SAAA,EAPb;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAS1B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACtCD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-slider-tooltip.mjs","sources":["../../../../libs/ui5-webcomponents/slider-tooltip/index.ts","../../../../libs/ui5-webcomponents/slider-tooltip/fundamental-ngx-ui5-webcomponents-slider-tooltip.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SliderTooltip.js';\nimport { default as _SliderTooltip } from '@ui5/webcomponents/dist/SliderTooltip.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\n\n\n@Component({\n standalone: true,\n selector: 'ui5-slider-tooltip, [ui5-slider-tooltip]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SliderTooltip',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SliderTooltip implements AfterViewInit {\n // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_SliderTooltip> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SliderTooltip {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n \n \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAwCa,aAAa,CAAA;AAZ1B,IAAA,WAAA,GAAA;;AAmBS,QAAA,IAAA,CAAA,UAAU,GAA+B,MAAM,CAAC,UAAU,CAAC;AAC3D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAc1E,IAAA;AAZC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;IAMhC;8GA5BW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0CAAA,EAAA,SAAA,EAPb;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAS1B,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,0CAA0C;AACpD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACvCD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, output, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, booleanAttribute, output, inject, ElementRef, Injector, DestroyRef, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/Slider.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
  import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
@@ -107,6 +107,7 @@ class Slider {
107
107
  * @private
108
108
  */
109
109
  this._contentDensityObserver = inject(ContentDensityObserver);
110
+ this._destroyRef = inject(DestroyRef);
110
111
  }
111
112
  get element() {
112
113
  return this.elementRef.nativeElement;
@@ -155,17 +156,21 @@ class Slider {
155
156
  'ui5Input',
156
157
  ];
157
158
  // Synchronize outputs (events)
159
+ const _listeners = [];
158
160
  for (const outputName of outputsToSync) {
159
161
  // Map Angular output name to UI5 web component event name
160
162
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
161
163
  // Ensure the output property exists and has an emit function before adding listener
162
164
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
163
165
  // Cast the listener to the correct type to satisfy TypeScript
164
- wcElement.addEventListener(eventName, (e) => {
166
+ const listener = (e) => {
165
167
  this[outputName].emit(e);
166
- });
168
+ };
169
+ wcElement.addEventListener(eventName, listener);
170
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
167
171
  }
168
172
  }
173
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
169
174
  }
170
175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Slider, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
171
176
  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: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-slider.mjs","sources":["../../../../libs/ui5-webcomponents/slider/index.ts","../../../../libs/ui5-webcomponents/slider/fundamental-ngx-ui5-webcomponents-slider.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/Slider.js';\nimport { default as _Slider } from '@ui5/webcomponents/dist/Slider.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\nimport { GenericControlValueAccessor, CVA_CONFIG } from '@fundamental-ngx/ui5-webcomponents/utils';\nimport { Tickmark } from '@ui5/webcomponents/dist/SliderScale.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-slider, [ui5-slider]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5Slider',\n hostDirectives: [GenericControlValueAccessor],\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n }),\n {\n provide: CVA_CONFIG,\n useValue: {\n property: 'value',\n events: ['change', 'input'],\n transformValue: (v) => v || ''\n }\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Slider implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _Slider.prototype.accessibleName | undefined>();\n\n /**\n * Defines whether the slider is in disabled state.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * \nIndicates whether input fields should be used as tooltips for the handles.\n\n**Note:** Setting this option to true will only work if showTooltip is set to true.\n**Note:** In order for the component to comply with the accessibility standard, it is recommended to set the editableTooltip property to true.\n */\n editableTooltip = input(false, { transform: booleanAttribute });\n\n /**\n * Displays a label with a value on every N-th step.\n\n**Note:** The step and tickmarks properties must be enabled.\nExample - if the step value is set to 2 and the label interval is also specified to 2 - then every second\ntickmark will be labelled, which means every 4th value number.\n\n**Note:** This property is ignored when the `tickmarks` property is used.\nIn that case every custom tickmark is labelled with its own `label`.\n */\n labelInterval = input<typeof _Slider.prototype.labelInterval | undefined>(0);\n\n /**\n * Defines the maximum value of the slider.\n */\n max = input<typeof _Slider.prototype.max | undefined>(100);\n\n /**\n * Defines the minimum value of the slider.\n */\n min = input<typeof _Slider.prototype.min | undefined>(0);\n\n /**\n * Determines the name by which the component will be identified upon submission in an HTML form.\n\n**Note:** This property is only applicable within the context of an HTML Form element.\n */\n name = input<typeof _Slider.prototype.name | undefined>();\n\n /**\n * Enables tickmarks visualization for each step.\n\n**Note:** The step must be a positive number.\n */\n showTickmarks = input(false, { transform: booleanAttribute });\n\n /**\n * Enables handle tooltip displaying the current value.\n */\n showTooltip = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the size of the slider's selection intervals (e.g. min = 0, max = 10, step = 5 would result in possible selection of the values 0, 5, 10).\n\n**Note:** If set to 0 the slider handle movement is disabled.\n */\n step = input<typeof _Slider.prototype.step | undefined>(1);\n\n /**\n * Defines custom tickmarks with labels on the slider scale.\nEach tickmark object has a numeric `value` and an optional `label` string.\nTickmarks are purely visual — they display labeled markers at specific positions\nbut do not affect the slider's movement behavior. The slider still moves\naccording to `min`, `max`, and `step`.\n\nWhen the current value matches a tickmark value, the tickmark's label\nis shown in the tooltip and announced via `aria-valuetext`.\n\n**Note:** When `tickmarks` is provided, the scale is automatically shown\n(equivalent to `showTickmarks`), and `labelInterval` is ignored - every\ncustom tickmark is rendered with its own `label`.\n */\n tickmarks = input<Array<Tickmark>>([]);\n\n /**\n * Current value of the slider\n */\n value = input<typeof _Slider.prototype.value | undefined>(0); // className is now passed\n\n\n\n /**\n * Fired when the value changes and the user has finished interacting with the slider.\n */\n ui5Change = output<UI5CustomEvent<_Slider, 'change'>>();\n\n /**\n * Fired when the value changes due to user interaction that is not yet finished - during mouse/touch dragging.\n */\n ui5Input = output<UI5CustomEvent<_Slider, 'input'>>();\n\n\n public elementRef: ElementRef<_Slider> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _Slider {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'disabled',\n 'editableTooltip',\n 'labelInterval',\n 'max',\n 'min',\n 'name',\n 'showTickmarks',\n 'showTooltip',\n 'step',\n 'tickmarks',\n 'value',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Change',\n 'ui5Input',\n ];\n \n // Synchronize outputs (events)\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n wcElement.addEventListener(eventName, (e) => {\n\n this[outputName].emit(e as CustomEvent<any>);\n });\n }\n }\n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-slider.mjs","sources":["../../../../libs/ui5-webcomponents/slider/index.ts","../../../../libs/ui5-webcomponents/slider/fundamental-ngx-ui5-webcomponents-slider.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal,\n DestroyRef\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/Slider.js';\nimport { default as _Slider } from '@ui5/webcomponents/dist/Slider.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\nimport { GenericControlValueAccessor, CVA_CONFIG } from '@fundamental-ngx/ui5-webcomponents/utils';\n\nimport { Tickmark } from '@ui5/webcomponents/dist/SliderScale.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-slider, [ui5-slider]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5Slider',\n hostDirectives: [GenericControlValueAccessor],\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n }),\n {\n provide: CVA_CONFIG,\n useValue: {\n property: 'value',\n events: ['change', 'input'],\n transformValue: (v) => v || ''\n }\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class Slider implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _Slider.prototype.accessibleName | undefined>();\n\n /**\n * Defines whether the slider is in disabled state.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * \nIndicates whether input fields should be used as tooltips for the handles.\n\n**Note:** Setting this option to true will only work if showTooltip is set to true.\n**Note:** In order for the component to comply with the accessibility standard, it is recommended to set the editableTooltip property to true.\n */\n editableTooltip = input(false, { transform: booleanAttribute });\n\n /**\n * Displays a label with a value on every N-th step.\n\n**Note:** The step and tickmarks properties must be enabled.\nExample - if the step value is set to 2 and the label interval is also specified to 2 - then every second\ntickmark will be labelled, which means every 4th value number.\n\n**Note:** This property is ignored when the `tickmarks` property is used.\nIn that case every custom tickmark is labelled with its own `label`.\n */\n labelInterval = input<typeof _Slider.prototype.labelInterval | undefined>(0);\n\n /**\n * Defines the maximum value of the slider.\n */\n max = input<typeof _Slider.prototype.max | undefined>(100);\n\n /**\n * Defines the minimum value of the slider.\n */\n min = input<typeof _Slider.prototype.min | undefined>(0);\n\n /**\n * Determines the name by which the component will be identified upon submission in an HTML form.\n\n**Note:** This property is only applicable within the context of an HTML Form element.\n */\n name = input<typeof _Slider.prototype.name | undefined>();\n\n /**\n * Enables tickmarks visualization for each step.\n\n**Note:** The step must be a positive number.\n */\n showTickmarks = input(false, { transform: booleanAttribute });\n\n /**\n * Enables handle tooltip displaying the current value.\n */\n showTooltip = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the size of the slider's selection intervals (e.g. min = 0, max = 10, step = 5 would result in possible selection of the values 0, 5, 10).\n\n**Note:** If set to 0 the slider handle movement is disabled.\n */\n step = input<typeof _Slider.prototype.step | undefined>(1);\n\n /**\n * Defines custom tickmarks with labels on the slider scale.\nEach tickmark object has a numeric `value` and an optional `label` string.\nTickmarks are purely visual — they display labeled markers at specific positions\nbut do not affect the slider's movement behavior. The slider still moves\naccording to `min`, `max`, and `step`.\n\nWhen the current value matches a tickmark value, the tickmark's label\nis shown in the tooltip and announced via `aria-valuetext`.\n\n**Note:** When `tickmarks` is provided, the scale is automatically shown\n(equivalent to `showTickmarks`), and `labelInterval` is ignored - every\ncustom tickmark is rendered with its own `label`.\n */\n tickmarks = input<Array<Tickmark>>([]);\n\n /**\n * Current value of the slider\n */\n value = input<typeof _Slider.prototype.value | undefined>(0); // className is now passed\n\n\n\n /**\n * Fired when the value changes and the user has finished interacting with the slider.\n */\n ui5Change = output<UI5CustomEvent<_Slider, 'change'>>();\n\n /**\n * Fired when the value changes due to user interaction that is not yet finished - during mouse/touch dragging.\n */\n ui5Input = output<UI5CustomEvent<_Slider, 'input'>>();\n\n\n public elementRef: ElementRef<_Slider> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n private readonly _destroyRef = inject(DestroyRef);\n\n get element(): _Slider {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'disabled',\n 'editableTooltip',\n 'labelInterval',\n 'max',\n 'min',\n 'name',\n 'showTickmarks',\n 'showTooltip',\n 'step',\n 'tickmarks',\n 'value',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Change',\n 'ui5Input',\n ];\n \n // Synchronize outputs (events)\n const _listeners: Array<() => void> = [];\n for (const outputName of outputsToSync) {\n // Map Angular output name to UI5 web component event name\n const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);\n // Ensure the output property exists and has an emit function before adding listener\n if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {\n // Cast the listener to the correct type to satisfy TypeScript\n const listener = (e: Event): void => {\n\n this[outputName].emit(e as CustomEvent<any>);\n };\n wcElement.addEventListener(eventName, listener);\n _listeners.push(() => wcElement.removeEventListener(eventName, listener));\n }\n }\n this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));\n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAkDa,MAAM,CAAA;AArBnB,IAAA,WAAA,GAAA;AAuBE;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAAuD;AAE7E;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;;;;;AAMG;QACH,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,KAAK,uFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE/D;;;;;;;;;AASG;QACH,IAAA,CAAA,aAAa,GAAG,KAAK,CAAqD,CAAC;0FAAC;AAE5E;;AAEG;QACH,IAAA,CAAA,GAAG,GAAG,KAAK,CAA2C,GAAG;gFAAC;AAE1D;;AAEG;QACH,IAAA,CAAA,GAAG,GAAG,KAAK,CAA2C,CAAC;gFAAC;AAExD;;;;AAIG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAA6C;AAEzD;;;;AAIG;QACH,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,KAAK,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE7D;;AAEG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D;;;;AAIG;QACH,IAAA,CAAA,IAAI,GAAG,KAAK,CAA4C,CAAC;iFAAC;AAE1D;;;;;;;;;;;;;AAaG;QACH,IAAA,CAAA,SAAS,GAAG,KAAK,CAAkB,EAAE;sFAAC;AAEtC;;AAEG;QACH,IAAA,CAAA,KAAK,GAAG,KAAK,CAA6C,CAAC;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAI7D;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,MAAM,EAAqC;AAEvD;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAoC;AAG9C,QAAA,IAAA,CAAA,UAAU,GAAwB,MAAM,CAAC,UAAU,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AA2ElD,IAAA;AAzEC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa;IACtC;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;AAE9B,QAAA,MAAM,YAAY,GAAG;YACnB,gBAAgB;YAChB,UAAU;YACV,iBAAiB;YACjB,eAAe;YACf,KAAK;YACL,KAAK;YACL,MAAM;YACN,eAAe;YACf,aAAa;YACb,MAAM;YACN,WAAW;YACX,OAAO;SACR;;AAGD,QAAA,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;;YAEpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;;AAG9E,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;AAC9D,gBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAW;oBAC9C,MAAM,CAAC,MAAW;;AAEhB,wBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;wBAChC,IAAI,SAAS,EAAE;;;4BAGb,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gCAC/C;4BACF;;AAEA,4BAAA,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK;wBAC9B;AACF,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;QACF;AAGA,QAAA,MAAM,aAAa,GAAG;YACpB,WAAW;YACX,UAAU;SACX;;QAGD,MAAM,UAAU,GAAsB,EAAE;AACxC,QAAA,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE;;YAEtC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;;AAErG,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,gBAAgB,EAAE;;AAEjG,gBAAA,MAAM,QAAQ,GAAG,CAAC,CAAQ,KAAU;oBAElC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAqB,CAAC;AAC9C,gBAAA,CAAC;AACD,gBAAA,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC/C,gBAAA,UAAU,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3E;QACF;QACA,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAGpE;8GA1LW,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAfN;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E,CAAC;AACF,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,QAAQ,EAAE;AACR,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;oBAC3B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;AAC7B;AACF;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAfS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAkB1B,MAAM,EAAA,UAAA,EAAA,CAAA;kBArBlB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,WAAW;oBACrB,cAAc,EAAE,CAAC,2BAA2B,CAAC;AAC7C,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E,CAAC;AACF,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,QAAQ,EAAE;AACR,gCAAA,QAAQ,EAAE,OAAO;AACjB,gCAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;gCAC3B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;AAC7B;AACF;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACjDD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-special-calendar-date.mjs","sources":["../../../../libs/ui5-webcomponents/special-calendar-date/index.ts","../../../../libs/ui5-webcomponents/special-calendar-date/fundamental-ngx-ui5-webcomponents-special-calendar-date.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SpecialCalendarDate.js';\nimport { default as _SpecialCalendarDate } from '@ui5/webcomponents/dist/SpecialCalendarDate.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\nimport { default as CalendarLegendItemType } from '@ui5/webcomponents/dist/types/CalendarLegendItemType.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-special-date, [ui5-special-date]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SpecialCalendarDate',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialCalendarDate implements AfterViewInit {\n\n /**\n * Defines the type of the special date.\n */\n type = input<typeof _SpecialCalendarDate.prototype.type | undefined>(\"None\");\n\n /**\n * The date formatted according to the `formatPattern` property\nof the `ui5-calendar` that hosts the component.\n */\n value = input<typeof _SpecialCalendarDate.prototype.value | undefined>(\"\"); // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_SpecialCalendarDate> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SpecialCalendarDate {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'type',\n 'value',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-special-calendar-date.mjs","sources":["../../../../libs/ui5-webcomponents/special-calendar-date/index.ts","../../../../libs/ui5-webcomponents/special-calendar-date/fundamental-ngx-ui5-webcomponents-special-calendar-date.ts"],"sourcesContent":["\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n AfterViewInit,\n effect,\n runInInjectionContext,\n inject,\n Injector,\n booleanAttribute,\n computed,\n signal\n} from '@angular/core';\nimport '@ui5/webcomponents/dist/SpecialCalendarDate.js';\nimport { default as _SpecialCalendarDate } from '@ui5/webcomponents/dist/SpecialCalendarDate.js';\nimport { UI5CustomEvent } from '@ui5/webcomponents-base';\nimport {\n ContentDensityObserver,\n contentDensityObserverProviders,\n ContentDensityMode\n} from '@fundamental-ngx/core/content-density';\n\n\nimport { default as CalendarLegendItemType } from '@ui5/webcomponents/dist/types/CalendarLegendItemType.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-special-date, [ui5-special-date]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5SpecialCalendarDate',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SpecialCalendarDate implements AfterViewInit {\n\n /**\n * Defines the type of the special date.\n */\n type = input<typeof _SpecialCalendarDate.prototype.type | undefined>(\"None\");\n\n /**\n * The date formatted according to the `formatPattern` property\nof the `ui5-calendar` that hosts the component.\n */\n value = input<typeof _SpecialCalendarDate.prototype.value | undefined>(\"\"); // className is now passed\n\n\n\n\n\n public elementRef: ElementRef<_SpecialCalendarDate> = inject(ElementRef);\n public injector = inject(Injector);\n\n /**\n * Content density observer is injected to activate automatic CSS class and\n * UI5 attribute application. The observer self-initializes, no explicit subscribe() needed.\n * @private\n */\n private readonly _contentDensityObserver = inject(ContentDensityObserver);\n\n get element(): _SpecialCalendarDate {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'type',\n 'value',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n \n\n }\n}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, booleanAttribute, output, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, booleanAttribute, output, inject, ElementRef, Injector, DestroyRef, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/SplitButton.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -99,6 +99,7 @@ class SplitButton {
99
99
  * @private
100
100
  */
101
101
  this._contentDensityObserver = inject(ContentDensityObserver);
102
+ this._destroyRef = inject(DestroyRef);
102
103
  }
103
104
  get element() {
104
105
  return this.elementRef.nativeElement;
@@ -141,17 +142,21 @@ class SplitButton {
141
142
  'ui5Click',
142
143
  ];
143
144
  // Synchronize outputs (events)
145
+ const _listeners = [];
144
146
  for (const outputName of outputsToSync) {
145
147
  // Map Angular output name to UI5 web component event name
146
148
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
147
149
  // Ensure the output property exists and has an emit function before adding listener
148
150
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
149
151
  // Cast the listener to the correct type to satisfy TypeScript
150
- wcElement.addEventListener(eventName, (e) => {
152
+ const listener = (e) => {
151
153
  this[outputName].emit(e);
152
- });
154
+ };
155
+ wcElement.addEventListener(eventName, listener);
156
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
153
157
  }
154
158
  }
159
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
155
160
  }
156
161
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SplitButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
157
162
  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: [