@eui/ecl 23.0.0-alpha.4 → 23.0.0-alpha.5

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 (313) hide show
  1. package/docs/changelog.html +38 -0
  2. package/docs/components/EclAddToCalendarComponent.html +7 -62
  3. package/docs/components/EclAnimatedNumbersComponent.html +0 -39
  4. package/docs/components/EclAppComponent.html +12 -72
  5. package/docs/components/EclBannerComponent.html +46 -46
  6. package/docs/components/EclBlockquoteComponent.html +6 -1
  7. package/docs/components/EclCarouselComponent.html +5 -0
  8. package/docs/components/EclCategoryFilterComponent.html +5 -0
  9. package/docs/components/EclCategoryFilterItemComponent.html +15 -10
  10. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  11. package/docs/components/EclContentItemComponent.html +4 -0
  12. package/docs/components/EclDateBlockComponent.html +43 -18
  13. package/docs/components/EclExpandableComponent.html +63 -1
  14. package/docs/components/EclFeaturedComponent.html +46 -37
  15. package/docs/components/EclFileComponent.html +19 -14
  16. package/docs/components/EclFileItemsComponent.html +31 -1
  17. package/docs/components/EclFormLabelComponent.html +1 -1
  18. package/docs/components/EclGalleryComponent.html +29 -29
  19. package/docs/components/EclGalleryItemComponent.html +47 -47
  20. package/docs/components/EclIconComponent.html +158 -48
  21. package/docs/components/EclInpageNavigationComponent.html +21 -1
  22. package/docs/components/EclInpageNavigationItemComponent.html +39 -1
  23. package/docs/components/EclListIllustrationComponent.html +47 -47
  24. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  25. package/docs/components/EclMediaContainerComponent.html +20 -20
  26. package/docs/components/EclMegaMenuFeaturedComponent.html +6 -1
  27. package/docs/components/EclMegaMenuInfoComponent.html +11 -1
  28. package/docs/components/EclMegaMenuItemComponent.html +44 -34
  29. package/docs/components/EclMegaMenuSubitemComponent.html +46 -31
  30. package/docs/components/EclMenuItemComponent.html +12 -2
  31. package/docs/components/EclMenuMegaItemComponent.html +8 -3
  32. package/docs/components/EclMultiselectComponent.html +56 -56
  33. package/docs/components/EclMultiselectDropdownComponent.html +1 -1
  34. package/docs/components/EclMultiselectOptgroupComponent.html +6 -1
  35. package/docs/components/EclNavigationListItemComponent.html +1 -1
  36. package/docs/components/EclNotificationComponent.html +32 -1
  37. package/docs/components/EclPaginationItemComponent.html +84 -59
  38. package/docs/components/EclRatingFieldComponent.html +98 -2
  39. package/docs/components/EclSearchFormComponent.html +41 -1
  40. package/docs/components/EclSelectContainerComponent.html +116 -1
  41. package/docs/components/EclSiteFooterComponent.html +1 -1
  42. package/docs/components/EclSiteFooterCoreComponent.html +6 -1
  43. package/docs/components/EclSiteFooterFixedContentEUComponent.html +16 -1
  44. package/docs/components/EclSiteFooterRowCommonComponent.html +6 -1
  45. package/docs/components/EclSiteHeaderComponent.html +27 -27
  46. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +96 -86
  47. package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
  48. package/docs/components/EclSiteHeaderSearchComponent.html +20 -10
  49. package/docs/components/EclSocialMediaFollowComponent.html +7 -2
  50. package/docs/components/EclSocialMediaFollowItemComponent.html +40 -25
  51. package/docs/components/EclSplashPageLanguageCategoryComponent.html +6 -1
  52. package/docs/components/EclSplashPageLanguageContainerComponent.html +6 -1
  53. package/docs/components/EclSplashPageLanguageLinkComponent.html +6 -1
  54. package/docs/components/EclTabComponent.html +50 -20
  55. package/docs/components/EclTabsComponent.html +1 -1
  56. package/docs/components/EclTagComponent.html +6 -1
  57. package/docs/components/EclTimelineComponent.html +4 -169
  58. package/docs/components/EclTimelineItemComponent.html +104 -1
  59. package/docs/directives/EclAccordionDirective.html +9 -99
  60. package/docs/directives/EclFileTitleDirective.html +5 -0
  61. package/docs/directives/EclFileUploadDirective.html +120 -0
  62. package/docs/directives/EclGalleryMediaDirective.html +5 -0
  63. package/docs/directives/EclMediaContainerIframeDirective.html +9 -11
  64. package/docs/directives/EclMediaContainerItemDirective.html +5 -0
  65. package/docs/directives/EclMultiselectOptionDirective.html +20 -10
  66. package/docs/directives/EclRadioDirective.html +18 -13
  67. package/docs/directives/EclSelectDirective.html +40 -0
  68. package/docs/directives/EclSiteFooterListDirective.html +5 -104
  69. package/docs/directives/EclSiteFooterSectionDirective.html +1 -1
  70. package/docs/directives/EclSiteFooterTitleDirective.html +29 -0
  71. package/docs/directives/EclTableHeaderDirective.html +5 -0
  72. package/docs/directives/EclTextMediaMediaAnchorDirective.html +1 -1
  73. package/docs/js/search/search_index.js +2 -2
  74. package/docs/json/EclAddToCalendarComponent.md +1 -1
  75. package/docs/json/EclBannerComponent.md +7 -7
  76. package/docs/json/EclCategoryFilterItemComponent.md +1 -1
  77. package/docs/json/EclDateBlockComponent.md +1 -1
  78. package/docs/json/EclExpandableComponent.md +2 -0
  79. package/docs/json/EclFeaturedComponent.md +3 -3
  80. package/docs/json/EclFileComponent.md +1 -1
  81. package/docs/json/EclFileItemsComponent.md +1 -0
  82. package/docs/json/EclGalleryComponent.md +4 -4
  83. package/docs/json/EclGalleryItemComponent.md +2 -2
  84. package/docs/json/EclIconComponent.md +4 -4
  85. package/docs/json/EclInpageNavigationItemComponent.md +1 -0
  86. package/docs/json/EclListIllustrationComponent.md +3 -3
  87. package/docs/json/EclMediaContainerComponent.md +1 -1
  88. package/docs/json/EclMediaContainerIframeDirective.md +2 -2
  89. package/docs/json/EclMegaMenuItemComponent.md +2 -2
  90. package/docs/json/EclMegaMenuSubitemComponent.md +3 -3
  91. package/docs/json/EclMenuItemComponent.md +1 -1
  92. package/docs/json/EclMenuMegaItemComponent.md +1 -1
  93. package/docs/json/EclMultiselectComponent.md +3 -3
  94. package/docs/json/EclMultiselectOptionDirective.md +1 -1
  95. package/docs/json/EclNavigationListItemComponent.md +1 -1
  96. package/docs/json/EclNotificationComponent.md +1 -0
  97. package/docs/json/EclPaginationItemComponent.md +3 -3
  98. package/docs/json/EclRadioDirective.md +1 -1
  99. package/docs/json/EclRatingFieldComponent.md +1 -0
  100. package/docs/json/EclSearchFormComponent.md +1 -0
  101. package/docs/json/EclSelectContainerComponent.md +6 -0
  102. package/docs/json/EclSiteFooterSectionDirective.md +1 -1
  103. package/docs/json/EclSiteHeaderComponent.md +2 -2
  104. package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
  105. package/docs/json/EclSiteHeaderSearchComponent.md +1 -1
  106. package/docs/json/EclSocialMediaFollowComponent.md +1 -1
  107. package/docs/json/EclSocialMediaFollowItemComponent.md +4 -4
  108. package/docs/json/EclTabComponent.md +2 -1
  109. package/docs/json/EclTagComponent.md +1 -1
  110. package/docs/json/EclTextMediaMediaAnchorDirective.md +1 -1
  111. package/docs/json/EclTimelineItemComponent.md +1 -0
  112. package/docs/json/documentation.json +4188 -2895
  113. package/docs/llms.txt +154 -138
  114. package/docs/miscellaneous/variables.html +2 -2
  115. package/docs/properties.html +1 -1
  116. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +5 -15
  117. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  118. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +9 -7
  119. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
  120. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs +2 -2
  121. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
  122. package/fesm2022/eui-ecl-components-ecl-app.mjs +13 -14
  123. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  124. package/fesm2022/eui-ecl-components-ecl-banner.mjs +27 -37
  125. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  126. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -7
  127. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  128. package/fesm2022/eui-ecl-components-ecl-card.mjs +7 -10
  129. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  130. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +14 -18
  131. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  132. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +21 -13
  133. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  134. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +5 -8
  135. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  136. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +18 -26
  137. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  138. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +39 -22
  139. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  140. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +21 -16
  141. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  142. package/fesm2022/eui-ecl-components-ecl-featured.mjs +17 -18
  143. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  144. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +25 -23
  145. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  146. package/fesm2022/eui-ecl-components-ecl-file.mjs +27 -20
  147. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  148. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +6 -12
  149. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  150. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -71
  151. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  152. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -8
  153. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  154. package/fesm2022/eui-ecl-components-ecl-icon.mjs +50 -39
  155. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  156. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +38 -32
  157. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  158. package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -7
  159. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  160. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +37 -57
  161. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  162. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -21
  163. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  164. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -27
  165. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  166. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +67 -73
  167. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  168. package/fesm2022/eui-ecl-components-ecl-menu.mjs +46 -51
  169. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  170. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +52 -43
  171. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  172. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +13 -19
  173. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  174. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +6 -9
  175. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  176. package/fesm2022/eui-ecl-components-ecl-notification.mjs +19 -21
  177. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  178. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +5 -8
  179. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  180. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +57 -64
  181. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  182. package/fesm2022/eui-ecl-components-ecl-radio.mjs +8 -7
  183. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  184. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +35 -27
  185. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  186. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +23 -23
  187. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  188. package/fesm2022/eui-ecl-components-ecl-select.mjs +31 -40
  189. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  190. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +71 -70
  191. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  192. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +44 -55
  193. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  194. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +27 -36
  195. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  196. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +38 -18
  197. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  198. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +11 -16
  199. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  200. package/fesm2022/eui-ecl-components-ecl-table.mjs +16 -15
  201. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  202. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +32 -34
  203. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  204. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -12
  205. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  206. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +9 -12
  207. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  208. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +15 -19
  209. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  210. package/fesm2022/eui-ecl-components-ecl-text-media.mjs +5 -8
  211. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  212. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +40 -59
  213. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  214. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  215. package/package.json +1 -1
  216. package/types/eui-ecl-components-ecl-accordion.d.ts +2 -10
  217. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  218. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +4 -1
  219. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
  220. package/types/eui-ecl-components-ecl-animated-numbers.d.ts +1 -1
  221. package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
  222. package/types/eui-ecl-components-ecl-app.d.ts +6 -6
  223. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  224. package/types/eui-ecl-components-ecl-banner.d.ts +9 -10
  225. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  226. package/types/eui-ecl-components-ecl-blockquote.d.ts +2 -2
  227. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  228. package/types/eui-ecl-components-ecl-card.d.ts +2 -3
  229. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  230. package/types/eui-ecl-components-ecl-carousel.d.ts +10 -12
  231. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  232. package/types/eui-ecl-components-ecl-category-filter.d.ts +4 -4
  233. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  234. package/types/eui-ecl-components-ecl-checkbox.d.ts +2 -3
  235. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  236. package/types/eui-ecl-components-ecl-content-item.d.ts +8 -10
  237. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  238. package/types/eui-ecl-components-ecl-date-block.d.ts +10 -10
  239. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  240. package/types/eui-ecl-components-ecl-expandable.d.ts +7 -8
  241. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  242. package/types/eui-ecl-components-ecl-featured.d.ts +4 -5
  243. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  244. package/types/eui-ecl-components-ecl-file-upload.d.ts +9 -11
  245. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  246. package/types/eui-ecl-components-ecl-file.d.ts +7 -8
  247. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  248. package/types/eui-ecl-components-ecl-form-label.d.ts +3 -5
  249. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  250. package/types/eui-ecl-components-ecl-gallery.d.ts +32 -41
  251. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  252. package/types/eui-ecl-components-ecl-help-block.d.ts +3 -4
  253. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  254. package/types/eui-ecl-components-ecl-icon.d.ts +17 -12
  255. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  256. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +18 -19
  257. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  258. package/types/eui-ecl-components-ecl-label.d.ts +3 -3
  259. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  260. package/types/eui-ecl-components-ecl-list-illustration.d.ts +25 -30
  261. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  262. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +6 -8
  263. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  264. package/types/eui-ecl-components-ecl-media-container.d.ts +9 -11
  265. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  266. package/types/eui-ecl-components-ecl-mega-menu.d.ts +25 -28
  267. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  268. package/types/eui-ecl-components-ecl-menu.d.ts +26 -31
  269. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  270. package/types/eui-ecl-components-ecl-multiselect.d.ts +13 -13
  271. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  272. package/types/eui-ecl-components-ecl-navigation-list.d.ts +5 -7
  273. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  274. package/types/eui-ecl-components-ecl-news-ticker.d.ts +2 -3
  275. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  276. package/types/eui-ecl-components-ecl-notification.d.ts +17 -19
  277. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  278. package/types/eui-ecl-components-ecl-page-header.d.ts +2 -3
  279. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  280. package/types/eui-ecl-components-ecl-pagination.d.ts +22 -29
  281. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  282. package/types/eui-ecl-components-ecl-radio.d.ts +2 -3
  283. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  284. package/types/eui-ecl-components-ecl-rating-field.d.ts +12 -12
  285. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  286. package/types/eui-ecl-components-ecl-search-form.d.ts +10 -10
  287. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  288. package/types/eui-ecl-components-ecl-select.d.ts +13 -17
  289. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  290. package/types/eui-ecl-components-ecl-site-footer.d.ts +22 -27
  291. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  292. package/types/eui-ecl-components-ecl-site-header.d.ts +16 -18
  293. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  294. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +21 -23
  295. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  296. package/types/eui-ecl-components-ecl-splash-page.d.ts +6 -6
  297. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  298. package/types/eui-ecl-components-ecl-sticky-container.d.ts +6 -7
  299. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  300. package/types/eui-ecl-components-ecl-table.d.ts +4 -5
  301. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  302. package/types/eui-ecl-components-ecl-tabs.d.ts +5 -6
  303. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  304. package/types/eui-ecl-components-ecl-tag.d.ts +3 -4
  305. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  306. package/types/eui-ecl-components-ecl-text-area.d.ts +5 -6
  307. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  308. package/types/eui-ecl-components-ecl-text-input.d.ts +6 -7
  309. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  310. package/types/eui-ecl-components-ecl-text-media.d.ts +2 -2
  311. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  312. package/types/eui-ecl-components-ecl-timeline.d.ts +8 -17
  313. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-pagination.mjs","sources":["../../components/ecl-pagination/ecl-pagination-item.component.ts","../../components/ecl-pagination/ecl-pagination-item.component.html","../../components/ecl-pagination/ecl-pagination-list.directive.ts","../../components/ecl-pagination/events/ecl-pagination.event.ts","../../components/ecl-pagination/ecl-pagination.component.ts","../../components/ecl-pagination/ecl-pagination.component.html","../../components/ecl-pagination/index.ts","../../components/ecl-pagination/eui-ecl-components-ecl-pagination.ts"],"sourcesContent":["import { Component, ElementRef, HostBinding, Input, ViewEncapsulation, booleanAttribute, inject, output } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * Event emitted when a pagination item is clicked.\n */\nexport class EclPaginationItemClickEvent extends EclBaseEvent {}\n\n@Component({\n selector: 'li[eclPaginationItem]',\n templateUrl: './ecl-pagination-item.component.html',\n imports: [RouterLink, RouterLinkWithHref, TranslatePipe, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclPaginationItemComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-pagination__item'),\n this.isCurrent ? 'ecl-pagination__item--current' : '',\n this.isNext ? 'ecl-pagination__item--next' : '',\n this.isPrevious ? 'ecl-pagination__item--previous' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets the `role` attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Text content of the pagination item.\n */\n @Input() label: string;\n\n /**\n * Value for the `aria-label` attribute used for accessibility.\n */\n @Input() ariaLabel: string;\n\n /**\n * Total number of pages displayed by the pagination component.\n */\n @Input() pagesCount: string;\n\n /**\n * Adds the `ecl-pagination__item--current` class when true.\n */\n @Input({ transform: booleanAttribute }) isCurrent: boolean;\n\n /**\n * Adds the `ecl-pagination__item--next` class when true.\n */\n @Input({ transform: booleanAttribute }) isNext: boolean;\n\n /**\n * Adds the `ecl-pagination__item--previous` class when true.\n */\n @Input({ transform: booleanAttribute }) isPrevious: boolean;\n\n /**\n * Adds the `ecl-pagination__item--truncation` class when true.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-pagination__item--truncation') isTruncated = false;\n\n /**\n * Router navigation link for Angular routing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters for the router link.\n */\n @Input() queryParams: Params | null = null;\n\n /**\n * Determines how query parameters are handled during navigation.\n */\n @Input() queryParamsHandling: QueryParamsHandling = null;\n\n /**\n * Href link for navigation.\n */\n @Input() href: string = null;\n\n /**\n * Emits when the pagination item is clicked.\n */\n readonly pageClick = output<EclPaginationItemClickEvent>();\n\n get anchorRole(): string | null {\n return !this.href && !this.routerLink ? 'button' : null;\n }\n\n /**\n * Adds relevant classes to the host element.\n */\n constructor() {\n super();\n const el = this.el;\n\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {\n console.warn('\"ecl-pagination-item\" selector is deprecated; use \"li[eclPaginationItem]\" instead.');\n }\n }\n\n /**\n * Returns true if this item is an icon-only element (previous or next page).\n */\n get isIconOnly(): boolean {\n return this.isPrevOrNextVisible();\n }\n\n /**\n * Handles the click event and emits the `pageClick` output.\n * Prevents event propagation if no href is defined.\n *\n * @param evt Event object from the DOM click event.\n */\n onPageClick(evt: Event): void {\n this.pageClick.emit(new EclPaginationItemClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * Returns the i18n translation key for the ARIA label.\n */\n geti18nPageAriaLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.GO-TO-NEXT-PAGE';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.GO-TO-PREV-PAGE';\n } else {\n key = 'ecl.pagination.GO-TO-PAGE';\n }\n return key;\n }\n\n /**\n * Returns the i18n translation key for the visible label.\n */\n geti18nPageLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.NEXT';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.PREVIOUS';\n }\n return key;\n }\n\n /**\n * Returns true if the item is either previous or next.\n */\n isPrevOrNextVisible(): boolean {\n return this.isPrevious || this.isNext;\n }\n}\n","@if (!isCurrent && !isTruncated) {\n@if(routerLink){\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.role]=\"anchorRole\"\n [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n\n@if (!routerLink) {\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.href]=\"href\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\" [attr.role]=\"anchorRole\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n}\n\n@else if (isTruncated) {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n}\n@else {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n\n<span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n @if(pagesCount) {\n {{ 'ecl.common.OF' | translate}} {{pagesCount}}\n }\n</span>\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply ECL styles to the pagination list element.\n * Adds the `ecl-pagination__list` class to the host element.\n */\n@Directive({\n selector: '[eclPaginationList]',\n})\nexport class EclPaginationListDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-pagination__list` class to the host element.\n */\n @HostBinding('class.ecl-pagination__list') hasClass = true;\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted by EclPaginationComponent when the page changes.\n * Contains information about the current page and visible item range.\n */\nexport class EclPaginationEvent extends EclBaseEvent {\n /**\n * Current page number after the change.\n */\n constructor(\n public readonly page: number,\n\n /**\n * Index of the first item shown on the current page.\n */\n public readonly showingFrom: number,\n\n /**\n * Index of the last item shown on the current page.\n */\n public readonly showingTo: number,\n ) {\n super();\n }\n}\n","import { Component, ContentChild, HostBinding, Input, OnChanges, OnInit, numberAttribute, output } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DefaultConfig, EuiPagination } from '@eui/base';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPaginationEvent } from './events/ecl-pagination.event';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationItemComponent } from './ecl-pagination-item.component';\n\n/**\n * Component rendering the ECL pagination.\n * Supports manual and automatic modes.\n * Emits page change events and manages pagination logic.\n */\n@Component({\n selector: 'ecl-pagination',\n templateUrl: './ecl-pagination.component.html',\n imports: [NgTemplateOutlet, EclPaginationItemComponent],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclPaginationComponent extends ECLBaseDirective implements OnInit, OnChanges {\n /**\n * Defines the pagination mode.\n * - `manual` - component waits for external events to change pages.\n * - `auto` - component manages the pages automatically based on inputs.\n */\n @Input() mode: 'manual' | 'auto' = 'manual';\n\n /**\n * Total number of items in the list.\n */\n @Input({ transform: numberAttribute }) totalItems: number = DefaultConfig.totalItems;\n\n /**\n * Number of items displayed on a single page.\n */\n @Input({ transform: numberAttribute }) pageSize: number = DefaultConfig.pageSize;\n\n /**\n * Currently selected page number.\n */\n @Input({ transform: numberAttribute }) currentPage: number = DefaultConfig.currentPage;\n\n /**\n * Number of pagination links visible around the current page.\n */\n @Input({ transform: numberAttribute }) pageWindowSize: number = DefaultConfig.pageWindowSize;\n\n /**\n * Emits a pagination event each time the page changes.\n */\n readonly page = output<EclPaginationEvent>();\n\n /**\n * Adds the `ecl-pagination` class to the host element.\n */\n @HostBinding('class.ecl-pagination') cmpClass = true;\n\n /**\n * Sets the ARIA role to indicate navigation.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * Reference to the pagination list directive inside the component's content.\n */\n @ContentChild(EclPaginationListDirective) eclPaginationList: EclPaginationListDirective;\n\n /**\n * Internal pagination model storing pagination data and logic.\n */\n public model = EuiPagination.create();\n\n /**\n * Lifecycle hook that runs once after component initialization.\n * In automatic mode, triggers an initial page event.\n */\n ngOnInit(): void {\n if (this.isModeAuto()) {\n setTimeout(() => {\n this.firePageEvent();\n });\n }\n }\n\n /**\n * Lifecycle hook called on input changes.\n * Re-creates the pagination model in automatic mode.\n */\n ngOnChanges(): void {\n if (this.isModeAuto()) {\n this.model = EuiPagination.create({\n totalItems: this.totalItems,\n pageSize: this.pageSize,\n currentPage: this.currentPage,\n pageWindowSize: this.pageWindowSize,\n });\n }\n }\n\n /**\n * Returns true if the pagination list exists in the template.\n */\n get hasList(): boolean {\n return !!this.eclPaginationList;\n }\n \n /**\n * Navigates to the previous page and emits a page change event.\n */\n onPreviousPage(): void {\n this.model.goToPreviousPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to the next page and emits a page change event.\n */\n onNextPage(): void {\n this.model.goToNextPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to a specific page and emits a page change event.\n *\n * @param page The page number to navigate to.\n */\n onPage(page: number): void {\n this.model.goToPage(page);\n this.firePageEvent();\n }\n\n /**\n * Checks if the component is in automatic mode.\n */\n isModeAuto(): boolean {\n return this.mode === 'auto';\n }\n\n /**\n * Emits the page change event with the current pagination state.\n */\n private firePageEvent(): void {\n const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());\n\n this.page.emit(evt);\n }\n}\n","@if(!hasList) {\n <ul class=\"ecl-pagination__list\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ul>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n \n <ng-template #content>\n @if (isModeAuto()){\n @if(model.hasPreviousPage()){\n <li eclPaginationItem [isPrevious]=\"true\" (pageClick)=\"onPreviousPage()\"> </li>\n }\n @for (page of model.getPages(); track page) {\n <li eclPaginationItem\n [label]=\"page.toString()\"\n [isCurrent]=\"model.getCurrentPage() === page\"\n (pageClick)=\"onPage(page)\"\n [pagesCount]=\"model.getPagesCount().toString()\">\n </li>\n }\n \n @if(model.hasNextPage()){\n <li eclPaginationItem [isNext]=\"true\" (pageClick)=\"onNextPage()\"> </li>\n }\n }\n \n @if(!isModeAuto()) {\n <ng-content></ng-content>\n }\n </ng-template>","import { EclPaginationItemComponent } from './ecl-pagination-item.component';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationComponent } from './ecl-pagination.component';\n\nexport * from './ecl-pagination.component';\nexport * from './ecl-pagination-item.component';\nexport * from './events/ecl-pagination.event';\nexport * from './ecl-pagination-list.directive';\n\nexport const EUI_ECL_PAGINATION = [\n EclPaginationComponent, EclPaginationItemComponent, EclPaginationListDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-pagination.mjs","sources":["../../components/ecl-pagination/ecl-pagination-item.component.ts","../../components/ecl-pagination/ecl-pagination-item.component.html","../../components/ecl-pagination/ecl-pagination-list.directive.ts","../../components/ecl-pagination/events/ecl-pagination.event.ts","../../components/ecl-pagination/ecl-pagination.component.ts","../../components/ecl-pagination/ecl-pagination.component.html","../../components/ecl-pagination/index.ts","../../components/ecl-pagination/eui-ecl-components-ecl-pagination.ts"],"sourcesContent":["import { Component, ElementRef, HostBinding, Input, ViewEncapsulation, booleanAttribute, inject, output, input } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * Event emitted when a pagination item is clicked.\n */\nexport class EclPaginationItemClickEvent extends EclBaseEvent {}\n\n@Component({\n selector: 'li[eclPaginationItem]',\n templateUrl: './ecl-pagination-item.component.html',\n imports: [RouterLink, RouterLinkWithHref, TranslatePipe, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclPaginationItemComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-pagination__item'),\n this.isCurrent() ? 'ecl-pagination__item--current' : '',\n this.isNext() ? 'ecl-pagination__item--next' : '',\n this.isPrevious() ? 'ecl-pagination__item--previous' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets the `role` attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Text content of the pagination item.\n */\n readonly label = input<string>(undefined);\n\n /**\n * Value for the `aria-label` attribute used for accessibility.\n */\n readonly ariaLabel = input<string>(undefined);\n\n /**\n * Total number of pages displayed by the pagination component.\n */\n @Input() pagesCount: string;\n\n /**\n * Adds the `ecl-pagination__item--current` class when true.\n */\n readonly isCurrent = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Adds the `ecl-pagination__item--next` class when true.\n */\n readonly isNext = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Adds the `ecl-pagination__item--previous` class when true.\n */\n readonly isPrevious = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Adds the `ecl-pagination__item--truncation` class when true.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-pagination__item--truncation') isTruncated = false;\n\n /**\n * Router navigation link for Angular routing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters for the router link.\n */\n readonly queryParams = input<Params | null>(null);\n\n /**\n * Determines how query parameters are handled during navigation.\n */\n readonly queryParamsHandling = input<QueryParamsHandling>(null);\n\n /**\n * Href link for navigation.\n */\n readonly href = input<string>(null);\n\n /**\n * Emits when the pagination item is clicked.\n */\n readonly pageClick = output<EclPaginationItemClickEvent>();\n\n get anchorRole(): string | null {\n return !this.href() && !this.routerLink ? 'button' : null;\n }\n\n /**\n * Adds relevant classes to the host element.\n */\n constructor() {\n super();\n const el = this.el;\n\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {\n console.warn('\"ecl-pagination-item\" selector is deprecated; use \"li[eclPaginationItem]\" instead.');\n }\n }\n\n /**\n * Returns true if this item is an icon-only element (previous or next page).\n */\n get isIconOnly(): boolean {\n return this.isPrevOrNextVisible();\n }\n\n /**\n * Handles the click event and emits the `pageClick` output.\n * Prevents event propagation if no href is defined.\n *\n * @param evt Event object from the DOM click event.\n */\n onPageClick(evt: Event): void {\n this.pageClick.emit(new EclPaginationItemClickEvent());\n if (!this.href()) {\n evt.stopPropagation();\n }\n }\n\n /**\n * Returns the i18n translation key for the ARIA label.\n */\n geti18nPageAriaLabelKey(): string {\n let key = '';\n\n if (this.isNext()) {\n key = 'ecl.pagination.GO-TO-NEXT-PAGE';\n } else if (this.isPrevious()) {\n key = 'ecl.pagination.GO-TO-PREV-PAGE';\n } else {\n key = 'ecl.pagination.GO-TO-PAGE';\n }\n return key;\n }\n\n /**\n * Returns the i18n translation key for the visible label.\n */\n geti18nPageLabelKey(): string {\n let key = '';\n\n if (this.isNext()) {\n key = 'ecl.pagination.NEXT';\n } else if (this.isPrevious()) {\n key = 'ecl.pagination.PREVIOUS';\n }\n return key;\n }\n\n /**\n * Returns true if the item is either previous or next.\n */\n isPrevOrNextVisible(): boolean {\n return this.isPrevious() || this.isNext();\n }\n}\n","@if (!isCurrent() && !isTruncated) {\n@if(routerLink){\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel() || geti18nPageAriaLabelKey() | translate: { pageNumber: label() } }}\" [attr.role]=\"anchorRole\"\n [routerLink]=\"routerLink\" [queryParams]=\"queryParams()\" [queryParamsHandling]=\"queryParamsHandling()\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious()) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label() || geti18nPageLabelKey() | translate }}</span>\n @if (isNext()) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n\n@if (!routerLink) {\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel() || geti18nPageAriaLabelKey() | translate: { pageNumber: label() } }}\" [attr.href]=\"href()\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\" [attr.role]=\"anchorRole\">\n @if (isPrevious()) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label() || geti18nPageLabelKey() | translate }}</span>\n @if (isNext()) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n}\n\n@else if (isTruncated) {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label() }}\n</span>\n}\n@else {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label() }}\n</span>\n\n<span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label() } }}\n @if(pagesCount) {\n {{ 'ecl.common.OF' | translate}} {{pagesCount}}\n }\n</span>\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply ECL styles to the pagination list element.\n * Adds the `ecl-pagination__list` class to the host element.\n */\n@Directive({\n selector: '[eclPaginationList]',\n})\nexport class EclPaginationListDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-pagination__list` class to the host element.\n */\n @HostBinding('class.ecl-pagination__list') hasClass = true;\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted by EclPaginationComponent when the page changes.\n * Contains information about the current page and visible item range.\n */\nexport class EclPaginationEvent extends EclBaseEvent {\n /**\n * Current page number after the change.\n */\n constructor(\n public readonly page: number,\n\n /**\n * Index of the first item shown on the current page.\n */\n public readonly showingFrom: number,\n\n /**\n * Index of the last item shown on the current page.\n */\n public readonly showingTo: number,\n ) {\n super();\n }\n}\n","import { Component, ContentChild, HostBinding, OnChanges, OnInit, numberAttribute, output, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DefaultConfig, EuiPagination } from '@eui/base';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPaginationEvent } from './events/ecl-pagination.event';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationItemComponent } from './ecl-pagination-item.component';\n\n/**\n * Component rendering the ECL pagination.\n * Supports manual and automatic modes.\n * Emits page change events and manages pagination logic.\n */\n@Component({\n selector: 'ecl-pagination',\n templateUrl: './ecl-pagination.component.html',\n imports: [NgTemplateOutlet, EclPaginationItemComponent],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclPaginationComponent extends ECLBaseDirective implements OnInit, OnChanges {\n /**\n * Defines the pagination mode.\n * - `manual` - component waits for external events to change pages.\n * - `auto` - component manages the pages automatically based on inputs.\n */\n readonly mode = input<'manual' | 'auto'>('manual');\n\n /**\n * Total number of items in the list.\n */\n readonly totalItems = input<number, unknown>(DefaultConfig.totalItems, { transform: numberAttribute });\n\n /**\n * Number of items displayed on a single page.\n */\n readonly pageSize = input<number, unknown>(DefaultConfig.pageSize, { transform: numberAttribute });\n\n /**\n * Currently selected page number.\n */\n readonly currentPage = input<number, unknown>(DefaultConfig.currentPage, { transform: numberAttribute });\n\n /**\n * Number of pagination links visible around the current page.\n */\n readonly pageWindowSize = input<number, unknown>(DefaultConfig.pageWindowSize, { transform: numberAttribute });\n\n /**\n * Emits a pagination event each time the page changes.\n */\n readonly page = output<EclPaginationEvent>();\n\n /**\n * Adds the `ecl-pagination` class to the host element.\n */\n @HostBinding('class.ecl-pagination') cmpClass = true;\n\n /**\n * Sets the ARIA role to indicate navigation.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * Reference to the pagination list directive inside the component's content.\n */\n @ContentChild(EclPaginationListDirective) eclPaginationList: EclPaginationListDirective;\n\n /**\n * Internal pagination model storing pagination data and logic.\n */\n public model = EuiPagination.create();\n\n /**\n * Lifecycle hook that runs once after component initialization.\n * In automatic mode, triggers an initial page event.\n */\n ngOnInit(): void {\n if (this.isModeAuto()) {\n setTimeout(() => {\n this.firePageEvent();\n });\n }\n }\n\n /**\n * Lifecycle hook called on input changes.\n * Re-creates the pagination model in automatic mode.\n */\n ngOnChanges(): void {\n if (this.isModeAuto()) {\n this.model = EuiPagination.create({\n totalItems: this.totalItems(),\n pageSize: this.pageSize(),\n currentPage: this.currentPage(),\n pageWindowSize: this.pageWindowSize(),\n });\n }\n }\n\n /**\n * Returns true if the pagination list exists in the template.\n */\n get hasList(): boolean {\n return !!this.eclPaginationList;\n }\n \n /**\n * Navigates to the previous page and emits a page change event.\n */\n onPreviousPage(): void {\n this.model.goToPreviousPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to the next page and emits a page change event.\n */\n onNextPage(): void {\n this.model.goToNextPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to a specific page and emits a page change event.\n *\n * @param page The page number to navigate to.\n */\n onPage(page: number): void {\n this.model.goToPage(page);\n this.firePageEvent();\n }\n\n /**\n * Checks if the component is in automatic mode.\n */\n isModeAuto(): boolean {\n return this.mode() === 'auto';\n }\n\n /**\n * Emits the page change event with the current pagination state.\n */\n private firePageEvent(): void {\n const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());\n\n this.page.emit(evt);\n }\n}\n","@if(!hasList) {\n <ul class=\"ecl-pagination__list\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ul>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n \n <ng-template #content>\n @if (isModeAuto()){\n @if(model.hasPreviousPage()){\n <li eclPaginationItem [isPrevious]=\"true\" (pageClick)=\"onPreviousPage()\"> </li>\n }\n @for (page of model.getPages(); track page) {\n <li eclPaginationItem\n [label]=\"page.toString()\"\n [isCurrent]=\"model.getCurrentPage() === page\"\n (pageClick)=\"onPage(page)\"\n [pagesCount]=\"model.getPagesCount().toString()\">\n </li>\n }\n \n @if(model.hasNextPage()){\n <li eclPaginationItem [isNext]=\"true\" (pageClick)=\"onNextPage()\"> </li>\n }\n }\n \n @if(!isModeAuto()) {\n <ng-content></ng-content>\n }\n </ng-template>","import { EclPaginationItemComponent } from './ecl-pagination-item.component';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationComponent } from './ecl-pagination.component';\n\nexport * from './ecl-pagination.component';\nexport * from './ecl-pagination-item.component';\nexport * from './events/ecl-pagination.event';\nexport * from './ecl-pagination-list.directive';\n\nexport const EUI_ECL_PAGINATION = [\n EclPaginationComponent, EclPaginationItemComponent, EclPaginationListDirective,\n] as const;","/**\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 { booleanAttribute, HostBinding, Input, Component, ViewEncapsulation, ContentChild, forwardRef, Directive, inject, ChangeDetectorRef } from '@angular/core';
2
+ import { booleanAttribute, HostBinding, Input, Component, ViewEncapsulation, input, ContentChild, forwardRef, Directive, inject, ChangeDetectorRef } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { NgControl } from '@angular/forms';
5
5
 
@@ -92,6 +92,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
92
92
  class EclRadioDirective extends ECLBaseDirective {
93
93
  constructor() {
94
94
  super(...arguments);
95
+ /**
96
+ * Adds the `ecl-radio--binary` class when true.
97
+ */
98
+ this.isBinary = input(undefined, { ...(ngDevMode ? { debugName: "isBinary" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
95
99
  /**
96
100
  * Adds the `ecl-radio--disabled` class to the host element when true.
97
101
  */
@@ -106,7 +110,7 @@ class EclRadioDirective extends ECLBaseDirective {
106
110
  * Includes the base `ecl-radio` class and the binary modifier if applicable.
107
111
  */
108
112
  get cssClasses() {
109
- return [super.getCssClasses('ecl-radio'), this.isBinary ? 'ecl-radio--binary' : ''].join(' ').trim();
113
+ return [super.getCssClasses('ecl-radio'), this.isBinary() ? 'ecl-radio--binary' : ''].join(' ').trim();
110
114
  }
111
115
  /**
112
116
  * Angular lifecycle hook called during every change detection run.
@@ -125,17 +129,14 @@ class EclRadioDirective extends ECLBaseDirective {
125
129
  }
126
130
  }
127
131
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclRadioDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
128
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.0.5", type: EclRadioDirective, isStandalone: true, selector: "[eclRadio]", inputs: { isBinary: ["isBinary", "isBinary", booleanAttribute], isDisabled: ["isDisabled", "isDisabled", booleanAttribute], isInvalid: ["isInvalid", "isInvalid", booleanAttribute] }, host: { properties: { "class.ecl-radio--disabled": "this.isDisabled", "class.ecl-radio--invalid": "this.isInvalid", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclRadioLabelComponent", first: true, predicate: i0.forwardRef(() => EclRadioLabelComponent), descendants: true }, { propertyName: "eclRadioHelpComponent", first: true, predicate: i0.forwardRef(() => EclRadioHelpComponent), descendants: true }], usesInheritance: true, ngImport: i0 }); }
132
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: EclRadioDirective, isStandalone: true, selector: "[eclRadio]", inputs: { isBinary: { classPropertyName: "isBinary", publicName: "isBinary", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, isInvalid: { classPropertyName: "isInvalid", publicName: "isInvalid", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, host: { properties: { "class.ecl-radio--disabled": "this.isDisabled", "class.ecl-radio--invalid": "this.isInvalid", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclRadioLabelComponent", first: true, predicate: i0.forwardRef(() => EclRadioLabelComponent), descendants: true }, { propertyName: "eclRadioHelpComponent", first: true, predicate: i0.forwardRef(() => EclRadioHelpComponent), descendants: true }], usesInheritance: true, ngImport: i0 }); }
129
133
  }
130
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclRadioDirective, decorators: [{
131
135
  type: Directive,
132
136
  args: [{
133
137
  selector: '[eclRadio]',
134
138
  }]
135
- }], propDecorators: { isBinary: [{
136
- type: Input,
137
- args: [{ transform: booleanAttribute }]
138
- }], isDisabled: [{
139
+ }], propDecorators: { isBinary: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBinary", required: false }] }], isDisabled: [{
139
140
  type: Input,
140
141
  args: [{ transform: booleanAttribute }]
141
142
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-radio.mjs","sources":["../../components/ecl-radio/ecl-radio-help.component.ts","../../components/ecl-radio/ecl-radio-help.component.html","../../components/ecl-radio/ecl-radio-label.component.ts","../../components/ecl-radio/ecl-radio-label.component.html","../../components/ecl-radio/ecl-radio.directive.ts","../../components/ecl-radio/ecl-radio-input.directive.ts","../../components/ecl-radio/index.ts","../../components/ecl-radio/eui-ecl-components-ecl-radio.ts"],"sourcesContent":["import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component that displays help text for the ECL radio input.\n *\n * Supports styling for the disabled state and applies the proper ECL CSS classes.\n * Should be placed inside a component using eclRadio.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioHelp]',\n templateUrl: './ecl-radio-help.component.html',\n})\nexport class EclRadioHelpComponent extends ECLBaseDirective {\n /**\n * Adds styling for a disabled help text.\n */\n @Input({ transform: booleanAttribute }) \n @HostBinding('class.ecl-radio__help--disabled')\n isDisabled = false;\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base ecl-radio__help class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__help')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a label for an ECL radio button.\n *\n * Used inside an element with the [eclRadio] directive to provide\n * a styled label that can reflect the radio's state.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioLabel]',\n templateUrl: './ecl-radio-label.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclRadioLabelComponent extends ECLBaseDirective {\n /**\n * Adds styling for an invalid state.\n */\n @Input({ transform: booleanAttribute }) isInvalid = false;\n\n /**\n * Adds styling for a disabled state.\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base `ecl-radio__label` class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__label')].join(' ').trim();\n }\n}\n","<span class=\"ecl-radio__box\" [class.ecl-radio__box--disabled]=\"isDisabled\" [class.ecl-radio__box--invalid]=\"isInvalid\">\n <span class=\"ecl-radio__box-inner\"></span>\n</span>\n\n<ng-content></ng-content>\n","import { booleanAttribute, ContentChild, Directive, DoCheck, forwardRef, HostBinding, Input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\n\n/**\n * Directive that applies the ECL radio button styling and behavior.\n *\n * Should be applied to native radio input elements to enhance them\n * with ECL styles and support for invalid, disabled and binary states.\n */\n@Directive({\n selector: '[eclRadio]',\n})\nexport class EclRadioDirective extends ECLBaseDirective implements DoCheck {\n /**\n * Adds the `ecl-radio--binary` class when true.\n */\n @Input({ transform: booleanAttribute }) isBinary: boolean;\n\n /**\n * Adds the `ecl-radio--disabled` class to the host element when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-radio--disabled')\n isDisabled = false;\n\n /**\n * Adds the `ecl-radio--invalid` class to the host element when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-radio--invalid')\n isInvalid = false;\n\n /**\n * Reference to the projected EclRadioLabelComponent, if present.\n * Used to synchronize disabled and invalid states with the label.\n */\n @ContentChild(forwardRef(() => EclRadioLabelComponent))\n eclRadioLabelComponent: EclRadioLabelComponent;\n\n /**\n * Reference to the projected EclRadioHelpComponent, if present.\n * Used to synchronize the disabled state with the help text.\n */\n @ContentChild(forwardRef(() => EclRadioHelpComponent))\n eclRadioHelpComponent: EclRadioHelpComponent;\n\n /**\n * Returns the CSS classes to apply on the host element.\n * Includes the base `ecl-radio` class and the binary modifier if applicable.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio'), this.isBinary ? 'ecl-radio--binary' : ''].join(' ').trim();\n }\n\n /**\n * Angular lifecycle hook called during every change detection run.\n * Used to update child components with the current disabled and invalid states.\n */\n ngDoCheck(): void {\n this.updateChildElements();\n }\n\n private updateChildElements(): void {\n if (this.eclRadioLabelComponent) {\n this.eclRadioLabelComponent.isInvalid = this.isInvalid;\n this.eclRadioLabelComponent.isDisabled = this.isDisabled;\n }\n\n if (this.eclRadioHelpComponent) {\n this.eclRadioHelpComponent.isDisabled = this.isDisabled;\n }\n }\n}\n","import { Directive, HostBinding, ChangeDetectorRef, DoCheck, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { EclRadioDirective } from './ecl-radio.directive';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that decorates native <input> elements to be styled as ECL radio inputs.\n *\n * Applies the proper ECL CSS classes and integrates with Angular forms\n * to reflect validation states (invalid, disabled) in the parent ECL radio directive.\n * Should be used together with the eclRadio directive.\n */\n@Directive({\n selector: 'input[eclRadioInput]',\n})\nexport class EclRadioInputDirective extends ECLBaseDirective implements DoCheck {\n eclRadio = inject(EclRadioDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n protected cd = inject(ChangeDetectorRef);\n\n /**\n * Returns the CSS classes applied to the host input element.\n * Includes the base ecl-radio__input class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__input')].join(' ').trim();\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclRadio) {\n this.eclRadio.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n this.eclRadio.isDisabled = this.ngControl.disabled;\n }\n }\n }\n}\n","import { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioInputDirective } from './ecl-radio-input.directive';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\nimport { EclRadioDirective } from './ecl-radio.directive';\n\nexport * from './ecl-radio-input.directive';\nexport * from './ecl-radio.directive';\nexport * from './ecl-radio-label.component';\nexport * from './ecl-radio-help.component';\n\nexport const EUI_ECL_RADIO = [\n EclRadioDirective, EclRadioInputDirective, EclRadioLabelComponent, EclRadioHelpComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-radio.mjs","sources":["../../components/ecl-radio/ecl-radio-help.component.ts","../../components/ecl-radio/ecl-radio-help.component.html","../../components/ecl-radio/ecl-radio-label.component.ts","../../components/ecl-radio/ecl-radio-label.component.html","../../components/ecl-radio/ecl-radio.directive.ts","../../components/ecl-radio/ecl-radio-input.directive.ts","../../components/ecl-radio/index.ts","../../components/ecl-radio/eui-ecl-components-ecl-radio.ts"],"sourcesContent":["import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component that displays help text for the ECL radio input.\n *\n * Supports styling for the disabled state and applies the proper ECL CSS classes.\n * Should be placed inside a component using eclRadio.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioHelp]',\n templateUrl: './ecl-radio-help.component.html',\n})\nexport class EclRadioHelpComponent extends ECLBaseDirective {\n /**\n * Adds styling for a disabled help text.\n */\n @Input({ transform: booleanAttribute }) \n @HostBinding('class.ecl-radio__help--disabled')\n isDisabled = false;\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base ecl-radio__help class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__help')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, Input, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Component representing a label for an ECL radio button.\n *\n * Used inside an element with the [eclRadio] directive to provide\n * a styled label that can reflect the radio's state.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclRadioLabel]',\n templateUrl: './ecl-radio-label.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclRadioLabelComponent extends ECLBaseDirective {\n /**\n * Adds styling for an invalid state.\n */\n @Input({ transform: booleanAttribute }) isInvalid = false;\n\n /**\n * Adds styling for a disabled state.\n */\n @Input({ transform: booleanAttribute }) isDisabled = false;\n\n /**\n * Returns the CSS classes applied to the host element.\n * Includes the base `ecl-radio__label` class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__label')].join(' ').trim();\n }\n}\n","<span class=\"ecl-radio__box\" [class.ecl-radio__box--disabled]=\"isDisabled\" [class.ecl-radio__box--invalid]=\"isInvalid\">\n <span class=\"ecl-radio__box-inner\"></span>\n</span>\n\n<ng-content></ng-content>\n","import { booleanAttribute, ContentChild, Directive, DoCheck, forwardRef, HostBinding, Input, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\n\n/**\n * Directive that applies the ECL radio button styling and behavior.\n *\n * Should be applied to native radio input elements to enhance them\n * with ECL styles and support for invalid, disabled and binary states.\n */\n@Directive({\n selector: '[eclRadio]',\n})\nexport class EclRadioDirective extends ECLBaseDirective implements DoCheck {\n /**\n * Adds the `ecl-radio--binary` class when true.\n */\n readonly isBinary = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Adds the `ecl-radio--disabled` class to the host element when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-radio--disabled')\n isDisabled = false;\n\n /**\n * Adds the `ecl-radio--invalid` class to the host element when true.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('class.ecl-radio--invalid')\n isInvalid = false;\n\n /**\n * Reference to the projected EclRadioLabelComponent, if present.\n * Used to synchronize disabled and invalid states with the label.\n */\n @ContentChild(forwardRef(() => EclRadioLabelComponent))\n eclRadioLabelComponent: EclRadioLabelComponent;\n\n /**\n * Reference to the projected EclRadioHelpComponent, if present.\n * Used to synchronize the disabled state with the help text.\n */\n @ContentChild(forwardRef(() => EclRadioHelpComponent))\n eclRadioHelpComponent: EclRadioHelpComponent;\n\n /**\n * Returns the CSS classes to apply on the host element.\n * Includes the base `ecl-radio` class and the binary modifier if applicable.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio'), this.isBinary() ? 'ecl-radio--binary' : ''].join(' ').trim();\n }\n\n /**\n * Angular lifecycle hook called during every change detection run.\n * Used to update child components with the current disabled and invalid states.\n */\n ngDoCheck(): void {\n this.updateChildElements();\n }\n\n private updateChildElements(): void {\n if (this.eclRadioLabelComponent) {\n this.eclRadioLabelComponent.isInvalid = this.isInvalid;\n this.eclRadioLabelComponent.isDisabled = this.isDisabled;\n }\n\n if (this.eclRadioHelpComponent) {\n this.eclRadioHelpComponent.isDisabled = this.isDisabled;\n }\n }\n}\n","import { Directive, HostBinding, ChangeDetectorRef, DoCheck, inject } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { EclRadioDirective } from './ecl-radio.directive';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that decorates native <input> elements to be styled as ECL radio inputs.\n *\n * Applies the proper ECL CSS classes and integrates with Angular forms\n * to reflect validation states (invalid, disabled) in the parent ECL radio directive.\n * Should be used together with the eclRadio directive.\n */\n@Directive({\n selector: 'input[eclRadioInput]',\n})\nexport class EclRadioInputDirective extends ECLBaseDirective implements DoCheck {\n eclRadio = inject(EclRadioDirective);\n protected ngControl = inject(NgControl, { optional: true, self: true });\n protected cd = inject(ChangeDetectorRef);\n\n /**\n * Returns the CSS classes applied to the host input element.\n * Includes the base ecl-radio__input class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-radio__input')].join(' ').trim();\n }\n\n ngDoCheck(): void {\n if (this.ngControl) {\n if (this.eclRadio) {\n this.eclRadio.isInvalid = this.ngControl.invalid && this.ngControl.touched;\n this.eclRadio.isDisabled = this.ngControl.disabled;\n }\n }\n }\n}\n","import { EclRadioHelpComponent } from './ecl-radio-help.component';\nimport { EclRadioInputDirective } from './ecl-radio-input.directive';\nimport { EclRadioLabelComponent } from './ecl-radio-label.component';\nimport { EclRadioDirective } from './ecl-radio.directive';\n\nexport * from './ecl-radio-input.directive';\nexport * from './ecl-radio.directive';\nexport * from './ecl-radio-label.component';\nexport * from './ecl-radio-help.component';\n\nexport const EUI_ECL_RADIO = [\n EclRadioDirective, EclRadioInputDirective, EclRadioLabelComponent, EclRadioHelpComponent,\n] as const;","/**\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 { forwardRef, output, booleanAttribute, numberAttribute, HostBinding, Input, Component } from '@angular/core';
2
+ import { forwardRef, input, numberAttribute, signal, effect, model, output, HostBinding, Component } from '@angular/core';
3
3
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
4
  import { EclBaseEvent, ECLBaseDirective } from '@eui/ecl/core';
5
5
  import * as i1 from '@eui/ecl/components/ecl-icon';
@@ -30,11 +30,31 @@ class EclRatingFieldComponent extends ECLBaseDirective {
30
30
  /**
31
31
  * Name of the radio group. Also used for creating id for each radio button.
32
32
  */
33
- this.name = 'rating';
33
+ this.name = input('rating', /* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
34
35
  /**
35
36
  * How many stars should the rating have.
36
37
  */
37
- this.numberOfStars = 5;
38
+ this.numberOfStars = input(5, { ...(ngDevMode ? { debugName: "numberOfStars" } : /* istanbul ignore next */ {}), transform: numberAttribute });
39
+ /**
40
+ * The initial value, if any.
41
+ */
42
+ this.rating = input(undefined, { ...(ngDevMode ? { debugName: "rating" } : /* istanbul ignore next */ {}), transform: numberAttribute });
43
+ /** Internal mutable rating value, falls back to the input */
44
+ this.currentRating = signal(undefined, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "currentRating" }] : /* istanbul ignore next */ []));
46
+ this._syncRating = effect(() => {
47
+ const inputRating = this.rating();
48
+ if (inputRating !== undefined) {
49
+ this.currentRating.set(inputRating);
50
+ }
51
+ }, /* @ts-ignore */
52
+ ...(ngDevMode ? [{ debugName: "_syncRating" }] : /* istanbul ignore next */ []));
53
+ /**
54
+ * Can be used to set disabled status.
55
+ */
56
+ this.disabled = model(undefined, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
38
58
  /**
39
59
  * The event to be emitted when rating is changed.
40
60
  */
@@ -48,24 +68,24 @@ class EclRatingFieldComponent extends ECLBaseDirective {
48
68
  * Array of numbers, from 1 to 'numberOfStars'
49
69
  */
50
70
  get numbers() {
51
- return Array(this.numberOfStars)
71
+ return Array(this.numberOfStars())
52
72
  .fill(0)
53
- .map((_, i) => this.numberOfStars - i);
73
+ .map((_, i) => this.numberOfStars() - i);
54
74
  }
55
75
  /**
56
76
  * Applies the base class `ecl-rating-field` to the host element. Applies 'ecl-rating-field--disabled' class on condition.
57
77
  */
58
78
  get cssClasses() {
59
- return [super.getCssClasses('ecl-rating-field'), this.disabled ? 'ecl-rating-field--disabled' : ''].join(' ').trim();
79
+ return [super.getCssClasses('ecl-rating-field'), this.disabled() ? 'ecl-rating-field--disabled' : ''].join(' ').trim();
60
80
  }
61
81
  /**
62
82
  * Method that sets the new rating and emit 'ratingChange' event, that includes the new rating number.
63
83
  * @param rating - the new rating
64
84
  */
65
85
  onRadioClick(rating) {
66
- this.rating = rating;
86
+ this.currentRating.set(rating);
67
87
  this.onTouched();
68
- this.onChange(this.rating);
88
+ this.onChange(this.currentRating());
69
89
  const evt = new EclRatingChangeEvent(rating);
70
90
  this.ratingChange.emit(evt);
71
91
  }
@@ -74,14 +94,14 @@ class EclRatingFieldComponent extends ECLBaseDirective {
74
94
  * @param value
75
95
  */
76
96
  writeValue(value) {
77
- this.rating = value;
97
+ this.currentRating.set(value);
78
98
  }
79
99
  /**
80
100
  * Disable/enable component.
81
101
  * @param isDisabled
82
102
  */
83
103
  setDisabledState(isDisabled) {
84
- this.disabled = isDisabled || null;
104
+ this.disabled.set(isDisabled || null);
85
105
  }
86
106
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
87
107
  registerOnChange(fn) {
@@ -92,26 +112,14 @@ class EclRatingFieldComponent extends ECLBaseDirective {
92
112
  this.onTouched = fn;
93
113
  }
94
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclRatingFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclRatingFieldComponent, isStandalone: true, selector: "ecl-rating-field", inputs: { name: "name", numberOfStars: ["numberOfStars", "numberOfStars", numberAttribute], rating: ["rating", "rating", numberAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { ratingChange: "ratingChange" }, host: { properties: { "attr.disabled": "this.disabled", "class": "this.cssClasses" } }, providers: [ECL_RATINGFIELD_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "@for(n of numbers;track n) {\n <input\n type=\"radio\"\n id=\"{{ name }}-{{ n }}\"\n [name]=\"name\"\n class=\"ecl-rating-field__input\"\n [value]=\"n\"\n required=\"\"\n [attr.checked]=\"rating === n ? true : undefined\"\n [attr.disabled]=\"disabled ? true : undefined\"\n (click)=\"onRadioClick(n)\" />\n <label class=\"ecl-rating-field__label\" for=\"{{ name }}-{{ n }}\">\n <span class=\"ecl-rating-field__sr-label\">{{ n }} stars</span>\n <ecl-icon icon=\"star-filled\" class=\"ecl-rating-field__icon-filled\" size=\"l\"> </ecl-icon>\n <ecl-icon icon=\"star-outline\" class=\"ecl-rating-field__icon-outline\" size=\"l\"> </ecl-icon>\n </label>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
115
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclRatingFieldComponent, isStandalone: true, selector: "ecl-rating-field", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, numberOfStars: { classPropertyName: "numberOfStars", publicName: "numberOfStars", isSignal: true, isRequired: false, transformFunction: null }, rating: { classPropertyName: "rating", publicName: "rating", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange", ratingChange: "ratingChange" }, host: { properties: { "attr.disabled": "disabled()", "class": "this.cssClasses" } }, providers: [ECL_RATINGFIELD_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "@for(n of numbers;track n) {\n <input\n type=\"radio\"\n id=\"{{ name() }}-{{ n }}\"\n [name]=\"name()\"\n class=\"ecl-rating-field__input\"\n [value]=\"n\"\n required=\"\"\n [attr.checked]=\"currentRating() === n ? true : undefined\"\n [attr.disabled]=\"disabled() ? true : undefined\"\n (click)=\"onRadioClick(n)\" />\n <label class=\"ecl-rating-field__label\" for=\"{{ name() }}-{{ n }}\">\n <span class=\"ecl-rating-field__sr-label\">{{ n }} stars</span>\n <ecl-icon icon=\"star-filled\" class=\"ecl-rating-field__icon-filled\" size=\"l\"> </ecl-icon>\n <ecl-icon icon=\"star-outline\" class=\"ecl-rating-field__icon-outline\" size=\"l\"> </ecl-icon>\n </label>\n}\n", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
96
116
  }
97
117
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclRatingFieldComponent, decorators: [{
98
118
  type: Component,
99
- args: [{ selector: 'ecl-rating-field', imports: [...EUI_ECL_ICON], providers: [ECL_RATINGFIELD_VALUE_ACCESSOR], template: "@for(n of numbers;track n) {\n <input\n type=\"radio\"\n id=\"{{ name }}-{{ n }}\"\n [name]=\"name\"\n class=\"ecl-rating-field__input\"\n [value]=\"n\"\n required=\"\"\n [attr.checked]=\"rating === n ? true : undefined\"\n [attr.disabled]=\"disabled ? true : undefined\"\n (click)=\"onRadioClick(n)\" />\n <label class=\"ecl-rating-field__label\" for=\"{{ name }}-{{ n }}\">\n <span class=\"ecl-rating-field__sr-label\">{{ n }} stars</span>\n <ecl-icon icon=\"star-filled\" class=\"ecl-rating-field__icon-filled\" size=\"l\"> </ecl-icon>\n <ecl-icon icon=\"star-outline\" class=\"ecl-rating-field__icon-outline\" size=\"l\"> </ecl-icon>\n </label>\n}\n" }]
100
- }], propDecorators: { name: [{
101
- type: Input
102
- }], numberOfStars: [{
103
- type: Input,
104
- args: [{ transform: numberAttribute }]
105
- }], rating: [{
106
- type: Input,
107
- args: [{ transform: numberAttribute }]
108
- }], disabled: [{
109
- type: Input,
110
- args: [{ transform: booleanAttribute }]
111
- }, {
112
- type: HostBinding,
113
- args: ['attr.disabled']
114
- }], ratingChange: [{ type: i0.Output, args: ["ratingChange"] }], cssClasses: [{
119
+ args: [{ selector: 'ecl-rating-field', imports: [...EUI_ECL_ICON], providers: [ECL_RATINGFIELD_VALUE_ACCESSOR], host: {
120
+ '[attr.disabled]': 'disabled()',
121
+ }, template: "@for(n of numbers;track n) {\n <input\n type=\"radio\"\n id=\"{{ name() }}-{{ n }}\"\n [name]=\"name()\"\n class=\"ecl-rating-field__input\"\n [value]=\"n\"\n required=\"\"\n [attr.checked]=\"currentRating() === n ? true : undefined\"\n [attr.disabled]=\"disabled() ? true : undefined\"\n (click)=\"onRadioClick(n)\" />\n <label class=\"ecl-rating-field__label\" for=\"{{ name() }}-{{ n }}\">\n <span class=\"ecl-rating-field__sr-label\">{{ n }} stars</span>\n <ecl-icon icon=\"star-filled\" class=\"ecl-rating-field__icon-filled\" size=\"l\"> </ecl-icon>\n <ecl-icon icon=\"star-outline\" class=\"ecl-rating-field__icon-outline\" size=\"l\"> </ecl-icon>\n </label>\n}\n" }]
122
+ }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], numberOfStars: [{ type: i0.Input, args: [{ isSignal: true, alias: "numberOfStars", required: false }] }], rating: [{ type: i0.Input, args: [{ isSignal: true, alias: "rating", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], ratingChange: [{ type: i0.Output, args: ["ratingChange"] }], cssClasses: [{
115
123
  type: HostBinding,
116
124
  args: ['class']
117
125
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-rating-field.mjs","sources":["../../components/ecl-rating-field/events/ecl-rating-change.event.ts","../../components/ecl-rating-field/ecl-rating-field.component.ts","../../components/ecl-rating-field/ecl-rating-field.component.html","../../components/ecl-rating-field/index.ts","../../components/ecl-rating-field/eui-ecl-components-ecl-rating-field.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclRatingChangeEvent extends EclBaseEvent {\n constructor(public readonly value: number) {\n super();\n }\n}","import { booleanAttribute, Component, forwardRef, HostBinding, Input, numberAttribute, Provider, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRatingChangeEvent } from './events/ecl-rating-change.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport const ECL_RATINGFIELD_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclRatingFieldComponent),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty */\n};\n\n/**\n * Component representing rating field, displayed with stars.\n * Typically used when the user needs to evaluate something.\n */\n@Component({\n selector: 'ecl-rating-field',\n templateUrl: './ecl-rating-field.component.html',\n imports: [...EUI_ECL_ICON],\n providers: [ECL_RATINGFIELD_VALUE_ACCESSOR],\n})\nexport class EclRatingFieldComponent extends ECLBaseDirective implements ControlValueAccessor {\n /**\n * Name of the radio group. Also used for creating id for each radio button.\n */\n @Input() name = 'rating';\n /**\n * How many stars should the rating have.\n */\n @Input({ transform: numberAttribute }) numberOfStars = 5;\n /**\n * The initial value, if any.\n */\n @Input({ transform: numberAttribute }) rating: number;\n /**\n * Can be used to set disabled status.\n */\n @Input({ transform: booleanAttribute })\n @HostBinding('attr.disabled')\n disabled: boolean;\n\n /**\n * The event to be emitted when rating is changed.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly ratingChange = output<any>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n private onTouched: () => void = noop;\n\n /**\n * Array of numbers, from 1 to 'numberOfStars'\n */\n get numbers(): Array<number> {\n return Array(this.numberOfStars)\n .fill(0)\n .map((_, i) => this.numberOfStars - i);\n }\n\n /**\n * Applies the base class `ecl-rating-field` to the host element. Applies 'ecl-rating-field--disabled' class on condition.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-rating-field'), this.disabled ? 'ecl-rating-field--disabled' : ''].join(' ').trim();\n }\n\n /**\n * Method that sets the new rating and emit 'ratingChange' event, that includes the new rating number.\n * @param rating - the new rating\n */\n onRadioClick(rating: number): void {\n this.rating = rating;\n this.onTouched();\n this.onChange(this.rating);\n\n const evt = new EclRatingChangeEvent(rating);\n this.ratingChange.emit(evt);\n }\n\n /**\n * Informs the component of any changes in the parent (ControlValueAccessor). Sets the new value for the 'rating' property.\n * @param value \n */\n writeValue(value: number): void {\n this.rating = value;\n }\n\n /**\n * Disable/enable component.\n * @param isDisabled \n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled || null;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","@for(n of numbers;track n) {\n <input\n type=\"radio\"\n id=\"{{ name }}-{{ n }}\"\n [name]=\"name\"\n class=\"ecl-rating-field__input\"\n [value]=\"n\"\n required=\"\"\n [attr.checked]=\"rating === n ? true : undefined\"\n [attr.disabled]=\"disabled ? true : undefined\"\n (click)=\"onRadioClick(n)\" />\n <label class=\"ecl-rating-field__label\" for=\"{{ name }}-{{ n }}\">\n <span class=\"ecl-rating-field__sr-label\">{{ n }} stars</span>\n <ecl-icon icon=\"star-filled\" class=\"ecl-rating-field__icon-filled\" size=\"l\"> </ecl-icon>\n <ecl-icon icon=\"star-outline\" class=\"ecl-rating-field__icon-outline\" size=\"l\"> </ecl-icon>\n </label>\n}\n","import { EclRatingFieldComponent } from './ecl-rating-field.component';\n\nexport * from './ecl-rating-field.component';\nexport * from './events/ecl-rating-change.event';\n\nexport const EUI_ECL_RATING_FIELD = [\n EclRatingFieldComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-rating-field.mjs","sources":["../../components/ecl-rating-field/events/ecl-rating-change.event.ts","../../components/ecl-rating-field/ecl-rating-field.component.ts","../../components/ecl-rating-field/ecl-rating-field.component.html","../../components/ecl-rating-field/index.ts","../../components/ecl-rating-field/eui-ecl-components-ecl-rating-field.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclRatingChangeEvent extends EclBaseEvent {\n constructor(public readonly value: number) {\n super();\n }\n}","import { Component, effect, forwardRef, HostBinding, numberAttribute, Provider, output, input, model, signal } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRatingChangeEvent } from './events/ecl-rating-change.event';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport const ECL_RATINGFIELD_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclRatingFieldComponent),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty */\n};\n\n/**\n * Component representing rating field, displayed with stars.\n * Typically used when the user needs to evaluate something.\n */\n@Component({\n selector: 'ecl-rating-field',\n templateUrl: './ecl-rating-field.component.html',\n imports: [...EUI_ECL_ICON],\n providers: [ECL_RATINGFIELD_VALUE_ACCESSOR],\n host: {\n '[attr.disabled]': 'disabled()',\n },\n})\nexport class EclRatingFieldComponent extends ECLBaseDirective implements ControlValueAccessor {\n /**\n * Name of the radio group. Also used for creating id for each radio button.\n */\n readonly name = input('rating');\n /**\n * How many stars should the rating have.\n */\n readonly numberOfStars = input(5, { transform: numberAttribute });\n /**\n * The initial value, if any.\n */\n readonly rating = input<number, unknown>(undefined, { transform: numberAttribute });\n\n /** Internal mutable rating value, falls back to the input */\n readonly currentRating = signal<number>(undefined);\n\n private readonly _syncRating = effect(() => {\n const inputRating = this.rating();\n if (inputRating !== undefined) {\n this.currentRating.set(inputRating);\n }\n });\n /**\n * Can be used to set disabled status.\n */\n readonly disabled = model<boolean>(undefined);\n\n /**\n * The event to be emitted when rating is changed.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n readonly ratingChange = output<any>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n private onTouched: () => void = noop;\n\n /**\n * Array of numbers, from 1 to 'numberOfStars'\n */\n get numbers(): number[] {\n return Array(this.numberOfStars())\n .fill(0)\n .map((_, i) => this.numberOfStars() - i);\n }\n\n /**\n * Applies the base class `ecl-rating-field` to the host element. Applies 'ecl-rating-field--disabled' class on condition.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-rating-field'), this.disabled() ? 'ecl-rating-field--disabled' : ''].join(' ').trim();\n }\n\n /**\n * Method that sets the new rating and emit 'ratingChange' event, that includes the new rating number.\n * @param rating - the new rating\n */\n onRadioClick(rating: number): void {\n this.currentRating.set(rating);\n this.onTouched();\n this.onChange(this.currentRating());\n\n const evt = new EclRatingChangeEvent(rating);\n this.ratingChange.emit(evt);\n }\n\n /**\n * Informs the component of any changes in the parent (ControlValueAccessor). Sets the new value for the 'rating' property.\n * @param value\n */\n writeValue(value: number): void {\n this.currentRating.set(value);\n }\n\n /**\n * Disable/enable component.\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled || null);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","@for(n of numbers;track n) {\n <input\n type=\"radio\"\n id=\"{{ name() }}-{{ n }}\"\n [name]=\"name()\"\n class=\"ecl-rating-field__input\"\n [value]=\"n\"\n required=\"\"\n [attr.checked]=\"currentRating() === n ? true : undefined\"\n [attr.disabled]=\"disabled() ? true : undefined\"\n (click)=\"onRadioClick(n)\" />\n <label class=\"ecl-rating-field__label\" for=\"{{ name() }}-{{ n }}\">\n <span class=\"ecl-rating-field__sr-label\">{{ n }} stars</span>\n <ecl-icon icon=\"star-filled\" class=\"ecl-rating-field__icon-filled\" size=\"l\"> </ecl-icon>\n <ecl-icon icon=\"star-outline\" class=\"ecl-rating-field__icon-outline\" size=\"l\"> </ecl-icon>\n </label>\n}\n","import { EclRatingFieldComponent } from './ecl-rating-field.component';\n\nexport * from './ecl-rating-field.component';\nexport * from './events/ecl-rating-change.event';\n\nexport const EUI_ECL_RATING_FIELD = [\n EclRatingFieldComponent,\n] as const;","/**\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 { forwardRef, inject, output, HostListener, HostBinding, Input, Component } from '@angular/core';
2
+ import { forwardRef, inject, model, input, output, HostListener, HostBinding, Component } from '@angular/core';
3
3
  import * as i1 from '@angular/forms';
4
4
  import { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
5
5
  import { TranslatePipe } from '@ngx-translate/core';
@@ -35,9 +35,21 @@ class EclSearchFormComponent extends ECLBaseDirective {
35
35
  constructor() {
36
36
  super(...arguments);
37
37
  this.eclThemeService = inject(EclThemeService);
38
- this.searchButtonIcon = 'search';
39
- this.buttonExtraClassses = '';
40
- this.inputExtraClassses = '';
38
+ /**
39
+ * The current/default search text.
40
+ */
41
+ this.searchInputText = model(undefined, /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "searchInputText" }] : /* istanbul ignore next */ []));
43
+ this.placeholder = input(undefined, /* @ts-ignore */
44
+ ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
45
+ this.searchButtonLabel = input(undefined, /* @ts-ignore */
46
+ ...(ngDevMode ? [{ debugName: "searchButtonLabel" }] : /* istanbul ignore next */ []));
47
+ this.searchButtonIcon = input('search', /* @ts-ignore */
48
+ ...(ngDevMode ? [{ debugName: "searchButtonIcon" }] : /* istanbul ignore next */ []));
49
+ this.buttonExtraClassses = input('', /* @ts-ignore */
50
+ ...(ngDevMode ? [{ debugName: "buttonExtraClassses" }] : /* istanbul ignore next */ []));
51
+ this.inputExtraClassses = input('', /* @ts-ignore */
52
+ ...(ngDevMode ? [{ debugName: "inputExtraClassses" }] : /* istanbul ignore next */ []));
41
53
  this.role = 'search';
42
54
  /**
43
55
  * This event is emited, when user performs the search action. Includes the search text from the input field.
@@ -58,14 +70,14 @@ class EclSearchFormComponent extends ECLBaseDirective {
58
70
  * Perform search when user clicks the search button. Emits the search event with the search text.
59
71
  */
60
72
  onSearchClick(evt) {
61
- this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText));
73
+ this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText()));
62
74
  evt.preventDefault();
63
75
  }
64
76
  /**
65
77
  * Perform search when user clicks Enter when on the input field. Emits the search event with the search text.
66
78
  */
67
79
  onEnterKeyDown(evt) {
68
- this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText));
80
+ this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText()));
69
81
  evt.preventDefault();
70
82
  }
71
83
  /**
@@ -73,12 +85,12 @@ class EclSearchFormComponent extends ECLBaseDirective {
73
85
  * @param newValue
74
86
  */
75
87
  onModelChange(newValue) {
76
- this.searchInputText = newValue;
88
+ this.searchInputText.set(newValue);
77
89
  this.onChange(newValue);
78
90
  }
79
91
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
92
  writeValue(value) {
81
- this.searchInputText = value;
93
+ this.searchInputText.set(value);
82
94
  }
83
95
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
96
  registerOnChange(fn) {
@@ -89,24 +101,12 @@ class EclSearchFormComponent extends ECLBaseDirective {
89
101
  this.onTouched = fn;
90
102
  }
91
103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: EclSearchFormComponent, isStandalone: true, selector: "ecl-search-form", inputs: { searchInputText: "searchInputText", placeholder: "placeholder", searchButtonLabel: "searchButtonLabel", searchButtonIcon: "searchButtonIcon", buttonExtraClassses: "buttonExtraClassses", inputExtraClassses: "inputExtraClassses" }, outputs: { searchEvent: "searchEvent" }, host: { listeners: { "keydown.enter": "onEnterKeyDown($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, providers: [ECL_SEARCH_FORM_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<ecl-form-group>\n <input\n eclTextInput\n [(ngModel)]=\"searchInputText\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"search\"\n name=\"search-input\"\n placeholder=\"{{ placeholder || 'ecl.common.SEARCH' | translate }}\"\n class=\"ecl-search-form__text-input {{inputExtraClassses}}\" />\n</ecl-form-group>\n<button eclButton type=\"submit\" [variant]=\"eclThemeService.isECTheme() ? 'tertiary': 'primary'\" (click)=\"onSearchClick($event)\"\n class=\"ecl-button--neutral ecl-search-form__button {{buttonExtraClassses}}\" isIconOnly>\n <ecl-icon [icon]=\"searchButtonIcon\" size=\"xs\"></ecl-icon>\n <span eclButtonLabel>\n {{ searchButtonLabel || 'ecl.common.SEARCH' | translate }}\n </span>\n</button>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i3.EclFormGroupComponent, selector: "[eclFormGroup], ecl-form-group" }, { kind: "directive", type: i4.EclTextInputDirective, selector: "input[eclTextInput]", inputs: ["type", "eclSize", "isInvalid"] }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: EclSearchFormComponent, isStandalone: true, selector: "ecl-search-form", inputs: { searchInputText: { classPropertyName: "searchInputText", publicName: "searchInputText", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, searchButtonLabel: { classPropertyName: "searchButtonLabel", publicName: "searchButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, searchButtonIcon: { classPropertyName: "searchButtonIcon", publicName: "searchButtonIcon", isSignal: true, isRequired: false, transformFunction: null }, buttonExtraClassses: { classPropertyName: "buttonExtraClassses", publicName: "buttonExtraClassses", isSignal: true, isRequired: false, transformFunction: null }, inputExtraClassses: { classPropertyName: "inputExtraClassses", publicName: "inputExtraClassses", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchInputText: "searchInputTextChange", searchEvent: "searchEvent" }, host: { listeners: { "keydown.enter": "onEnterKeyDown($event)" }, properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, providers: [ECL_SEARCH_FORM_VALUE_ACCESSOR], usesInheritance: true, ngImport: i0, template: "<ecl-form-group>\n <input\n eclTextInput\n [(ngModel)]=\"searchInputText\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"search\"\n name=\"search-input\"\n placeholder=\"{{ placeholder() || 'ecl.common.SEARCH' | translate }}\"\n class=\"ecl-search-form__text-input {{inputExtraClassses()}}\" />\n</ecl-form-group>\n<button eclButton type=\"submit\" [variant]=\"eclThemeService.isECTheme() ? 'tertiary': 'primary'\" (click)=\"onSearchClick($event)\"\n class=\"ecl-button--neutral ecl-search-form__button {{buttonExtraClassses()}}\" isIconOnly>\n <ecl-icon [icon]=\"searchButtonIcon()\" size=\"xs\"></ecl-icon>\n <span eclButtonLabel>\n {{ searchButtonLabel() || 'ecl.common.SEARCH' | translate }}\n </span>\n</button>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i3.EclFormGroupComponent, selector: "[eclFormGroup], ecl-form-group" }, { kind: "directive", type: i4.EclTextInputDirective, selector: "input[eclTextInput]", inputs: ["type", "eclSize", "isInvalid"] }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
93
105
  }
94
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSearchFormComponent, decorators: [{
95
107
  type: Component,
96
- args: [{ selector: 'ecl-search-form', imports: [TranslatePipe, FormsModule, ...EUI_ECL_BUTTON, ...EUI_ECL_FORM_GROUP, ...EUI_ECL_TEXT_INPUT, ...EUI_ECL_ICON], providers: [ECL_SEARCH_FORM_VALUE_ACCESSOR], template: "<ecl-form-group>\n <input\n eclTextInput\n [(ngModel)]=\"searchInputText\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"search\"\n name=\"search-input\"\n placeholder=\"{{ placeholder || 'ecl.common.SEARCH' | translate }}\"\n class=\"ecl-search-form__text-input {{inputExtraClassses}}\" />\n</ecl-form-group>\n<button eclButton type=\"submit\" [variant]=\"eclThemeService.isECTheme() ? 'tertiary': 'primary'\" (click)=\"onSearchClick($event)\"\n class=\"ecl-button--neutral ecl-search-form__button {{buttonExtraClassses}}\" isIconOnly>\n <ecl-icon [icon]=\"searchButtonIcon\" size=\"xs\"></ecl-icon>\n <span eclButtonLabel>\n {{ searchButtonLabel || 'ecl.common.SEARCH' | translate }}\n </span>\n</button>\n" }]
97
- }], propDecorators: { searchInputText: [{
98
- type: Input
99
- }], placeholder: [{
100
- type: Input
101
- }], searchButtonLabel: [{
102
- type: Input
103
- }], searchButtonIcon: [{
104
- type: Input
105
- }], buttonExtraClassses: [{
106
- type: Input
107
- }], inputExtraClassses: [{
108
- type: Input
109
- }], cssClasses: [{
108
+ args: [{ selector: 'ecl-search-form', imports: [TranslatePipe, FormsModule, ...EUI_ECL_BUTTON, ...EUI_ECL_FORM_GROUP, ...EUI_ECL_TEXT_INPUT, ...EUI_ECL_ICON], providers: [ECL_SEARCH_FORM_VALUE_ACCESSOR], template: "<ecl-form-group>\n <input\n eclTextInput\n [(ngModel)]=\"searchInputText\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"search\"\n name=\"search-input\"\n placeholder=\"{{ placeholder() || 'ecl.common.SEARCH' | translate }}\"\n class=\"ecl-search-form__text-input {{inputExtraClassses()}}\" />\n</ecl-form-group>\n<button eclButton type=\"submit\" [variant]=\"eclThemeService.isECTheme() ? 'tertiary': 'primary'\" (click)=\"onSearchClick($event)\"\n class=\"ecl-button--neutral ecl-search-form__button {{buttonExtraClassses()}}\" isIconOnly>\n <ecl-icon [icon]=\"searchButtonIcon()\" size=\"xs\"></ecl-icon>\n <span eclButtonLabel>\n {{ searchButtonLabel() || 'ecl.common.SEARCH' | translate }}\n </span>\n</button>\n" }]
109
+ }], propDecorators: { searchInputText: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchInputText", required: false }] }, { type: i0.Output, args: ["searchInputTextChange"] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], searchButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchButtonLabel", required: false }] }], searchButtonIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchButtonIcon", required: false }] }], buttonExtraClassses: [{ type: i0.Input, args: [{ isSignal: true, alias: "buttonExtraClassses", required: false }] }], inputExtraClassses: [{ type: i0.Input, args: [{ isSignal: true, alias: "inputExtraClassses", required: false }] }], cssClasses: [{
110
110
  type: HostBinding,
111
111
  args: ['class']
112
112
  }], role: [{
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-search-form.mjs","sources":["../../components/ecl-search-form/events/ecl-search-form.event.ts","../../components/ecl-search-form/ecl-search-form.component.ts","../../components/ecl-search-form/ecl-search-form.component.html","../../components/ecl-search-form/index.ts","../../components/ecl-search-form/eui-ecl-components-ecl-search-form.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSearchFormEvent extends EclBaseEvent {\n\tconstructor(public keyword: string) {\n\t\tsuper();\n\t}\n}\n","import {\n Component,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n Provider,\n inject,\n output,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclSearchFormEvent } from './events/ecl-search-form.event';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_FORM_GROUP } from '@eui/ecl/components/ecl-form-group';\nimport { EUI_ECL_TEXT_INPUT } from '@eui/ecl/components/ecl-text-input';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport const ECL_SEARCH_FORM_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclSearchFormComponent),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty*/\n};\n\n/**\n * Component representing search field - input and button, in a responsive, styled layout.\n */\n@Component({\n selector: 'ecl-search-form',\n templateUrl: 'ecl-search-form.component.html',\n imports: [TranslatePipe, FormsModule, ...EUI_ECL_BUTTON, ...EUI_ECL_FORM_GROUP, ...EUI_ECL_TEXT_INPUT, ...EUI_ECL_ICON], // TODO: replace with new names EUI_ECL_...\n providers: [ECL_SEARCH_FORM_VALUE_ACCESSOR],\n})\nexport class EclSearchFormComponent extends ECLBaseDirective implements ControlValueAccessor {\n protected eclThemeService = inject(EclThemeService);\n\n /**\n * The current/default search text.\n */\n @Input() searchInputText: string;\n @Input() placeholder: string;\n @Input() searchButtonLabel: string;\n @Input() searchButtonIcon = 'search';\n @Input() buttonExtraClassses = '';\n @Input() inputExtraClassses = '';\n\n /**\n * Applies the base class `ecl-search-form` to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-search-form')].join(' ').trim();\n }\n\n @HostBinding('attr.role') role = 'search';\n\n /**\n * This event is emited, when user performs the search action. Includes the search text from the input field.\n */\n readonly searchEvent = output<EclSearchFormEvent>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onTouched: (_: any) => void = noop;\n\n /**\n * Perform search when user clicks the search button. Emits the search event with the search text.\n */\n onSearchClick(evt: Event): void {\n this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText));\n evt.preventDefault();\n }\n\n /**\n * Perform search when user clicks Enter when on the input field. Emits the search event with the search text.\n */\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(evt: Event): void {\n this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText));\n evt.preventDefault();\n }\n\n /**\n * Assigns the new input text value to the 'searchInputText' property, each time the input is changed.\n * @param newValue\n */\n onModelChange(newValue: string): void {\n this.searchInputText = newValue;\n this.onChange(newValue);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.searchInputText = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: (_: any) => void): void {\n this.onTouched = fn;\n }\n}\n","<ecl-form-group>\n <input\n eclTextInput\n [(ngModel)]=\"searchInputText\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"search\"\n name=\"search-input\"\n placeholder=\"{{ placeholder || 'ecl.common.SEARCH' | translate }}\"\n class=\"ecl-search-form__text-input {{inputExtraClassses}}\" />\n</ecl-form-group>\n<button eclButton type=\"submit\" [variant]=\"eclThemeService.isECTheme() ? 'tertiary': 'primary'\" (click)=\"onSearchClick($event)\"\n class=\"ecl-button--neutral ecl-search-form__button {{buttonExtraClassses}}\" isIconOnly>\n <ecl-icon [icon]=\"searchButtonIcon\" size=\"xs\"></ecl-icon>\n <span eclButtonLabel>\n {{ searchButtonLabel || 'ecl.common.SEARCH' | translate }}\n </span>\n</button>\n","import { EclSearchFormComponent } from './ecl-search-form.component';\n\nexport * from './ecl-search-form.component';\nexport * from './events/ecl-search-form.event';\n\nexport const EUI_ECL_SEARCH_FORM = [\n EclSearchFormComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-search-form.mjs","sources":["../../components/ecl-search-form/events/ecl-search-form.event.ts","../../components/ecl-search-form/ecl-search-form.component.ts","../../components/ecl-search-form/ecl-search-form.component.html","../../components/ecl-search-form/index.ts","../../components/ecl-search-form/eui-ecl-components-ecl-search-form.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSearchFormEvent extends EclBaseEvent {\n\tconstructor(public keyword: string) {\n\t\tsuper();\n\t}\n}\n","import {\n Component,\n forwardRef,\n HostBinding,\n HostListener,\n Provider,\n inject,\n output,\n input,\n model,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclSearchFormEvent } from './events/ecl-search-form.event';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_FORM_GROUP } from '@eui/ecl/components/ecl-form-group';\nimport { EUI_ECL_TEXT_INPUT } from '@eui/ecl/components/ecl-text-input';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport const ECL_SEARCH_FORM_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclSearchFormComponent),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty*/\n};\n\n/**\n * Component representing search field - input and button, in a responsive, styled layout.\n */\n@Component({\n selector: 'ecl-search-form',\n templateUrl: 'ecl-search-form.component.html',\n imports: [TranslatePipe, FormsModule, ...EUI_ECL_BUTTON, ...EUI_ECL_FORM_GROUP, ...EUI_ECL_TEXT_INPUT, ...EUI_ECL_ICON], // TODO: replace with new names EUI_ECL_...\n providers: [ECL_SEARCH_FORM_VALUE_ACCESSOR],\n})\nexport class EclSearchFormComponent extends ECLBaseDirective implements ControlValueAccessor {\n protected eclThemeService = inject(EclThemeService);\n\n /**\n * The current/default search text.\n */\n readonly searchInputText = model<string>(undefined);\n readonly placeholder = input<string>(undefined);\n readonly searchButtonLabel = input<string>(undefined);\n readonly searchButtonIcon = input('search');\n readonly buttonExtraClassses = input('');\n readonly inputExtraClassses = input('');\n\n /**\n * Applies the base class `ecl-search-form` to the host element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-search-form')].join(' ').trim();\n }\n\n @HostBinding('attr.role') role = 'search';\n\n /**\n * This event is emited, when user performs the search action. Includes the search text from the input field.\n */\n readonly searchEvent = output<EclSearchFormEvent>();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onTouched: (_: any) => void = noop;\n\n /**\n * Perform search when user clicks the search button. Emits the search event with the search text.\n */\n onSearchClick(evt: Event): void {\n this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText()));\n evt.preventDefault();\n }\n\n /**\n * Perform search when user clicks Enter when on the input field. Emits the search event with the search text.\n */\n @HostListener('keydown.enter', ['$event'])\n onEnterKeyDown(evt: Event): void {\n this.searchEvent.emit(new EclSearchFormEvent(this.searchInputText()));\n evt.preventDefault();\n }\n\n /**\n * Assigns the new input text value to the 'searchInputText' property, each time the input is changed.\n * @param newValue\n */\n onModelChange(newValue: string): void {\n this.searchInputText.set(newValue);\n this.onChange(newValue);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.searchInputText.set(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: (_: any) => void): void {\n this.onTouched = fn;\n }\n}\n","<ecl-form-group>\n <input\n eclTextInput\n [(ngModel)]=\"searchInputText\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"search\"\n name=\"search-input\"\n placeholder=\"{{ placeholder() || 'ecl.common.SEARCH' | translate }}\"\n class=\"ecl-search-form__text-input {{inputExtraClassses()}}\" />\n</ecl-form-group>\n<button eclButton type=\"submit\" [variant]=\"eclThemeService.isECTheme() ? 'tertiary': 'primary'\" (click)=\"onSearchClick($event)\"\n class=\"ecl-button--neutral ecl-search-form__button {{buttonExtraClassses()}}\" isIconOnly>\n <ecl-icon [icon]=\"searchButtonIcon()\" size=\"xs\"></ecl-icon>\n <span eclButtonLabel>\n {{ searchButtonLabel() || 'ecl.common.SEARCH' | translate }}\n </span>\n</button>\n","import { EclSearchFormComponent } from './ecl-search-form.component';\n\nexport * from './ecl-search-form.component';\nexport * from './events/ecl-search-form.event';\n\nexport const EUI_ECL_SEARCH_FORM = [\n EclSearchFormComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}