@fundamental-ngx/ui5-webcomponents 0.64.2-rc.2 → 0.64.2-rc.21

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 (295) hide show
  1. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-badge.mjs.map +1 -1
  2. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-group.mjs +8 -3
  3. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar-group.mjs.map +1 -1
  4. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar.mjs +8 -3
  5. package/fesm2022/fundamental-ngx-ui5-webcomponents-avatar.mjs.map +1 -1
  6. package/fesm2022/fundamental-ngx-ui5-webcomponents-bar.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs-item.mjs +12 -4
  8. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs-item.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs.mjs +8 -3
  10. package/fesm2022/fundamental-ngx-ui5-webcomponents-breadcrumbs.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-ui5-webcomponents-busy-indicator.mjs.map +1 -1
  12. package/fesm2022/fundamental-ngx-ui5-webcomponents-button-badge.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-ui5-webcomponents-button.mjs +8 -3
  14. package/fesm2022/fundamental-ngx-ui5-webcomponents-button.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-date-range.mjs.map +1 -1
  16. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-date.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-legend-item.mjs.map +1 -1
  18. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar-legend.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar.mjs +8 -3
  20. package/fesm2022/fundamental-ngx-ui5-webcomponents-calendar.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-ui5-webcomponents-card-header.mjs +8 -3
  22. package/fesm2022/fundamental-ngx-ui5-webcomponents-card-header.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-ui5-webcomponents-card.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-ui5-webcomponents-carousel.mjs +8 -3
  25. package/fesm2022/fundamental-ngx-ui5-webcomponents-carousel.mjs.map +1 -1
  26. package/fesm2022/fundamental-ngx-ui5-webcomponents-check-box.mjs +8 -3
  27. package/fesm2022/fundamental-ngx-ui5-webcomponents-check-box.mjs.map +1 -1
  28. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-item.mjs +8 -3
  29. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-item.mjs.map +1 -1
  30. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-popover.mjs +8 -3
  31. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette-popover.mjs.map +1 -1
  32. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette.mjs +8 -3
  33. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-palette.mjs.map +1 -1
  34. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-picker.mjs +8 -3
  35. package/fesm2022/fundamental-ngx-ui5-webcomponents-color-picker.mjs.map +1 -1
  36. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-custom.mjs +8 -3
  37. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-custom.mjs.map +1 -1
  38. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs +8 -3
  39. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs.map +1 -1
  40. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item.mjs +8 -3
  41. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box-item.mjs.map +1 -1
  42. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box.mjs +8 -3
  43. package/fesm2022/fundamental-ngx-ui5-webcomponents-combo-box.mjs.map +1 -1
  44. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-picker.mjs +8 -3
  45. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-picker.mjs.map +1 -1
  46. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-range-picker.mjs +8 -3
  47. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-range-picker.mjs.map +1 -1
  48. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-input.mjs +8 -3
  49. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-input.mjs.map +1 -1
  50. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-picker.mjs +8 -3
  51. package/fesm2022/fundamental-ngx-ui5-webcomponents-date-time-picker.mjs.map +1 -1
  52. package/fesm2022/fundamental-ngx-ui5-webcomponents-day-picker.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-ui5-webcomponents-dialog.mjs +8 -3
  54. package/fesm2022/fundamental-ngx-ui5-webcomponents-dialog.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-ui5-webcomponents-drop-indicator.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-ui5-webcomponents-dynamic-date-range.mjs +8 -3
  57. package/fesm2022/fundamental-ngx-ui5-webcomponents-dynamic-date-range.mjs.map +1 -1
  58. package/fesm2022/fundamental-ngx-ui5-webcomponents-expandable-text.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-ui5-webcomponents-file-uploader.mjs +10 -3
  60. package/fesm2022/fundamental-ngx-ui5-webcomponents-file-uploader.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-ui5-webcomponents-form-group.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-ui5-webcomponents-form-item.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-ui5-webcomponents-form.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-ui5-webcomponents-icon.mjs +8 -3
  65. package/fesm2022/fundamental-ngx-ui5-webcomponents-icon.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-ui5-webcomponents-input-icon.mjs +8 -3
  67. package/fesm2022/fundamental-ngx-ui5-webcomponents-input-icon.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-ui5-webcomponents-input.mjs +8 -3
  69. package/fesm2022/fundamental-ngx-ui5-webcomponents-input.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-ui5-webcomponents-label.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-ui5-webcomponents-link.mjs +12 -4
  72. package/fesm2022/fundamental-ngx-ui5-webcomponents-link.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-custom.mjs +8 -3
  74. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-custom.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group-header.mjs +8 -3
  76. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group-header.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group.mjs +8 -3
  78. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-group.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-standard.mjs +8 -3
  80. package/fesm2022/fundamental-ngx-ui5-webcomponents-list-item-standard.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-ui5-webcomponents-list.mjs +8 -3
  82. package/fesm2022/fundamental-ngx-ui5-webcomponents-list.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item-group.mjs.map +1 -1
  84. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item.mjs +8 -3
  85. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-item.mjs.map +1 -1
  86. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu-separator.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu.mjs +8 -3
  88. package/fesm2022/fundamental-ngx-ui5-webcomponents-menu.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-ui5-webcomponents-message-strip.mjs +8 -3
  90. package/fesm2022/fundamental-ngx-ui5-webcomponents-message-strip.mjs.map +1 -1
  91. package/fesm2022/fundamental-ngx-ui5-webcomponents-month-picker.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-custom.mjs +8 -3
  93. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-custom.mjs.map +1 -1
  94. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs +8 -3
  95. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs.map +1 -1
  96. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item.mjs +8 -3
  97. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box-item.mjs.map +1 -1
  98. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box.mjs +8 -3
  99. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-combo-box.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-input.mjs +8 -3
  101. package/fesm2022/fundamental-ngx-ui5-webcomponents-multi-input.mjs.map +1 -1
  102. package/fesm2022/fundamental-ngx-ui5-webcomponents-option-custom.mjs +8 -3
  103. package/fesm2022/fundamental-ngx-ui5-webcomponents-option-custom.mjs.map +1 -1
  104. package/fesm2022/fundamental-ngx-ui5-webcomponents-option.mjs +8 -3
  105. package/fesm2022/fundamental-ngx-ui5-webcomponents-option.mjs.map +1 -1
  106. package/fesm2022/fundamental-ngx-ui5-webcomponents-panel.mjs +8 -3
  107. package/fesm2022/fundamental-ngx-ui5-webcomponents-panel.mjs.map +1 -1
  108. package/fesm2022/fundamental-ngx-ui5-webcomponents-popover.mjs +8 -3
  109. package/fesm2022/fundamental-ngx-ui5-webcomponents-popover.mjs.map +1 -1
  110. package/fesm2022/fundamental-ngx-ui5-webcomponents-progress-indicator.mjs.map +1 -1
  111. package/fesm2022/fundamental-ngx-ui5-webcomponents-radio-button.mjs +8 -3
  112. package/fesm2022/fundamental-ngx-ui5-webcomponents-radio-button.mjs.map +1 -1
  113. package/fesm2022/fundamental-ngx-ui5-webcomponents-range-slider.mjs +8 -3
  114. package/fesm2022/fundamental-ngx-ui5-webcomponents-range-slider.mjs.map +1 -1
  115. package/fesm2022/fundamental-ngx-ui5-webcomponents-rating-indicator.mjs +8 -3
  116. package/fesm2022/fundamental-ngx-ui5-webcomponents-rating-indicator.mjs.map +1 -1
  117. package/fesm2022/fundamental-ngx-ui5-webcomponents-responsive-popover.mjs +8 -3
  118. package/fesm2022/fundamental-ngx-ui5-webcomponents-responsive-popover.mjs.map +1 -1
  119. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button-item.mjs +8 -3
  120. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button-item.mjs.map +1 -1
  121. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button.mjs +10 -3
  122. package/fesm2022/fundamental-ngx-ui5-webcomponents-segmented-button.mjs.map +1 -1
  123. package/fesm2022/fundamental-ngx-ui5-webcomponents-select.mjs +11 -3
  124. package/fesm2022/fundamental-ngx-ui5-webcomponents-select.mjs.map +1 -1
  125. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider-handle.mjs.map +1 -1
  126. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider-tooltip.mjs.map +1 -1
  127. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider.mjs +8 -3
  128. package/fesm2022/fundamental-ngx-ui5-webcomponents-slider.mjs.map +1 -1
  129. package/fesm2022/fundamental-ngx-ui5-webcomponents-special-calendar-date.mjs.map +1 -1
  130. package/fesm2022/fundamental-ngx-ui5-webcomponents-split-button.mjs +8 -3
  131. package/fesm2022/fundamental-ngx-ui5-webcomponents-split-button.mjs.map +1 -1
  132. package/fesm2022/fundamental-ngx-ui5-webcomponents-step-input.mjs +8 -3
  133. package/fesm2022/fundamental-ngx-ui5-webcomponents-step-input.mjs.map +1 -1
  134. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-custom.mjs +8 -3
  135. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-custom.mjs.map +1 -1
  136. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-group.mjs +8 -3
  137. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item-group.mjs.map +1 -1
  138. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item.mjs +8 -3
  139. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-item.mjs.map +1 -1
  140. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-list-item.mjs +8 -3
  141. package/fesm2022/fundamental-ngx-ui5-webcomponents-suggestion-list-item.mjs.map +1 -1
  142. package/fesm2022/fundamental-ngx-ui5-webcomponents-switch.mjs +8 -3
  143. package/fesm2022/fundamental-ngx-ui5-webcomponents-switch.mjs.map +1 -1
  144. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab-container.mjs +8 -3
  145. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab-container.mjs.map +1 -1
  146. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab-separator.mjs.map +1 -1
  147. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab.mjs +8 -3
  148. package/fesm2022/fundamental-ngx-ui5-webcomponents-tab.mjs.map +1 -1
  149. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-cell.mjs.map +1 -1
  150. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-group-row.mjs.map +1 -1
  151. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-growing.mjs +8 -3
  152. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-growing.mjs.map +1 -1
  153. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-cell-action-a-i.mjs +8 -3
  154. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-cell-action-a-i.mjs.map +1 -1
  155. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-cell.mjs.map +1 -1
  156. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-header-row.mjs.map +1 -1
  157. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action-navigation.mjs +8 -3
  158. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action-navigation.mjs.map +1 -1
  159. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action.mjs +8 -3
  160. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row-action.mjs.map +1 -1
  161. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-row.mjs.map +1 -1
  162. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-multi.mjs +8 -3
  163. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-multi.mjs.map +1 -1
  164. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-single.mjs +8 -3
  165. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection-single.mjs.map +1 -1
  166. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection.mjs +8 -3
  167. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-selection.mjs.map +1 -1
  168. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-virtualizer.mjs +8 -3
  169. package/fesm2022/fundamental-ngx-ui5-webcomponents-table-virtualizer.mjs.map +1 -1
  170. package/fesm2022/fundamental-ngx-ui5-webcomponents-table.mjs +8 -3
  171. package/fesm2022/fundamental-ngx-ui5-webcomponents-table.mjs.map +1 -1
  172. package/fesm2022/fundamental-ngx-ui5-webcomponents-tag.mjs +8 -3
  173. package/fesm2022/fundamental-ngx-ui5-webcomponents-tag.mjs.map +1 -1
  174. package/fesm2022/fundamental-ngx-ui5-webcomponents-text-area.mjs +8 -3
  175. package/fesm2022/fundamental-ngx-ui5-webcomponents-text-area.mjs.map +1 -1
  176. package/fesm2022/fundamental-ngx-ui5-webcomponents-text.mjs.map +1 -1
  177. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-picker-clock.mjs.map +1 -1
  178. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-picker.mjs +8 -3
  179. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-picker.mjs.map +1 -1
  180. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-selection-clocks.mjs.map +1 -1
  181. package/fesm2022/fundamental-ngx-ui5-webcomponents-time-selection-inputs.mjs.map +1 -1
  182. package/fesm2022/fundamental-ngx-ui5-webcomponents-title.mjs.map +1 -1
  183. package/fesm2022/fundamental-ngx-ui5-webcomponents-toast.mjs +8 -3
  184. package/fesm2022/fundamental-ngx-ui5-webcomponents-toast.mjs.map +1 -1
  185. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-button.mjs +8 -3
  186. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-button.mjs.map +1 -1
  187. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-spin-button.mjs +8 -3
  188. package/fesm2022/fundamental-ngx-ui5-webcomponents-toggle-spin-button.mjs.map +1 -1
  189. package/fesm2022/fundamental-ngx-ui5-webcomponents-token.mjs.map +1 -1
  190. package/fesm2022/fundamental-ngx-ui5-webcomponents-tokenizer.mjs +8 -3
  191. package/fesm2022/fundamental-ngx-ui5-webcomponents-tokenizer.mjs.map +1 -1
  192. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-button.mjs +8 -3
  193. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-button.mjs.map +1 -1
  194. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-item.mjs.map +1 -1
  195. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select-option.mjs.map +1 -1
  196. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select.mjs +8 -3
  197. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-select.mjs.map +1 -1
  198. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-separator.mjs.map +1 -1
  199. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar-spacer.mjs.map +1 -1
  200. package/fesm2022/fundamental-ngx-ui5-webcomponents-toolbar.mjs.map +1 -1
  201. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs +8 -3
  202. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item-custom.mjs.map +1 -1
  203. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item.mjs +8 -3
  204. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree-item.mjs.map +1 -1
  205. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree.mjs +8 -3
  206. package/fesm2022/fundamental-ngx-ui5-webcomponents-tree.mjs.map +1 -1
  207. package/fesm2022/fundamental-ngx-ui5-webcomponents-year-picker.mjs.map +1 -1
  208. package/fesm2022/fundamental-ngx-ui5-webcomponents-year-range-picker.mjs.map +1 -1
  209. package/fesm2022/fundamental-ngx-ui5-webcomponents.mjs +613 -187
  210. package/fesm2022/fundamental-ngx-ui5-webcomponents.mjs.map +1 -1
  211. package/package.json +3 -3
  212. package/types/fundamental-ngx-ui5-webcomponents-avatar-group.d.ts +1 -0
  213. package/types/fundamental-ngx-ui5-webcomponents-avatar.d.ts +1 -0
  214. package/types/fundamental-ngx-ui5-webcomponents-breadcrumbs-item.d.ts +3 -1
  215. package/types/fundamental-ngx-ui5-webcomponents-breadcrumbs.d.ts +1 -0
  216. package/types/fundamental-ngx-ui5-webcomponents-button.d.ts +1 -0
  217. package/types/fundamental-ngx-ui5-webcomponents-calendar.d.ts +1 -0
  218. package/types/fundamental-ngx-ui5-webcomponents-card-header.d.ts +1 -0
  219. package/types/fundamental-ngx-ui5-webcomponents-carousel.d.ts +1 -0
  220. package/types/fundamental-ngx-ui5-webcomponents-check-box.d.ts +1 -0
  221. package/types/fundamental-ngx-ui5-webcomponents-color-palette-item.d.ts +1 -0
  222. package/types/fundamental-ngx-ui5-webcomponents-color-palette-popover.d.ts +1 -0
  223. package/types/fundamental-ngx-ui5-webcomponents-color-palette.d.ts +1 -0
  224. package/types/fundamental-ngx-ui5-webcomponents-color-picker.d.ts +1 -0
  225. package/types/fundamental-ngx-ui5-webcomponents-combo-box-item-custom.d.ts +1 -0
  226. package/types/fundamental-ngx-ui5-webcomponents-combo-box-item-group.d.ts +1 -0
  227. package/types/fundamental-ngx-ui5-webcomponents-combo-box-item.d.ts +1 -0
  228. package/types/fundamental-ngx-ui5-webcomponents-combo-box.d.ts +1 -0
  229. package/types/fundamental-ngx-ui5-webcomponents-date-picker.d.ts +1 -0
  230. package/types/fundamental-ngx-ui5-webcomponents-date-range-picker.d.ts +1 -0
  231. package/types/fundamental-ngx-ui5-webcomponents-date-time-input.d.ts +1 -0
  232. package/types/fundamental-ngx-ui5-webcomponents-date-time-picker.d.ts +1 -0
  233. package/types/fundamental-ngx-ui5-webcomponents-dialog.d.ts +1 -0
  234. package/types/fundamental-ngx-ui5-webcomponents-dynamic-date-range.d.ts +1 -0
  235. package/types/fundamental-ngx-ui5-webcomponents-file-uploader.d.ts +1 -0
  236. package/types/fundamental-ngx-ui5-webcomponents-icon.d.ts +1 -0
  237. package/types/fundamental-ngx-ui5-webcomponents-input-icon.d.ts +1 -0
  238. package/types/fundamental-ngx-ui5-webcomponents-input.d.ts +1 -0
  239. package/types/fundamental-ngx-ui5-webcomponents-link.d.ts +3 -1
  240. package/types/fundamental-ngx-ui5-webcomponents-list-item-custom.d.ts +1 -0
  241. package/types/fundamental-ngx-ui5-webcomponents-list-item-group-header.d.ts +1 -0
  242. package/types/fundamental-ngx-ui5-webcomponents-list-item-group.d.ts +1 -0
  243. package/types/fundamental-ngx-ui5-webcomponents-list-item-standard.d.ts +1 -0
  244. package/types/fundamental-ngx-ui5-webcomponents-list.d.ts +1 -0
  245. package/types/fundamental-ngx-ui5-webcomponents-menu-item.d.ts +1 -0
  246. package/types/fundamental-ngx-ui5-webcomponents-menu.d.ts +1 -0
  247. package/types/fundamental-ngx-ui5-webcomponents-message-strip.d.ts +1 -0
  248. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-custom.d.ts +1 -0
  249. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.d.ts +1 -0
  250. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box-item.d.ts +1 -0
  251. package/types/fundamental-ngx-ui5-webcomponents-multi-combo-box.d.ts +1 -0
  252. package/types/fundamental-ngx-ui5-webcomponents-multi-input.d.ts +1 -0
  253. package/types/fundamental-ngx-ui5-webcomponents-option-custom.d.ts +1 -0
  254. package/types/fundamental-ngx-ui5-webcomponents-option.d.ts +1 -0
  255. package/types/fundamental-ngx-ui5-webcomponents-panel.d.ts +1 -0
  256. package/types/fundamental-ngx-ui5-webcomponents-popover.d.ts +1 -0
  257. package/types/fundamental-ngx-ui5-webcomponents-radio-button.d.ts +1 -0
  258. package/types/fundamental-ngx-ui5-webcomponents-range-slider.d.ts +1 -0
  259. package/types/fundamental-ngx-ui5-webcomponents-rating-indicator.d.ts +1 -0
  260. package/types/fundamental-ngx-ui5-webcomponents-responsive-popover.d.ts +1 -0
  261. package/types/fundamental-ngx-ui5-webcomponents-segmented-button-item.d.ts +1 -0
  262. package/types/fundamental-ngx-ui5-webcomponents-segmented-button.d.ts +1 -0
  263. package/types/fundamental-ngx-ui5-webcomponents-select.d.ts +1 -0
  264. package/types/fundamental-ngx-ui5-webcomponents-slider.d.ts +1 -0
  265. package/types/fundamental-ngx-ui5-webcomponents-split-button.d.ts +1 -0
  266. package/types/fundamental-ngx-ui5-webcomponents-step-input.d.ts +1 -0
  267. package/types/fundamental-ngx-ui5-webcomponents-suggestion-item-custom.d.ts +1 -0
  268. package/types/fundamental-ngx-ui5-webcomponents-suggestion-item-group.d.ts +1 -0
  269. package/types/fundamental-ngx-ui5-webcomponents-suggestion-item.d.ts +1 -0
  270. package/types/fundamental-ngx-ui5-webcomponents-suggestion-list-item.d.ts +1 -0
  271. package/types/fundamental-ngx-ui5-webcomponents-switch.d.ts +1 -0
  272. package/types/fundamental-ngx-ui5-webcomponents-tab-container.d.ts +1 -0
  273. package/types/fundamental-ngx-ui5-webcomponents-tab.d.ts +1 -0
  274. package/types/fundamental-ngx-ui5-webcomponents-table-growing.d.ts +1 -0
  275. package/types/fundamental-ngx-ui5-webcomponents-table-header-cell-action-a-i.d.ts +1 -0
  276. package/types/fundamental-ngx-ui5-webcomponents-table-row-action-navigation.d.ts +1 -0
  277. package/types/fundamental-ngx-ui5-webcomponents-table-row-action.d.ts +1 -0
  278. package/types/fundamental-ngx-ui5-webcomponents-table-selection-multi.d.ts +1 -0
  279. package/types/fundamental-ngx-ui5-webcomponents-table-selection-single.d.ts +1 -0
  280. package/types/fundamental-ngx-ui5-webcomponents-table-selection.d.ts +1 -0
  281. package/types/fundamental-ngx-ui5-webcomponents-table-virtualizer.d.ts +1 -0
  282. package/types/fundamental-ngx-ui5-webcomponents-table.d.ts +1 -0
  283. package/types/fundamental-ngx-ui5-webcomponents-tag.d.ts +1 -0
  284. package/types/fundamental-ngx-ui5-webcomponents-text-area.d.ts +1 -0
  285. package/types/fundamental-ngx-ui5-webcomponents-time-picker.d.ts +1 -0
  286. package/types/fundamental-ngx-ui5-webcomponents-toast.d.ts +1 -0
  287. package/types/fundamental-ngx-ui5-webcomponents-toggle-button.d.ts +1 -0
  288. package/types/fundamental-ngx-ui5-webcomponents-toggle-spin-button.d.ts +1 -0
  289. package/types/fundamental-ngx-ui5-webcomponents-tokenizer.d.ts +1 -0
  290. package/types/fundamental-ngx-ui5-webcomponents-toolbar-button.d.ts +1 -0
  291. package/types/fundamental-ngx-ui5-webcomponents-toolbar-select.d.ts +1 -0
  292. package/types/fundamental-ngx-ui5-webcomponents-tree-item-custom.d.ts +1 -0
  293. package/types/fundamental-ngx-ui5-webcomponents-tree-item.d.ts +1 -0
  294. package/types/fundamental-ngx-ui5-webcomponents-tree.d.ts +1 -0
  295. package/types/fundamental-ngx-ui5-webcomponents.d.ts +104 -20
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.mjs","sources":["../../../../libs/ui5-webcomponents/multi-combo-box-item-group/index.ts","../../../../libs/ui5-webcomponents/multi-combo-box-item-group/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.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/MultiComboBoxItemGroup.js';\nimport { default as _MultiComboBoxItemGroup } from '@ui5/webcomponents/dist/MultiComboBoxItemGroup.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 WrappingType } from '@ui5/webcomponents/dist/types/WrappingType.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-mcb-item-group, [ui5-mcb-item-group]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiComboBoxItemGroup',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiComboBoxItemGroup implements AfterViewInit {\n\n /**\n * Defines the accessible name of the header.\n */\n headerAccessibleName = input<typeof _MultiComboBoxItemGroup.prototype.headerAccessibleName | undefined>();\n\n /**\n * Defines the header text of the <code>ui5-li-group</code>.\n */\n headerText = input<typeof _MultiComboBoxItemGroup.prototype.headerText | undefined>();\n\n /**\n * Defines if the text of the component should wrap when it's too long.\nWhen set to \"Normal\", the content (title, description) will be wrapped\nusing the `ui5-expandable-text` component.<br/>\n\nThe text can wrap up to 100 characters on small screens (size S) and\nup to 300 characters on larger screens (size M and above). When text exceeds\nthese limits, it truncates with an ellipsis followed by a text expansion trigger.\n\nAvailable options are:\n- `None` (default) - The text will truncate with an ellipsis.\n- `Normal` - The text will wrap (without truncation).\n */\n wrappingType = input<typeof _MultiComboBoxItemGroup.prototype.wrappingType | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when a movable list item is dropped onto a drop target.\n\n**Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n */\n ui5Move = output<UI5CustomEvent<_MultiComboBoxItemGroup, 'move'>>();\n\n /**\n * Fired when a movable list item is moved over a potential drop target during a dragging operation.\n\nIf the new position is valid, prevent the default action of the event using `preventDefault()`.\n */\n ui5MoveOver = output<UI5CustomEvent<_MultiComboBoxItemGroup, 'move-over'>>();\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 the <code>ui5-mcb-item-group</code>.\n * - **header**: Defines the header of the component.\n\n**Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\n *\n * @example\n * ```html\n * <ui5-mcb-item-group>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-mcb-item-group>\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 the <code>ui5-mcb-item-group</code>.\"\n },\n {\n \"name\": \"header\",\n \"description\": \"Defines the header of the component.\\n\\n**Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\"\n }\n ];\n\n\n public elementRef: ElementRef<_MultiComboBoxItemGroup> = 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(): _MultiComboBoxItemGroup {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'headerAccessibleName',\n 'headerText',\n 'wrappingType',\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 'ui5Move',\n 'ui5MoveOver',\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-multi-combo-box-item-group.mjs","sources":["../../../../libs/ui5-webcomponents/multi-combo-box-item-group/index.ts","../../../../libs/ui5-webcomponents/multi-combo-box-item-group/fundamental-ngx-ui5-webcomponents-multi-combo-box-item-group.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/MultiComboBoxItemGroup.js';\nimport { default as _MultiComboBoxItemGroup } from '@ui5/webcomponents/dist/MultiComboBoxItemGroup.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 WrappingType } from '@ui5/webcomponents/dist/types/WrappingType.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-mcb-item-group, [ui5-mcb-item-group]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiComboBoxItemGroup',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiComboBoxItemGroup implements AfterViewInit {\n\n /**\n * Defines the accessible name of the header.\n */\n headerAccessibleName = input<typeof _MultiComboBoxItemGroup.prototype.headerAccessibleName | undefined>();\n\n /**\n * Defines the header text of the <code>ui5-li-group</code>.\n */\n headerText = input<typeof _MultiComboBoxItemGroup.prototype.headerText | undefined>();\n\n /**\n * Defines if the text of the component should wrap when it's too long.\nWhen set to \"Normal\", the content (title, description) will be wrapped\nusing the `ui5-expandable-text` component.<br/>\n\nThe text can wrap up to 100 characters on small screens (size S) and\nup to 300 characters on larger screens (size M and above). When text exceeds\nthese limits, it truncates with an ellipsis followed by a text expansion trigger.\n\nAvailable options are:\n- `None` (default) - The text will truncate with an ellipsis.\n- `Normal` - The text will wrap (without truncation).\n */\n wrappingType = input<typeof _MultiComboBoxItemGroup.prototype.wrappingType | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when a movable list item is dropped onto a drop target.\n\n**Note:** `move` event is fired only if there was a preceding `move-over` with prevented default action.\n */\n ui5Move = output<UI5CustomEvent<_MultiComboBoxItemGroup, 'move'>>();\n\n /**\n * Fired when a movable list item is moved over a potential drop target during a dragging operation.\n\nIf the new position is valid, prevent the default action of the event using `preventDefault()`.\n */\n ui5MoveOver = output<UI5CustomEvent<_MultiComboBoxItemGroup, 'move-over'>>();\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 the <code>ui5-mcb-item-group</code>.\n * - **header**: Defines the header of the component.\n\n**Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\n *\n * @example\n * ```html\n * <ui5-mcb-item-group>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-mcb-item-group>\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 the <code>ui5-mcb-item-group</code>.\"\n },\n {\n \"name\": \"header\",\n \"description\": \"Defines the header of the component.\\n\\n**Note:** Using this slot, the default header text of group and the value of `headerText` property will be overwritten.\"\n }\n ];\n\n\n public elementRef: ElementRef<_MultiComboBoxItemGroup> = 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(): _MultiComboBoxItemGroup {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'headerAccessibleName',\n 'headerText',\n 'wrappingType',\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 'ui5Move',\n 'ui5MoveOver',\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, 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/MultiComboBoxItem.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -42,6 +42,7 @@ class MultiComboBoxItem {
42
42
  * @private
43
43
  */
44
44
  this._contentDensityObserver = inject(ContentDensityObserver);
45
+ this._destroyRef = inject(DestroyRef);
45
46
  }
46
47
  get element() {
47
48
  return this.elementRef.nativeElement;
@@ -81,17 +82,21 @@ class MultiComboBoxItem {
81
82
  'ui5Click',
82
83
  ];
83
84
  // Synchronize outputs (events)
85
+ const _listeners = [];
84
86
  for (const outputName of outputsToSync) {
85
87
  // Map Angular output name to UI5 web component event name
86
88
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
87
89
  // Ensure the output property exists and has an emit function before adding listener
88
90
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
89
91
  // Cast the listener to the correct type to satisfy TypeScript
90
- wcElement.addEventListener(eventName, (e) => {
92
+ const listener = (e) => {
91
93
  this[outputName].emit(e);
92
- });
94
+ };
95
+ wcElement.addEventListener(eventName, listener);
96
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
93
97
  }
94
98
  }
99
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
95
100
  }
96
101
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBoxItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
102
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiComboBoxItem, isStandalone: true, selector: "ui5-mcb-item, [ui5-mcb-item]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-multi-combo-box-item.mjs","sources":["../../../../libs/ui5-webcomponents/multi-combo-box-item/index.ts","../../../../libs/ui5-webcomponents/multi-combo-box-item/fundamental-ngx-ui5-webcomponents-multi-combo-box-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/MultiComboBoxItem.js';\nimport { default as _MultiComboBoxItem } from '@ui5/webcomponents/dist/MultiComboBoxItem.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-mcb-item, [ui5-mcb-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiComboBoxItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiComboBoxItem implements AfterViewInit {\n\n /**\n * Defines the additional text of the component.\n */\n additionalText = input<typeof _MultiComboBoxItem.prototype.additionalText | undefined>();\n\n /**\n * Defines the selected state of the component.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the text of the component.\n */\n text = input<typeof _MultiComboBoxItem.prototype.text | undefined>();\n\n /**\n * Defines the value of the component.\n\nUse this property to associate a unique identifier with the item,\nseparate from the display text. This enables selecting items\nprogrammatically via `selectedValues` on the parent MultiComboBox.\n */\n value = input<typeof _MultiComboBoxItem.prototype.value | 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<_MultiComboBoxItem, 'click'>>();\n\n\n public elementRef: ElementRef<_MultiComboBoxItem> = 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(): _MultiComboBoxItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'additionalText',\n 'selected',\n 'text',\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 '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-multi-combo-box-item.mjs","sources":["../../../../libs/ui5-webcomponents/multi-combo-box-item/index.ts","../../../../libs/ui5-webcomponents/multi-combo-box-item/fundamental-ngx-ui5-webcomponents-multi-combo-box-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/MultiComboBoxItem.js';\nimport { default as _MultiComboBoxItem } from '@ui5/webcomponents/dist/MultiComboBoxItem.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-mcb-item, [ui5-mcb-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiComboBoxItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiComboBoxItem implements AfterViewInit {\n\n /**\n * Defines the additional text of the component.\n */\n additionalText = input<typeof _MultiComboBoxItem.prototype.additionalText | undefined>();\n\n /**\n * Defines the selected state of the component.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the text of the component.\n */\n text = input<typeof _MultiComboBoxItem.prototype.text | undefined>();\n\n /**\n * Defines the value of the component.\n\nUse this property to associate a unique identifier with the item,\nseparate from the display text. This enables selecting items\nprogrammatically via `selectedValues` on the parent MultiComboBox.\n */\n value = input<typeof _MultiComboBoxItem.prototype.value | 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<_MultiComboBoxItem, 'click'>>();\n\n\n public elementRef: ElementRef<_MultiComboBoxItem> = 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(): _MultiComboBoxItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'additionalText',\n 'selected',\n 'text',\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 '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":";;;;;MAyCa,iBAAiB,CAAA;AAZ9B,IAAA,WAAA,GAAA;AAcE;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAAkE;AAExF;;AAEG;QACH,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAExD;;AAEG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAwD;AAEpE;;;;;;AAMG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;AAAyD,QAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAIvE;;;;AAIG;QACH,IAAA,CAAA,QAAQ,GAAG,MAAM,EAA+C;AAGzD,QAAA,IAAA,CAAA,UAAU,GAAmC,MAAM,CAAC,UAAU,CAAC;AAC/D,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;AAkElD,IAAA;AAhEC,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,MAAM;YACN,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,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;8GA9GW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,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,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,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,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAPjB;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,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,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,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;;;ACxCD;;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/MultiComboBox.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
  import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
@@ -181,6 +181,7 @@ class MultiComboBox {
181
181
  * @private
182
182
  */
183
183
  this._contentDensityObserver = inject(ContentDensityObserver);
184
+ this._destroyRef = inject(DestroyRef);
184
185
  }
185
186
  get element() {
186
187
  return this.elementRef.nativeElement;
@@ -238,17 +239,21 @@ class MultiComboBox {
238
239
  'ui5ValueStateChange',
239
240
  ];
240
241
  // Synchronize outputs (events)
242
+ const _listeners = [];
241
243
  for (const outputName of outputsToSync) {
242
244
  // Map Angular output name to UI5 web component event name
243
245
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
244
246
  // Ensure the output property exists and has an emit function before adding listener
245
247
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
246
248
  // Cast the listener to the correct type to satisfy TypeScript
247
- wcElement.addEventListener(eventName, (e) => {
249
+ const listener = (e) => {
248
250
  this[outputName].emit(e);
249
- });
251
+ };
252
+ wcElement.addEventListener(eventName, listener);
253
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
250
254
  }
251
255
  }
256
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
252
257
  }
253
258
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiComboBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
254
259
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiComboBox, isStandalone: true, selector: "ui5-multi-combobox, [ui5-multi-combobox]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, noValidation: { classPropertyName: "noValidation", publicName: "noValidation", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, selectedValues: { classPropertyName: "selectedValues", publicName: "selectedValues", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showSelectAll: { classPropertyName: "showSelectAll", publicName: "showSelectAll", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5SelectionChange: "ui5SelectionChange", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-multi-combo-box.mjs","sources":["../../../../libs/ui5-webcomponents/multi-combo-box/index.ts","../../../../libs/ui5-webcomponents/multi-combo-box/fundamental-ngx-ui5-webcomponents-multi-combo-box.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/MultiComboBox.js';\nimport { default as _MultiComboBox } from '@ui5/webcomponents/dist/MultiComboBox.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 { default as ComboBoxFilter } from '@ui5/webcomponents/dist/types/ComboBoxFilter.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-multi-combobox, [ui5-multi-combobox]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiComboBox',\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 MultiComboBox implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _MultiComboBox.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component.\n */\n accessibleNameRef = input<typeof _MultiComboBox.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is completely noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the filter type of the component.\n */\n filter = input<typeof _MultiComboBox.prototype.filter | undefined>(\"StartsWithPerTerm\");\n\n /**\n * Indicates whether a loading indicator should be shown in the picker.\n */\n loading = 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**Note:** When the component is used inside a form element,\nthe value is sent as the first element in the form data, even if it's empty.\n */\n name = input<typeof _MultiComboBox.prototype.name | undefined>();\n\n /**\n * Defines whether the value will be autcompleted to match an item\n */\n noTypeahead = input(false, { transform: booleanAttribute });\n\n /**\n * Defines if the user input will be prevented, if no matching item has been found\n */\n noValidation = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the items picker is open.\n */\n open = input(false, { transform: booleanAttribute });\n\n /**\n * Defines a short hint intended to aid the user with data entry when the\ncomponent has no value.\n */\n placeholder = input<typeof _MultiComboBox.prototype.placeholder | 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 values of the selected items.\n\nUse this property to programmatically select items by their `value` property.\nEach string in the array should match the `value` attribute of a `ui5-mcb-item`.\n\n**Note:** If an item doesn't have a `value` attribute set, it cannot be selected via this property.\n\n**Note:** The recommended approach is to set the `value` property on each `ui5-mcb-item`\nand use `selectedValues` for programmatic selection. The `selected` property on items is\ndeprecated and should not be used together with `selectedValues`.\n */\n selectedValues = input<Array<string>>([]);\n\n /**\n * Defines whether the clear icon of the multi-combobox will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Determines if the select all checkbox is visible on top of suggestions.\n */\n showSelectAll = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the value of the component.\n\n**Note:** The property is updated upon typing.\n */\n value = input<typeof _MultiComboBox.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _MultiComboBox.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n */\n ui5Change = output<UI5CustomEvent<_MultiComboBox, 'change'>>();\n\n /**\n * Fired when the dropdown is closed.\n */\n ui5Close = output<UI5CustomEvent<_MultiComboBox, 'close'>>();\n\n /**\n * Fired when the value of the component changes at each keystroke or clear icon is pressed.\n */\n ui5Input = output<UI5CustomEvent<_MultiComboBox, 'input'>>();\n\n /**\n * Fired when the dropdown is opened.\n */\n ui5Open = output<UI5CustomEvent<_MultiComboBox, 'open'>>();\n\n /**\n * Fired when selection is changed by user interaction.\n */\n ui5SelectionChange = output<UI5CustomEvent<_MultiComboBox, 'selection-change'>>();\n\n /**\n * Fired before the value state of the component is updated internally.\nThe event is preventable, meaning that if it's default action is\nprevented, the component will not update the value state.\n */\n ui5ValueStateChange = output<UI5CustomEvent<_MultiComboBox, 'value-state-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 component items.\n * - **icon**: Defines the icon to be displayed in the component.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\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 * @example\n * ```html\n * <ui5-multi-combobox>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-multi-combobox>\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 items.\"\n },\n {\n \"name\": \"icon\",\n \"description\": \"Defines the icon to be displayed in the component.\",\n \"since\": \"1.0.0-rc.9\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\nThe value state message slot should contain only one root element.\\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 \"since\": \"1.0.0-rc.9\"\n }\n ];\n\n\n public elementRef: ElementRef<_MultiComboBox> = 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(): _MultiComboBox {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'filter',\n 'loading',\n 'name',\n 'noTypeahead',\n 'noValidation',\n 'open',\n 'placeholder',\n 'readonly',\n 'required',\n 'selectedValues',\n 'showClearIcon',\n 'showSelectAll',\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 'ui5Input',\n 'ui5Open',\n 'ui5SelectionChange',\n 'ui5ValueStateChange',\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-multi-combo-box.mjs","sources":["../../../../libs/ui5-webcomponents/multi-combo-box/index.ts","../../../../libs/ui5-webcomponents/multi-combo-box/fundamental-ngx-ui5-webcomponents-multi-combo-box.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/MultiComboBox.js';\nimport { default as _MultiComboBox } from '@ui5/webcomponents/dist/MultiComboBox.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 { default as ComboBoxFilter } from '@ui5/webcomponents/dist/types/ComboBoxFilter.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-multi-combobox, [ui5-multi-combobox]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiComboBox',\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 MultiComboBox implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _MultiComboBox.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component.\n */\n accessibleNameRef = input<typeof _MultiComboBox.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is completely noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the filter type of the component.\n */\n filter = input<typeof _MultiComboBox.prototype.filter | undefined>(\"StartsWithPerTerm\");\n\n /**\n * Indicates whether a loading indicator should be shown in the picker.\n */\n loading = 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**Note:** When the component is used inside a form element,\nthe value is sent as the first element in the form data, even if it's empty.\n */\n name = input<typeof _MultiComboBox.prototype.name | undefined>();\n\n /**\n * Defines whether the value will be autcompleted to match an item\n */\n noTypeahead = input(false, { transform: booleanAttribute });\n\n /**\n * Defines if the user input will be prevented, if no matching item has been found\n */\n noValidation = input(false, { transform: booleanAttribute });\n\n /**\n * Indicates whether the items picker is open.\n */\n open = input(false, { transform: booleanAttribute });\n\n /**\n * Defines a short hint intended to aid the user with data entry when the\ncomponent has no value.\n */\n placeholder = input<typeof _MultiComboBox.prototype.placeholder | 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 values of the selected items.\n\nUse this property to programmatically select items by their `value` property.\nEach string in the array should match the `value` attribute of a `ui5-mcb-item`.\n\n**Note:** If an item doesn't have a `value` attribute set, it cannot be selected via this property.\n\n**Note:** The recommended approach is to set the `value` property on each `ui5-mcb-item`\nand use `selectedValues` for programmatic selection. The `selected` property on items is\ndeprecated and should not be used together with `selectedValues`.\n */\n selectedValues = input<Array<string>>([]);\n\n /**\n * Defines whether the clear icon of the multi-combobox will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Determines if the select all checkbox is visible on top of suggestions.\n */\n showSelectAll = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the value of the component.\n\n**Note:** The property is updated upon typing.\n */\n value = input<typeof _MultiComboBox.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _MultiComboBox.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n */\n ui5Change = output<UI5CustomEvent<_MultiComboBox, 'change'>>();\n\n /**\n * Fired when the dropdown is closed.\n */\n ui5Close = output<UI5CustomEvent<_MultiComboBox, 'close'>>();\n\n /**\n * Fired when the value of the component changes at each keystroke or clear icon is pressed.\n */\n ui5Input = output<UI5CustomEvent<_MultiComboBox, 'input'>>();\n\n /**\n * Fired when the dropdown is opened.\n */\n ui5Open = output<UI5CustomEvent<_MultiComboBox, 'open'>>();\n\n /**\n * Fired when selection is changed by user interaction.\n */\n ui5SelectionChange = output<UI5CustomEvent<_MultiComboBox, 'selection-change'>>();\n\n /**\n * Fired before the value state of the component is updated internally.\nThe event is preventable, meaning that if it's default action is\nprevented, the component will not update the value state.\n */\n ui5ValueStateChange = output<UI5CustomEvent<_MultiComboBox, 'value-state-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 component items.\n * - **icon**: Defines the icon to be displayed in the component.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\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 * @example\n * ```html\n * <ui5-multi-combobox>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-multi-combobox>\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 items.\"\n },\n {\n \"name\": \"icon\",\n \"description\": \"Defines the icon to be displayed in the component.\",\n \"since\": \"1.0.0-rc.9\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\nThe value state message slot should contain only one root element.\\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 \"since\": \"1.0.0-rc.9\"\n }\n ];\n\n\n public elementRef: ElementRef<_MultiComboBox> = 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(): _MultiComboBox {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'accessibleNameRef',\n 'disabled',\n 'filter',\n 'loading',\n 'name',\n 'noTypeahead',\n 'noValidation',\n 'open',\n 'placeholder',\n 'readonly',\n 'required',\n 'selectedValues',\n 'showClearIcon',\n 'showSelectAll',\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 'ui5Input',\n 'ui5Open',\n 'ui5SelectionChange',\n 'ui5ValueStateChange',\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, 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/MultiInput.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
  import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
@@ -219,6 +219,7 @@ class MultiInput {
219
219
  * @private
220
220
  */
221
221
  this._contentDensityObserver = inject(ContentDensityObserver);
222
+ this._destroyRef = inject(DestroyRef);
222
223
  }
223
224
  get element() {
224
225
  return this.elementRef.nativeElement;
@@ -280,17 +281,21 @@ class MultiInput {
280
281
  'ui5ValueHelpTrigger',
281
282
  ];
282
283
  // Synchronize outputs (events)
284
+ const _listeners = [];
283
285
  for (const outputName of outputsToSync) {
284
286
  // Map Angular output name to UI5 web component event name
285
287
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
286
288
  // Ensure the output property exists and has an emit function before adding listener
287
289
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
288
290
  // Cast the listener to the correct type to satisfy TypeScript
289
- wcElement.addEventListener(eventName, (e) => {
291
+ const listener = (e) => {
290
292
  this[outputName].emit(e);
291
- });
293
+ };
294
+ wcElement.addEventListener(eventName, listener);
295
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
292
296
  }
293
297
  }
298
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
294
299
  }
295
300
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: MultiInput, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
296
301
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: MultiInput, isStandalone: true, selector: "ui5-multi-input, [ui5-multi-input]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, showSuggestions: { classPropertyName: "showSuggestions", publicName: "showSuggestions", isSignal: true, isRequired: false, transformFunction: null }, showValueHelpIcon: { classPropertyName: "showValueHelpIcon", publicName: "showValueHelpIcon", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5Select: "ui5Select", ui5SelectionChange: "ui5SelectionChange", ui5TokenDelete: "ui5TokenDelete", ui5ValueHelpTrigger: "ui5ValueHelpTrigger" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-multi-input.mjs","sources":["../../../../libs/ui5-webcomponents/multi-input/index.ts","../../../../libs/ui5-webcomponents/multi-input/fundamental-ngx-ui5-webcomponents-multi-input.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/MultiInput.js';\nimport { default as _MultiInput } from '@ui5/webcomponents/dist/MultiInput.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 { default as InputSuggestionsFilter } from '@ui5/webcomponents/dist/types/InputSuggestionsFilter.js';\nimport { default as InputType } from '@ui5/webcomponents/dist/types/InputType.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-multi-input, [ui5-multi-input]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiInput',\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 MultiInput implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _MultiInput.prototype.accessibleDescription | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that describe the input.\n */\n accessibleDescriptionRef = input<typeof _MultiInput.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _MultiInput.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the input.\n */\n accessibleNameRef = input<typeof _MultiInput.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is completely noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the filter type of the component.\n */\n filter = input<typeof _MultiInput.prototype.filter | undefined>(\"None\");\n\n /**\n * Sets the maximum number of characters available in the input field.\n\n**Note:** This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n */\n maxlength = input<typeof _MultiInput.prototype.maxlength | undefined>();\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**Note:** When the component is used inside a form element,\nthe value is sent as the first element in the form data, even if it's empty.\n */\n name = input<typeof _MultiInput.prototype.name | undefined>();\n\n /**\n * Defines whether the value will be autcompleted to match an item\n */\n noTypeahead = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the suggestions picker is open.\nThe picker will not open if the `showSuggestions` property is set to `false`, the input is disabled or the input is readonly.\nThe picker will close automatically and `close` event will be fired if the input is not in the viewport.\n */\n open = input(false, { transform: booleanAttribute });\n\n /**\n * Defines a short hint intended to aid the user with data entry when the\ncomponent has no value.\n */\n placeholder = input<typeof _MultiInput.prototype.placeholder | 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 whether the clear icon of the input will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the component should show suggestions, if such are present.\n */\n showSuggestions = input(false, { transform: booleanAttribute });\n\n /**\n * Determines whether a value help icon will be visualized in the end of the input.\nPressing the icon will fire `value-help-trigger` event.\n */\n showValueHelpIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the HTML type of the component.\n\n**Notes:**\n\n- The particular effect of this property differs depending on the browser\nand the current language settings, especially for type `Number`.\n- The property is mostly intended to be used with touch devices\nthat use different soft keyboard layouts depending on the given input type.\n- Type `Number` does not support suggestions.\n */\n type = input<typeof _MultiInput.prototype.type | undefined>(\"Text\");\n\n /**\n * Defines the value of the component.\n\n**Note:** The property is updated upon typing.\n */\n value = input<typeof _MultiInput.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _MultiInput.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n */\n ui5Change = output<UI5CustomEvent<_MultiInput, 'change'>>();\n\n /**\n * Fired when the suggestions picker is closed.\n */\n ui5Close = output<UI5CustomEvent<_MultiInput, 'close'>>();\n\n /**\n * Fired when the value of the component changes at each keystroke,\nand when a suggestion item has been selected.\n */\n ui5Input = output<UI5CustomEvent<_MultiInput, 'input'>>();\n\n /**\n * Fired when the suggestions picker is open.\n */\n ui5Open = output<UI5CustomEvent<_MultiInput, 'open'>>();\n\n /**\n * Fired when some text has been selected.\n */\n ui5Select = output<UI5CustomEvent<_MultiInput, 'select'>>();\n\n /**\n * Fired when the user navigates to a suggestion item via the ARROW keys,\nas a preview, before the final selection.\n */\n ui5SelectionChange = output<UI5CustomEvent<_MultiInput, 'selection-change'>>();\n\n /**\n * Fired when tokens are being deleted.\n */\n ui5TokenDelete = output<UI5CustomEvent<_MultiInput, 'token-delete'>>();\n\n /**\n * Fired when the value help icon is pressed\nand F4 or ALT/OPTION + ARROW_UP/ARROW_DOWN keyboard keys are used.\n */\n ui5ValueHelpTrigger = output<UI5CustomEvent<_MultiInput, 'value-help-trigger'>>();\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 suggestion items.\n\n**Note:** The suggestions would be displayed only if the `showSuggestions`\nproperty is set to `true`.\n\n**Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\n\n**Note:** Input with type `Number` does not support suggestions.\n * - **icon**: Defines the icon to be displayed in the component.\n * - **tokens**: Defines the component tokens.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\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-multi-input>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-multi-input>\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 suggestion items.\\n\\n**Note:** The suggestions would be displayed only if the `showSuggestions`\\nproperty is set to `true`.\\n\\n**Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\\n\\n**Note:** Input with type `Number` does not support suggestions.\"\n },\n {\n \"name\": \"icon\",\n \"description\": \"Defines the icon to be displayed in the component.\"\n },\n {\n \"name\": \"tokens\",\n \"description\": \"Defines the component tokens.\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\nThe value state message slot should contain only one root element.\\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 \"since\": \"1.0.0-rc.6\"\n }\n ];\n\n\n public elementRef: ElementRef<_MultiInput> = 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(): _MultiInput {\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 'filter',\n 'maxlength',\n 'name',\n 'noTypeahead',\n 'open',\n 'placeholder',\n 'readonly',\n 'required',\n 'showClearIcon',\n 'showSuggestions',\n 'showValueHelpIcon',\n 'type',\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 'ui5Input',\n 'ui5Open',\n 'ui5Select',\n 'ui5SelectionChange',\n 'ui5TokenDelete',\n 'ui5ValueHelpTrigger',\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-multi-input.mjs","sources":["../../../../libs/ui5-webcomponents/multi-input/index.ts","../../../../libs/ui5-webcomponents/multi-input/fundamental-ngx-ui5-webcomponents-multi-input.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/MultiInput.js';\nimport { default as _MultiInput } from '@ui5/webcomponents/dist/MultiInput.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 { default as InputSuggestionsFilter } from '@ui5/webcomponents/dist/types/InputSuggestionsFilter.js';\nimport { default as InputType } from '@ui5/webcomponents/dist/types/InputType.js';\nimport { default as ValueState } from '@ui5/webcomponents-base/dist/types/ValueState.js';\n\n@Component({\n standalone: true,\n selector: 'ui5-multi-input, [ui5-multi-input]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5MultiInput',\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 MultiInput implements AfterViewInit {\n\n /**\n * Defines the accessible description of the component.\n */\n accessibleDescription = input<typeof _MultiInput.prototype.accessibleDescription | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that describe the input.\n */\n accessibleDescriptionRef = input<typeof _MultiInput.prototype.accessibleDescriptionRef | undefined>();\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _MultiInput.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the input.\n */\n accessibleNameRef = input<typeof _MultiInput.prototype.accessibleNameRef | undefined>();\n\n /**\n * Defines whether the component is in disabled state.\n\n**Note:** A disabled component is completely noninteractive.\n */\n disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the filter type of the component.\n */\n filter = input<typeof _MultiInput.prototype.filter | undefined>(\"None\");\n\n /**\n * Sets the maximum number of characters available in the input field.\n\n**Note:** This property is not compatible with the ui5-input type InputType.Number. If the ui5-input type is set to Number, the maxlength value is ignored.\n */\n maxlength = input<typeof _MultiInput.prototype.maxlength | undefined>();\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**Note:** When the component is used inside a form element,\nthe value is sent as the first element in the form data, even if it's empty.\n */\n name = input<typeof _MultiInput.prototype.name | undefined>();\n\n /**\n * Defines whether the value will be autcompleted to match an item\n */\n noTypeahead = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the suggestions picker is open.\nThe picker will not open if the `showSuggestions` property is set to `false`, the input is disabled or the input is readonly.\nThe picker will close automatically and `close` event will be fired if the input is not in the viewport.\n */\n open = input(false, { transform: booleanAttribute });\n\n /**\n * Defines a short hint intended to aid the user with data entry when the\ncomponent has no value.\n */\n placeholder = input<typeof _MultiInput.prototype.placeholder | 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 whether the clear icon of the input will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Defines whether the component should show suggestions, if such are present.\n */\n showSuggestions = input(false, { transform: booleanAttribute });\n\n /**\n * Determines whether a value help icon will be visualized in the end of the input.\nPressing the icon will fire `value-help-trigger` event.\n */\n showValueHelpIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the HTML type of the component.\n\n**Notes:**\n\n- The particular effect of this property differs depending on the browser\nand the current language settings, especially for type `Number`.\n- The property is mostly intended to be used with touch devices\nthat use different soft keyboard layouts depending on the given input type.\n- Type `Number` does not support suggestions.\n */\n type = input<typeof _MultiInput.prototype.type | undefined>(\"Text\");\n\n /**\n * Defines the value of the component.\n\n**Note:** The property is updated upon typing.\n */\n value = input<typeof _MultiInput.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _MultiInput.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter or on focusout.\n */\n ui5Change = output<UI5CustomEvent<_MultiInput, 'change'>>();\n\n /**\n * Fired when the suggestions picker is closed.\n */\n ui5Close = output<UI5CustomEvent<_MultiInput, 'close'>>();\n\n /**\n * Fired when the value of the component changes at each keystroke,\nand when a suggestion item has been selected.\n */\n ui5Input = output<UI5CustomEvent<_MultiInput, 'input'>>();\n\n /**\n * Fired when the suggestions picker is open.\n */\n ui5Open = output<UI5CustomEvent<_MultiInput, 'open'>>();\n\n /**\n * Fired when some text has been selected.\n */\n ui5Select = output<UI5CustomEvent<_MultiInput, 'select'>>();\n\n /**\n * Fired when the user navigates to a suggestion item via the ARROW keys,\nas a preview, before the final selection.\n */\n ui5SelectionChange = output<UI5CustomEvent<_MultiInput, 'selection-change'>>();\n\n /**\n * Fired when tokens are being deleted.\n */\n ui5TokenDelete = output<UI5CustomEvent<_MultiInput, 'token-delete'>>();\n\n /**\n * Fired when the value help icon is pressed\nand F4 or ALT/OPTION + ARROW_UP/ARROW_DOWN keyboard keys are used.\n */\n ui5ValueHelpTrigger = output<UI5CustomEvent<_MultiInput, 'value-help-trigger'>>();\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 suggestion items.\n\n**Note:** The suggestions would be displayed only if the `showSuggestions`\nproperty is set to `true`.\n\n**Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\n\n**Note:** Input with type `Number` does not support suggestions.\n * - **icon**: Defines the icon to be displayed in the component.\n * - **tokens**: Defines the component tokens.\n * - **valueStateMessage**: Defines the value state message that will be displayed as pop up under the component.\nThe value state message slot should contain only one root element.\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-multi-input>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-multi-input>\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 suggestion items.\\n\\n**Note:** The suggestions would be displayed only if the `showSuggestions`\\nproperty is set to `true`.\\n\\n**Note:** The `<ui5-suggestion-item>`, `<ui5-suggestion-item-group>` and `ui5-suggestion-item-custom` are recommended to be used as suggestion items.\\n\\n**Note:** Input with type `Number` does not support suggestions.\"\n },\n {\n \"name\": \"icon\",\n \"description\": \"Defines the icon to be displayed in the component.\"\n },\n {\n \"name\": \"tokens\",\n \"description\": \"Defines the component tokens.\"\n },\n {\n \"name\": \"valueStateMessage\",\n \"description\": \"Defines the value state message that will be displayed as pop up under the component.\\nThe value state message slot should contain only one root element.\\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 \"since\": \"1.0.0-rc.6\"\n }\n ];\n\n\n public elementRef: ElementRef<_MultiInput> = 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(): _MultiInput {\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 'filter',\n 'maxlength',\n 'name',\n 'noTypeahead',\n 'open',\n 'placeholder',\n 'readonly',\n 'required',\n 'showClearIcon',\n 'showSuggestions',\n 'showValueHelpIcon',\n 'type',\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 'ui5Input',\n 'ui5Open',\n 'ui5Select',\n 'ui5SelectionChange',\n 'ui5TokenDelete',\n 'ui5ValueHelpTrigger',\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, 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/OptionCustom.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -65,6 +65,7 @@ class OptionCustom {
65
65
  * @private
66
66
  */
67
67
  this._contentDensityObserver = inject(ContentDensityObserver);
68
+ this._destroyRef = inject(DestroyRef);
68
69
  }
69
70
  get element() {
70
71
  return this.elementRef.nativeElement;
@@ -104,17 +105,21 @@ class OptionCustom {
104
105
  'ui5Click',
105
106
  ];
106
107
  // Synchronize outputs (events)
108
+ const _listeners = [];
107
109
  for (const outputName of outputsToSync) {
108
110
  // Map Angular output name to UI5 web component event name
109
111
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
110
112
  // Ensure the output property exists and has an emit function before adding listener
111
113
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
112
114
  // Cast the listener to the correct type to satisfy TypeScript
113
- wcElement.addEventListener(eventName, (e) => {
115
+ const listener = (e) => {
114
116
  this[outputName].emit(e);
115
- });
117
+ };
118
+ wcElement.addEventListener(eventName, listener);
119
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
116
120
  }
117
121
  }
122
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
118
123
  }
119
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: OptionCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
125
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: OptionCustom, isStandalone: true, selector: "ui5-option-custom, [ui5-option-custom]", inputs: { displayText: { classPropertyName: "displayText", publicName: "displayText", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-option-custom.mjs","sources":["../../../../libs/ui5-webcomponents/option-custom/index.ts","../../../../libs/ui5-webcomponents/option-custom/fundamental-ngx-ui5-webcomponents-option-custom.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/OptionCustom.js';\nimport { default as _OptionCustom } from '@ui5/webcomponents/dist/OptionCustom.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-option-custom, [ui5-option-custom]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5OptionCustom',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionCustom implements AfterViewInit {\n\n /**\n * Defines the text, displayed inside the `ui5-select` input filed\nwhen the option gets selected.\n */\n displayText = input<typeof _OptionCustom.prototype.displayText | undefined>();\n\n /**\n * Defines the selected state of the component.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the tooltip of the option.\n */\n tooltip = input<typeof _OptionCustom.prototype.tooltip | undefined>();\n\n /**\n * Defines the value of the `ui5-select` inside an HTML Form element when this component is selected.\nFor more information on HTML Form support, see the `name` property of `ui5-select`.\n */\n value = input<typeof _OptionCustom.prototype.value | 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<_OptionCustom, '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 content of the component.\n *\n * @example\n * ```html\n * <ui5-option-custom>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-option-custom>\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 content of the component.\"\n }\n ];\n\n\n public elementRef: ElementRef<_OptionCustom> = 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(): _OptionCustom {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'displayText',\n 'selected',\n 'tooltip',\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 '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-option-custom.mjs","sources":["../../../../libs/ui5-webcomponents/option-custom/index.ts","../../../../libs/ui5-webcomponents/option-custom/fundamental-ngx-ui5-webcomponents-option-custom.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/OptionCustom.js';\nimport { default as _OptionCustom } from '@ui5/webcomponents/dist/OptionCustom.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-option-custom, [ui5-option-custom]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5OptionCustom',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OptionCustom implements AfterViewInit {\n\n /**\n * Defines the text, displayed inside the `ui5-select` input filed\nwhen the option gets selected.\n */\n displayText = input<typeof _OptionCustom.prototype.displayText | undefined>();\n\n /**\n * Defines the selected state of the component.\n */\n selected = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the tooltip of the option.\n */\n tooltip = input<typeof _OptionCustom.prototype.tooltip | undefined>();\n\n /**\n * Defines the value of the `ui5-select` inside an HTML Form element when this component is selected.\nFor more information on HTML Form support, see the `name` property of `ui5-select`.\n */\n value = input<typeof _OptionCustom.prototype.value | 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<_OptionCustom, '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 content of the component.\n *\n * @example\n * ```html\n * <ui5-option-custom>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-option-custom>\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 content of the component.\"\n }\n ];\n\n\n public elementRef: ElementRef<_OptionCustom> = 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(): _OptionCustom {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'displayText',\n 'selected',\n 'tooltip',\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 '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, 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/Option.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -75,6 +75,7 @@ class Option {
75
75
  * @private
76
76
  */
77
77
  this._contentDensityObserver = inject(ContentDensityObserver);
78
+ this._destroyRef = inject(DestroyRef);
78
79
  }
79
80
  get element() {
80
81
  return this.elementRef.nativeElement;
@@ -115,17 +116,21 @@ class Option {
115
116
  'ui5Click',
116
117
  ];
117
118
  // Synchronize outputs (events)
119
+ const _listeners = [];
118
120
  for (const outputName of outputsToSync) {
119
121
  // Map Angular output name to UI5 web component event name
120
122
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
121
123
  // Ensure the output property exists and has an emit function before adding listener
122
124
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
123
125
  // Cast the listener to the correct type to satisfy TypeScript
124
- wcElement.addEventListener(eventName, (e) => {
126
+ const listener = (e) => {
125
127
  this[outputName].emit(e);
126
- });
128
+ };
129
+ wcElement.addEventListener(eventName, listener);
130
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
127
131
  }
128
132
  }
133
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
129
134
  }
130
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: Option, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
131
136
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: Option, isStandalone: true, selector: "ui5-option, [ui5-option]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [