@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-color-picker.mjs","sources":["../../../../libs/ui5-webcomponents/color-picker/index.ts","../../../../libs/ui5-webcomponents/color-picker/fundamental-ngx-ui5-webcomponents-color-picker.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/ColorPicker.js';\nimport { default as _ColorPicker } from '@ui5/webcomponents/dist/ColorPicker.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-color-picker, [ui5-color-picker]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ColorPicker',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorPicker implements AfterViewInit {\n\n /**\n * Defines the accessible name of the component.\n */\n accessibleName = input<typeof _ColorPicker.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component.\n */\n accessibleNameRef = input<typeof _ColorPicker.prototype.accessibleNameRef | 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 */\n name = input<typeof _ColorPicker.prototype.name | undefined>();\n\n /**\n * When set to `true`, the alpha slider and inputs for RGB values will not be displayed.\n */\n simplified = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the currently selected color of the component.\n\n**Note**: use HEX, RGB, RGBA, HSV formats or a CSS color name when modifying this property.\n */\n value = input<typeof _ColorPicker.prototype.value | undefined>(\"rgba(255,255,255,1)\"); // className is now passed\n\n\n\n /**\n * Fired when the the selected color is changed\n */\n ui5Change = output<UI5CustomEvent<_ColorPicker, 'change'>>();\n\n\n public elementRef: ElementRef<_ColorPicker> = 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(): _ColorPicker {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'accessibleNameRef',\n 'name',\n 'simplified',\n 'value',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, () => {\n effect(() => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Change',\n ];\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":";;;;;MAuCa,WAAW,CAAA;AAZxB,IAAA,WAAA,GAAA;AAcE;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAA4D;AAElF;;AAEG;AACH,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK;yGAA+D;AAExF;;;;AAIG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAkD;AAE9D;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE1D;;;;AAIG;QACH,IAAA,CAAA,KAAK,GAAG,KAAK,CAAkD,qBAAqB;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAItF;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,MAAM,EAA0C;AAGrD,QAAA,IAAA,CAAA,UAAU,GAA6B,MAAM,CAAC,UAAU,CAAC;AACzD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AA+D1E,IAAA;AA7DC,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,mBAAmB;YACnB,MAAM;YACN,YAAY;YACZ,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,MAAK;oBACxC,MAAM,CAAC,MAAK;;AAEV,wBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;wBAChC,IAAI,SAAS,EAAE;;;4BAGb,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gCAC/C;4BACF;;AAEA,4BAAA,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK;wBAC9B;AACF,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;QACF;AAGA,QAAA,MAAM,aAAa,GAAG;YACpB,WAAW;SACZ;;AAGD,QAAA,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE;;YAEtC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;;AAErG,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,SAAS,CAAC,gBAAgB,EAAE;;gBAEjG,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,KAAI;oBAE1C,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAqB,CAAC;AAC9C,gBAAA,CAAC,CAAC;YACJ;QACF;IAGF;8GA7GW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,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,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAPX;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,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,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;ACtCD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-ui5-webcomponents-color-picker.mjs","sources":["../../../../libs/ui5-webcomponents/color-picker/index.ts","../../../../libs/ui5-webcomponents/color-picker/fundamental-ngx-ui5-webcomponents-color-picker.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/ColorPicker.js';\nimport { default as _ColorPicker } from '@ui5/webcomponents/dist/ColorPicker.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-color-picker, [ui5-color-picker]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ColorPicker',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorPicker implements AfterViewInit {\n\n /**\n * Defines the accessible name of the component.\n */\n accessibleName = input<typeof _ColorPicker.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component.\n */\n accessibleNameRef = input<typeof _ColorPicker.prototype.accessibleNameRef | 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 */\n name = input<typeof _ColorPicker.prototype.name | undefined>();\n\n /**\n * When set to `true`, the alpha slider and inputs for RGB values will not be displayed.\n */\n simplified = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the currently selected color of the component.\n\n**Note**: use HEX, RGB, RGBA, HSV formats or a CSS color name when modifying this property.\n */\n value = input<typeof _ColorPicker.prototype.value | undefined>(\"rgba(255,255,255,1)\"); // className is now passed\n\n\n\n /**\n * Fired when the the selected color is changed\n */\n ui5Change = output<UI5CustomEvent<_ColorPicker, 'change'>>();\n\n\n public elementRef: ElementRef<_ColorPicker> = 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(): _ColorPicker {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'accessibleName',\n 'accessibleNameRef',\n 'name',\n 'simplified',\n 'value',\n ];\n \n // Synchronize inputs (properties)\n for (const inputName of inputsToSync) {\n // Find the corresponding camelCase signal property on the Angular component\n const signalName = inputName.replace(/-./g, (x: string) => x[1].toUpperCase());\n\n // Use the Injector to run the effect in the correct context\n if (this[signalName] && typeof this[signalName] === 'function') {\n runInInjectionContext(this.injector, (): void => {\n effect((): void => {\n // Read the signal value\n const value = this[signalName]();\n if (wcElement) {\n // Skip writes when the signal is undefined and the property is already truthy\n // This prevents clobbering imperatively-set values (e.g., from RouterLink)\n if (value === undefined && wcElement[inputName]) {\n return;\n }\n // Write the value to the Web Component's property\n wcElement[inputName] = value;\n }\n });\n });\n }\n }\n \n \n const outputsToSync = [\n 'ui5Change',\n ];\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,WAAW,CAAA;AAZxB,IAAA,WAAA,GAAA;AAcE;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAA4D;AAElF;;AAEG;AACH,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK;yGAA+D;AAExF;;;;AAIG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAkD;AAE9D;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE1D;;;;AAIG;QACH,IAAA,CAAA,KAAK,GAAG,KAAK,CAAkD,qBAAqB;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAItF;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,MAAM,EAA0C;AAGrD,QAAA,IAAA,CAAA,UAAU,GAA6B,MAAM,CAAC,UAAU,CAAC;AACzD,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;AAmElD,IAAA;AAjEC,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,mBAAmB;YACnB,MAAM;YACN,YAAY;YACZ,OAAO;SACR;;AAGD,QAAA,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE;;YAEpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;;AAG9E,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;AAC9D,gBAAA,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAW;oBAC9C,MAAM,CAAC,MAAW;;AAEhB,wBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE;wBAChC,IAAI,SAAS,EAAE;;;4BAGb,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gCAC/C;4BACF;;AAEA,4BAAA,SAAS,CAAC,SAAS,CAAC,GAAG,KAAK;wBAC9B;AACF,oBAAA,CAAC,CAAC;AACJ,gBAAA,CAAC,CAAC;YACJ;QACF;AAGA,QAAA,MAAM,aAAa,GAAG;YACpB,WAAW;SACZ;;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;8GAlHW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sCAAA,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,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,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,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAPX;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,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,WAAW,EAAA,UAAA,EAAA,CAAA;kBAZvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sCAAsC;AAChD,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,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, output, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, output, inject, ElementRef, Injector, DestroyRef, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/ComboBoxItemCustom.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -56,6 +56,7 @@ class ComboBoxItemCustom {
56
56
  * @private
57
57
  */
58
58
  this._contentDensityObserver = inject(ContentDensityObserver);
59
+ this._destroyRef = inject(DestroyRef);
59
60
  }
60
61
  get element() {
61
62
  return this.elementRef.nativeElement;
@@ -93,17 +94,21 @@ class ComboBoxItemCustom {
93
94
  'ui5Click',
94
95
  ];
95
96
  // Synchronize outputs (events)
97
+ const _listeners = [];
96
98
  for (const outputName of outputsToSync) {
97
99
  // Map Angular output name to UI5 web component event name
98
100
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
99
101
  // Ensure the output property exists and has an emit function before adding listener
100
102
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
101
103
  // Cast the listener to the correct type to satisfy TypeScript
102
- wcElement.addEventListener(eventName, (e) => {
104
+ const listener = (e) => {
103
105
  this[outputName].emit(e);
104
- });
106
+ };
107
+ wcElement.addEventListener(eventName, listener);
108
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
105
109
  }
106
110
  }
111
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
107
112
  }
108
113
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBoxItemCustom, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
114
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBoxItemCustom, isStandalone: true, selector: "ui5-cb-item-custom, [ui5-cb-item-custom]", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-combo-box-item-custom.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box-item-custom/index.ts","../../../../libs/ui5-webcomponents/combo-box-item-custom/fundamental-ngx-ui5-webcomponents-combo-box-item-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/ComboBoxItemCustom.js';\nimport { default as _ComboBoxItemCustom } from '@ui5/webcomponents/dist/ComboBoxItemCustom.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-cb-item-custom, [ui5-cb-item-custom]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBoxItemCustom',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ComboBoxItemCustom implements AfterViewInit {\n\n /**\n * Defines the text of the component.\nUsed for filtering, autocomplete, and mobile rendering.\n */\n text = input<typeof _ComboBoxItemCustom.prototype.text | undefined>();\n\n /**\n * Defines the value of the component.\nUsed for programmatic selection via the `selectedValue` property.\n */\n value = input<typeof _ComboBoxItemCustom.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<_ComboBoxItemCustom, '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-cb-item-custom>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-cb-item-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<_ComboBoxItemCustom> = 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(): _ComboBoxItemCustom {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\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-combo-box-item-custom.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box-item-custom/index.ts","../../../../libs/ui5-webcomponents/combo-box-item-custom/fundamental-ngx-ui5-webcomponents-combo-box-item-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/ComboBoxItemCustom.js';\nimport { default as _ComboBoxItemCustom } from '@ui5/webcomponents/dist/ComboBoxItemCustom.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-cb-item-custom, [ui5-cb-item-custom]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBoxItemCustom',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ComboBoxItemCustom implements AfterViewInit {\n\n /**\n * Defines the text of the component.\nUsed for filtering, autocomplete, and mobile rendering.\n */\n text = input<typeof _ComboBoxItemCustom.prototype.text | undefined>();\n\n /**\n * Defines the value of the component.\nUsed for programmatic selection via the `selectedValue` property.\n */\n value = input<typeof _ComboBoxItemCustom.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<_ComboBoxItemCustom, '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-cb-item-custom>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-cb-item-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<_ComboBoxItemCustom> = 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(): _ComboBoxItemCustom {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\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":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, output, inject, ElementRef, Injector, DestroyRef, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/ComboBoxItemGroup.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -82,6 +82,7 @@ class ComboBoxItemGroup {
82
82
  * @private
83
83
  */
84
84
  this._contentDensityObserver = inject(ContentDensityObserver);
85
+ this._destroyRef = inject(DestroyRef);
85
86
  }
86
87
  get element() {
87
88
  return this.elementRef.nativeElement;
@@ -121,17 +122,21 @@ class ComboBoxItemGroup {
121
122
  'ui5MoveOver',
122
123
  ];
123
124
  // Synchronize outputs (events)
125
+ const _listeners = [];
124
126
  for (const outputName of outputsToSync) {
125
127
  // Map Angular output name to UI5 web component event name
126
128
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
127
129
  // Ensure the output property exists and has an emit function before adding listener
128
130
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
129
131
  // Cast the listener to the correct type to satisfy TypeScript
130
- wcElement.addEventListener(eventName, (e) => {
132
+ const listener = (e) => {
131
133
  this[outputName].emit(e);
132
- });
134
+ };
135
+ wcElement.addEventListener(eventName, listener);
136
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
133
137
  }
134
138
  }
139
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
135
140
  }
136
141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBoxItemGroup, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
142
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBoxItemGroup, isStandalone: true, selector: "ui5-cb-item-group, [ui5-cb-item-group]", inputs: { headerAccessibleName: { classPropertyName: "headerAccessibleName", publicName: "headerAccessibleName", isSignal: true, isRequired: false, transformFunction: null }, headerText: { classPropertyName: "headerText", publicName: "headerText", isSignal: true, isRequired: false, transformFunction: null }, wrappingType: { classPropertyName: "wrappingType", publicName: "wrappingType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Move: "ui5Move", ui5MoveOver: "ui5MoveOver" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-combo-box-item-group.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box-item-group/index.ts","../../../../libs/ui5-webcomponents/combo-box-item-group/fundamental-ngx-ui5-webcomponents-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/ComboBoxItemGroup.js';\nimport { default as _ComboBoxItemGroup } from '@ui5/webcomponents/dist/ComboBoxItemGroup.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-cb-item-group, [ui5-cb-item-group]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBoxItemGroup',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ComboBoxItemGroup implements AfterViewInit {\n\n /**\n * Defines the accessible name of the header.\n */\n headerAccessibleName = input<typeof _ComboBoxItemGroup.prototype.headerAccessibleName | undefined>();\n\n /**\n * Defines the header text of the <code>ui5-li-group</code>.\n */\n headerText = input<typeof _ComboBoxItemGroup.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 _ComboBoxItemGroup.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<_ComboBoxItemGroup, '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<_ComboBoxItemGroup, '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-cb-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-cb-item-group>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-cb-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-cb-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<_ComboBoxItemGroup> = 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(): _ComboBoxItemGroup {\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-combo-box-item-group.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box-item-group/index.ts","../../../../libs/ui5-webcomponents/combo-box-item-group/fundamental-ngx-ui5-webcomponents-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/ComboBoxItemGroup.js';\nimport { default as _ComboBoxItemGroup } from '@ui5/webcomponents/dist/ComboBoxItemGroup.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-cb-item-group, [ui5-cb-item-group]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBoxItemGroup',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ComboBoxItemGroup implements AfterViewInit {\n\n /**\n * Defines the accessible name of the header.\n */\n headerAccessibleName = input<typeof _ComboBoxItemGroup.prototype.headerAccessibleName | undefined>();\n\n /**\n * Defines the header text of the <code>ui5-li-group</code>.\n */\n headerText = input<typeof _ComboBoxItemGroup.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 _ComboBoxItemGroup.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<_ComboBoxItemGroup, '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<_ComboBoxItemGroup, '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-cb-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-cb-item-group>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-cb-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-cb-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<_ComboBoxItemGroup> = 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(): _ComboBoxItemGroup {\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":";;;;;MAyCa,iBAAiB,CAAA;AAZ9B,IAAA,WAAA,GAAA;AAcE;;AAEG;AACH,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK;4GAAwE;AAEpG;;AAEG;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK;kGAA8D;AAEhF;;;;;;;;;;;;AAYG;QACH,IAAA,CAAA,YAAY,GAAG,KAAK,CAA+D,MAAM;AAAC,QAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAI3F;;;;AAIG;QACH,IAAA,CAAA,OAAO,GAAG,MAAM,EAA8C;AAE9D;;;;AAIG;QACH,IAAA,CAAA,WAAW,GAAG,MAAM,EAAmD;AAEvE;;;;;;;;;;;;;;;;;;;;;AAqBG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG;AACb,YAAA;AACI,gBAAA,MAAM,EAAE,SAAS;AACjB,gBAAA,aAAa,EAAE;AAClB,aAAA;AACD,YAAA;AACI,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,aAAa,EAAE;AAClB;SACJ;AAGM,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,sBAAsB;YACtB,YAAY;YACZ,cAAc;SACf;;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,SAAS;YACT,aAAa;SACd;;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;8GAvJW,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,wCAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,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,wCAAwC;AAClD,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, output, inject, ElementRef, Injector, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, output, inject, ElementRef, Injector, DestroyRef, runInInjectionContext, effect, ChangeDetectionStrategy, Component } from '@angular/core';
3
3
  import '@ui5/webcomponents/dist/ComboBoxItem.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
 
@@ -52,6 +52,7 @@ class ComboBoxItem {
52
52
  * @private
53
53
  */
54
54
  this._contentDensityObserver = inject(ContentDensityObserver);
55
+ this._destroyRef = inject(DestroyRef);
55
56
  }
56
57
  get element() {
57
58
  return this.elementRef.nativeElement;
@@ -90,17 +91,21 @@ class ComboBoxItem {
90
91
  'ui5Click',
91
92
  ];
92
93
  // Synchronize outputs (events)
94
+ const _listeners = [];
93
95
  for (const outputName of outputsToSync) {
94
96
  // Map Angular output name to UI5 web component event name
95
97
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
96
98
  // Ensure the output property exists and has an emit function before adding listener
97
99
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
98
100
  // Cast the listener to the correct type to satisfy TypeScript
99
- wcElement.addEventListener(eventName, (e) => {
101
+ const listener = (e) => {
100
102
  this[outputName].emit(e);
101
- });
103
+ };
104
+ wcElement.addEventListener(eventName, listener);
105
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
102
106
  }
103
107
  }
108
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
104
109
  }
105
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBoxItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
106
111
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBoxItem, isStandalone: true, selector: "ui5-cb-item, [ui5-cb-item]", inputs: { additionalText: { classPropertyName: "additionalText", publicName: "additionalText", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Click: "ui5Click" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-combo-box-item.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box-item/index.ts","../../../../libs/ui5-webcomponents/combo-box-item/fundamental-ngx-ui5-webcomponents-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/ComboBoxItem.js';\nimport { default as _ComboBoxItem } from '@ui5/webcomponents/dist/ComboBoxItem.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-cb-item, [ui5-cb-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBoxItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ComboBoxItem implements AfterViewInit {\n\n /**\n * Defines the additional text of the component.\n */\n additionalText = input<typeof _ComboBoxItem.prototype.additionalText | undefined>();\n\n /**\n * Defines the text of the component.\n */\n text = input<typeof _ComboBoxItem.prototype.text | undefined>();\n\n /**\n * Defines the value of the `ui5-cb-item`.\n\nUse this property to associate a unique identifier or machine-readable value with the item,\nseparate from the display text. This enables:\n- Selecting items programmatically via `selectedValue` on the ComboBox\n- Submitting machine-readable values in forms\n- Distinguishing between items with identical display text\n\n**When to use:**\n- **Recommended:** Use the `value` property on items together with `selectedValue` on the ComboBox when you need unique identifiers\n- Omit `value` if the display text (`text` property) is sufficient for your use case\n\n**Example:**\n```html\n<ui5-combobox selected-value=\"DE\">\n <ui5-cb-item text=\"Germany\" value=\"DE\"></ui5-cb-item>\n <ui5-cb-item text=\"France\" value=\"FR\"></ui5-cb-item>\n</ui5-combobox>\n```\n */\n value = input<typeof _ComboBoxItem.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<_ComboBoxItem, 'click'>>();\n\n\n public elementRef: ElementRef<_ComboBoxItem> = 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(): _ComboBoxItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'additionalText',\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-combo-box-item.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box-item/index.ts","../../../../libs/ui5-webcomponents/combo-box-item/fundamental-ngx-ui5-webcomponents-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/ComboBoxItem.js';\nimport { default as _ComboBoxItem } from '@ui5/webcomponents/dist/ComboBoxItem.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-cb-item, [ui5-cb-item]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBoxItem',\n providers: [\n contentDensityObserverProviders({\n supportedContentDensity: [ContentDensityMode.COMPACT, ContentDensityMode.COZY]\n })\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ComboBoxItem implements AfterViewInit {\n\n /**\n * Defines the additional text of the component.\n */\n additionalText = input<typeof _ComboBoxItem.prototype.additionalText | undefined>();\n\n /**\n * Defines the text of the component.\n */\n text = input<typeof _ComboBoxItem.prototype.text | undefined>();\n\n /**\n * Defines the value of the `ui5-cb-item`.\n\nUse this property to associate a unique identifier or machine-readable value with the item,\nseparate from the display text. This enables:\n- Selecting items programmatically via `selectedValue` on the ComboBox\n- Submitting machine-readable values in forms\n- Distinguishing between items with identical display text\n\n**When to use:**\n- **Recommended:** Use the `value` property on items together with `selectedValue` on the ComboBox when you need unique identifiers\n- Omit `value` if the display text (`text` property) is sufficient for your use case\n\n**Example:**\n```html\n<ui5-combobox selected-value=\"DE\">\n <ui5-cb-item text=\"Germany\" value=\"DE\"></ui5-cb-item>\n <ui5-cb-item text=\"France\" value=\"FR\"></ui5-cb-item>\n</ui5-combobox>\n```\n */\n value = input<typeof _ComboBoxItem.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<_ComboBoxItem, 'click'>>();\n\n\n public elementRef: ElementRef<_ComboBoxItem> = 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(): _ComboBoxItem {\n return this.elementRef.nativeElement;\n }\n\n ngAfterViewInit(): void {\n const wcElement = this.element;\n \n const inputsToSync = [\n 'additionalText',\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,YAAY,CAAA;AAZzB,IAAA,WAAA,GAAA;AAcE;;AAEG;AACH,QAAA,IAAA,CAAA,cAAc,GAAG,KAAK;sGAA6D;AAEnF;;AAEG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAmD;AAE/D;;;;;;;;;;;;;;;;;;;;AAoBG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;AAAoD,QAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,OAAA,EAAA,CAAA,8BAAA,EAAA,CAAA,CAAA,CAAC;AAIlE;;;;AAIG;QACH,IAAA,CAAA,QAAQ,GAAG,MAAM,EAA0C;AAGpD,QAAA,IAAA,CAAA,UAAU,GAA8B,MAAM,CAAC,UAAU,CAAC;AAC1D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAElC;;;;AAIG;AACc,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACxD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAiElD,IAAA;AA/DC,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,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;8GAtHW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,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,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,EAPZ;AACT,YAAA,+BAA+B,CAAC;gBAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;aAC9E;AACF,SAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EANS,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAS1B,YAAY,EAAA,UAAA,EAAA,CAAA;kBAZxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,SAAS,EAAE;AACT,wBAAA,+BAA+B,CAAC;4BAC9B,uBAAuB,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,IAAI;yBAC9E;AACF,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;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/ComboBox.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
  import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
@@ -168,6 +168,7 @@ class ComboBox {
168
168
  * @private
169
169
  */
170
170
  this._contentDensityObserver = inject(ContentDensityObserver);
171
+ this._destroyRef = inject(DestroyRef);
171
172
  }
172
173
  get element() {
173
174
  return this.elementRef.nativeElement;
@@ -222,17 +223,21 @@ class ComboBox {
222
223
  'ui5SelectionChange',
223
224
  ];
224
225
  // Synchronize outputs (events)
226
+ const _listeners = [];
225
227
  for (const outputName of outputsToSync) {
226
228
  // Map Angular output name to UI5 web component event name
227
229
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
228
230
  // Ensure the output property exists and has an emit function before adding listener
229
231
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
230
232
  // Cast the listener to the correct type to satisfy TypeScript
231
- wcElement.addEventListener(eventName, (e) => {
233
+ const listener = (e) => {
232
234
  this[outputName].emit(e);
233
- });
235
+ };
236
+ wcElement.addEventListener(eventName, listener);
237
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
234
238
  }
235
239
  }
240
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
236
241
  }
237
242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ComboBox, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
238
243
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: ComboBox, isStandalone: true, selector: "ui5-combobox, [ui5-combobox]", inputs: { accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, noTypeahead: { classPropertyName: "noTypeahead", publicName: "noTypeahead", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, selectedValue: { classPropertyName: "selectedValue", publicName: "selectedValue", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5SelectionChange: "ui5SelectionChange" }, providers: [
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-ui5-webcomponents-combo-box.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box/index.ts","../../../../libs/ui5-webcomponents/combo-box/fundamental-ngx-ui5-webcomponents-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/ComboBox.js';\nimport { default as _ComboBox } from '@ui5/webcomponents/dist/ComboBox.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-combobox, [ui5-combobox]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBox',\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 ComboBox implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _ComboBox.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component\n */\n accessibleNameRef = input<typeof _ComboBox.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 _ComboBox.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 */\n name = input<typeof _ComboBox.prototype.name | undefined>();\n\n /**\n * Defines whether the value will be autocompleted to match an item\n */\n noTypeahead = 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 _ComboBox.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 value of the selected item (references the `value` property of `ui5-cb-item`).\n\nUse this property to work with unique identifiers (IDs, codes) instead of display text.\nWhen set, the ComboBox finds and selects the item whose `value` property matches this property.\n\n**Benefits:**\n- Select items programmatically by their unique identifier\n- Handle items with identical display text but different underlying values\n- Submit machine-readable values in forms (the item's `value` is submitted instead of the display text)\n\n**When to use `selectedValue` vs `value`:**\n- **Recommended:** Use `selectedValue` + item `value` when you need unique identifiers separate from display text (e.g., country codes \"DE\", \"FR\" with display names \"Germany\", \"France\")\n- Use only the ComboBox `value` property when the display text itself is sufficient for your use case\n */\n selectedValue = input<typeof _ComboBox.prototype.selectedValue | undefined>();\n\n /**\n * Defines whether the clear icon of the combobox will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the value of the component.\n */\n value = input<typeof _ComboBox.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _ComboBox.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n */\n ui5Change = output<UI5CustomEvent<_ComboBox, 'change'>>();\n\n /**\n * Fired when the dropdown is closed.\n */\n ui5Close = output<UI5CustomEvent<_ComboBox, 'close'>>();\n\n /**\n * Fired when typing in input or clear icon is pressed.\n\n**Note:** filterValue property is updated, input is changed.\n */\n ui5Input = output<UI5CustomEvent<_ComboBox, 'input'>>();\n\n /**\n * Fired when the dropdown is opened.\n */\n ui5Open = output<UI5CustomEvent<_ComboBox, 'open'>>();\n\n /**\n * Fired when selection is changed by user interaction\n */\n ui5SelectionChange = output<UI5CustomEvent<_ComboBox, 'selection-change'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the component items.\n * - **icon**: Defines the icon to be displayed in the input field.\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 `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\n *\n * @example\n * ```html\n * <ui5-combobox>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-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 input field.\",\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 `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\",\n \"since\": \"1.0.0-rc.9\"\n }\n ];\n\n\n public elementRef: ElementRef<_ComboBox> = 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(): _ComboBox {\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 'open',\n 'placeholder',\n 'readonly',\n 'required',\n 'selectedValue',\n 'showClearIcon',\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 ];\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-combo-box.mjs","sources":["../../../../libs/ui5-webcomponents/combo-box/index.ts","../../../../libs/ui5-webcomponents/combo-box/fundamental-ngx-ui5-webcomponents-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/ComboBox.js';\nimport { default as _ComboBox } from '@ui5/webcomponents/dist/ComboBox.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-combobox, [ui5-combobox]',\n template: '<ng-content></ng-content>',\n exportAs: 'ui5ComboBox',\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 ComboBox implements AfterViewInit {\n\n /**\n * Defines the accessible ARIA name of the component.\n */\n accessibleName = input<typeof _ComboBox.prototype.accessibleName | undefined>();\n\n /**\n * Receives id(or many ids) of the elements that label the component\n */\n accessibleNameRef = input<typeof _ComboBox.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 _ComboBox.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 */\n name = input<typeof _ComboBox.prototype.name | undefined>();\n\n /**\n * Defines whether the value will be autocompleted to match an item\n */\n noTypeahead = 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 _ComboBox.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 value of the selected item (references the `value` property of `ui5-cb-item`).\n\nUse this property to work with unique identifiers (IDs, codes) instead of display text.\nWhen set, the ComboBox finds and selects the item whose `value` property matches this property.\n\n**Benefits:**\n- Select items programmatically by their unique identifier\n- Handle items with identical display text but different underlying values\n- Submit machine-readable values in forms (the item's `value` is submitted instead of the display text)\n\n**When to use `selectedValue` vs `value`:**\n- **Recommended:** Use `selectedValue` + item `value` when you need unique identifiers separate from display text (e.g., country codes \"DE\", \"FR\" with display names \"Germany\", \"France\")\n- Use only the ComboBox `value` property when the display text itself is sufficient for your use case\n */\n selectedValue = input<typeof _ComboBox.prototype.selectedValue | undefined>();\n\n /**\n * Defines whether the clear icon of the combobox will be shown.\n */\n showClearIcon = input(false, { transform: booleanAttribute });\n\n /**\n * Defines the value of the component.\n */\n value = input<typeof _ComboBox.prototype.value | undefined>(\"\");\n\n /**\n * Defines the value state of the component.\n */\n valueState = input<typeof _ComboBox.prototype.valueState | undefined>(\"None\"); // className is now passed\n\n\n\n /**\n * Fired when the input operation has finished by pressing Enter, focusout or an item is selected.\n */\n ui5Change = output<UI5CustomEvent<_ComboBox, 'change'>>();\n\n /**\n * Fired when the dropdown is closed.\n */\n ui5Close = output<UI5CustomEvent<_ComboBox, 'close'>>();\n\n /**\n * Fired when typing in input or clear icon is pressed.\n\n**Note:** filterValue property is updated, input is changed.\n */\n ui5Input = output<UI5CustomEvent<_ComboBox, 'input'>>();\n\n /**\n * Fired when the dropdown is opened.\n */\n ui5Open = output<UI5CustomEvent<_ComboBox, 'open'>>();\n\n /**\n * Fired when selection is changed by user interaction\n */\n ui5SelectionChange = output<UI5CustomEvent<_ComboBox, 'selection-change'>>();\n\n /**\n * Available slots for content projection in this component.\n *\n * Slots allow you to insert custom content into predefined areas of the web component.\n * Use the `slot` attribute on child elements to target specific slots.\n *\n * - **(default)**: Defines the component items.\n * - **icon**: Defines the icon to be displayed in the input field.\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 `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\n *\n * @example\n * ```html\n * <ui5-combobox>\n * <div slot=\"header\">Custom header content</div>\n * <p>Default slot content</p>\n * </ui5-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 input field.\",\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 `ui5-combobox` is in `Information`, `Critical` or `Negative` value state.\",\n \"since\": \"1.0.0-rc.9\"\n }\n ];\n\n\n public elementRef: ElementRef<_ComboBox> = 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(): _ComboBox {\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 'open',\n 'placeholder',\n 'readonly',\n 'required',\n 'selectedValue',\n 'showClearIcon',\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 ];\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/DatePicker.js';
4
4
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
5
5
  import * as i1 from '@fundamental-ngx/ui5-webcomponents/utils';
@@ -188,6 +188,7 @@ class DatePicker {
188
188
  * @private
189
189
  */
190
190
  this._contentDensityObserver = inject(ContentDensityObserver);
191
+ this._destroyRef = inject(DestroyRef);
191
192
  }
192
193
  /**
193
194
  * Currently selected date represented as a Local JavaScript Date instance.
@@ -264,17 +265,21 @@ class DatePicker {
264
265
  'ui5ValueStateChange',
265
266
  ];
266
267
  // Synchronize outputs (events)
268
+ const _listeners = [];
267
269
  for (const outputName of outputsToSync) {
268
270
  // Map Angular output name to UI5 web component event name
269
271
  const eventName = outputName.replace('ui5', '').replace(/([A-Z])/g, '-$1').toLowerCase().substring(1);
270
272
  // Ensure the output property exists and has an emit function before adding listener
271
273
  if (this[outputName] && typeof this[outputName].emit === 'function' && wcElement.addEventListener) {
272
274
  // Cast the listener to the correct type to satisfy TypeScript
273
- wcElement.addEventListener(eventName, (e) => {
275
+ const listener = (e) => {
274
276
  this[outputName].emit(e);
275
- });
277
+ };
278
+ wcElement.addEventListener(eventName, listener);
279
+ _listeners.push(() => wcElement.removeEventListener(eventName, listener));
276
280
  }
277
281
  }
282
+ this._destroyRef.onDestroy(() => _listeners.forEach((fn) => fn()));
278
283
  }
279
284
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DatePicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
280
285
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: DatePicker, isStandalone: true, selector: "ui5-date-picker, [ui5-date-picker]", inputs: { accessibleDescription: { classPropertyName: "accessibleDescription", publicName: "accessibleDescription", isSignal: true, isRequired: false, transformFunction: null }, accessibleDescriptionRef: { classPropertyName: "accessibleDescriptionRef", publicName: "accessibleDescriptionRef", isSignal: true, isRequired: false, transformFunction: null }, accessibleName: { classPropertyName: "accessibleName", publicName: "accessibleName", isSignal: true, isRequired: false, transformFunction: null }, accessibleNameRef: { classPropertyName: "accessibleNameRef", publicName: "accessibleNameRef", isSignal: true, isRequired: false, transformFunction: null }, calendarWeekNumbering: { classPropertyName: "calendarWeekNumbering", publicName: "calendarWeekNumbering", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, displayFormat: { classPropertyName: "displayFormat", publicName: "displayFormat", isSignal: true, isRequired: false, transformFunction: null }, formatPattern: { classPropertyName: "formatPattern", publicName: "formatPattern", isSignal: true, isRequired: false, transformFunction: null }, hideWeekNumbers: { classPropertyName: "hideWeekNumbers", publicName: "hideWeekNumbers", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, primaryCalendarType: { classPropertyName: "primaryCalendarType", publicName: "primaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, secondaryCalendarType: { classPropertyName: "secondaryCalendarType", publicName: "secondaryCalendarType", isSignal: true, isRequired: false, transformFunction: null }, showClearIcon: { classPropertyName: "showClearIcon", publicName: "showClearIcon", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, valueState: { classPropertyName: "valueState", publicName: "valueState", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ui5Change: "ui5Change", ui5Close: "ui5Close", ui5Input: "ui5Input", ui5Open: "ui5Open", ui5ValueStateChange: "ui5ValueStateChange" }, providers: [