@eui/ecl 23.0.0-alpha.3 → 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 (312) hide show
  1. package/docs/changelog.html +77 -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 +152 -136
  114. package/docs/properties.html +1 -1
  115. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +5 -15
  116. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  117. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs +9 -7
  118. package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
  119. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs +2 -2
  120. package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
  121. package/fesm2022/eui-ecl-components-ecl-app.mjs +13 -14
  122. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  123. package/fesm2022/eui-ecl-components-ecl-banner.mjs +27 -37
  124. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  125. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -7
  126. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  127. package/fesm2022/eui-ecl-components-ecl-card.mjs +7 -10
  128. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  129. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +14 -18
  130. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  131. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +21 -13
  132. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  133. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +5 -8
  134. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  135. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +18 -26
  136. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  137. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +39 -22
  138. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  139. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +21 -16
  140. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  141. package/fesm2022/eui-ecl-components-ecl-featured.mjs +17 -18
  142. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  143. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +25 -23
  144. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  145. package/fesm2022/eui-ecl-components-ecl-file.mjs +27 -20
  146. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  147. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +6 -12
  148. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  149. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -71
  150. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  151. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -8
  152. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  153. package/fesm2022/eui-ecl-components-ecl-icon.mjs +50 -39
  154. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  155. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +38 -32
  156. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  157. package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -7
  158. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  159. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +37 -57
  160. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  161. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -21
  162. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  163. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -27
  164. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  165. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +67 -73
  166. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  167. package/fesm2022/eui-ecl-components-ecl-menu.mjs +46 -51
  168. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  169. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +52 -43
  170. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  171. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +13 -19
  172. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  173. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +6 -9
  174. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  175. package/fesm2022/eui-ecl-components-ecl-notification.mjs +19 -21
  176. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  177. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +5 -8
  178. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  179. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +57 -64
  180. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  181. package/fesm2022/eui-ecl-components-ecl-radio.mjs +8 -7
  182. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  183. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +35 -27
  184. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  185. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +23 -23
  186. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  187. package/fesm2022/eui-ecl-components-ecl-select.mjs +31 -40
  188. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  189. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +71 -70
  190. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  191. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +44 -55
  192. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  193. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +27 -36
  194. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  195. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +38 -18
  196. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  197. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +11 -16
  198. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  199. package/fesm2022/eui-ecl-components-ecl-table.mjs +16 -15
  200. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  201. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +32 -34
  202. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  203. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -12
  204. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  205. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +9 -12
  206. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  207. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +15 -19
  208. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  209. package/fesm2022/eui-ecl-components-ecl-text-media.mjs +5 -8
  210. package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
  211. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +40 -59
  212. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  213. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  214. package/package.json +8 -3
  215. package/types/eui-ecl-components-ecl-accordion.d.ts +2 -10
  216. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  217. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts +4 -1
  218. package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
  219. package/types/eui-ecl-components-ecl-animated-numbers.d.ts +1 -1
  220. package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
  221. package/types/eui-ecl-components-ecl-app.d.ts +6 -6
  222. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  223. package/types/eui-ecl-components-ecl-banner.d.ts +9 -10
  224. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  225. package/types/eui-ecl-components-ecl-blockquote.d.ts +2 -2
  226. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  227. package/types/eui-ecl-components-ecl-card.d.ts +2 -3
  228. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  229. package/types/eui-ecl-components-ecl-carousel.d.ts +10 -12
  230. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  231. package/types/eui-ecl-components-ecl-category-filter.d.ts +4 -4
  232. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  233. package/types/eui-ecl-components-ecl-checkbox.d.ts +2 -3
  234. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  235. package/types/eui-ecl-components-ecl-content-item.d.ts +8 -10
  236. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  237. package/types/eui-ecl-components-ecl-date-block.d.ts +10 -10
  238. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  239. package/types/eui-ecl-components-ecl-expandable.d.ts +7 -8
  240. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  241. package/types/eui-ecl-components-ecl-featured.d.ts +4 -5
  242. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  243. package/types/eui-ecl-components-ecl-file-upload.d.ts +9 -11
  244. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  245. package/types/eui-ecl-components-ecl-file.d.ts +7 -8
  246. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  247. package/types/eui-ecl-components-ecl-form-label.d.ts +3 -5
  248. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  249. package/types/eui-ecl-components-ecl-gallery.d.ts +32 -41
  250. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  251. package/types/eui-ecl-components-ecl-help-block.d.ts +3 -4
  252. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  253. package/types/eui-ecl-components-ecl-icon.d.ts +17 -12
  254. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  255. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +18 -19
  256. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  257. package/types/eui-ecl-components-ecl-label.d.ts +3 -3
  258. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  259. package/types/eui-ecl-components-ecl-list-illustration.d.ts +25 -30
  260. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  261. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +6 -8
  262. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  263. package/types/eui-ecl-components-ecl-media-container.d.ts +9 -11
  264. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  265. package/types/eui-ecl-components-ecl-mega-menu.d.ts +25 -28
  266. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  267. package/types/eui-ecl-components-ecl-menu.d.ts +26 -31
  268. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  269. package/types/eui-ecl-components-ecl-multiselect.d.ts +13 -13
  270. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  271. package/types/eui-ecl-components-ecl-navigation-list.d.ts +5 -7
  272. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  273. package/types/eui-ecl-components-ecl-news-ticker.d.ts +2 -3
  274. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  275. package/types/eui-ecl-components-ecl-notification.d.ts +17 -19
  276. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  277. package/types/eui-ecl-components-ecl-page-header.d.ts +2 -3
  278. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  279. package/types/eui-ecl-components-ecl-pagination.d.ts +22 -29
  280. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  281. package/types/eui-ecl-components-ecl-radio.d.ts +2 -3
  282. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  283. package/types/eui-ecl-components-ecl-rating-field.d.ts +12 -12
  284. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  285. package/types/eui-ecl-components-ecl-search-form.d.ts +10 -10
  286. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  287. package/types/eui-ecl-components-ecl-select.d.ts +13 -17
  288. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  289. package/types/eui-ecl-components-ecl-site-footer.d.ts +22 -27
  290. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  291. package/types/eui-ecl-components-ecl-site-header.d.ts +16 -18
  292. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  293. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +21 -23
  294. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  295. package/types/eui-ecl-components-ecl-splash-page.d.ts +6 -6
  296. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  297. package/types/eui-ecl-components-ecl-sticky-container.d.ts +6 -7
  298. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  299. package/types/eui-ecl-components-ecl-table.d.ts +4 -5
  300. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  301. package/types/eui-ecl-components-ecl-tabs.d.ts +5 -6
  302. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  303. package/types/eui-ecl-components-ecl-tag.d.ts +3 -4
  304. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  305. package/types/eui-ecl-components-ecl-text-area.d.ts +5 -6
  306. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  307. package/types/eui-ecl-components-ecl-text-input.d.ts +6 -7
  308. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  309. package/types/eui-ecl-components-ecl-text-media.d.ts +2 -2
  310. package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
  311. package/types/eui-ecl-components-ecl-timeline.d.ts +8 -17
  312. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
@@ -128,7 +128,7 @@
128
128
  </ol>
129
129
  <ul class="properties-list">
130
130
  <li>
131
- <b>Version</b> : 23.0.0-alpha.3</li>
131
+ <b>Version</b> : 23.0.0-alpha.5</li>
132
132
  </ul>
133
133
 
134
134
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Component, inject, Renderer2, afterNextRender, ElementRef, HostBinding, ContentChildren, forwardRef } from '@angular/core';
2
+ import { Directive, Component, inject, Renderer2, afterNextRender, ElementRef, ContentChildren, forwardRef } from '@angular/core';
3
3
  import * as i1 from '@eui/ecl/components/ecl-icon';
4
4
  import { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';
5
5
  import * as i1$1 from '@eui/ecl/core';
@@ -61,16 +61,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
61
61
  *
62
62
  */
63
63
  class EclAccordionDirective {
64
- /**
65
- * @description
66
- * Retrieves and returns the CSS classes for the component based on its current state.
67
- * Uses `baseDirective` to fetch the appropriate CSS classes.
68
- *
69
- * @returns {string} - A string of CSS class names.
70
- */
71
- get cssClasses() {
72
- return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();
73
- }
74
64
  constructor() {
75
65
  this.baseDirective = inject(ECLBaseDirective);
76
66
  this.renderer = inject(Renderer2);
@@ -98,7 +88,7 @@ class EclAccordionDirective {
98
88
  this.renderer.addClass(elements[elements.length - 1].nativeElement, 'is-last');
99
89
  }
100
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: EclAccordionDirective, isStandalone: true, selector: "div[eclAccordion]", host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => EclAccordionItemDirective), read: ElementRef }], hostDirectives: [{ directive: i1$1.ECLBaseDirective }], ngImport: i0 }); }
91
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: EclAccordionDirective, isStandalone: true, selector: "div[eclAccordion]", host: { properties: { "class": "baseDirective.getCssClasses(\"ecl-accordion\")" } }, queries: [{ propertyName: "items", predicate: i0.forwardRef(() => EclAccordionItemDirective), read: ElementRef }], hostDirectives: [{ directive: i1$1.ECLBaseDirective }], ngImport: i0 }); }
102
92
  }
103
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAccordionDirective, decorators: [{
104
94
  type: Directive,
@@ -109,13 +99,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
109
99
  directive: ECLBaseDirective,
110
100
  },
111
101
  ],
102
+ host: {
103
+ '[class]': 'baseDirective.getCssClasses("ecl-accordion")',
104
+ },
112
105
  }]
113
106
  }], ctorParameters: () => [], propDecorators: { items: [{
114
107
  type: ContentChildren,
115
108
  args: [forwardRef(() => EclAccordionItemDirective), { read: ElementRef }]
116
- }], cssClasses: [{
117
- type: HostBinding,
118
- args: ['class']
119
109
  }] } });
120
110
 
121
111
  class EclAccordionToggleEvent extends EclBaseEvent {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-accordion.mjs","sources":["../../components/ecl-accordion/ecl-accordion-item-new.directive.ts","../../components/ecl-accordion/ecl-accordion-summary.component.ts","../../components/ecl-accordion/ecl-accordion-summary.component.html","../../components/ecl-accordion/ecl-accordion.directive.ts","../../components/ecl-accordion/events/ecl-accordion-toggle.event.ts","../../components/ecl-accordion/index.ts","../../components/ecl-accordion/eui-ecl-components-ecl-accordion.ts"],"sourcesContent":["import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: 'details[eclAccordionItem]',\n host: {\n class: 'ecl-accordion__item',\n },\n})\nexport class EclAccordionItemDirective {}\n\n@Directive({\n selector: 'div[eclAccordionContent]',\n host: {\n class: 'ecl-accordion__content',\n },\n})\nexport class EclAccordionContentDirective {}","import {\n Component\n} from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Represents an individual item within an ECL Accordion.\n */\n@Component({\n selector: 'summary[eclAccordionToggle]',\n templateUrl: './ecl-accordion-summary.component.html',\n imports: [...EUI_ECL_ICON],\n host: {\n class: 'ecl-accordion__toggle',\n },\n})\nexport class EclAccordionSummaryComponent {}\n","<ng-content></ng-content>\n<ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n</ecl-icon>\n<ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n</ecl-icon>","import {\n afterNextRender,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n HostBinding,\n inject,\n QueryList,\n Renderer2\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclAccordionItemDirective } from './ecl-accordion-item-new.directive';\n\n/**\n * Accordion component that manages the expansion and collapsing state of accordion items.\n * Uses the `ECLBaseDirective` to apply appropriate CSS classes and manage the visual styling.\n *\n * @description\n * This is the main component for the accordion container, responsible for managing the expansion\n * of individual items within the accordion. It provides the functionality to group and organize content\n * in expandable sections.\n *\n * @property {string} cssClasses - Returns a string of CSS classes applied to the host element.\n * The main class is `ecl-accordion`, which can be extended with additional classes.\n *\n */\n@Directive({\n selector: 'div[eclAccordion]',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n})\nexport class EclAccordionDirective {\n baseDirective = inject(ECLBaseDirective);\n private renderer = inject(Renderer2);\n\n @ContentChildren(forwardRef(() => EclAccordionItemDirective), { read: ElementRef })\n items!: QueryList<ElementRef>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n /**\n * @description\n * Retrieves and returns the CSS classes for the component based on its current state.\n * Uses `baseDirective` to fetch the appropriate CSS classes.\n *\n * @returns {string} - A string of CSS class names.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [this.baseDirective.getCssClasses('ecl-accordion')].join(' ').trim();\n }\n\n constructor() {\n afterNextRender(() => {\n this.setFirstAndLastClasses();\n this.items.changes\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.setFirstAndLastClasses());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private setFirstAndLastClasses(): void {\n const elements = this.items.toArray();\n\n if (elements.length === 0) return;\n\n elements.forEach((el) => {\n this.renderer.removeClass(el.nativeElement, 'is-first');\n this.renderer.removeClass(el.nativeElement, 'is-last');\n });\n\n this.renderer.addClass(elements[0].nativeElement, 'is-first');\n this.renderer.addClass(elements[elements.length - 1].nativeElement, 'is-last');\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclAccordionToggleEvent extends EclBaseEvent {\n\tconstructor(public isExpanded: boolean) {\n\t\tsuper();\n\t}\n}","\nimport { EclAccordionContentDirective, EclAccordionItemDirective } from './ecl-accordion-item-new.directive';\nimport { EclAccordionSummaryComponent } from './ecl-accordion-summary.component';\nimport { EclAccordionDirective } from './ecl-accordion.directive';\n\nexport * from './ecl-accordion-item-new.directive';\nexport * from './ecl-accordion-summary.component';\nexport * from './ecl-accordion.directive';\nexport * from './events/ecl-accordion-toggle.event';\n\nexport const EUI_ECL_ACCORDION = [\n EclAccordionContentDirective,\n EclAccordionItemDirective,\n EclAccordionSummaryComponent,\n EclAccordionDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-accordion.mjs","sources":["../../components/ecl-accordion/ecl-accordion-item-new.directive.ts","../../components/ecl-accordion/ecl-accordion-summary.component.ts","../../components/ecl-accordion/ecl-accordion-summary.component.html","../../components/ecl-accordion/ecl-accordion.directive.ts","../../components/ecl-accordion/events/ecl-accordion-toggle.event.ts","../../components/ecl-accordion/index.ts","../../components/ecl-accordion/eui-ecl-components-ecl-accordion.ts"],"sourcesContent":["import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: 'details[eclAccordionItem]',\n host: {\n class: 'ecl-accordion__item',\n },\n})\nexport class EclAccordionItemDirective {}\n\n@Directive({\n selector: 'div[eclAccordionContent]',\n host: {\n class: 'ecl-accordion__content',\n },\n})\nexport class EclAccordionContentDirective {}","import {\n Component\n} from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Represents an individual item within an ECL Accordion.\n */\n@Component({\n selector: 'summary[eclAccordionToggle]',\n templateUrl: './ecl-accordion-summary.component.html',\n imports: [...EUI_ECL_ICON],\n host: {\n class: 'ecl-accordion__toggle',\n },\n})\nexport class EclAccordionSummaryComponent {}\n","<ng-content></ng-content>\n<ecl-icon icon=\"plus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n</ecl-icon>\n<ecl-icon icon=\"minus\" size=\"s\" class=\"ecl-accordion__toggle-icon\" ariaHidden=\"true\">\n</ecl-icon>","import {\n afterNextRender,\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n QueryList,\n Renderer2,\n OnDestroy,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclAccordionItemDirective } from './ecl-accordion-item-new.directive';\n\n/**\n * Accordion component that manages the expansion and collapsing state of accordion items.\n * Uses the `ECLBaseDirective` to apply appropriate CSS classes and manage the visual styling.\n *\n * @description\n * This is the main component for the accordion container, responsible for managing the expansion\n * of individual items within the accordion. It provides the functionality to group and organize content\n * in expandable sections.\n *\n * @property {string} cssClasses - Returns a string of CSS classes applied to the host element.\n * The main class is `ecl-accordion`, which can be extended with additional classes.\n *\n */\n@Directive({\n selector: 'div[eclAccordion]',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n host: {\n '[class]': 'baseDirective.getCssClasses(\"ecl-accordion\")',\n },\n})\nexport class EclAccordionDirective implements OnDestroy {\n baseDirective = inject(ECLBaseDirective);\n private renderer = inject(Renderer2);\n\n @ContentChildren(forwardRef(() => EclAccordionItemDirective), { read: ElementRef })\n items!: QueryList<ElementRef>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor() {\n afterNextRender(() => {\n this.setFirstAndLastClasses();\n this.items.changes\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.setFirstAndLastClasses());\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private setFirstAndLastClasses(): void {\n const elements = this.items.toArray();\n\n if (elements.length === 0) return;\n\n elements.forEach((el) => {\n this.renderer.removeClass(el.nativeElement, 'is-first');\n this.renderer.removeClass(el.nativeElement, 'is-last');\n });\n\n this.renderer.addClass(elements[0].nativeElement, 'is-first');\n this.renderer.addClass(elements[elements.length - 1].nativeElement, 'is-last');\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclAccordionToggleEvent extends EclBaseEvent {\n\tconstructor(public isExpanded: boolean) {\n\t\tsuper();\n\t}\n}","\nimport { EclAccordionContentDirective, EclAccordionItemDirective } from './ecl-accordion-item-new.directive';\nimport { EclAccordionSummaryComponent } from './ecl-accordion-summary.component';\nimport { EclAccordionDirective } from './ecl-accordion.directive';\n\nexport * from './ecl-accordion-item-new.directive';\nexport * from './ecl-accordion-summary.component';\nexport * from './ecl-accordion.directive';\nexport * from './events/ecl-accordion-toggle.event';\n\nexport const EUI_ECL_ACCORDION = [\n EclAccordionContentDirective,\n EclAccordionItemDirective,\n EclAccordionSummaryComponent,\n EclAccordionDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, input, booleanAttribute, HostBinding, ViewEncapsulation, Component } from '@angular/core';
2
+ import { Directive, signal, input, booleanAttribute, ViewEncapsulation, Component } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import * as i1 from '@eui/ecl/components/ecl-icon';
5
5
  import { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';
@@ -28,7 +28,11 @@ class EclAddToCalendarComponent extends ECLBaseDirective {
28
28
  /**
29
29
  * Adds `ecl-add-to-calendar` class to the host element.
30
30
  */
31
- this.hostClass = true;
31
+ this.hostClass = signal(true, /* @ts-ignore */
32
+ ...(ngDevMode ? [{ debugName: "hostClass" }] : /* istanbul ignore next */ []));
33
+ /**
34
+ * Indicates whether the component should span the full width of its container.
35
+ */
32
36
  this.isFullWidth = input(false, { ...(ngDevMode ? { debugName: "isFullWidth" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
33
37
  /**
34
38
  * Title displayed in the component.
@@ -52,17 +56,15 @@ class EclAddToCalendarComponent extends ECLBaseDirective {
52
56
  ...(ngDevMode ? [undefined, { debugName: "calendarLocation" }] : /* istanbul ignore next */ []));
53
57
  }
54
58
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAddToCalendarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclAddToCalendarComponent, isStandalone: true, selector: "div[eclAddToCalendar]", inputs: { isFullWidth: { classPropertyName: "isFullWidth", publicName: "isFullWidth", isSignal: true, isRequired: false, transformFunction: null }, eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, calendarDates: { classPropertyName: "calendarDates", publicName: "calendarDates", isSignal: true, isRequired: false, transformFunction: null }, calendarTime: { classPropertyName: "calendarTime", publicName: "calendarTime", isSignal: true, isRequired: false, transformFunction: null }, calendarLocation: { classPropertyName: "calendarLocation", publicName: "calendarLocation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ecl-add-to-calendar--full-width": "isFullWidth()", "class.ecl-add-to-calendar": "this.hostClass" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-add-to-calendar__info\" [class.ecl-container]=\"isFullWidth()\">\n <div class=\"ecl-add-to-calendar__info-content\">\n @if (eclTitle()) {\n <div class=\"ecl-add-to-calendar__title\">{{ eclTitle() }}</div>\n }\n @if (calendarDates() || calendarTime() || calendarLocation()) {\n <ul class=\"ecl-add-to-calendar__meta-list\">\n @if (calendarDates()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"calendar\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarDates() }}</span>\n </li>\n }\n @if (calendarTime()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"clock\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarTime() }}</span>\n </li>\n }\n @if (calendarLocation()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"location\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarLocation() }}</span>\n </li>\n }\n </ul>\n }\n </div>\n \n <ng-content select=\"div[eclAddToCalendarAction]\"></ng-content>\n</div>", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }], encapsulation: i0.ViewEncapsulation.None }); }
59
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclAddToCalendarComponent, isStandalone: true, selector: "div[eclAddToCalendar]", inputs: { isFullWidth: { classPropertyName: "isFullWidth", publicName: "isFullWidth", isSignal: true, isRequired: false, transformFunction: null }, eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, calendarDates: { classPropertyName: "calendarDates", publicName: "calendarDates", isSignal: true, isRequired: false, transformFunction: null }, calendarTime: { classPropertyName: "calendarTime", publicName: "calendarTime", isSignal: true, isRequired: false, transformFunction: null }, calendarLocation: { classPropertyName: "calendarLocation", publicName: "calendarLocation", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ecl-add-to-calendar--full-width": "isFullWidth()", "class.ecl-add-to-calendar": "hostClass()" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-add-to-calendar__info\" [class.ecl-container]=\"isFullWidth()\">\n <div class=\"ecl-add-to-calendar__info-content\">\n @if (eclTitle()) {\n <div class=\"ecl-add-to-calendar__title\">{{ eclTitle() }}</div>\n }\n @if (calendarDates() || calendarTime() || calendarLocation()) {\n <ul class=\"ecl-add-to-calendar__meta-list\">\n @if (calendarDates()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"calendar\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarDates() }}</span>\n </li>\n }\n @if (calendarTime()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"clock\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarTime() }}</span>\n </li>\n }\n @if (calendarLocation()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"location\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarLocation() }}</span>\n </li>\n }\n </ul>\n }\n </div>\n \n <ng-content select=\"div[eclAddToCalendarAction]\"></ng-content>\n</div>", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }], encapsulation: i0.ViewEncapsulation.None }); }
56
60
  }
57
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAddToCalendarComponent, decorators: [{
58
62
  type: Component,
59
63
  args: [{ selector: 'div[eclAddToCalendar]', imports: [...EUI_ECL_ICON], encapsulation: ViewEncapsulation.None, host: {
60
64
  '[class.ecl-add-to-calendar--full-width]': 'isFullWidth()',
65
+ '[class.ecl-add-to-calendar]': 'hostClass()',
61
66
  }, template: "<div class=\"ecl-add-to-calendar__info\" [class.ecl-container]=\"isFullWidth()\">\n <div class=\"ecl-add-to-calendar__info-content\">\n @if (eclTitle()) {\n <div class=\"ecl-add-to-calendar__title\">{{ eclTitle() }}</div>\n }\n @if (calendarDates() || calendarTime() || calendarLocation()) {\n <ul class=\"ecl-add-to-calendar__meta-list\">\n @if (calendarDates()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"calendar\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarDates() }}</span>\n </li>\n }\n @if (calendarTime()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"clock\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarTime() }}</span>\n </li>\n }\n @if (calendarLocation()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"location\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarLocation() }}</span>\n </li>\n }\n </ul>\n }\n </div>\n \n <ng-content select=\"div[eclAddToCalendarAction]\"></ng-content>\n</div>" }]
62
- }], propDecorators: { hostClass: [{
63
- type: HostBinding,
64
- args: ['class.ecl-add-to-calendar']
65
- }], isFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFullWidth", required: false }] }], eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], calendarDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarDates", required: false }] }], calendarTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarTime", required: false }] }], calendarLocation: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarLocation", required: false }] }] } });
67
+ }], propDecorators: { isFullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFullWidth", required: false }] }], eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], calendarDates: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarDates", required: false }] }], calendarTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarTime", required: false }] }], calendarLocation: [{ type: i0.Input, args: [{ isSignal: true, alias: "calendarLocation", required: false }] }] } });
66
68
 
67
69
  const EUI_ECL_ADD_TO_CALENDAR = [
68
70
  EclAddToCalendarComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-add-to-calendar.mjs","sources":["../../components/ecl-add-to-calendar/ecl-add-to-calendar-action.directive.ts","../../components/ecl-add-to-calendar/ecl-add-to-calendar.component.ts","../../components/ecl-add-to-calendar/ecl-add-to-calendar.component.html","../../components/ecl-add-to-calendar/index.ts","../../components/ecl-add-to-calendar/eui-ecl-components-ecl-add-to-calendar.ts"],"sourcesContent":["import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: 'div[eclAddToCalendarAction]',\n host: {\n class: 'ecl-add-to-calendar__action',\n },\n})\nexport class EclAddToCalendarActionDirective {}","import { booleanAttribute, Component, HostBinding, input, ViewEncapsulation } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * ECL Add to Calendar component.\n * Displays event information with optional date, time, and location metadata.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclAddToCalendar]',\n templateUrl: './ecl-add-to-calendar.component.html',\n imports: [...EUI_ECL_ICON],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ecl-add-to-calendar--full-width]': 'isFullWidth()',\n },\n})\nexport class EclAddToCalendarComponent extends ECLBaseDirective {\n /**\n * Adds `ecl-add-to-calendar` class to the host element.\n */\n @HostBinding('class.ecl-add-to-calendar') hostClass = true;\n\n isFullWidth = input(false, { transform: booleanAttribute });\n\n /**\n * Title displayed in the component.\n */\n eclTitle = input<string>();\n\n /**\n * Date(s) of the event (e.g. \"March 15-17, 2026\").\n */\n calendarDates = input<string>();\n\n /**\n * Time of the event (e.g. \"2:00 PM - 4:00 PM\").\n */\n calendarTime = input<string>();\n\n /**\n * Location of the event (e.g. \"San Francisco, CA\").\n */\n calendarLocation = input<string>();\n}\n","<div class=\"ecl-add-to-calendar__info\" [class.ecl-container]=\"isFullWidth()\">\n <div class=\"ecl-add-to-calendar__info-content\">\n @if (eclTitle()) {\n <div class=\"ecl-add-to-calendar__title\">{{ eclTitle() }}</div>\n }\n @if (calendarDates() || calendarTime() || calendarLocation()) {\n <ul class=\"ecl-add-to-calendar__meta-list\">\n @if (calendarDates()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"calendar\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarDates() }}</span>\n </li>\n }\n @if (calendarTime()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"clock\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarTime() }}</span>\n </li>\n }\n @if (calendarLocation()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"location\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarLocation() }}</span>\n </li>\n }\n </ul>\n }\n </div>\n \n <ng-content select=\"div[eclAddToCalendarAction]\"></ng-content>\n</div>","import { EclAddToCalendarActionDirective } from './ecl-add-to-calendar-action.directive';\nimport { EclAddToCalendarComponent } from './ecl-add-to-calendar.component';\n\nexport * from './ecl-add-to-calendar.component';\nexport * from './ecl-add-to-calendar-action.directive';\n\nexport const EUI_ECL_ADD_TO_CALENDAR = [\n EclAddToCalendarComponent,\n EclAddToCalendarActionDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,+BAA+B,CAAA;8GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,6BAA6B;AACrC,qBAAA;AACF,iBAAA;;;ACHD;;;AAGG;AAWG,MAAO,yBAA0B,SAAQ,gBAAgB,CAAA;AAV/D,IAAA,WAAA,GAAA;;AAWI;;AAEG;QACuC,IAAA,CAAA,SAAS,GAAG,IAAI;QAE1D,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK;gGAAU;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK;qGAAU;AAE/B;;AAEG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAU;AAE9B;;AAEG;AACH,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK;wGAAU;AACrC,IAAA;8GA3BY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,w7BClBtC,4hDA8BM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDZO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,SAAS;+BAEI,uBAAuB,EAAA,OAAA,EAExB,CAAC,GAAG,YAAY,CAAC,EAAA,aAAA,EACX,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC9B;AACH,wBAAA,yCAAyC,EAAE,eAAe;AAC7D,qBAAA,EAAA,QAAA,EAAA,4hDAAA,EAAA;;sBAMA,WAAW;uBAAC,2BAA2B;;;AEhBrC,MAAM,uBAAuB,GAAG;IACnC,yBAAyB;IACzB,+BAA+B;;;ACRnC;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-add-to-calendar.mjs","sources":["../../components/ecl-add-to-calendar/ecl-add-to-calendar-action.directive.ts","../../components/ecl-add-to-calendar/ecl-add-to-calendar.component.ts","../../components/ecl-add-to-calendar/ecl-add-to-calendar.component.html","../../components/ecl-add-to-calendar/index.ts","../../components/ecl-add-to-calendar/eui-ecl-components-ecl-add-to-calendar.ts"],"sourcesContent":["import { Directive } from \"@angular/core\";\n\n@Directive({\n selector: 'div[eclAddToCalendarAction]',\n host: {\n class: 'ecl-add-to-calendar__action',\n },\n})\nexport class EclAddToCalendarActionDirective {}","import { booleanAttribute, Component, input, signal, ViewEncapsulation } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * ECL Add to Calendar component.\n * Displays event information with optional date, time, and location metadata.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclAddToCalendar]',\n templateUrl: './ecl-add-to-calendar.component.html',\n imports: [...EUI_ECL_ICON],\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.ecl-add-to-calendar--full-width]': 'isFullWidth()',\n '[class.ecl-add-to-calendar]': 'hostClass()',\n },\n})\nexport class EclAddToCalendarComponent extends ECLBaseDirective {\n /**\n * Adds `ecl-add-to-calendar` class to the host element.\n */\n hostClass = signal(true);\n\n /**\n * Indicates whether the component should span the full width of its container.\n */\n isFullWidth = input(false, { transform: booleanAttribute });\n\n /**\n * Title displayed in the component.\n */\n eclTitle = input<string>();\n\n /**\n * Date(s) of the event (e.g. \"March 15-17, 2026\").\n */\n calendarDates = input<string>();\n\n /**\n * Time of the event (e.g. \"2:00 PM - 4:00 PM\").\n */\n calendarTime = input<string>();\n\n /**\n * Location of the event (e.g. \"San Francisco, CA\").\n */\n calendarLocation = input<string>();\n}\n","<div class=\"ecl-add-to-calendar__info\" [class.ecl-container]=\"isFullWidth()\">\n <div class=\"ecl-add-to-calendar__info-content\">\n @if (eclTitle()) {\n <div class=\"ecl-add-to-calendar__title\">{{ eclTitle() }}</div>\n }\n @if (calendarDates() || calendarTime() || calendarLocation()) {\n <ul class=\"ecl-add-to-calendar__meta-list\">\n @if (calendarDates()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"calendar\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarDates() }}</span>\n </li>\n }\n @if (calendarTime()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"clock\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarTime() }}</span>\n </li>\n }\n @if (calendarLocation()) {\n <li class=\"ecl-add-to-calendar__meta-item\">\n <ecl-icon icon=\"location\" size=\"s\" class=\"ecl-add-to-calendar__meta-icon\" aria-hidden=\"true\"></ecl-icon>\n <span class=\"ecl-add-to-calendar__meta-label\">{{ calendarLocation() }}</span>\n </li>\n }\n </ul>\n }\n </div>\n \n <ng-content select=\"div[eclAddToCalendarAction]\"></ng-content>\n</div>","import { EclAddToCalendarActionDirective } from './ecl-add-to-calendar-action.directive';\nimport { EclAddToCalendarComponent } from './ecl-add-to-calendar.component';\n\nexport * from './ecl-add-to-calendar.component';\nexport * from './ecl-add-to-calendar-action.directive';\n\nexport const EUI_ECL_ADD_TO_CALENDAR = [\n EclAddToCalendarComponent,\n EclAddToCalendarActionDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAQa,+BAA+B,CAAA;8GAA/B,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,6BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,6BAA6B;AACrC,qBAAA;AACF,iBAAA;;;ACHD;;;AAGG;AAYG,MAAO,yBAA0B,SAAQ,gBAAgB,CAAA;AAX/D,IAAA,WAAA,GAAA;;AAYI;;AAEG;QACH,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,IAAI;sFAAC;AAExB;;AAEG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK;gGAAU;AAE1B;;AAEG;AACH,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK;qGAAU;AAE/B;;AAEG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAU;AAE9B;;AAEG;AACH,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK;wGAAU;AACrC,IAAA;8GA9BY,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,q7BCnBtC,4hDA8BM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDXO,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;+BAEI,uBAAuB,EAAA,OAAA,EAExB,CAAC,GAAG,YAAY,CAAC,EAAA,aAAA,EACX,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC9B;AACH,wBAAA,yCAAyC,EAAE,eAAe;AAC1D,wBAAA,6BAA6B,EAAE,aAAa;AAC/C,qBAAA,EAAA,QAAA,EAAA,4hDAAA,EAAA;;;AEXE,MAAM,uBAAuB,GAAG;IACnC,yBAAyB;IACzB,+BAA+B;;;ACRnC;;AAEG;;;;"}
@@ -322,7 +322,7 @@ class EclAnimatedNumbersItemComponent extends ECLBaseDirective {
322
322
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAnimatedNumbersItemComponent, decorators: [{
323
323
  type: Component,
324
324
  args: [{ selector: '[eclAnimatedNumbersItem]', host: {
325
- 'class': 'ecl-animated-number',
325
+ class: 'ecl-animated-number',
326
326
  }, template: "<div class=\"ecl-animated-number__header\">\n <div class=\"ecl-animated-number__category\">{{ category() }}</div>\n <ng-content select=\"[eclAnimatedNumbersIcon]\"></ng-content>\n</div>\n<div class=\"ecl-animated-number__content\">\n <div class=\"ecl-animated-number__number\">\n <span class=\"ecl-animated-number__prefix\">{{ prefix() }}</span>\n <div class=\"ecl-animated-number__value\" #valueEl></div>\n <div class=\"ecl-animated-number__suffix\">{{ suffix() }}</div>\n </div>\n</div>\n<div class=\"ecl-animated-number__description\">{{ description() }}</div>" }]
327
327
  }], ctorParameters: () => [], propDecorators: { category: [{ type: i0.Input, args: [{ isSignal: true, alias: "category", required: false }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], eclValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclValue", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], prefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefix", required: false }] }], valueEl: [{ type: i0.ViewChild, args: ['valueEl', { isSignal: true }] }] } });
328
328
 
@@ -344,7 +344,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
344
344
  args: [{
345
345
  selector: '[eclAnimatedNumbersIcon]',
346
346
  host: {
347
- 'class': 'ecl-animated-number__icon',
347
+ class: 'ecl-animated-number__icon',
348
348
  },
349
349
  }]
350
350
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-animated-numbers.mjs","sources":["../../components/ecl-animated-numbers/ecl-animated-numbers.component.ts","../../components/ecl-animated-numbers/ecl-animated-numbers.component.html","../../components/ecl-animated-numbers/ecl-animated-numbers-list.directive.ts","../../components/ecl-animated-numbers/ecl-animated-numers-item/ecl-animated-numbers-item.component.ts","../../components/ecl-animated-numbers/ecl-animated-numers-item/ecl-animated-numbers-item.component.html","../../components/ecl-animated-numbers/ecl-animated-numers-item/ecl-animated-numbers-icon.directive.ts","../../components/ecl-animated-numbers/index.ts","../../components/ecl-animated-numbers/eui-ecl-components-ecl-animated-numbers.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input } from \"@angular/core\";\nimport { ECLBaseDirective } from \"@eui/ecl/core\";\n\n/**\n * Container component for the ECL Animated Numbers pattern.\n * Wraps animated number items and an optional sources footer.\n *\n * @example\n * ```html\n * <div eclAnimatedNumbers [sourcesLabel]=\"'Sources:'\">\n * <div eclAnimatedNumbersItems>\n * <div eclAnimatedNumbersItem [eclValue]=\"'213'\" [category]=\"'Revenue'\">\n * <ecl-icon eclAnimatedNumbersIcon icon=\"users\" iconSet=\"phosphor\"></ecl-icon>\n * </div>\n * </div>\n * <ul eclAnimatedNumbersSourcesList>\n * <li eclAnimatedNumbersSourcesItem>\n * <a eclLink eclAnimatedNumbersSource href=\"/example\">Eurostat</a>\n * </li>\n * </ul>\n * </div>\n * ```\n */\n@Component({\n selector: 'div[eclAnimatedNumbers]',\n templateUrl: './ecl-animated-numbers.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclAnimatedNumbersComponent extends ECLBaseDirective {\n\n /** Applies a dark background to the component. */\n hasDarkBackground = input(false, { transform: booleanAttribute });\n\n /** Adds a left border to the animated number items. */\n hasLeftBorder = input(false, { transform: booleanAttribute });\n\n /** Applies a colour to the counter values. */\n hasContentColor = input(false, { transform: booleanAttribute });\n\n /** Label displayed before the sources list. */\n sourcesLabel = input<string>('Sources:');\n\n get cssClasses(): string {\n return [super.getCssClasses('ecl-animated-numbers'),\n this.hasDarkBackground() ? 'ecl-animated-numbers--with-background' : '',\n this.hasLeftBorder() ? 'ecl-animated-numbers--border' : '',\n this.hasContentColor() && !this.hasDarkBackground() ? 'ecl-animated-numbers--counter-color' : '',\n ].filter(Boolean).join(' ');\n }\n}","<div class=\"ecl-container\">\n <ng-content select=\"[eclAnimatedNumbersItems]\"></ng-content>\n <div class=\"ecl-animated-numbers__sources\">\n <span class=\"ecl-animated-numbers__sources-label\">{{ sourcesLabel() }}</span>\n <ng-content select=\"[eclAnimatedNumbersSourcesList]\"></ng-content>\n </div>\n</div>","import { Directive } from \"@angular/core\";\n\n/**\n * Wraps the grid of animated number items.\n * Applies the `ecl-animated-numbers__items` layout class.\n *\n * @example\n * ```html\n * <div eclAnimatedNumbersItems>\n * <div eclAnimatedNumbersItem ...></div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersItems]',\n host: {\n class: 'ecl-animated-numbers__items',\n },\n})\nexport class EclAnimatedNumbersItemsDirective {}\n\n/**\n * Wraps the list of source links.\n * Applies the `ecl-animated-numbers__sources-list` class.\n *\n * @example\n * ```html\n * <ul eclAnimatedNumbersSourcesList>\n * <li eclAnimatedNumbersSourcesItem>...</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersSourcesList]',\n host: {\n class: 'ecl-animated-numbers__sources-list',\n },\n})\nexport class EclAnimatedNumbersSourcesListDirective {}\n\n/**\n * Marks a list item as a source entry.\n * Applies the `ecl-animated-numbers__sources-item` class.\n *\n * @example\n * ```html\n * <li eclAnimatedNumbersSourcesItem>\n * <a eclLink eclAnimatedNumbersSource href=\"/example\">Eurostat</a>\n * </li>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersSourcesItem]',\n host: {\n class: 'ecl-animated-numbers__sources-item',\n },\n})\nexport class EclAnimatedNumbersSourcesItemDirective {}\n\n/**\n * Marks a link as a source reference within the animated numbers component.\n * Applies the `ecl-animated-numbers__source` styling class.\n *\n * @example\n * ```html\n * <a eclLink eclAnimatedNumbersSource href=\"/example\">Eurostat</a>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersSource]',\n host: {\n class: 'ecl-animated-numbers__source',\n },\n})\nexport class EclAnimatedNumbersSourceDirective {}\n","import {\n Component,\n computed,\n ElementRef,\n NgZone,\n OnDestroy,\n afterNextRender,\n effect,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Represents an individual animated number item.\n * Displays a numeric value that animates from 0 to the target when scrolled into view.\n * Uses an IntersectionObserver to trigger animation on viewport visibility and\n * requestAnimationFrame for smooth count-up with cubic ease-out.\n *\n * @example\n * ```html\n * <div eclAnimatedNumbersItem\n * [eclValue]=\"'1250'\"\n * [category]=\"'Revenue'\"\n * [prefix]=\"'€'\"\n * [suffix]=\"'billions'\"\n * [description]=\"'Annual revenue growth'\">\n * <ecl-icon eclAnimatedNumbersIcon icon=\"trend-up\" iconSet=\"phosphor\"></ecl-icon>\n * </div>\n * ```\n */\n@Component({\n selector: '[eclAnimatedNumbersItem]',\n templateUrl: './ecl-animated-numbers-item.component.html',\n host: {\n 'class': 'ecl-animated-number',\n },\n})\nexport class EclAnimatedNumbersItemComponent extends ECLBaseDirective implements OnDestroy {\n\n /** Category label displayed in the item header. */\n category = input<string>();\n\n /** Descriptive text displayed below the number. */\n description = input<string>();\n\n /** The target numeric value to animate to. Accepts strings with non-numeric characters (they are stripped). */\n eclValue = input<string>();\n\n /** Text displayed after the animated number (e.g. '€', 'billions'). */\n suffix = input<string>();\n\n /** Text displayed before the animated number (e.g. '€', 'billion'). */\n prefix = input<string>();\n\n protected animationDuration = 1000;\n protected animationStyle: 'linear' | 'random' = 'linear';\n protected animateOnVisible = true;\n\n /** Parsed numeric target from the eclValue input. */\n private targetValue = computed(() => {\n const raw = this.eclValue();\n if (!raw) return 0;\n const cleaned = raw.replace(/[^\\d.-]/g, '');\n return cleaned ? parseFloat(cleaned) : 0;\n });\n\n private valueEl = viewChild<ElementRef<HTMLElement>>('valueEl');\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n private animationId: number | null = null;\n private observer: IntersectionObserver | null = null;\n private hasBeenVisible = false;\n private isRendered = false;\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.isRendered = true;\n // Set initial display to 0\n const el = this.valueEl()?.nativeElement;\n if (el) {\n el.textContent = '0';\n }\n\n if (this.animateOnVisible) {\n this.setupIntersectionObserver();\n } else {\n this.startAnimation(this.targetValue());\n }\n });\n\n // React to eclValue changes — only re-animate if already visible and rendered\n effect(() => {\n const target = this.targetValue();\n if (this.hasBeenVisible && this.isRendered) {\n queueMicrotask(() => this.startAnimation(target));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private setupIntersectionObserver(): void {\n this.observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n this.hasBeenVisible = true;\n this.startAnimation(this.targetValue());\n } else if (this.hasBeenVisible) {\n // Reset to 0 when scrolled out of view\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n const el = this.valueEl()?.nativeElement;\n if (el) {\n el.textContent = '0';\n el.style.width = '';\n }\n }\n },\n { threshold: 0.1 },\n );\n this.observer.observe(this.elementRef.nativeElement);\n }\n\n private startAnimation(to: number): void {\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n\n const valueElement = this.valueEl()?.nativeElement;\n if (!valueElement) return;\n\n // Lock width to prevent layout shift during animation\n valueElement.textContent = to.toString();\n const finalWidth = valueElement.offsetWidth;\n valueElement.textContent = '0';\n valueElement.style.width = `${finalWidth}px`;\n\n this.ngZone.runOutsideAngular(() => {\n const duration = this.animationDuration;\n let startTime: number | null = null;\n let lastUpdateTime = 0;\n let lastValue: number | null = null;\n\n const tick = (now: number) => {\n if (startTime === null) {\n startTime = now;\n }\n\n const elapsed = now - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n // Throttle updates (~50ms)\n if (now - lastUpdateTime < 50 && progress < 1) {\n this.animationId = requestAnimationFrame(tick);\n return;\n }\n lastUpdateTime = now;\n\n let value: number;\n if (this.animationStyle === 'random') {\n value = Math.floor(Math.random() * (to + 1));\n } else {\n // Cubic ease-out\n const eased = 1 - Math.pow(1 - progress, 3);\n value = eased * to;\n }\n\n const rounded = Math.floor(value);\n\n if (rounded !== lastValue) {\n valueElement.textContent = rounded.toString();\n lastValue = rounded;\n }\n\n if (progress < 1) {\n this.animationId = requestAnimationFrame(tick);\n } else {\n valueElement.textContent = to.toString();\n valueElement.style.width = '';\n this.animationId = null;\n }\n };\n\n this.animationId = requestAnimationFrame(tick);\n });\n }\n\n private cleanup(): void {\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n}\n","<div class=\"ecl-animated-number__header\">\n <div class=\"ecl-animated-number__category\">{{ category() }}</div>\n <ng-content select=\"[eclAnimatedNumbersIcon]\"></ng-content>\n</div>\n<div class=\"ecl-animated-number__content\">\n <div class=\"ecl-animated-number__number\">\n <span class=\"ecl-animated-number__prefix\">{{ prefix() }}</span>\n <div class=\"ecl-animated-number__value\" #valueEl></div>\n <div class=\"ecl-animated-number__suffix\">{{ suffix() }}</div>\n </div>\n</div>\n<div class=\"ecl-animated-number__description\">{{ description() }}</div>","import { Directive } from '@angular/core';\n\n/**\n * Marks an icon element as the animated number item's icon.\n * Applies the `ecl-animated-number__icon` positioning class.\n *\n * @example\n * ```html\n * <ecl-icon eclAnimatedNumbersIcon icon=\"users\" iconSet=\"phosphor\"></ecl-icon>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersIcon]',\n host: {\n 'class': 'ecl-animated-number__icon',\n },\n})\nexport class EclAnimatedNumbersIconDirective {}\n","import { EclAnimatedNumbersComponent } from './ecl-animated-numbers.component';\nimport { EclAnimatedNumbersItemsDirective, EclAnimatedNumbersSourcesListDirective, EclAnimatedNumbersSourcesItemDirective, EclAnimatedNumbersSourceDirective } from './ecl-animated-numbers-list.directive';\nimport { EclAnimatedNumbersItemComponent } from './ecl-animated-numers-item/ecl-animated-numbers-item.component';\nimport { EclAnimatedNumbersIconDirective } from './ecl-animated-numers-item/ecl-animated-numbers-icon.directive';\n\nexport * from './ecl-animated-numbers.component';\nexport * from './ecl-animated-numbers-list.directive';\nexport * from './ecl-animated-numers-item/ecl-animated-numbers-item.component';\nexport * from './ecl-animated-numers-item/ecl-animated-numbers-icon.directive';\n\nexport const EUI_ECL_ANIMATED_NUMBERS = [\n EclAnimatedNumbersComponent,\n EclAnimatedNumbersItemsDirective,\n EclAnimatedNumbersSourcesListDirective,\n EclAnimatedNumbersSourcesItemDirective,\n EclAnimatedNumbersSourceDirective,\n EclAnimatedNumbersItemComponent,\n EclAnimatedNumbersIconDirective,\n] as const;\n","/**\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-animated-numbers.mjs","sources":["../../components/ecl-animated-numbers/ecl-animated-numbers.component.ts","../../components/ecl-animated-numbers/ecl-animated-numbers.component.html","../../components/ecl-animated-numbers/ecl-animated-numbers-list.directive.ts","../../components/ecl-animated-numbers/ecl-animated-numers-item/ecl-animated-numbers-item.component.ts","../../components/ecl-animated-numbers/ecl-animated-numers-item/ecl-animated-numbers-item.component.html","../../components/ecl-animated-numbers/ecl-animated-numers-item/ecl-animated-numbers-icon.directive.ts","../../components/ecl-animated-numbers/index.ts","../../components/ecl-animated-numbers/eui-ecl-components-ecl-animated-numbers.ts"],"sourcesContent":["import { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Container component for the ECL Animated Numbers pattern.\n * Wraps animated number items and an optional sources footer.\n *\n * @example\n * ```html\n * <div eclAnimatedNumbers [sourcesLabel]=\"'Sources:'\">\n * <div eclAnimatedNumbersItems>\n * <div eclAnimatedNumbersItem [eclValue]=\"'213'\" [category]=\"'Revenue'\">\n * <ecl-icon eclAnimatedNumbersIcon icon=\"users\" iconSet=\"phosphor\"></ecl-icon>\n * </div>\n * </div>\n * <ul eclAnimatedNumbersSourcesList>\n * <li eclAnimatedNumbersSourcesItem>\n * <a eclLink eclAnimatedNumbersSource href=\"/example\">Eurostat</a>\n * </li>\n * </ul>\n * </div>\n * ```\n */\n@Component({\n selector: 'div[eclAnimatedNumbers]',\n templateUrl: './ecl-animated-numbers.component.html',\n host: {\n '[class]': 'cssClasses',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class EclAnimatedNumbersComponent extends ECLBaseDirective {\n\n /** Applies a dark background to the component. */\n hasDarkBackground = input(false, { transform: booleanAttribute });\n\n /** Adds a left border to the animated number items. */\n hasLeftBorder = input(false, { transform: booleanAttribute });\n\n /** Applies a colour to the counter values. */\n hasContentColor = input(false, { transform: booleanAttribute });\n\n /** Label displayed before the sources list. */\n sourcesLabel = input<string>('Sources:');\n\n protected get cssClasses(): string {\n return [super.getCssClasses('ecl-animated-numbers'),\n this.hasDarkBackground() ? 'ecl-animated-numbers--with-background' : '',\n this.hasLeftBorder() ? 'ecl-animated-numbers--border' : '',\n this.hasContentColor() && !this.hasDarkBackground() ? 'ecl-animated-numbers--counter-color' : '',\n ].filter(Boolean).join(' ');\n }\n}\n","<div class=\"ecl-container\">\n <ng-content select=\"[eclAnimatedNumbersItems]\"></ng-content>\n <div class=\"ecl-animated-numbers__sources\">\n <span class=\"ecl-animated-numbers__sources-label\">{{ sourcesLabel() }}</span>\n <ng-content select=\"[eclAnimatedNumbersSourcesList]\"></ng-content>\n </div>\n</div>","import { Directive } from \"@angular/core\";\n\n/**\n * Wraps the grid of animated number items.\n * Applies the `ecl-animated-numbers__items` layout class.\n *\n * @example\n * ```html\n * <div eclAnimatedNumbersItems>\n * <div eclAnimatedNumbersItem ...></div>\n * </div>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersItems]',\n host: {\n class: 'ecl-animated-numbers__items',\n },\n})\nexport class EclAnimatedNumbersItemsDirective {}\n\n/**\n * Wraps the list of source links.\n * Applies the `ecl-animated-numbers__sources-list` class.\n *\n * @example\n * ```html\n * <ul eclAnimatedNumbersSourcesList>\n * <li eclAnimatedNumbersSourcesItem>...</li>\n * </ul>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersSourcesList]',\n host: {\n class: 'ecl-animated-numbers__sources-list',\n },\n})\nexport class EclAnimatedNumbersSourcesListDirective {}\n\n/**\n * Marks a list item as a source entry.\n * Applies the `ecl-animated-numbers__sources-item` class.\n *\n * @example\n * ```html\n * <li eclAnimatedNumbersSourcesItem>\n * <a eclLink eclAnimatedNumbersSource href=\"/example\">Eurostat</a>\n * </li>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersSourcesItem]',\n host: {\n class: 'ecl-animated-numbers__sources-item',\n },\n})\nexport class EclAnimatedNumbersSourcesItemDirective {}\n\n/**\n * Marks a link as a source reference within the animated numbers component.\n * Applies the `ecl-animated-numbers__source` styling class.\n *\n * @example\n * ```html\n * <a eclLink eclAnimatedNumbersSource href=\"/example\">Eurostat</a>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersSource]',\n host: {\n class: 'ecl-animated-numbers__source',\n },\n})\nexport class EclAnimatedNumbersSourceDirective {}\n","import {\n Component,\n computed,\n ElementRef,\n NgZone,\n OnDestroy,\n afterNextRender,\n effect,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Represents an individual animated number item.\n * Displays a numeric value that animates from 0 to the target when scrolled into view.\n * Uses an IntersectionObserver to trigger animation on viewport visibility and\n * requestAnimationFrame for smooth count-up with cubic ease-out.\n *\n * @example\n * ```html\n * <div eclAnimatedNumbersItem\n * [eclValue]=\"'1250'\"\n * [category]=\"'Revenue'\"\n * [prefix]=\"'€'\"\n * [suffix]=\"'billions'\"\n * [description]=\"'Annual revenue growth'\">\n * <ecl-icon eclAnimatedNumbersIcon icon=\"trend-up\" iconSet=\"phosphor\"></ecl-icon>\n * </div>\n * ```\n */\n@Component({\n selector: '[eclAnimatedNumbersItem]',\n templateUrl: './ecl-animated-numbers-item.component.html',\n host: {\n class: 'ecl-animated-number',\n },\n})\nexport class EclAnimatedNumbersItemComponent extends ECLBaseDirective implements OnDestroy {\n\n /** Category label displayed in the item header. */\n category = input<string>();\n\n /** Descriptive text displayed below the number. */\n description = input<string>();\n\n /** The target numeric value to animate to. Accepts strings with non-numeric characters (they are stripped). */\n eclValue = input<string>();\n\n /** Text displayed after the animated number (e.g. '€', 'billions'). */\n suffix = input<string>();\n\n /** Text displayed before the animated number (e.g. '€', 'billion'). */\n prefix = input<string>();\n\n protected animationDuration = 1000;\n protected animationStyle: 'linear' | 'random' = 'linear';\n protected animateOnVisible = true;\n\n /** Parsed numeric target from the eclValue input. */\n private targetValue = computed(() => {\n const raw = this.eclValue();\n if (!raw) return 0;\n const cleaned = raw.replace(/[^\\d.-]/g, '');\n return cleaned ? parseFloat(cleaned) : 0;\n });\n\n private valueEl = viewChild<ElementRef<HTMLElement>>('valueEl');\n private elementRef = inject(ElementRef);\n private ngZone = inject(NgZone);\n\n private animationId: number | null = null;\n private observer: IntersectionObserver | null = null;\n private hasBeenVisible = false;\n private isRendered = false;\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.isRendered = true;\n // Set initial display to 0\n const el = this.valueEl()?.nativeElement;\n if (el) {\n el.textContent = '0';\n }\n\n if (this.animateOnVisible) {\n this.setupIntersectionObserver();\n } else {\n this.startAnimation(this.targetValue());\n }\n });\n\n // React to eclValue changes — only re-animate if already visible and rendered\n effect(() => {\n const target = this.targetValue();\n if (this.hasBeenVisible && this.isRendered) {\n queueMicrotask(() => this.startAnimation(target));\n }\n });\n }\n\n ngOnDestroy(): void {\n this.cleanup();\n }\n\n private setupIntersectionObserver(): void {\n this.observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n this.hasBeenVisible = true;\n this.startAnimation(this.targetValue());\n } else if (this.hasBeenVisible) {\n // Reset to 0 when scrolled out of view\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n const el = this.valueEl()?.nativeElement;\n if (el) {\n el.textContent = '0';\n el.style.width = '';\n }\n }\n },\n { threshold: 0.1 },\n );\n this.observer.observe(this.elementRef.nativeElement);\n }\n\n private startAnimation(to: number): void {\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n\n const valueElement = this.valueEl()?.nativeElement;\n if (!valueElement) return;\n\n // Lock width to prevent layout shift during animation\n valueElement.textContent = to.toString();\n const finalWidth = valueElement.offsetWidth;\n valueElement.textContent = '0';\n valueElement.style.width = `${finalWidth}px`;\n\n this.ngZone.runOutsideAngular(() => {\n const duration = this.animationDuration;\n let startTime: number | null = null;\n let lastUpdateTime = 0;\n let lastValue: number | null = null;\n\n const tick = (now: number) => {\n if (startTime === null) {\n startTime = now;\n }\n\n const elapsed = now - startTime;\n const progress = Math.min(elapsed / duration, 1);\n\n // Throttle updates (~50ms)\n if (now - lastUpdateTime < 50 && progress < 1) {\n this.animationId = requestAnimationFrame(tick);\n return;\n }\n lastUpdateTime = now;\n\n let value: number;\n if (this.animationStyle === 'random') {\n value = Math.floor(Math.random() * (to + 1));\n } else {\n // Cubic ease-out\n const eased = 1 - Math.pow(1 - progress, 3);\n value = eased * to;\n }\n\n const rounded = Math.floor(value);\n\n if (rounded !== lastValue) {\n valueElement.textContent = rounded.toString();\n lastValue = rounded;\n }\n\n if (progress < 1) {\n this.animationId = requestAnimationFrame(tick);\n } else {\n valueElement.textContent = to.toString();\n valueElement.style.width = '';\n this.animationId = null;\n }\n };\n\n this.animationId = requestAnimationFrame(tick);\n });\n }\n\n private cleanup(): void {\n if (this.animationId !== null) {\n cancelAnimationFrame(this.animationId);\n this.animationId = null;\n }\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n}\n","<div class=\"ecl-animated-number__header\">\n <div class=\"ecl-animated-number__category\">{{ category() }}</div>\n <ng-content select=\"[eclAnimatedNumbersIcon]\"></ng-content>\n</div>\n<div class=\"ecl-animated-number__content\">\n <div class=\"ecl-animated-number__number\">\n <span class=\"ecl-animated-number__prefix\">{{ prefix() }}</span>\n <div class=\"ecl-animated-number__value\" #valueEl></div>\n <div class=\"ecl-animated-number__suffix\">{{ suffix() }}</div>\n </div>\n</div>\n<div class=\"ecl-animated-number__description\">{{ description() }}</div>","import { Directive } from '@angular/core';\n\n/**\n * Marks an icon element as the animated number item's icon.\n * Applies the `ecl-animated-number__icon` positioning class.\n *\n * @example\n * ```html\n * <ecl-icon eclAnimatedNumbersIcon icon=\"users\" iconSet=\"phosphor\"></ecl-icon>\n * ```\n */\n@Directive({\n selector: '[eclAnimatedNumbersIcon]',\n host: {\n class: 'ecl-animated-number__icon',\n },\n})\nexport class EclAnimatedNumbersIconDirective {}\n","import { EclAnimatedNumbersComponent } from './ecl-animated-numbers.component';\nimport { EclAnimatedNumbersItemsDirective, EclAnimatedNumbersSourcesListDirective, EclAnimatedNumbersSourcesItemDirective, EclAnimatedNumbersSourceDirective } from './ecl-animated-numbers-list.directive';\nimport { EclAnimatedNumbersItemComponent } from './ecl-animated-numers-item/ecl-animated-numbers-item.component';\nimport { EclAnimatedNumbersIconDirective } from './ecl-animated-numers-item/ecl-animated-numbers-icon.directive';\n\nexport * from './ecl-animated-numbers.component';\nexport * from './ecl-animated-numbers-list.directive';\nexport * from './ecl-animated-numers-item/ecl-animated-numbers-item.component';\nexport * from './ecl-animated-numers-item/ecl-animated-numbers-icon.directive';\n\nexport const EUI_ECL_ANIMATED_NUMBERS = [\n EclAnimatedNumbersComponent,\n EclAnimatedNumbersItemsDirective,\n EclAnimatedNumbersSourcesListDirective,\n EclAnimatedNumbersSourcesItemDirective,\n EclAnimatedNumbersSourceDirective,\n EclAnimatedNumbersItemComponent,\n EclAnimatedNumbersIconDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { output, inject, PLATFORM_ID, ContentChild, HostBinding, Component } from '@angular/core';
3
+ import { signal, contentChild, output, inject, PLATFORM_ID, Component } from '@angular/core';
4
4
  import { EuiAppShellService, CssUtils } from '@eui/core';
5
5
  import { EclSiteHeaderLanguageComponent } from '@eui/ecl/components/ecl-site-header';
6
6
  import { EclBaseEvent, ECLBaseDirective, EclRtlService } from '@eui/ecl/core';
@@ -23,7 +23,10 @@ class EclAppComponent extends ECLBaseDirective {
23
23
  * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will
24
24
  * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.
25
25
  */
26
- this.textDirection = 'ltr';
26
+ this.textDirection = signal('ltr', /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "textDirection" }] : /* istanbul ignore next */ []));
28
+ this.eclSiteHeaderLanguage = contentChild(EclSiteHeaderLanguageComponent, /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "eclSiteHeaderLanguage" }] : /* istanbul ignore next */ []));
27
30
  this.languageDismiss = output();
28
31
  this.destroy$ = new Subject();
29
32
  this.eclRtlService = inject(EclRtlService);
@@ -80,33 +83,29 @@ class EclAppComponent extends ECLBaseDirective {
80
83
  handleRtlChangeState() {
81
84
  this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {
82
85
  if (rtlState) {
83
- this.textDirection = 'rtl';
86
+ this.textDirection.set('rtl');
84
87
  }
85
88
  else {
86
- this.textDirection = 'ltr';
89
+ this.textDirection.set('ltr');
87
90
  }
88
91
  });
89
92
  }
90
93
  handleUIEvents() {
91
- this.eclSiteHeaderLanguage?.languageSelected
94
+ this.eclSiteHeaderLanguage()?.languageSelected
92
95
  .pipe(takeUntil(this.destroy$))
93
96
  .subscribe((evt) => {
94
97
  this.languageDismiss.emit(new EclAppLanguageDismissEvent(evt.language));
95
98
  });
96
99
  }
97
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAppComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: EclAppComponent, isStandalone: true, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, host: { properties: { "attr.dir": "this.textDirection" } }, queries: [{ propertyName: "eclSiteHeaderLanguage", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclAppComponent, isStandalone: true, selector: "ecl-app", outputs: { languageDismiss: "languageDismiss" }, host: { properties: { "attr.dir": "textDirection()" } }, queries: [{ propertyName: "eclSiteHeaderLanguage", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
99
102
  }
100
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclAppComponent, decorators: [{
101
104
  type: Component,
102
- args: [{ selector: 'ecl-app', template: "<ng-content></ng-content>\n" }]
103
- }], propDecorators: { textDirection: [{
104
- type: HostBinding,
105
- args: ['attr.dir']
106
- }], eclSiteHeaderLanguage: [{
107
- type: ContentChild,
108
- args: [EclSiteHeaderLanguageComponent]
109
- }], languageDismiss: [{ type: i0.Output, args: ["languageDismiss"] }] } });
105
+ args: [{ selector: 'ecl-app', host: {
106
+ '[attr.dir]': 'textDirection()',
107
+ }, template: "<ng-content></ng-content>\n" }]
108
+ }], propDecorators: { eclSiteHeaderLanguage: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderLanguageComponent), { isSignal: true }] }], languageDismiss: [{ type: i0.Output, args: ["languageDismiss"] }] } });
110
109
 
111
110
  const EUI_ECL_APP = [
112
111
  EclAppComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-app.mjs","sources":["../../components/ecl-app/ecl-app.component.ts","../../components/ecl-app/ecl-app.component.html","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, HostBinding, OnDestroy, OnInit, PLATFORM_ID, inject, output } from '@angular/core';\nimport { CssUtils, EuiAppShellService } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguageSelectedEvent } from '@eui/ecl/components/ecl-site-header';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService } from '@eui/ecl/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n/**\n * The wrapper component for an ecl application. Has some important global properties.\n */\nexport class EclAppLanguageDismissEvent extends EclBaseEvent {\n constructor(public language?: EuiLanguage) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-app',\n templateUrl: './ecl-app.component.html',\n})\nexport class EclAppComponent extends ECLBaseDirective implements OnInit, AfterViewInit, OnDestroy {\n /**\n * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will\n * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.\n */\n @HostBinding('attr.dir') textDirection = 'ltr';\n\n @ContentChild(EclSiteHeaderLanguageComponent) eclSiteHeaderLanguage: EclSiteHeaderLanguageComponent;\n\n readonly languageDismiss = output<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly eclRtlService = inject(EclRtlService);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly appShellService = inject(EuiAppShellService);\n\n ngOnInit(): void {\n\n // Only initialize CSS vars if no parent app shell is already active\n const isNestedInAppShell = this.appShellService.state.hasHeader || this.appShellService.state.hasSidebar || this.appShellService.state.hasToolbar;\n if (!isNestedInAppShell) {\n CssUtils.initCssVars(this.document, this.platformId);\n }\n if (isPlatformBrowser(this.platformId)) {\n const browserAgent = window.navigator.userAgent.toLowerCase();\n\n this.appShellService.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n deviceInfo: {\n isChrome: browserAgent.indexOf('chrome') > -1,\n isIE: browserAgent.indexOf('trident') > -1,\n isFF: browserAgent.indexOf('firefox') > -1,\n },\n appBaseFontSize: this.appShellService.getBaseFontSize(),\n });\n }\n\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(debounceTime(50), takeUntil(this.destroy$))\n .subscribe(() => {\n this.appShellService?.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n });\n CssUtils.setAppViewportCssVars(this.platformId);\n });\n }\n }\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-21.\n CssUtils.setHtmlClass('eui-21', this.document);\n this.handleRtlChangeState();\n this.handleUIEvents();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Changes the text direction from 'ltr' to 'rtl' and vice versa.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState) {\n this.textDirection = 'rtl';\n } else {\n this.textDirection = 'ltr';\n }\n });\n }\n\n private handleUIEvents(): void {\n this.eclSiteHeaderLanguage?.languageSelected\n .pipe(takeUntil(this.destroy$))\n .subscribe((evt: EclSiteHeaderLanguageSelectedEvent) => {\n this.languageDismiss.emit(new EclAppLanguageDismissEvent(evt.language));\n });\n }\n}\n","<ng-content></ng-content>\n","import { EclAppComponent } from './ecl-app.component';\n\nexport * from './ecl-app.component';\n\nexport const EUI_ECL_APP = [\n EclAppComponent,\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-app.mjs","sources":["../../components/ecl-app/ecl-app.component.ts","../../components/ecl-app/ecl-app.component.html","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, contentChild, OnDestroy, OnInit, PLATFORM_ID, inject, output, signal } from '@angular/core';\nimport { CssUtils, EuiAppShellService } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguageSelectedEvent } from '@eui/ecl/components/ecl-site-header';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService } from '@eui/ecl/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\n/**\n * The wrapper component for an ecl application. Has some important global properties.\n */\nexport class EclAppLanguageDismissEvent extends EclBaseEvent {\n constructor(public language?: EuiLanguage) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-app',\n templateUrl: './ecl-app.component.html',\n host: {\n '[attr.dir]': 'textDirection()',\n },\n})\nexport class EclAppComponent extends ECLBaseDirective implements OnInit, AfterViewInit, OnDestroy {\n /**\n * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will\n * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.\n */\n readonly textDirection = signal('ltr');\n\n readonly eclSiteHeaderLanguage = contentChild(EclSiteHeaderLanguageComponent);\n\n readonly languageDismiss = output<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly eclRtlService = inject(EclRtlService);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly appShellService = inject(EuiAppShellService);\n\n ngOnInit(): void {\n\n // Only initialize CSS vars if no parent app shell is already active\n const isNestedInAppShell = this.appShellService.state.hasHeader || this.appShellService.state.hasSidebar || this.appShellService.state.hasToolbar;\n if (!isNestedInAppShell) {\n CssUtils.initCssVars(this.document, this.platformId);\n }\n if (isPlatformBrowser(this.platformId)) {\n const browserAgent = window.navigator.userAgent.toLowerCase();\n\n this.appShellService.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n deviceInfo: {\n isChrome: browserAgent.indexOf('chrome') > -1,\n isIE: browserAgent.indexOf('trident') > -1,\n isFF: browserAgent.indexOf('firefox') > -1,\n },\n appBaseFontSize: this.appShellService.getBaseFontSize(),\n });\n }\n\n if (isPlatformBrowser(this.platformId)) {\n fromEvent(window, 'resize')\n .pipe(debounceTime(50), takeUntil(this.destroy$))\n .subscribe(() => {\n this.appShellService?.setState({\n ...this.appShellService.state,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth,\n });\n CssUtils.setAppViewportCssVars(this.platformId);\n });\n }\n }\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-21.\n CssUtils.setHtmlClass('eui-21', this.document);\n this.handleRtlChangeState();\n this.handleUIEvents();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Changes the text direction from 'ltr' to 'rtl' and vice versa.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState) {\n this.textDirection.set('rtl');\n } else {\n this.textDirection.set('ltr');\n }\n });\n }\n\n private handleUIEvents(): void {\n this.eclSiteHeaderLanguage()?.languageSelected\n .pipe(takeUntil(this.destroy$))\n .subscribe((evt: EclSiteHeaderLanguageSelectedEvent) => {\n this.languageDismiss.emit(new EclAppLanguageDismissEvent(evt.language));\n });\n }\n}\n","<ng-content></ng-content>\n","import { EclAppComponent } from './ecl-app.component';\n\nexport * from './ecl-app.component';\n\nexport const EUI_ECL_APP = [\n EclAppComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}