@eui/ecl 21.0.0-alpha.2 → 21.0.0-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/components/ecl-banner/index.d.ts +9 -4
  2. package/components/ecl-banner/index.d.ts.map +1 -1
  3. package/components/ecl-carousel/index.d.ts +1 -0
  4. package/components/ecl-carousel/index.d.ts.map +1 -1
  5. package/components/ecl-content-item/index.d.ts.map +1 -1
  6. package/components/ecl-date-block/index.d.ts.map +1 -1
  7. package/components/ecl-featured/index.d.ts +1 -1
  8. package/components/ecl-featured/index.d.ts.map +1 -1
  9. package/components/ecl-gallery/index.d.ts +1 -1
  10. package/components/ecl-gallery/index.d.ts.map +1 -1
  11. package/components/ecl-icon/index.d.ts +2 -3
  12. package/components/ecl-icon/index.d.ts.map +1 -1
  13. package/components/ecl-link/index.d.ts +6 -6
  14. package/components/ecl-link/index.d.ts.map +1 -1
  15. package/components/ecl-mega-menu/index.d.ts +1 -1
  16. package/components/ecl-mega-menu/index.d.ts.map +1 -1
  17. package/components/ecl-menu/index.d.ts.map +1 -1
  18. package/components/ecl-multiselect/index.d.ts +2 -2
  19. package/components/ecl-multiselect/index.d.ts.map +1 -1
  20. package/components/ecl-pagination/index.d.ts +1 -0
  21. package/components/ecl-pagination/index.d.ts.map +1 -1
  22. package/components/ecl-popover/index.d.ts +1 -1
  23. package/components/ecl-popover/index.d.ts.map +1 -1
  24. package/components/ecl-search-form/index.d.ts.map +1 -1
  25. package/components/ecl-site-footer/index.d.ts.map +1 -1
  26. package/components/ecl-site-header/index.d.ts +1 -1
  27. package/docs/changelog.html +328 -7824
  28. package/docs/classes/EclAccordionToggleEvent.html +18 -0
  29. package/docs/classes/EclAppLanguageDismissEvent.html +18 -0
  30. package/docs/classes/EclAreaChangeEvent.html +18 -0
  31. package/docs/classes/EclBaseEvent.html +18 -0
  32. package/docs/classes/EclBreadcrumbSegmentClickEvent.html +18 -0
  33. package/docs/classes/EclCategoryFilterItemSelectEvent.html +18 -0
  34. package/docs/classes/EclDatePickerDatePickedEvent.html +18 -0
  35. package/docs/classes/EclDomEvent.html +18 -0
  36. package/docs/classes/EclExpandableToggleEvent.html +18 -0
  37. package/docs/classes/EclFileItemsToggleEvent.html +18 -0
  38. package/docs/classes/EclFileUploadFileSelectedEvent.html +18 -0
  39. package/docs/classes/EclGalleryFullScreenEvent.html +18 -0
  40. package/docs/classes/EclGalleryHideEvent.html +18 -0
  41. package/docs/classes/EclGalleryItemClickEvent.html +18 -0
  42. package/docs/classes/EclGalleryItemEvent.html +18 -0
  43. package/docs/classes/EclGalleryMediaSource.html +18 -0
  44. package/docs/classes/EclGalleryMediaTrack.html +18 -0
  45. package/docs/classes/EclGalleryPictureImage.html +18 -0
  46. package/docs/classes/EclGalleryPictureSource.html +18 -0
  47. package/docs/classes/EclGalleryShareEvent.html +18 -0
  48. package/docs/classes/EclGalleryShowEvent.html +18 -0
  49. package/docs/classes/EclGalleryToggleItemsEvent.html +18 -0
  50. package/docs/classes/EclInpageNavigationItemClickEvent.html +18 -0
  51. package/docs/classes/EclInpageNavigationSectionEnterEvent.html +18 -0
  52. package/docs/classes/EclLanguageService.html +18 -0
  53. package/docs/classes/EclMenuItemCaretEvent.html +18 -0
  54. package/docs/classes/EclMenuItemFocusEvent.html +18 -0
  55. package/docs/classes/EclMenuItemHoverEvent.html +18 -0
  56. package/docs/classes/EclMenuItemHoverOutEvent.html +18 -0
  57. package/docs/classes/EclMenuItemKeydownEvent.html +18 -0
  58. package/docs/classes/EclMenuItemParentFocusEvent.html +18 -0
  59. package/docs/classes/EclMenuItemSelectEvent.html +18 -0
  60. package/docs/classes/EclModalCloseEvent.html +18 -0
  61. package/docs/classes/EclModalOpenEvent.html +18 -0
  62. package/docs/classes/EclMultiselectMainInputClickEvent.html +18 -0
  63. package/docs/classes/EclMultiselectOptionClickEvent.html +18 -0
  64. package/docs/classes/EclMultiselectOptionKeydownEvent.html +18 -0
  65. package/docs/classes/EclNewsTickerItemEvent.html +18 -0
  66. package/docs/classes/EclNotificationCloseEvent.html +18 -0
  67. package/docs/classes/EclPaginationEvent.html +18 -0
  68. package/docs/classes/EclPaginationItemClickEvent.html +18 -0
  69. package/docs/classes/EclRangeEvent.html +18 -0
  70. package/docs/classes/EclRatingChangeEvent.html +18 -0
  71. package/docs/classes/EclSearchFormEvent.html +18 -0
  72. package/docs/classes/EclSiteHeaderLanguageClickEvent.html +18 -0
  73. package/docs/classes/EclSiteHeaderLanguageCloseEvent.html +18 -0
  74. package/docs/classes/EclSiteHeaderLanguageSelectedEvent.html +18 -0
  75. package/docs/classes/EclSiteHeaderLoginBoxToggleEvent.html +18 -0
  76. package/docs/classes/EclSiteHeaderLoginEvent.html +18 -0
  77. package/docs/classes/EclSiteHeaderLogoClickEvent.html +18 -0
  78. package/docs/classes/EclSiteHeaderSearchEvent.html +18 -0
  79. package/docs/classes/EclSiteHeaderSearchToggleEvent.html +18 -0
  80. package/docs/classes/EclSlideEvent.html +18 -0
  81. package/docs/classes/EclSocialMediaFollowItemClickEvent.html +18 -0
  82. package/docs/classes/EclSocialMediaShareItemClickEvent.html +18 -0
  83. package/docs/classes/EclSortTableEvent.html +18 -0
  84. package/docs/classes/EclTabSelectEvent.html +18 -0
  85. package/docs/classes/EclTagRemoveEvent.html +18 -0
  86. package/docs/classes/EclTimelineItemToggleEvent.html +18 -0
  87. package/docs/components/EclAccordionComponent.html +20 -2
  88. package/docs/components/EclAccordionItemComponent.html +20 -2
  89. package/docs/components/EclAppComponent.html +19 -1
  90. package/docs/components/EclBannerComponent.html +104 -5
  91. package/docs/components/EclBlockquoteComponent.html +19 -1
  92. package/docs/components/EclBreadcrumbComponent.html +21 -8
  93. package/docs/components/EclBreadcrumbSegmentComponent.html +23 -4
  94. package/docs/components/EclButtonComponent.html +20 -2
  95. package/docs/components/EclCardBodyComponent.html +19 -1
  96. package/docs/components/EclCardComponent.html +19 -1
  97. package/docs/components/EclCarouselComponent.html +100 -1
  98. package/docs/components/EclCarouselItemComponent.html +19 -1
  99. package/docs/components/EclCategoryFilterComponent.html +19 -1
  100. package/docs/components/EclCategoryFilterItemComponent.html +20 -2
  101. package/docs/components/EclCategoryFilterListComponent.html +19 -1
  102. package/docs/components/EclCheckboxHelpComponent.html +19 -1
  103. package/docs/components/EclCheckboxLabelComponent.html +20 -2
  104. package/docs/components/EclContentBlockComponent.html +19 -1
  105. package/docs/components/EclContentItemComponent.html +19 -1
  106. package/docs/components/EclDateBlockComponent.html +19 -1
  107. package/docs/components/EclDescriptionListDefinitionComponent.html +20 -2
  108. package/docs/components/EclExpandableComponent.html +21 -3
  109. package/docs/components/EclFactFiguresComponent.html +19 -1
  110. package/docs/components/EclFactFiguresDescriptionComponent.html +19 -1
  111. package/docs/components/EclFactFiguresItemComponent.html +19 -1
  112. package/docs/components/EclFactFiguresTitleComponent.html +19 -1
  113. package/docs/components/EclFactFiguresValueComponent.html +19 -1
  114. package/docs/components/EclFactFiguresViewAllComponent.html +19 -1
  115. package/docs/components/EclFeaturedComponent.html +19 -1
  116. package/docs/components/EclFeaturedItemComponent.html +19 -1
  117. package/docs/components/EclFeaturedItemDescriptionComponent.html +19 -1
  118. package/docs/components/EclFeaturedItemFooterComponent.html +19 -1
  119. package/docs/components/EclFileComponent.html +21 -3
  120. package/docs/components/EclFileItemComponent.html +19 -1
  121. package/docs/components/EclFileItemsComponent.html +21 -3
  122. package/docs/components/EclFileTaxonomyComponent.html +19 -1
  123. package/docs/components/EclFormGroupComponent.html +19 -1
  124. package/docs/components/EclFormLabelComponent.html +19 -1
  125. package/docs/components/EclGalleryComponent.html +26 -47
  126. package/docs/components/EclGalleryFooterComponent.html +20 -2
  127. package/docs/components/EclGalleryItemComponent.html +20 -2
  128. package/docs/components/EclIconComponent.html +20 -16
  129. package/docs/components/EclInpageNavigationComponent.html +20 -2
  130. package/docs/components/EclInpageNavigationItemComponent.html +20 -2
  131. package/docs/components/EclListIllustrationComponent.html +19 -1
  132. package/docs/components/EclListIllustrationItemComponent.html +19 -1
  133. package/docs/components/EclLoadingIndicatorComponent.html +19 -1
  134. package/docs/components/EclMediaContainerComponent.html +21 -3
  135. package/docs/components/EclMegaMenuComponent.html +21 -3
  136. package/docs/components/EclMegaMenuFeaturedComponent.html +19 -1
  137. package/docs/components/EclMegaMenuInfoComponent.html +19 -1
  138. package/docs/components/EclMegaMenuItemComponent.html +24 -5
  139. package/docs/components/EclMegaMenuSubitemComponent.html +24 -5
  140. package/docs/components/EclMenuComponent.html +21 -3
  141. package/docs/components/EclMenuItemComponent.html +24 -5
  142. package/docs/components/EclMenuMegaComponent.html +19 -1
  143. package/docs/components/EclMenuMegaItemComponent.html +20 -2
  144. package/docs/components/EclModalBodyComponent.html +19 -1
  145. package/docs/components/EclModalComponent.html +19 -1
  146. package/docs/components/EclModalFooterComponent.html +19 -1
  147. package/docs/components/EclModalHeaderComponent.html +21 -3
  148. package/docs/components/EclMultiselectComponent.html +20 -4
  149. package/docs/components/EclMultiselectDropdownComponent.html +25 -44
  150. package/docs/components/EclMultiselectInputComponent.html +21 -3
  151. package/docs/components/EclMultiselectOptgroupComponent.html +19 -1
  152. package/docs/components/EclMultiselectOptionComponent.html +19 -1
  153. package/docs/components/EclNavigationListComponent.html +19 -1
  154. package/docs/components/EclNavigationListItemComponent.html +19 -1
  155. package/docs/components/EclNewsTickerComponent.html +21 -3
  156. package/docs/components/EclNewsTickerItemComponent.html +19 -1
  157. package/docs/components/EclNotificationComponent.html +21 -3
  158. package/docs/components/EclPageHeaderComponent.html +19 -1
  159. package/docs/components/EclPaginationComponent.html +19 -1
  160. package/docs/components/EclPaginationItemComponent.html +49 -5
  161. package/docs/components/EclPopoverComponent.html +26 -53
  162. package/docs/components/EclRadioHelpComponent.html +19 -1
  163. package/docs/components/EclRadioLabelComponent.html +19 -1
  164. package/docs/components/EclRangeBubbleComponent.html +19 -1
  165. package/docs/components/EclRangeValueComponent.html +19 -1
  166. package/docs/components/EclRatingFieldComponent.html +20 -2
  167. package/docs/components/EclSearchFormComponent.html +21 -3
  168. package/docs/components/EclSelectContainerComponent.html +21 -3
  169. package/docs/components/EclSiteFooterComponent.html +19 -1
  170. package/docs/components/EclSiteFooterFixedContentECComponent.html +22 -2
  171. package/docs/components/EclSiteFooterFixedContentEUComponent.html +20 -2
  172. package/docs/components/EclSiteHeaderActionComponent.html +19 -1
  173. package/docs/components/EclSiteHeaderBannerTopComponent.html +19 -1
  174. package/docs/components/EclSiteHeaderComponent.html +20 -2
  175. package/docs/components/EclSiteHeaderCustomActionComponent.html +21 -3
  176. package/docs/components/EclSiteHeaderEnvironmentComponent.html +19 -1
  177. package/docs/components/EclSiteHeaderLanguageComponent.html +20 -2
  178. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +23 -10
  179. package/docs/components/EclSiteHeaderLoginComponent.html +20 -2
  180. package/docs/components/EclSiteHeaderNotificationComponent.html +19 -1
  181. package/docs/components/EclSiteHeaderSearchComponent.html +21 -3
  182. package/docs/components/EclSocialMediaFollowComponent.html +19 -1
  183. package/docs/components/EclSocialMediaFollowItemComponent.html +23 -4
  184. package/docs/components/EclSocialMediaShareComponent.html +19 -1
  185. package/docs/components/EclSocialMediaShareItemComponent.html +21 -3
  186. package/docs/components/EclSplashPageComponent.html +19 -1
  187. package/docs/components/EclSplashPageLanguageCategoryComponent.html +19 -1
  188. package/docs/components/EclSplashPageLanguageContainerComponent.html +19 -1
  189. package/docs/components/EclSplashPageLanguageLinkComponent.html +19 -1
  190. package/docs/components/EclStickyContainerComponent.html +19 -1
  191. package/docs/components/EclTabComponent.html +20 -2
  192. package/docs/components/EclTabLabelComponent.html +19 -1
  193. package/docs/components/EclTabMoreComponent.html +19 -1
  194. package/docs/components/EclTableSortButtonComponent.html +20 -2
  195. package/docs/components/EclTabsComponent.html +21 -3
  196. package/docs/components/EclTagComponent.html +20 -2
  197. package/docs/components/EclTimelineComponent.html +19 -1
  198. package/docs/components/EclTimelineItemComponent.html +21 -3
  199. package/docs/components/EclTimelineItemTogglerComponent.html +19 -1
  200. package/docs/dependencies.html +18 -0
  201. package/docs/directives/ECLBaseDirective.html +18 -0
  202. package/docs/directives/ECLClickOutsideDirective.html +18 -0
  203. package/docs/directives/ECLFormLabelOptionalDirective.html +18 -0
  204. package/docs/directives/EclBannerDescriptionDirective.html +18 -0
  205. package/docs/directives/EclBannerDescriptionLinkDirective.html +18 -0
  206. package/docs/directives/EclBannerDescriptionTextDirective.html +18 -0
  207. package/docs/directives/EclBannerImageDirective.html +18 -0
  208. package/docs/directives/EclBannerPictureDirective.html +18 -0
  209. package/docs/directives/EclBannerTitleDirective.html +18 -0
  210. package/docs/directives/EclBannerTitleLinkDirective.html +18 -0
  211. package/docs/directives/EclBannerTitleTextDirective.html +18 -0
  212. package/docs/directives/EclBannerVideoDirective.html +18 -0
  213. package/docs/directives/EclBlockquoteImageDirective.html +18 -0
  214. package/docs/directives/EclBlockquotePictureDirective.html +18 -0
  215. package/docs/directives/EclBreadcrumbContainerDirective.html +18 -0
  216. package/docs/directives/EclButtonIconContainerDirective.html +18 -0
  217. package/docs/directives/EclButtonLabelDirective.html +18 -0
  218. package/docs/directives/EclCardImageDirective.html +18 -0
  219. package/docs/directives/EclCardPictureDirective.html +18 -0
  220. package/docs/directives/EclCheckboxDirective.html +18 -0
  221. package/docs/directives/EclCheckboxInputDirective.html +18 -0
  222. package/docs/directives/EclContentBlockDescriptionDirective.html +18 -0
  223. package/docs/directives/EclContentBlockLabelDirective.html +18 -0
  224. package/docs/directives/EclContentBlockLabelsDirective.html +18 -0
  225. package/docs/directives/EclContentBlockLinkDirective.html +18 -0
  226. package/docs/directives/EclContentBlockLinksContainerDirective.html +18 -0
  227. package/docs/directives/EclContentBlockLinksDirective.html +18 -0
  228. package/docs/directives/EclContentBlockListContainerDirective.html +18 -0
  229. package/docs/directives/EclContentBlockListDirective.html +18 -0
  230. package/docs/directives/EclContentBlockPrimaryMetaDirective.html +18 -0
  231. package/docs/directives/EclContentBlockPrimaryMetasDirective.html +18 -0
  232. package/docs/directives/EclContentBlockSecondaryMetaDirective.html +18 -0
  233. package/docs/directives/EclContentBlockSecondaryMetaIconDirective.html +18 -0
  234. package/docs/directives/EclContentBlockSecondaryMetaLabelDirective.html +18 -0
  235. package/docs/directives/EclContentBlockSecondaryMetasDirective.html +18 -0
  236. package/docs/directives/EclContentBlockTagDirective.html +18 -0
  237. package/docs/directives/EclContentBlockTagsDirective.html +18 -0
  238. package/docs/directives/EclContentBlockTitleDirective.html +18 -0
  239. package/docs/directives/EclContentItemImageDirective.html +18 -0
  240. package/docs/directives/EclContentItemPictureDirective.html +18 -0
  241. package/docs/directives/EclDatePickerDirective.html +18 -0
  242. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +18 -0
  243. package/docs/directives/EclDescriptionListDefinitionListDirective.html +18 -0
  244. package/docs/directives/EclDescriptionListDirective.html +18 -0
  245. package/docs/directives/EclDescriptionListTermDirective.html +18 -0
  246. package/docs/directives/EclFeaturedItemFooterLinkDirective.html +18 -0
  247. package/docs/directives/EclFeaturedItemFooterPictureDirective.html +18 -0
  248. package/docs/directives/EclFeaturedItemLinkDirective.html +18 -0
  249. package/docs/directives/EclFeedbackMessageDirective.html +18 -0
  250. package/docs/directives/EclFileDownloadDirective.html +18 -0
  251. package/docs/directives/EclFileImageDirective.html +18 -0
  252. package/docs/directives/EclFilePictureDirective.html +18 -0
  253. package/docs/directives/EclFilePreviewDirective.html +18 -0
  254. package/docs/directives/EclFileTitleDirective.html +18 -0
  255. package/docs/directives/EclFileTranslationDownloadDirective.html +18 -0
  256. package/docs/directives/EclFileUploadDirective.html +18 -0
  257. package/docs/directives/EclGalleryMediaDirective.html +18 -0
  258. package/docs/directives/EclGalleryPictureDirective.html +18 -0
  259. package/docs/directives/EclGalleryThumbnailDirective.html +18 -0
  260. package/docs/directives/EclHelpBlockDirective.html +18 -0
  261. package/docs/directives/EclHiddenDirective.html +18 -0
  262. package/docs/directives/EclIndicatorDirective.html +18 -0
  263. package/docs/directives/EclInpageNavigationListDirective.html +18 -0
  264. package/docs/directives/EclLabelDirective.html +18 -0
  265. package/docs/directives/EclLinkDirective.html +18 -0
  266. package/docs/directives/EclLinkIconContainerDirective.html +18 -0
  267. package/docs/directives/{EclIndicatorDirective-1.html → EclLinkIndicatorDirective.html} +20 -2
  268. package/docs/directives/EclLinkLabelDirective.html +18 -0
  269. package/docs/directives/EclListIllustrationIconDirective.html +18 -0
  270. package/docs/directives/EclListIllustrationImageDirective.html +18 -0
  271. package/docs/directives/EclListIllustrationPictureDirective.html +18 -0
  272. package/docs/directives/EclLoadingIndicatorLabelDirective.html +18 -0
  273. package/docs/directives/EclLoadingIndicatorOverlayDirective.html +18 -0
  274. package/docs/directives/EclMediaContainerIframeDirective.html +18 -0
  275. package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +18 -0
  276. package/docs/directives/EclMediaContainerItemDirective.html +18 -0
  277. package/docs/directives/EclMediaContainerPictureDirective.html +18 -0
  278. package/docs/directives/EclMegaMenuContainerDirective.html +18 -0
  279. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +18 -0
  280. package/docs/directives/EclMegaMenuFeaturedListDirective.html +18 -0
  281. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +18 -0
  282. package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +18 -0
  283. package/docs/directives/EclMegaMenuListDirective.html +18 -0
  284. package/docs/directives/EclMegaMenuSpacerDirective.html +18 -0
  285. package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
  286. package/docs/directives/EclModalBodyFixedContentDirective.html +18 -0
  287. package/docs/directives/EclModalCloseDirective.html +18 -0
  288. package/docs/directives/EclModalTriggerDirective.html +18 -0
  289. package/docs/directives/EclMultiselectOptionDirective.html +18 -0
  290. package/docs/directives/EclNavigationListImageDirective.html +18 -0
  291. package/docs/directives/EclNavigationListPictureDirective.html +18 -0
  292. package/docs/directives/EclNewsTickerIconDirective.html +18 -0
  293. package/docs/directives/EclNotificationTitleDirective.html +18 -0
  294. package/docs/directives/EclOrderedListDirective.html +18 -0
  295. package/docs/directives/EclOrderedListItemDirective.html +18 -0
  296. package/docs/directives/EclPageHeaderBackgroundImageDirective.html +18 -0
  297. package/docs/directives/EclPageHeaderBackgroundPictureDirective.html +18 -0
  298. package/docs/directives/EclPageHeaderDescriptionContainerDirective.html +18 -0
  299. package/docs/directives/EclPageHeaderDescriptionDirective.html +18 -0
  300. package/docs/directives/EclPageHeaderDescriptionPictureDirective.html +18 -0
  301. package/docs/directives/EclPageHeaderDescriptionThumbnailDirective.html +18 -0
  302. package/docs/directives/EclPageHeaderInfoDirective.html +18 -0
  303. package/docs/directives/EclPageHeaderMetaDirective.html +18 -0
  304. package/docs/directives/EclPageHeaderMetaItemDirective.html +18 -0
  305. package/docs/directives/EclPageHeaderTitleDirective.html +18 -0
  306. package/docs/directives/EclPaginationListDirective.html +18 -0
  307. package/docs/directives/EclPopoverContentDirective.html +18 -0
  308. package/docs/directives/EclPopoverToggleDirective.html +18 -0
  309. package/docs/directives/EclRadioDirective.html +18 -0
  310. package/docs/directives/EclRadioInputDirective.html +18 -0
  311. package/docs/directives/EclRangeDirective.html +20 -2
  312. package/docs/directives/EclSelectDirective.html +18 -0
  313. package/docs/directives/EclSeparatorDirective.html +18 -0
  314. package/docs/directives/EclSiteFooterColumnDirective.html +18 -0
  315. package/docs/directives/EclSiteFooterContentDirective.html +18 -0
  316. package/docs/directives/EclSiteFooterDescriptionDirective.html +18 -0
  317. package/docs/directives/EclSiteFooterLinkDirective.html +18 -0
  318. package/docs/directives/EclSiteFooterListDirective.html +18 -0
  319. package/docs/directives/EclSiteFooterListItemDirective.html +18 -0
  320. package/docs/directives/EclSiteFooterLogoDirective.html +18 -0
  321. package/docs/directives/EclSiteFooterLogoImageDirective.html +18 -0
  322. package/docs/directives/EclSiteFooterLogoItemDirective.html +18 -0
  323. package/docs/directives/EclSiteFooterLogoLinkDirective.html +18 -0
  324. package/docs/directives/EclSiteFooterLogoListDirective.html +18 -0
  325. package/docs/directives/EclSiteFooterPictureDirective.html +18 -0
  326. package/docs/directives/EclSiteFooterRowDirective.html +18 -0
  327. package/docs/directives/EclSiteFooterSectionDirective.html +18 -0
  328. package/docs/directives/EclSiteFooterTitleDirective.html +18 -0
  329. package/docs/directives/EclSiteFooterTitleLinkDirective.html +18 -0
  330. package/docs/directives/EclSiteHeaderCtaDirective.html +18 -0
  331. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +18 -0
  332. package/docs/directives/EclSiteHeaderCustomActionLinkDirective.html +18 -0
  333. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +18 -0
  334. package/docs/directives/EclSiteHeaderImageDirective.html +18 -0
  335. package/docs/directives/EclSiteHeaderLinkDirective.html +18 -0
  336. package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +18 -0
  337. package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +18 -0
  338. package/docs/directives/EclSiteHeaderPictureDirective.html +18 -0
  339. package/docs/directives/EclSocialMediaFollowLinkDirective.html +18 -0
  340. package/docs/directives/EclSocialMediaShareLinkDirective.html +18 -0
  341. package/docs/directives/EclSplashPageLanguageItemDirective.html +18 -0
  342. package/docs/directives/EclSplashPageLanguageListDirective.html +18 -0
  343. package/docs/directives/EclSplashPageLogoImageDirective.html +18 -0
  344. package/docs/directives/EclSplashPageLogoLinkDirective.html +18 -0
  345. package/docs/directives/EclSplashPagePictureDirective.html +18 -0
  346. package/docs/directives/EclTableBodyDirective.html +18 -0
  347. package/docs/directives/EclTableCaptionDirective.html +18 -0
  348. package/docs/directives/EclTableCellDirective.html +18 -0
  349. package/docs/directives/EclTableCellGroupDirective.html +18 -0
  350. package/docs/directives/EclTableDirective.html +18 -0
  351. package/docs/directives/EclTableHeadDirective.html +18 -0
  352. package/docs/directives/EclTableHeaderDirective.html +18 -0
  353. package/docs/directives/EclTableResponsiveDirective.html +18 -0
  354. package/docs/directives/EclTableRowDirective.html +18 -0
  355. package/docs/directives/EclTagIconExternalDirective.html +18 -0
  356. package/docs/directives/EclTagSetDirective.html +18 -0
  357. package/docs/directives/EclTagSetItemDirective.html +18 -0
  358. package/docs/directives/EclTextAreaDirective.html +18 -0
  359. package/docs/directives/EclTextInputDirective.html +18 -0
  360. package/docs/directives/EclTimelineItemLabelDirective.html +18 -0
  361. package/docs/directives/EclTimelineItemTitleDirective.html +18 -0
  362. package/docs/directives/EclUnorderedListDirective.html +18 -0
  363. package/docs/directives/EclUnorderedListItemDirective.html +18 -0
  364. package/docs/index.html +20 -2
  365. package/docs/injectables/EclAreaDataService.html +18 -0
  366. package/docs/injectables/EclDefaultLanguageService.html +18 -0
  367. package/docs/injectables/EclHeaderMenuComunicationService.html +18 -0
  368. package/docs/injectables/EclInpageNavigationService.html +18 -0
  369. package/docs/injectables/EclMegaMenuDataService.html +18 -0
  370. package/docs/injectables/EclMegaMenuService.html +18 -0
  371. package/docs/injectables/EclRtlService.html +18 -0
  372. package/docs/injectables/EclThemeService.html +18 -0
  373. package/docs/injectables/EclUserDeviceService.html +18 -0
  374. package/docs/interfaces/EclBreadcrumb.html +18 -0
  375. package/docs/interfaces/EclCarouselItem.html +18 -0
  376. package/docs/interfaces/EclCategoryFilterItem.html +18 -0
  377. package/docs/interfaces/EclFileUpload.html +18 -0
  378. package/docs/interfaces/EclGalleryItem.html +18 -0
  379. package/docs/interfaces/EclLanguage.html +18 -0
  380. package/docs/interfaces/EclMegaMenuItem.html +18 -0
  381. package/docs/interfaces/EclMenuItem.html +18 -0
  382. package/docs/interfaces/EclModalResult.html +18 -0
  383. package/docs/interfaces/EclMultiselectOption.html +18 -0
  384. package/docs/interfaces/EclTab.html +18 -0
  385. package/docs/js/libs/bootstrap-native.js +1 -1
  386. package/docs/js/libs/jszip.min.js +13 -0
  387. package/docs/js/libs/svg-pan-zoom.min.js +3 -3
  388. package/docs/js/libs/tablesort.min.js +3 -3
  389. package/docs/js/libs/tablesort.number.min.js +3 -3
  390. package/docs/js/menu-wc.js +39 -29
  391. package/docs/js/menu-wc_es5.js +1 -1
  392. package/docs/js/routes/routes_index.js +1 -0
  393. package/docs/js/routes.js +15 -8
  394. package/docs/js/search/search_index.js +2 -2
  395. package/docs/license.html +20 -2
  396. package/docs/miscellaneous/enumerations.html +18 -0
  397. package/docs/miscellaneous/variables.html +86 -66
  398. package/docs/modules/EclAccordionModule.html +18 -0
  399. package/docs/modules/EclAllModule.html +27 -360
  400. package/docs/modules/EclAppModule.html +18 -0
  401. package/docs/modules/EclBannerModule.html +18 -0
  402. package/docs/modules/EclBlockquoteModule.html +18 -0
  403. package/docs/modules/EclBreadcrumbModule.html +18 -0
  404. package/docs/modules/EclButtonModule.html +18 -0
  405. package/docs/modules/EclCardModule.html +18 -0
  406. package/docs/modules/EclCarouselModule.html +18 -0
  407. package/docs/modules/EclCategoryFilterModule.html +18 -0
  408. package/docs/modules/EclCheckboxModule.html +18 -0
  409. package/docs/modules/EclContentBlockModule.html +18 -0
  410. package/docs/modules/EclContentItemModule.html +18 -0
  411. package/docs/modules/EclDateBlockModule.html +18 -0
  412. package/docs/modules/EclDatePickerModule.html +18 -0
  413. package/docs/modules/EclExpandableModule.html +18 -0
  414. package/docs/modules/EclFactFiguresModule.html +18 -0
  415. package/docs/modules/EclFeaturedModule.html +18 -0
  416. package/docs/modules/EclFeedbackMessageModule.html +18 -0
  417. package/docs/modules/EclFileModule.html +18 -0
  418. package/docs/modules/EclFileUploadModule.html +18 -0
  419. package/docs/modules/EclFormGroupModule.html +18 -0
  420. package/docs/modules/EclFormLabelModule.html +18 -0
  421. package/docs/modules/EclGalleryModule.html +18 -0
  422. package/docs/modules/EclHelpBlockModule.html +18 -0
  423. package/docs/modules/EclHiddenModule.html +18 -0
  424. package/docs/modules/EclIconModule.html +18 -0
  425. package/docs/modules/EclInpageNavigationModule.html +18 -0
  426. package/docs/modules/EclLabelModule.html +18 -0
  427. package/docs/modules/EclLinkModule.html +24 -3
  428. package/docs/modules/EclListIllustrationModule.html +18 -0
  429. package/docs/modules/EclListModule.html +18 -0
  430. package/docs/modules/EclLoadingIndicatorModule.html +18 -0
  431. package/docs/modules/EclMediaContainerModule.html +18 -0
  432. package/docs/modules/EclMegaMenuModule.html +18 -0
  433. package/docs/modules/EclMenuModule.html +18 -0
  434. package/docs/modules/EclModalModule.html +18 -0
  435. package/docs/modules/EclMultiselectModule.html +18 -0
  436. package/docs/modules/EclNavigationListModule.html +18 -0
  437. package/docs/modules/EclNewsTickerModule.html +18 -0
  438. package/docs/modules/EclNotificationModule.html +18 -0
  439. package/docs/modules/EclPageHeaderModule.html +18 -0
  440. package/docs/modules/EclPaginationModule.html +18 -0
  441. package/docs/modules/EclPopoverModule.html +18 -0
  442. package/docs/modules/EclRadioModule.html +18 -0
  443. package/docs/modules/EclRangeModule.html +18 -0
  444. package/docs/modules/EclRatingFieldModule.html +18 -0
  445. package/docs/modules/EclSearchFormModule.html +18 -0
  446. package/docs/modules/EclSelectModule.html +18 -0
  447. package/docs/modules/EclSeparatorModule.html +18 -0
  448. package/docs/modules/EclSiteFooterModule.html +18 -0
  449. package/docs/modules/EclSiteHeaderModule.html +18 -0
  450. package/docs/modules/EclSocialMediaFollowModule.html +18 -0
  451. package/docs/modules/EclSocialMediaShareModule.html +18 -0
  452. package/docs/modules/EclSplashPageModule.html +18 -0
  453. package/docs/modules/EclStickyContainerModule.html +18 -0
  454. package/docs/modules/EclTableModule.html +18 -0
  455. package/docs/modules/EclTabsModule.html +18 -0
  456. package/docs/modules/EclTagModule.html +18 -0
  457. package/docs/modules/EclTextAreaModule.html +18 -0
  458. package/docs/modules/EclTextInputModule.html +18 -0
  459. package/docs/modules/EclTimelineModule.html +18 -0
  460. package/docs/modules.html +18 -0
  461. package/docs/overview.html +28 -0
  462. package/docs/pipes/BoldTextPipe.html +18 -0
  463. package/docs/properties.html +19 -1
  464. package/docs/routes.html +204 -0
  465. package/docs/template-playground/default-templates.json +192 -0
  466. package/docs/template-playground/hbs-render.service.ts +212 -0
  467. package/docs/template-playground/main.ts +9 -0
  468. package/docs/template-playground/template-editor.service.ts +173 -0
  469. package/docs/template-playground/template-playground.component.ts +614 -0
  470. package/docs/template-playground/template-playground.module.ts +29 -0
  471. package/docs/template-playground/zip-export.service.ts +86 -0
  472. package/docs/template-playground-app/app.js +1389 -0
  473. package/docs/template-playground-app/index.html +462 -0
  474. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +13 -13
  475. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  476. package/fesm2022/eui-ecl-components-ecl-app.mjs +7 -7
  477. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  478. package/fesm2022/eui-ecl-components-ecl-banner.mjs +102 -81
  479. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  480. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +13 -13
  481. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  482. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +22 -23
  483. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  484. package/fesm2022/eui-ecl-components-ecl-button.mjs +18 -18
  485. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  486. package/fesm2022/eui-ecl-components-ecl-card.mjs +16 -16
  487. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  488. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +53 -31
  489. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  490. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +15 -15
  491. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  492. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +18 -18
  493. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  494. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +58 -58
  495. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  496. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +13 -13
  497. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  498. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +31 -7
  499. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  500. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +7 -7
  501. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  502. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +10 -10
  503. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  504. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +22 -22
  505. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  506. package/fesm2022/eui-ecl-components-ecl-featured.mjs +28 -26
  507. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  508. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +7 -7
  509. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  510. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +7 -7
  511. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  512. package/fesm2022/eui-ecl-components-ecl-file.mjs +41 -43
  513. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  514. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +7 -7
  515. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  516. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +10 -10
  517. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  518. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +32 -30
  519. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  520. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +7 -7
  521. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  522. package/fesm2022/eui-ecl-components-ecl-icon.mjs +18 -19
  523. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  524. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +20 -20
  525. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  526. package/fesm2022/eui-ecl-components-ecl-label.mjs +7 -7
  527. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  528. package/fesm2022/eui-ecl-components-ecl-link.mjs +21 -21
  529. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  530. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -19
  531. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  532. package/fesm2022/eui-ecl-components-ecl-list.mjs +33 -33
  533. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  534. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -13
  535. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  536. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -22
  537. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  538. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +61 -62
  539. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  540. package/fesm2022/eui-ecl-components-ecl-menu.mjs +26 -28
  541. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  542. package/fesm2022/eui-ecl-components-ecl-modal.mjs +29 -29
  543. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  544. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +34 -34
  545. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  546. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -16
  547. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  548. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +17 -17
  549. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  550. package/fesm2022/eui-ecl-components-ecl-notification.mjs +14 -14
  551. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  552. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +37 -37
  553. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  554. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +28 -22
  555. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  556. package/fesm2022/eui-ecl-components-ecl-popover.mjs +21 -21
  557. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  558. package/fesm2022/eui-ecl-components-ecl-radio.mjs +16 -16
  559. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  560. package/fesm2022/eui-ecl-components-ecl-range.mjs +14 -14
  561. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  562. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +9 -9
  563. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  564. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +12 -12
  565. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  566. package/fesm2022/eui-ecl-components-ecl-select.mjs +14 -14
  567. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  568. package/fesm2022/eui-ecl-components-ecl-separator.mjs +7 -7
  569. package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +1 -1
  570. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +65 -64
  571. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  572. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +78 -78
  573. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  574. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +17 -18
  575. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  576. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs +16 -16
  577. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs.map +1 -1
  578. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +31 -31
  579. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  580. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +7 -7
  581. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  582. package/fesm2022/eui-ecl-components-ecl-table.mjs +37 -37
  583. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  584. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +21 -21
  585. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  586. package/fesm2022/eui-ecl-components-ecl-tag.mjs +18 -18
  587. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  588. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +7 -7
  589. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  590. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +7 -7
  591. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  592. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +22 -22
  593. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  594. package/fesm2022/eui-ecl-core.mjs +25 -25
  595. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  596. package/fesm2022/eui-ecl-shared.mjs +3 -3
  597. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  598. package/fesm2022/eui-ecl.mjs +184 -304
  599. package/fesm2022/eui-ecl.mjs.map +1 -1
  600. package/index.d.ts +1 -1
  601. package/package.json +37 -37
@@ -21,10 +21,10 @@ class EclCardPictureDirective extends ECLBaseDirective {
21
21
  get cssClasses() {
22
22
  return [super.getCssClasses('ecl-picture ecl-card__picture')].join(' ').trim();
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "20.1.6", type: EclCardPictureDirective, isStandalone: true, selector: "picture[eclCardPicture]", inputs: { hasZoom: ["hasZoom", "hasZoom", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "class.ecl-picture--zoom": "this.hasZoom" } }, usesInheritance: true, ngImport: i0 }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.0.0-next.3", type: EclCardPictureDirective, isStandalone: true, selector: "picture[eclCardPicture]", inputs: { hasZoom: ["hasZoom", "hasZoom", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "class.ecl-picture--zoom": "this.hasZoom" } }, usesInheritance: true, ngImport: i0 }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardPictureDirective, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardPictureDirective, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  selector: 'picture[eclCardPicture]',
@@ -54,10 +54,10 @@ class EclCardImageDirective extends ECLBaseDirective {
54
54
  get cssClasses() {
55
55
  return [super.getCssClasses('ecl-card__image')].join(' ').trim();
56
56
  }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
58
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclCardImageDirective, isStandalone: true, selector: "img[eclCardImage]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
58
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclCardImageDirective, isStandalone: true, selector: "img[eclCardImage]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardImageDirective, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardImageDirective, decorators: [{
61
61
  type: Directive,
62
62
  args: [{
63
63
  selector: 'img[eclCardImage]',
@@ -110,10 +110,10 @@ class EclCardComponent extends ECLBaseDirective {
110
110
  }
111
111
  }
112
112
  }
113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", type: EclCardComponent, isStandalone: true, selector: "ecl-card", host: { properties: { "attr.role": "this.role", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclContentBlock", first: true, predicate: i0.forwardRef(() => EclContentBlockComponent), descendants: true }, { propertyName: "eclContentBlockTitle", first: true, predicate: i0.forwardRef(() => EclContentBlockTitleDirective), descendants: true }, { propertyName: "eclCardImage", first: true, predicate: i0.forwardRef(() => EclCardImageDirective), descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
113
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
114
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclCardComponent, isStandalone: true, selector: "ecl-card", host: { properties: { "attr.role": "this.role", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclContentBlock", first: true, predicate: i0.forwardRef(() => EclContentBlockComponent), descendants: true }, { propertyName: "eclContentBlockTitle", first: true, predicate: i0.forwardRef(() => EclContentBlockTitleDirective), descendants: true }, { propertyName: "eclCardImage", first: true, predicate: i0.forwardRef(() => EclCardImageDirective), descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
115
115
  }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardComponent, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardComponent, decorators: [{
117
117
  type: Component,
118
118
  args: [{ selector: 'ecl-card', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
119
119
  }], propDecorators: { role: [{
@@ -144,10 +144,10 @@ class EclCardBodyComponent extends ECLBaseDirective {
144
144
  get cssClasses() {
145
145
  return [super.getCssClasses('ecl-card__body')].join(' ').trim();
146
146
  }
147
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
148
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.6", type: EclCardBodyComponent, isStandalone: true, selector: "ecl-card-body", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardBodyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.3", type: EclCardBodyComponent, isStandalone: true, selector: "ecl-card-body", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }); }
149
149
  }
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardBodyComponent, decorators: [{
150
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardBodyComponent, decorators: [{
151
151
  type: Component,
152
152
  args: [{ selector: 'ecl-card-body', template: "<ng-content></ng-content>\n", styles: [":host{display:block}\n"] }]
153
153
  }], propDecorators: { cssClasses: [{
@@ -168,17 +168,17 @@ const COMPONENTS = [
168
168
  * @deprecated Use {@link EUI_ECL_CARD} instead.
169
169
  */
170
170
  class EclCardModule {
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
172
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: EclCardModule, imports: [EclCardComponent,
171
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
172
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardModule, imports: [EclCardComponent,
173
173
  EclCardBodyComponent,
174
174
  EclCardPictureDirective,
175
175
  EclCardImageDirective], exports: [EclCardComponent,
176
176
  EclCardBodyComponent,
177
177
  EclCardPictureDirective,
178
178
  EclCardImageDirective] }); }
179
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardModule }); }
179
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardModule }); }
180
180
  }
181
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCardModule, decorators: [{
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCardModule, decorators: [{
182
182
  type: NgModule,
183
183
  args: [{
184
184
  imports: [...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-card.mjs","sources":["../../components/ecl-card/ecl-card-picture.directive.ts","../../components/ecl-card/ecl-card.component.ts","../../components/ecl-card/ecl-card.component.html","../../components/ecl-card/ecl-card-body.component.ts","../../components/ecl-card/ecl-card-body.component.html","../../components/ecl-card/ecl-card.module.ts","../../components/ecl-card/index.ts","../../components/ecl-card/eui-ecl-components-ecl-card.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the picture element used in ECL Card.\n * Applies required ECL CSS classes and optionally enables zoom effect.\n */\n@Directive({\n selector: 'picture[eclCardPicture]',\n})\nexport class EclCardPictureDirective extends ECLBaseDirective {\n /**\n * Returns the set of CSS classes to apply to the picture element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-card__picture')].join(' ').trim();\n }\n\n /**\n * When true, adds the `ecl-picture--zoom` class to enable zoom styling.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-picture--zoom') hasZoom = false;\n}\n\n/**\n * Directive for the image element used in ECL Card.\n * Applies the ECL-specific image class for card usage.\n */\n@Directive({\n selector: 'img[eclCardImage]',\n})\nexport class EclCardImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * Returns the CSS classes to apply to the image element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-card__image')].join(' ').trim();\n }\n}\n","import { Component, HostBinding, ContentChild, Renderer2, AfterViewInit, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { EclCardImageDirective } from './ecl-card-picture.directive';\nimport {\n EclContentBlockComponent,\n EclContentBlockTitleDirective,\n} from '@eui/ecl/components/ecl-content-block';\n\n/**\n * Card component based on the ECL design system.\n * Combines image, title, and content block areas into a unified card layout.\n */\n@Component({\n selector: 'ecl-card',\n templateUrl: './ecl-card.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclCardComponent extends ECLBaseDirective implements AfterViewInit {\n /**\n * Sets the ARIA role for the card.\n */\n @HostBinding('attr.role') role = 'article';\n\n /**\n * Computes and returns the CSS class string for the card container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-card')].join(' ').trim();\n }\n\n /**\n * Projected ECL content block inside the card.\n */\n @ContentChild(forwardRef(() => EclContentBlockComponent), { descendants: true }) eclContentBlock: EclContentBlockComponent;\n\n /**\n * Projected content block title directive inside the card.\n */\n @ContentChild(forwardRef(() => EclContentBlockTitleDirective), { descendants: true }) eclContentBlockTitle: EclContentBlockTitleDirective;\n\n /**\n * Projected image directive inside the card.\n */\n @ContentChild(forwardRef(() => EclCardImageDirective), { descendants: true }) eclCardImage: EclCardImageDirective;\n private renderer = inject(Renderer2);\n\n /**\n * Lifecycle hook triggered after view initialization.\n * Applies additional styling and attaches interaction between image and title link.\n */\n ngAfterViewInit(): void {\n this.attachClickEventToImage();\n\n if (this.eclContentBlock) {\n setTimeout(() => this.eclContentBlock.class = 'ecl-card__content-block');\n }\n }\n\n /**\n * Adds a click listener to the projected image element.\n * When clicked, triggers the title link click handler if available.\n */\n private attachClickEventToImage(): void {\n if (this.eclContentBlockTitle && this.eclContentBlockTitle.eclLink) {\n if (this.eclCardImage) {\n this.renderer.setStyle(this.eclCardImage.el.nativeElement, 'cursor', 'pointer');\n this.renderer.listen(this.eclCardImage.el.nativeElement, 'click', () => {\n this.eclContentBlockTitle.eclLink.onClick();\n });\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Card body component based on the ECL design system.\n * Provides a wrapper for the main content area of the card.\n */\n@Component({\n selector: 'ecl-card-body',\n templateUrl: './ecl-card-body.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclCardBodyComponent extends ECLBaseDirective {\n /**\n * Computes and returns the CSS class string for the card body element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-card__body')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclCardBodyComponent } from './ecl-card-body.component';\nimport { EclCardComponent } from './ecl-card.component';\nimport { EclCardPictureDirective, EclCardImageDirective } from './ecl-card-picture.directive';\n\nconst COMPONENTS = [\n EclCardComponent,\n EclCardBodyComponent,\n EclCardPictureDirective,\n EclCardImageDirective,\n];\n\n/**\n * @description\n * Module that provides the EclCard component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_CARD} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclCardModule {}\n","import { EclCardComponent } from './ecl-card.component';\nimport { EclCardBodyComponent } from './ecl-card-body.component';\nimport { EclCardImageDirective, EclCardPictureDirective } from './ecl-card-picture.directive';\n\nexport * from './ecl-card.module';\nexport * from './ecl-card.component';\nexport * from './ecl-card-body.component';\nexport * from './ecl-card-picture.directive';\n\nexport const EUI_ECL_CARD = [\n EclCardComponent,\n EclCardBodyComponent,\n EclCardImageDirective,\n EclCardPictureDirective,\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-card.mjs","sources":["../../components/ecl-card/ecl-card-picture.directive.ts","../../components/ecl-card/ecl-card.component.ts","../../components/ecl-card/ecl-card.component.html","../../components/ecl-card/ecl-card-body.component.ts","../../components/ecl-card/ecl-card-body.component.html","../../components/ecl-card/ecl-card.module.ts","../../components/ecl-card/index.ts","../../components/ecl-card/eui-ecl-components-ecl-card.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the picture element used in ECL Card.\n * Applies required ECL CSS classes and optionally enables zoom effect.\n */\n@Directive({\n selector: 'picture[eclCardPicture]',\n})\nexport class EclCardPictureDirective extends ECLBaseDirective {\n /**\n * Returns the set of CSS classes to apply to the picture element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-card__picture')].join(' ').trim();\n }\n\n /**\n * When true, adds the `ecl-picture--zoom` class to enable zoom styling.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-picture--zoom') hasZoom = false;\n}\n\n/**\n * Directive for the image element used in ECL Card.\n * Applies the ECL-specific image class for card usage.\n */\n@Directive({\n selector: 'img[eclCardImage]',\n})\nexport class EclCardImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * Returns the CSS classes to apply to the image element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-card__image')].join(' ').trim();\n }\n}\n","import { Component, HostBinding, ContentChild, Renderer2, AfterViewInit, forwardRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { EclCardImageDirective } from './ecl-card-picture.directive';\nimport {\n EclContentBlockComponent,\n EclContentBlockTitleDirective,\n} from '@eui/ecl/components/ecl-content-block';\n\n/**\n * Card component based on the ECL design system.\n * Combines image, title, and content block areas into a unified card layout.\n */\n@Component({\n selector: 'ecl-card',\n templateUrl: './ecl-card.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclCardComponent extends ECLBaseDirective implements AfterViewInit {\n /**\n * Sets the ARIA role for the card.\n */\n @HostBinding('attr.role') role = 'article';\n\n /**\n * Computes and returns the CSS class string for the card container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-card')].join(' ').trim();\n }\n\n /**\n * Projected ECL content block inside the card.\n */\n @ContentChild(forwardRef(() => EclContentBlockComponent), { descendants: true }) eclContentBlock: EclContentBlockComponent;\n\n /**\n * Projected content block title directive inside the card.\n */\n @ContentChild(forwardRef(() => EclContentBlockTitleDirective), { descendants: true }) eclContentBlockTitle: EclContentBlockTitleDirective;\n\n /**\n * Projected image directive inside the card.\n */\n @ContentChild(forwardRef(() => EclCardImageDirective), { descendants: true }) eclCardImage: EclCardImageDirective;\n private renderer = inject(Renderer2);\n\n /**\n * Lifecycle hook triggered after view initialization.\n * Applies additional styling and attaches interaction between image and title link.\n */\n ngAfterViewInit(): void {\n this.attachClickEventToImage();\n\n if (this.eclContentBlock) {\n setTimeout(() => this.eclContentBlock.class = 'ecl-card__content-block');\n }\n }\n\n /**\n * Adds a click listener to the projected image element.\n * When clicked, triggers the title link click handler if available.\n */\n private attachClickEventToImage(): void {\n if (this.eclContentBlockTitle && this.eclContentBlockTitle.eclLink) {\n if (this.eclCardImage) {\n this.renderer.setStyle(this.eclCardImage.el.nativeElement, 'cursor', 'pointer');\n this.renderer.listen(this.eclCardImage.el.nativeElement, 'click', () => {\n this.eclContentBlockTitle.eclLink.onClick();\n });\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Card body component based on the ECL design system.\n * Provides a wrapper for the main content area of the card.\n */\n@Component({\n selector: 'ecl-card-body',\n templateUrl: './ecl-card-body.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclCardBodyComponent extends ECLBaseDirective {\n /**\n * Computes and returns the CSS class string for the card body element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-card__body')].join(' ').trim();\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclCardBodyComponent } from './ecl-card-body.component';\nimport { EclCardComponent } from './ecl-card.component';\nimport { EclCardPictureDirective, EclCardImageDirective } from './ecl-card-picture.directive';\n\nconst COMPONENTS = [\n EclCardComponent,\n EclCardBodyComponent,\n EclCardPictureDirective,\n EclCardImageDirective,\n];\n\n/**\n * @description\n * Module that provides the EclCard component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_CARD} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclCardModule {}\n","import { EclCardComponent } from './ecl-card.component';\nimport { EclCardBodyComponent } from './ecl-card-body.component';\nimport { EclCardImageDirective, EclCardPictureDirective } from './ecl-card-picture.directive';\n\nexport * from './ecl-card.module';\nexport * from './ecl-card.component';\nexport * from './ecl-card-body.component';\nexport * from './ecl-card-picture.directive';\n\nexport const EUI_ECL_CARD = [\n EclCardComponent,\n EclCardBodyComponent,\n EclCardImageDirective,\n EclCardPictureDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -60,10 +60,10 @@ class EclCarouselItemComponent extends ECLBaseDirective {
60
60
  onSlideClick() {
61
61
  this.slideClick.next(new EclSlideEvent(this));
62
62
  }
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "20.1.6", type: EclCarouselItemComponent, isStandalone: true, selector: "ecl-carousel-item", inputs: { id: "id", isCurrent: ["isCurrent", "isCurrent", booleanAttribute] }, outputs: { slideClick: "slideClick" }, host: { listeners: { "click": "onSlideClick()" }, properties: { "attr.aria-label": "this.ariaLabel", "attr.role": "this.role", "attr.aria-roledescription": "this.roleDescription", "style.width.%": "this.width", "class": "this.cssClasses", "attr.inert": "this.isInert" } }, queries: [{ propertyName: "banner", first: true, predicate: i0.forwardRef(() => EclBannerComponent), descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host:before{left:0!important;display:none}\n"] }); }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.0.0-next.3", type: EclCarouselItemComponent, isStandalone: true, selector: "ecl-carousel-item", inputs: { id: "id", isCurrent: ["isCurrent", "isCurrent", booleanAttribute] }, outputs: { slideClick: "slideClick" }, host: { listeners: { "click": "onSlideClick()" }, properties: { "attr.aria-label": "this.ariaLabel", "attr.role": "this.role", "attr.aria-roledescription": "this.roleDescription", "style.width.%": "this.width", "class": "this.cssClasses", "attr.inert": "this.isInert" } }, queries: [{ propertyName: "banner", first: true, predicate: i0.forwardRef(() => EclBannerComponent), descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host:before{left:0!important;display:none}\n"] }); }
65
65
  }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselItemComponent, decorators: [{
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselItemComponent, decorators: [{
67
67
  type: Component,
68
68
  args: [{ selector: 'ecl-carousel-item', template: "<ng-content></ng-content>\n", styles: [":host:before{left:0!important;display:none}\n"] }]
69
69
  }], propDecorators: { ariaLabel: [{
@@ -165,6 +165,9 @@ class EclCarouselComponent extends ECLBaseDirective {
165
165
  get cssClasses() {
166
166
  return [super.getCssClasses('ecl-carousel')].join(' ').trim();
167
167
  }
168
+ onWindowResize() {
169
+ this.observeElementSizeChanges();
170
+ }
168
171
  /**
169
172
  * Angular lifecycle hook: initializes autoplay and RTL detection.
170
173
  */
@@ -652,43 +655,59 @@ class EclCarouselComponent extends ECLBaseDirective {
652
655
  * Observes changes to the carousel's container element size using ResizeObserver.
653
656
  */
654
657
  observeElementSizeChanges() {
655
- new ResizeObserver(() => {
656
- setTimeout(() => {
657
- if (this.isSmallTabletBreakpoint) {
658
- this.resetHeight();
659
- }
660
- else if (!this.isSmallTabletBreakpoint) {
661
- this.checkBannerHeights();
662
- }
663
- this.cd.detectChanges();
664
- }, this.TIMEOUT_INTERVAL);
665
- }).observe(this.carouselContainerElement.nativeElement);
658
+ // new ResizeObserver(() => { // Removing this for now , because it is causing problems (infinite loop). Observing window:resize.
659
+ setTimeout(() => {
660
+ if (this.isSmallTabletBreakpoint) {
661
+ this.resetHeight();
662
+ }
663
+ else if (!this.isSmallTabletBreakpoint) {
664
+ this.checkBannerHeights();
665
+ }
666
+ }, this.TIMEOUT_INTERVAL);
667
+ // }).observe(this.carouselContainerElement.nativeElement);
666
668
  }
667
669
  /**
668
670
  * Normalizes the height of all banners to match the tallest banner.
669
671
  */
670
672
  checkBannerHeights() {
671
673
  const heightValues = this.slides.map((slide) => {
672
- const height = slide.banner?.el.nativeElement.offsetHeight;
674
+ const el = slide.banner?.el.nativeElement;
675
+ if (!el)
676
+ return undefined;
677
+ const height = el.offsetHeight;
678
+ const computedStyle = getComputedStyle(el);
679
+ const footerHeight = parseInt(computedStyle.getPropertyValue('--banner-footer-height'), 10) || 0;
673
680
  if (height === 'auto') {
674
681
  return 0;
675
682
  }
676
683
  if (Number.isNaN(height) || height === 100) {
677
- return 1;
684
+ return 0;
678
685
  }
679
- return height;
686
+ return height + footerHeight;
680
687
  });
681
- const elementHeights = heightValues.filter((height) => height !== undefined);
688
+ const elementHeights = heightValues.filter((h) => h !== undefined);
682
689
  const tallestElementHeight = Math.max(...elementHeights);
683
690
  if (tallestElementHeight > 0) {
684
691
  this.slides.forEach((slide) => {
685
692
  const banner = slide.banner;
686
- if (banner) {
687
- const bannerImage = banner.eclBannerImage;
688
- this.renderer2.setStyle(banner.el.nativeElement, 'height', `${tallestElementHeight}px`);
689
- if (bannerImage) {
690
- this.renderer2.setStyle(bannerImage.el.nativeElement, 'aspectRatio', 'auto');
691
- }
693
+ if (!banner)
694
+ return;
695
+ const el = banner.el.nativeElement;
696
+ const bannerImage = banner.eclBannerImage;
697
+ const bannerVideo = banner.eclBannerVideo;
698
+ const computedStyle = getComputedStyle(el);
699
+ const footerHeight = parseInt(computedStyle.getPropertyValue('--banner-footer-height'), 10) || 0;
700
+ const desiredHeight = tallestElementHeight; // - footerHeight;
701
+ const currentHeight = el.offsetHeight;
702
+ // ✅ only apply style if height actually changed
703
+ if (currentHeight !== desiredHeight) {
704
+ this.renderer2.setStyle(el, 'height', `${desiredHeight}px`);
705
+ }
706
+ if (bannerImage) {
707
+ this.renderer2.removeStyle(bannerImage.el.nativeElement, 'aspectRatio');
708
+ }
709
+ if (bannerVideo) {
710
+ this.renderer2.removeStyle(bannerVideo.el.nativeElement, 'aspectRatio');
692
711
  }
693
712
  });
694
713
  this.resetHiddenItems();
@@ -723,10 +742,10 @@ class EclCarouselComponent extends ECLBaseDirective {
723
742
  this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();
724
743
  }
725
744
  }
726
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
727
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: EclCarouselComponent, isStandalone: true, selector: "ecl-carousel", inputs: { ariaLabel: ["aria-label", "ariaLabel"], isAutoplay: ["isAutoplay", "isAutoplay", booleanAttribute], playInterval: ["playInterval", "playInterval", numberAttribute] }, outputs: { slide: "slide" }, host: { properties: { "attr.aria-label": "this.ariaLabel", "attr.aria-roledescription": "this.ariaRoleDescription", "class": "this.cssClasses" } }, queries: [{ propertyName: "slides", predicate: i0.forwardRef(() => EclCarouselItemComponent) }], viewQueries: [{ propertyName: "carouselContainerElement", first: true, predicate: ["carouselContainer"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }, { propertyName: "navigationButtons", predicate: ["currButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(hasControls()){\n<div class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button #playButton class=\"ecl-button ecl-button--tertiary ecl-carousel__play ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'none' : 'flex'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PLAY' | translate }}\n </span>\n <ecl-icon icon=\"play-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\">\n </ecl-icon>\n </span>\n </button>\n\n <button #pauseButton class=\"ecl-button ecl-button--tertiary ecl-carousel__pause ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'flex' : 'none'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PAUSE' | translate }}\n </span>\n <ecl-icon icon=\"pause-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\"> </ecl-icon>\n </span>\n\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\" role=\"tablist\" >\n @for (slide of slides; let i = $index; track slide) {\n <button #currButton [attr.aria-current]=\"i === getCurrentSlideIndex()\" [attr.tabindex]=\"i === getCurrentSlideIndex() ? null: -1\"\n class=\"ecl-button ecl-button--tertiary ecl-carousel__navigation-item\" role=\"tab\" (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n {{ i + 1 }}\n </button>\n }\n </div>\n </div>\n</div>\n}\n<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer (keyup)=\"onFirstCarouselElementPress($event)\" class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\" [style.left.px]=\"!isRtl ? getCarouselSlidesOffsetLeft() : null\"\n [style.right.px]=\"isRtl ? getCarouselSlidesOffsetRight() : null\"\n [style.transition-duration.s]=\"transitionDuration\" (mouseover)=\"onSlideHover()\" (mouseout)=\"onSlideHoverout()\">\n\n @if(hasControls()){\n <ecl-carousel-item #firstHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n <ng-content></ng-content>\n\n @if(hasControls()){\n <ecl-carousel-item #lastHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n </div>\n</div>", styles: [".ecl-carousel__slides{transition-duration:.4s}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclCarouselItemComponent, selector: "ecl-carousel-item", inputs: ["id", "isCurrent"], outputs: ["slideClick"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
745
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
746
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-next.3", type: EclCarouselComponent, isStandalone: true, selector: "ecl-carousel", inputs: { ariaLabel: ["aria-label", "ariaLabel"], isAutoplay: ["isAutoplay", "isAutoplay", booleanAttribute], playInterval: ["playInterval", "playInterval", numberAttribute] }, outputs: { slide: "slide" }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "attr.aria-label": "this.ariaLabel", "attr.aria-roledescription": "this.ariaRoleDescription", "class": "this.cssClasses" } }, queries: [{ propertyName: "slides", predicate: i0.forwardRef(() => EclCarouselItemComponent) }], viewQueries: [{ propertyName: "carouselContainerElement", first: true, predicate: ["carouselContainer"], descendants: true }, { propertyName: "playButton", first: true, predicate: ["playButton"], descendants: true }, { propertyName: "pauseButton", first: true, predicate: ["pauseButton"], descendants: true }, { propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }, { propertyName: "navigationButtons", predicate: ["currButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(hasControls()){\n<div class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button #playButton class=\"ecl-button ecl-button--tertiary ecl-carousel__play ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'none' : 'flex'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PLAY' | translate }}\n </span>\n <ecl-icon icon=\"play-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\">\n </ecl-icon>\n </span>\n </button>\n\n <button #pauseButton class=\"ecl-button ecl-button--tertiary ecl-carousel__pause ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'flex' : 'none'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PAUSE' | translate }}\n </span>\n <ecl-icon icon=\"pause-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\"> </ecl-icon>\n </span>\n\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\" role=\"tablist\" >\n @for (slide of slides; let i = $index; track slide) {\n <button #currButton [attr.aria-current]=\"i === getCurrentSlideIndex()\" [attr.tabindex]=\"i === getCurrentSlideIndex() ? null: -1\"\n class=\"ecl-button ecl-button--tertiary ecl-carousel__navigation-item\" role=\"tab\" (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n {{ i + 1 }}\n </button>\n }\n </div>\n </div>\n</div>\n}\n<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer (keyup)=\"onFirstCarouselElementPress($event)\" class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\" [style.left.px]=\"!isRtl ? getCarouselSlidesOffsetLeft() : null\"\n [style.right.px]=\"isRtl ? getCarouselSlidesOffsetRight() : null\"\n [style.transition-duration.s]=\"transitionDuration\" (mouseover)=\"onSlideHover()\" (mouseout)=\"onSlideHoverout()\">\n\n @if(hasControls()){\n <ecl-carousel-item #firstHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n <ng-content></ng-content>\n\n @if(hasControls()){\n <ecl-carousel-item #lastHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n </div>\n</div>", styles: [".ecl-carousel__slides{transition-duration:.4s}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "component", type: EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclCarouselItemComponent, selector: "ecl-carousel-item", inputs: ["id", "isCurrent"], outputs: ["slideClick"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
728
747
  }
729
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselComponent, decorators: [{
748
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselComponent, decorators: [{
730
749
  type: Component,
731
750
  args: [{ selector: 'ecl-carousel', imports: [
732
751
  TranslateModule,
@@ -777,6 +796,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
777
796
  }], cssClasses: [{
778
797
  type: HostBinding,
779
798
  args: ['class']
799
+ }], onWindowResize: [{
800
+ type: HostListener,
801
+ args: ['window:resize']
780
802
  }] } });
781
803
 
782
804
  /**
@@ -786,11 +808,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
786
808
  * @deprecated Use {@link EUI_ECL_CAROUSEL} instead.
787
809
  */
788
810
  class EclCarouselModule {
789
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
790
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselModule, imports: [EclCarouselComponent, EclCarouselItemComponent], exports: [EclCarouselComponent, EclCarouselItemComponent] }); }
791
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselModule, imports: [EclCarouselComponent] }); }
811
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
812
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselModule, imports: [EclCarouselComponent, EclCarouselItemComponent], exports: [EclCarouselComponent, EclCarouselItemComponent] }); }
813
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselModule, imports: [EclCarouselComponent] }); }
792
814
  }
793
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclCarouselModule, decorators: [{
815
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.3", ngImport: i0, type: EclCarouselModule, decorators: [{
794
816
  type: NgModule,
795
817
  args: [{
796
818
  imports: [EclCarouselComponent, EclCarouselItemComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-carousel.mjs","sources":["../../components/ecl-carousel/events/ecl-slide.event.ts","../../components/ecl-carousel/ecl-carousel-item.component.ts","../../components/ecl-carousel/ecl-carousel-item.component.html","../../components/ecl-carousel/ecl-carousel.component.ts","../../components/ecl-carousel/ecl-carousel.component.html","../../components/ecl-carousel/ecl-carousel.module.ts","../../components/ecl-carousel/index.ts","../../components/ecl-carousel/eui-ecl-components-ecl-carousel.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclCarouselItem } from '../models/ecl-carousel-item.model';\n\nexport class EclSlideEvent extends EclBaseEvent {\n constructor(public item: EclCarouselItem) {\n super();\n }\n}","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n booleanAttribute,\n ContentChild,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBannerComponent } from '@eui/ecl/components/ecl-banner';\nimport { EclSlideEvent } from './events/ecl-slide.event';\nimport { EclCarouselItem } from './models/ecl-carousel-item.model';\n\n/**\n * Represents a single item (slide) within the ECL Carousel.\n * Each slide can optionally include an EclBannerComponent and supports click events.\n */\n@Component({\n selector: 'ecl-carousel-item',\n templateUrl: './ecl-carousel-item.component.html',\n styles: [\n `\n /* TODO: remove by implementing full ECL specs */\n :host:before {\n left: 0 !important;\n display: none;\n }\n `,\n ],\n})\nexport class EclCarouselItemComponent extends ECLBaseDirective implements EclCarouselItem {\n el = inject(ElementRef);\n\n /**\n * Sets the `aria-label` attribute on the host element for accessibility.\n */\n @HostBinding('attr.aria-label') ariaLabel: string;\n\n /**\n * Sets the ARIA `role` attribute to indicate this is a tab panel.\n */\n @HostBinding('attr.role') role = 'tabpanel';\n\n /**\n * Sets a more descriptive ARIA role, identifying this element as a slide.\n */\n @HostBinding('attr.aria-roledescription') roleDescription = 'slide';\n\n /**\n * Controls the width of the slide as a percentage.\n */\n @HostBinding('style.width.%') width: number;\n\n /**\n * The unique identifier of the slide.\n */\n @Input() id: string;\n\n /**\n * Indicates whether this slide is currently active/visible.\n * Automatically coerced to a boolean value.\n */\n @Input({ transform: booleanAttribute }) isCurrent = false;\n\n /**\n * Emits an event when the slide is clicked.\n */\n @Output() slideClick = new EventEmitter<EclSlideEvent>();\n\n /**\n * Optionally captures a banner component projected into the slide.\n */\n @ContentChild(forwardRef(() => EclBannerComponent)) banner: EclBannerComponent;\n\n /**\n * Internal slide index, assigned dynamically by the carousel.\n */\n public index: number;\n\n /**\n * Computes and binds the slide's CSS class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-carousel__slide')].join(' ').trim();\n }\n\n /**\n * Adds the `inert` attribute if the slide is not active.\n * This disables interaction and focus on inactive slides.\n */\n @HostBinding('attr.inert')\n get isInert(): boolean {\n return !this.isCurrent || undefined;\n }\n\n /**\n * Handles click events on the slide and emits a slideClick event.\n */\n @HostListener('click')\n onSlideClick(): void {\n this.slideClick.next(new EclSlideEvent(this));\n }\n}\n","<ng-content></ng-content>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n numberAttribute,\n inject,\n} from '@angular/core';\nimport { Subject, interval, switchMap, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclCarouselItemComponent } from './ecl-carousel-item.component';\nimport { EclSlideEvent } from './events/ecl-slide.event';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * Component responsible for rendering a carousel (slideshow) with autoplay, keyboard navigation,\n * and support for RTL layouts. Extends the ECLBaseDirective for consistent styling and behavior.\n */\n@Component({\n selector: 'ecl-carousel',\n templateUrl: './ecl-carousel.component.html',\n imports: [\n TranslateModule,\n EclIconComponent,\n EclCarouselItemComponent,\n ],\n styles: [\n `\n .ecl-carousel__slides {\n transition-duration: 0.4s;\n }\n `,\n ],\n})\nexport class EclCarouselComponent extends ECLBaseDirective implements OnInit, OnDestroy, AfterContentInit {\n /**\n * Aria-label for screen readers to describe the carousel.\n */\n @HostBinding('attr.aria-label') @Input('aria-label') ariaLabel: string | null = 'Carousel description here';\n\n /**\n * Aria-role description for screen readers, identifying this component as a carousel.\n */\n @HostBinding('attr.aria-roledescription') ariaRoleDescription = 'carousel';\n\n /**\n * Determines whether the carousel should autoplay.\n */\n @Input({ transform: booleanAttribute }) isAutoplay: boolean;\n\n /**\n * Interval in milliseconds between automatic slide transitions.\n */\n @Input({ transform: numberAttribute }) playInterval = 5000;\n\n /**\n * Event emitted when a slide change occurs.\n */\n @Output() slide = new EventEmitter<EclSlideEvent>();\n\n /**\n * Reference to the main carousel container element.\n */\n @ViewChild('carouselContainer') carouselContainerElement: ElementRef;\n\n /**\n * Collection of slide components rendered inside the carousel.\n */\n @ContentChildren(forwardRef(() => EclCarouselItemComponent)) slides: QueryList<EclCarouselItemComponent>;\n\n /**\n * References to the navigation buttons corresponding to each slide.\n */\n @ViewChildren('currButton') navigationButtons: QueryList<ElementRef>;\n\n /**\n * Reference to the play button element.\n */\n @ViewChild('playButton') playButton: ElementRef;\n\n /**\n * Reference to the pause button element.\n */\n @ViewChild('pauseButton') pauseButton: ElementRef;\n\n /**\n * Reference to the first hidden slide item (used for focus management).\n */\n @ViewChild('firstHiddenItem') firstHiddenItem: EclCarouselItemComponent;\n\n /**\n * Reference to the last hidden slide item (used for focus management).\n */\n @ViewChild('lastHiddenItem') lastHiddenItem: EclCarouselItemComponent;\n\n /**\n * Reference to the slides container element.\n */\n @ViewChild('slidesContainer') slidesContainer: ElementRef;\n\n /**\n * Indicates whether autoplay is currently active.\n */\n public isPlaying = false;\n\n /**\n * Indicates whether autoplay was manually paused.\n */\n public isPausedForced = false;\n\n /**\n * Indicates whether the layout is currently in RTL mode.\n */\n public isRtl = false;\n\n /**\n * Width of a single slide, used for positioning and transitions.\n */\n slideWidth: number;\n\n /**\n * Duration of the slide transition animation (in seconds).\n */\n transitionDuration = 0.4;\n\n private isMobileBreakpoint = false;\n private isSmallTabletBreakpoint = false;\n private isTabletBreakpoint = false;\n private isDesktopBreakpoint = false;\n private playSubject = new Subject<void>();\n private stopSubject = new Subject<void>();\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private unsubscribeListener: () => void;\n\n /**\n * Debounce interval (ms) used internally for timing and transitions.\n */\n private readonly TIMEOUT_INTERVAL = 400;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private cd = inject(ChangeDetectorRef);\n private renderer2 = inject(Renderer2);\n private eclRtlService = inject(EclRtlService);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeElementSizeChanges();\n this.cd.detectChanges();\n this.observeBreakpointChanges();\n });\n }\n\n /**\n * Returns the computed CSS class list for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-carousel')].join(' ').trim();\n }\n\n /**\n * Angular lifecycle hook: initializes autoplay and RTL detection.\n */\n ngOnInit(): void {\n this.initAutoplay();\n this.handleRtlChangeState();\n }\n\n /**\n * Angular lifecycle hook: called after content (slides) is initialized.\n */\n ngAfterContentInit(): void {\n setTimeout(() => {\n this.initializeSlider();\n });\n }\n\n /**\n * Angular lifecycle hook: cleans up subscriptions and event listeners.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n if (this.unsubscribeListener) {\n this.unsubscribeListener();\n }\n }\n\n /**\n * Starts autoplay and focuses the pause button.\n */\n onPlayClick(): void {\n this.startPlaying();\n this.focusOnButton(this.pauseButton);\n }\n\n /**\n * Stops autoplay and focuses the play button.\n */\n onPauseClick(): void {\n this.stopPlaying();\n this.focusOnButton(this.playButton);\n }\n\n /**\n * Handles key press on the first carousel element to stop autoplay if TAB is pressed.\n */\n onFirstCarouselElementPress(e): void {\n if (e.key === KeyCode.TAB) {\n if (this.isPlaying) {\n this.stopPlaying();\n }\n }\n }\n\n /**\n * Handles keyboard interaction on the play button.\n */\n onPlayKeyboardPress(e): void {\n if (e.key === KeyCode.TAB && e.shiftKey) {\n return;\n }\n if ([KeyCode.TAB].includes(e.key)) {\n if (this.isPlaying) {\n this.focusOnButton(this.navigationButtons.get(this.getCurrentSlideIndex()));\n this.stopPlaying();\n } else {\n this.focusOnButton(this.navigationButtons.get(this.getCurrentSlideIndex()));\n }\n e.preventDefault();\n } else if (!this.isPlaying && [KeyCode.ARROW_RIGHT].includes(e.key)) {\n this.focusOnButton(this.navigationButtons.get(this.getCurrentSlideIndex()));\n }\n }\n\n /**\n * Handles keyboard navigation for the navigation buttons.\n */\n onNavBtnKeyboardPress(e: KeyboardEvent, index: number): void {\n if (e.key === KeyCode.ARROW_RIGHT) {\n this.onNavigationButtonArrowRight(e);\n } else if (e.key === KeyCode.ARROW_LEFT) {\n this.onNavigationButtonArrowLeft(e, index);\n }\n return;\n }\n\n /**\n * Checks whether a given button is currently visible (not hidden via style).\n */\n isButtonVisible(button: ElementRef): boolean {\n if (!button) {\n return false;\n }\n return button.nativeElement.style.display === '';\n }\n\n /**\n * Sets focus on the specified button.\n */\n focusOnButton(button: ElementRef): void {\n if (!button) {\n return;\n }\n button.nativeElement.focus();\n }\n\n /**\n * Handles user interaction with a slide control button.\n */\n onSlideControlClick(slide: EclCarouselItemComponent): void {\n this.stopPlaying();\n this.activateSlide(slide, true);\n }\n\n /**\n * Navigates to the next slide and stops autoplay.\n */\n onNextSlideClick(): void {\n this.stopPlaying();\n this.goToNextSlide(true);\n }\n\n /**\n * Navigates to the previous slide and stops autoplay.\n */\n onPreviousSlideClick(): void {\n this.stopPlaying();\n this.goToPreviousSlide(true);\n }\n\n /**\n * Pauses autoplay on mouse hover.\n */\n onSlideHover(): void {\n this.pausePlaying();\n }\n\n /**\n * Resumes autoplay on mouse leave, if not manually paused.\n */\n onSlideHoverout(): void {\n if (!this.isStopButtonPressed()) {\n this.resumePlaying();\n }\n }\n\n /**\n * Returns whether the stop button (pause) has been pressed by the user.\n */\n public isStopButtonPressed(): boolean {\n return this.isPausedForced;\n }\n\n /**\n * Returns whether the carousel has padding applied (e.g., on desktop breakpoint).\n */\n public isPadded(): boolean {\n return this.isDesktopBreakpoint;\n }\n\n /**\n * Checks whether there are enough slides to render controls.\n */\n public hasControls(): boolean {\n return this.getSlidesCount() > 1;\n }\n\n /**\n * Retrieves the current active slide index.\n * Corrects index for internal structure with hidden buffer slides.\n */\n public getCurrentSlideIndex(): number {\n let currentIndex: number;\n\n this.getAllSlidesArray().forEach((item, idx) => {\n if (item && item.isCurrent) {\n currentIndex = idx;\n }\n });\n if (currentIndex === this.getAllSlidesCount() - 1) {\n return 0;\n } else if (currentIndex === 0) {\n return this.getSlidesCount() - 1;\n }\n return currentIndex - 1;\n }\n\n /**\n * Calculates the total width of the slides container based on the number of slides.\n */\n public getCarouselSlidesWidth(): number {\n return this.carouselContainerElement?.nativeElement.offsetWidth * this.getAllSlidesCount();\n }\n\n /**\n * Computes the left offset to shift the slides container.\n */\n public getCarouselSlidesOffsetLeft(): number {\n return -1 * this.carouselContainerElement?.nativeElement.offsetWidth * this.getCurrentItemIndex();\n }\n\n /**\n * Computes the right offset to shift the slides container (same logic as left in RTL).\n */\n public getCarouselSlidesOffsetRight(): number {\n return -1 * this.carouselContainerElement?.nativeElement.offsetWidth * this.getCurrentItemIndex();\n }\n\n /**\n * Subscribes to RTL layout state changes to adapt carousel behavior.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Initializes autoplay logic using RxJS intervals and subject triggers.\n */\n private initAutoplay(): void {\n const start$ = this.playSubject.asObservable();\n const stop$ = this.stopSubject.asObservable();\n\n start$\n .pipe(\n switchMap(() => interval(this.playInterval).pipe(takeUntil(stop$))),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.goToNextSlide(true);\n });\n }\n\n /**\n * Returns the index of the currently active slide item.\n */\n private getCurrentItemIndex(): number {\n let result = 0;\n this.getAllSlidesArray().forEach((item, index) => {\n if (item && item.isCurrent) {\n result = index;\n }\n });\n return result;\n }\n\n /**\n * Initializes slides, hidden buffer items, and sets default active slide.\n */\n private initializeSlider(): void {\n this.slides.forEach((item, idx) => {\n this.initSlide(item, idx);\n });\n\n if (this.hasControls()) {\n this.initHiddenItems();\n if (this.isNoSlideSelected()) {\n this.activateSlide(this.slides.first, false);\n }\n }\n }\n\n /**\n * Initializes hidden first and last slide clones used for infinite scroll illusion.\n */\n private initHiddenItems(): void {\n this.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();\n this.firstHiddenItem.isCurrent = false;\n this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();\n this.lastHiddenItem.isCurrent = false;\n this.slideWidth = this.slides.first.width;\n this.unsubscribeListener = this.renderer2.listen(this.slidesContainer.nativeElement, 'transitionend', () => this.checkIndex());\n }\n\n /**\n * Verifies current index and resets to actual slide if hidden clone is reached.\n */\n private checkIndex(): void {\n if (this.getCurrentItemIndex() === this.getAllSlidesCount() - 1) {\n const item = this.slides.first;\n this.activateSlide(item, false);\n } else if (this.getCurrentItemIndex() === 0) {\n const item = this.slides.last;\n this.activateSlide(item, false);\n }\n }\n\n /**\n * Returns the inner HTML of the last real slide (used for buffer item).\n */\n private getLastContentChild(): string {\n return this.getSlidesCount() > 0 ? this.slides.get(this.getSlidesCount() - 1).el.nativeElement.innerHTML : '';\n }\n\n /**\n * Returns the inner HTML of the first real slide (used for buffer item).\n */\n private getFirstContentChild(): string {\n return this.getSlidesCount() > 0 ? this.slides.get(0).el.nativeElement.innerHTML : '';\n }\n\n /**\n * Sets up a slide with index, ARIA label, and calculated width.\n */\n private initSlide(item: EclCarouselItemComponent, idx: number): void {\n item.index = idx;\n item.ariaLabel = `slide ${idx + 1} of ${this.getSlidesCount()}`;\n item.width = 100 / this.getAllSlidesCount();\n }\n\n /**\n * Activates the next slide, with option to loop.\n */\n private goToNextSlide(isLoop: boolean): void {\n this.activateSlide(this.getNextSlide(isLoop), true);\n }\n\n /**\n * Activates the previous slide, with option to loop.\n */\n private goToPreviousSlide(isLoop: boolean): void {\n this.activateSlide(this.getPreviousSlide(isLoop), true);\n }\n\n /**\n * Activates a specific slide and triggers slide change event if needed.\n */\n private activateSlide(slideItem: EclCarouselItemComponent, withTransition: boolean): void {\n if (withTransition) {\n this.transitionDuration = 0.4;\n } else {\n this.transitionDuration = 0;\n }\n if (slideItem) {\n this.getAllSlidesArray().forEach((item) => {\n item.isCurrent = false;\n });\n slideItem.isCurrent = true;\n }\n this.cd.detectChanges();\n if (withTransition) {\n this.slide.next(new EclSlideEvent(this.slides.get(this.getCurrentSlideIndex())));\n }\n }\n\n /**\n * Checks if the currently focused button is the last in the list.\n */\n private isLastButton(index): boolean {\n const buttonsList = this.navigationButtons;\n return index + 1 >= buttonsList.length;\n }\n\n /**\n * Checks if the currently focused button is the first in the list.\n */\n private isFirstButton(index): boolean {\n return index <= 0;\n }\n\n /**\n * Starts autoplay mode and updates state.\n */\n private startPlaying(): void {\n this.isPlaying = true;\n this.cd.detectChanges();\n this.isPausedForced = false;\n this.playSubject.next();\n }\n\n /**\n * Stops autoplay mode and updates state.\n */\n private stopPlaying(): void {\n this.isPlaying = false;\n this.cd.detectChanges();\n this.isPausedForced = true;\n this.stopSubject.next();\n }\n\n /**\n * Temporarily pauses autoplay (e.g. on mouse hover).\n */\n private pausePlaying(): void {\n this.isPlaying = false;\n this.cd.detectChanges();\n this.stopSubject.next();\n }\n\n /**\n * Resumes autoplay after being paused.\n */\n private resumePlaying(): void {\n this.isPlaying = true;\n this.cd.detectChanges();\n this.playSubject.next();\n }\n\n /**\n * Retrieves the next slide based on the current index and loop setting.\n */\n private getNextSlide(isLoop: boolean): EclCarouselItemComponent {\n const slidesCount = this.getSlidesCount();\n const currentIndex = this.getCurrentSlideIndex();\n\n if (currentIndex >= slidesCount - 1) {\n if (isLoop) {\n return this.getAllSlidesArray()[this.getAllSlidesCount() -1];\n } else {\n return this.slides.last;\n }\n } else {\n return this.slides.get(currentIndex + 1);\n }\n }\n\n /**\n * Returns all slides, including the hidden buffer items.\n */\n private getAllSlidesArray(): EclCarouselItemComponent[] {\n return [...[this.firstHiddenItem], ...this.slides.toArray(), ...[this.lastHiddenItem]];\n }\n\n /**\n * Retrieves the previous slide based on the current index and loop setting.\n */\n private getPreviousSlide(isLoop: boolean): EclCarouselItemComponent {\n const currentIndex = this.getCurrentSlideIndex();\n\n if (currentIndex <= 0) {\n if(isLoop) {\n return this.getAllSlidesArray()[0];\n } else {\n return this.slides.first;\n }\n } else {\n return this.slides.get(currentIndex - 1);\n }\n }\n\n /**\n * Returns the number of actual visible slides (excluding hidden buffer).\n */\n private getSlidesCount(): number {\n return this.slides.length;\n }\n\n /**\n * Returns total number of slides, including buffer (hidden) items.\n */\n private getAllSlidesCount(): number {\n if (this.hasControls()) {\n return this.slides.length + 2;\n } else {\n return this.slides.length;\n }\n }\n\n /**\n * Determines whether no slide is currently marked as active.\n */\n private isNoSlideSelected(): boolean {\n return !this.slides.some((item) => item.isCurrent);\n }\n\n /**\n * Handles right arrow key navigation for buttons.\n */\n private onNavigationButtonArrowRight(e: KeyboardEvent): void {\n setTimeout(() => {\n this.goToNextSlide(false);\n const button: ElementRef = this.navigationButtons.get(this.getCurrentSlideIndex());\n this.focusOnButton(button);\n }, this.TIMEOUT_INTERVAL);\n e.preventDefault();\n }\n\n /**\n * Handles left arrow key navigation for buttons.\n */\n private onNavigationButtonArrowLeft(e: KeyboardEvent, index: number): void {\n if (this.isFirstButton(index)) {\n if (this.playButton) {\n this.focusOnButton(this.playButton);\n }\n if (this.pauseButton) {\n this.focusOnButton(this.pauseButton);\n }\n } else {\n setTimeout(() => {\n this.goToPreviousSlide(false);\n const button: ElementRef = this.navigationButtons.get(this.getCurrentSlideIndex());\n this.focusOnButton(button);\n }, this.TIMEOUT_INTERVAL);\n e.preventDefault();\n }\n }\n\n /**\n * Observes screen breakpoint changes to adjust autoplay and layout behavior.\n */\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(max-width: 768px)',\n '(max-width: 997px)',\n '(min-width: 998px)',\n '(min-width: 1140px) and (max-width: 1260px)',\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.breakpoints['(max-width: 768px)'];\n this.isSmallTabletBreakpoint = result.breakpoints['(max-width: 997px)'];\n this.isTabletBreakpoint = result.breakpoints['(min-width: 998px)'];\n this.isDesktopBreakpoint = result.breakpoints['(min-width: 1140px) and (max-width: 1260px)'];\n if (this.isMobileBreakpoint && !this.isAutoplay) {\n this.stopPlaying();\n }\n\n if (this.isTabletBreakpoint) {\n if (this.isAutoplay || this.isAutoplay === undefined) {\n this.startPlaying();\n }\n }\n });\n }\n\n /**\n * Observes changes to the carousel's container element size using ResizeObserver.\n */\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n setTimeout(() => {\n if (this.isSmallTabletBreakpoint) {\n this.resetHeight();\n } else if (!this.isSmallTabletBreakpoint) {\n this.checkBannerHeights();\n }\n this.cd.detectChanges();\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.carouselContainerElement.nativeElement);\n }\n\n /**\n * Normalizes the height of all banners to match the tallest banner.\n */\n private checkBannerHeights(): void {\n const heightValues = this.slides.map((slide)=> {\n const height = slide.banner?.el.nativeElement.offsetHeight;\n if (height === 'auto') {\n return 0;\n }\n if (Number.isNaN(height) || height === 100) {\n return 1;\n }\n return height;\n });\n\n const elementHeights = heightValues.filter((height)=> height !== undefined);\n const tallestElementHeight = Math.max(...elementHeights);\n if (tallestElementHeight > 0) {\n this.slides.forEach((slide) => {\n const banner = slide.banner;\n if (banner) {\n const bannerImage = banner.eclBannerImage;\n this.renderer2.setStyle(banner.el.nativeElement, 'height', `${tallestElementHeight}px`);\n if (bannerImage) {\n this.renderer2.setStyle(bannerImage.el.nativeElement, 'aspectRatio', 'auto');\n }\n }\n });\n this.resetHiddenItems();\n }\n }\n\n /**\n * Clears all explicit banner height and aspect ratio styling for smaller breakpoints.\n */\n private resetHeight(): void {\n this.getAllSlidesArray().forEach((slide)=> {\n const banner = slide.banner;\n if (banner) {\n const bannerImage = slide.banner.eclBannerImage;\n const bannerVideo = slide.banner.eclBannerVideo;\n this.renderer2.setStyle(banner.el.nativeElement, 'height', '');\n if (bannerImage) {\n this.renderer2.setStyle(bannerImage.el.nativeElement, 'aspectRatio', '');\n }\n if (bannerVideo) {\n this.renderer2.setStyle(bannerVideo.el.nativeElement, 'aspectRatio', '');\n }\n }\n });\n this.resetHiddenItems();\n }\n\n /**\n * Re-renders the content of hidden buffer items after style reset.\n */\n private resetHiddenItems(): void {\n if (this.hasControls()) {\n this.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();\n this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();\n }\n }\n}\n","@if(hasControls()){\n<div class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button #playButton class=\"ecl-button ecl-button--tertiary ecl-carousel__play ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'none' : 'flex'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PLAY' | translate }}\n </span>\n <ecl-icon icon=\"play-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\">\n </ecl-icon>\n </span>\n </button>\n\n <button #pauseButton class=\"ecl-button ecl-button--tertiary ecl-carousel__pause ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'flex' : 'none'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PAUSE' | translate }}\n </span>\n <ecl-icon icon=\"pause-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\"> </ecl-icon>\n </span>\n\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\" role=\"tablist\" >\n @for (slide of slides; let i = $index; track slide) {\n <button #currButton [attr.aria-current]=\"i === getCurrentSlideIndex()\" [attr.tabindex]=\"i === getCurrentSlideIndex() ? null: -1\"\n class=\"ecl-button ecl-button--tertiary ecl-carousel__navigation-item\" role=\"tab\" (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n {{ i + 1 }}\n </button>\n }\n </div>\n </div>\n</div>\n}\n<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer (keyup)=\"onFirstCarouselElementPress($event)\" class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\" [style.left.px]=\"!isRtl ? getCarouselSlidesOffsetLeft() : null\"\n [style.right.px]=\"isRtl ? getCarouselSlidesOffsetRight() : null\"\n [style.transition-duration.s]=\"transitionDuration\" (mouseover)=\"onSlideHover()\" (mouseout)=\"onSlideHoverout()\">\n\n @if(hasControls()){\n <ecl-carousel-item #firstHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n <ng-content></ng-content>\n\n @if(hasControls()){\n <ecl-carousel-item #lastHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { EclCarouselComponent } from './ecl-carousel.component';\nimport { EclCarouselItemComponent } from './ecl-carousel-item.component';\n\n/**\n * @description\n * Module that provides the EclCarousel component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_CAROUSEL} instead.\n */\n@NgModule({\n imports: [EclCarouselComponent, EclCarouselItemComponent],\n exports: [EclCarouselComponent, EclCarouselItemComponent],\n})\nexport class EclCarouselModule {}\n","import { EclCarouselComponent } from './ecl-carousel.component';\nimport { EclCarouselItemComponent } from './ecl-carousel-item.component';\n\nexport * from './ecl-carousel.module';\nexport * from './ecl-carousel.component';\nexport * from './ecl-carousel-item.component';\nexport * from './events/ecl-slide.event';\nexport * from './models/ecl-carousel-item.model';\n\nexport const EUI_ECL_CAROUSEL = [\n EclCarouselComponent,\n EclCarouselItemComponent,\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-carousel.mjs","sources":["../../components/ecl-carousel/events/ecl-slide.event.ts","../../components/ecl-carousel/ecl-carousel-item.component.ts","../../components/ecl-carousel/ecl-carousel-item.component.html","../../components/ecl-carousel/ecl-carousel.component.ts","../../components/ecl-carousel/ecl-carousel.component.html","../../components/ecl-carousel/ecl-carousel.module.ts","../../components/ecl-carousel/index.ts","../../components/ecl-carousel/eui-ecl-components-ecl-carousel.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclCarouselItem } from '../models/ecl-carousel-item.model';\n\nexport class EclSlideEvent extends EclBaseEvent {\n constructor(public item: EclCarouselItem) {\n super();\n }\n}","import {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n booleanAttribute,\n ContentChild,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBannerComponent } from '@eui/ecl/components/ecl-banner';\nimport { EclSlideEvent } from './events/ecl-slide.event';\nimport { EclCarouselItem } from './models/ecl-carousel-item.model';\n\n/**\n * Represents a single item (slide) within the ECL Carousel.\n * Each slide can optionally include an EclBannerComponent and supports click events.\n */\n@Component({\n selector: 'ecl-carousel-item',\n templateUrl: './ecl-carousel-item.component.html',\n styles: [\n `\n /* TODO: remove by implementing full ECL specs */\n :host:before {\n left: 0 !important;\n display: none;\n }\n `,\n ],\n})\nexport class EclCarouselItemComponent extends ECLBaseDirective implements EclCarouselItem {\n el = inject(ElementRef);\n\n /**\n * Sets the `aria-label` attribute on the host element for accessibility.\n */\n @HostBinding('attr.aria-label') ariaLabel: string;\n\n /**\n * Sets the ARIA `role` attribute to indicate this is a tab panel.\n */\n @HostBinding('attr.role') role = 'tabpanel';\n\n /**\n * Sets a more descriptive ARIA role, identifying this element as a slide.\n */\n @HostBinding('attr.aria-roledescription') roleDescription = 'slide';\n\n /**\n * Controls the width of the slide as a percentage.\n */\n @HostBinding('style.width.%') width: number;\n\n /**\n * The unique identifier of the slide.\n */\n @Input() id: string;\n\n /**\n * Indicates whether this slide is currently active/visible.\n * Automatically coerced to a boolean value.\n */\n @Input({ transform: booleanAttribute }) isCurrent = false;\n\n /**\n * Emits an event when the slide is clicked.\n */\n @Output() slideClick = new EventEmitter<EclSlideEvent>();\n\n /**\n * Optionally captures a banner component projected into the slide.\n */\n @ContentChild(forwardRef(() => EclBannerComponent)) banner: EclBannerComponent;\n\n /**\n * Internal slide index, assigned dynamically by the carousel.\n */\n public index: number;\n\n /**\n * Computes and binds the slide's CSS class.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-carousel__slide')].join(' ').trim();\n }\n\n /**\n * Adds the `inert` attribute if the slide is not active.\n * This disables interaction and focus on inactive slides.\n */\n @HostBinding('attr.inert')\n get isInert(): boolean {\n return !this.isCurrent || undefined;\n }\n\n /**\n * Handles click events on the slide and emits a slideClick event.\n */\n @HostListener('click')\n onSlideClick(): void {\n this.slideClick.next(new EclSlideEvent(this));\n }\n}\n","<ng-content></ng-content>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n ViewChildren,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n numberAttribute,\n inject,\n HostListener,\n} from '@angular/core';\nimport { Subject, interval, switchMap, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { KeyCode } from '@eui/ecl/core';\nimport { EclCarouselItemComponent } from './ecl-carousel-item.component';\nimport { EclSlideEvent } from './events/ecl-slide.event';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * Component responsible for rendering a carousel (slideshow) with autoplay, keyboard navigation,\n * and support for RTL layouts. Extends the ECLBaseDirective for consistent styling and behavior.\n */\n@Component({\n selector: 'ecl-carousel',\n templateUrl: './ecl-carousel.component.html',\n imports: [\n TranslateModule,\n EclIconComponent,\n EclCarouselItemComponent,\n ],\n styles: [\n `\n .ecl-carousel__slides {\n transition-duration: 0.4s;\n }\n `,\n ],\n})\nexport class EclCarouselComponent extends ECLBaseDirective implements OnInit, OnDestroy, AfterContentInit {\n /**\n * Aria-label for screen readers to describe the carousel.\n */\n @HostBinding('attr.aria-label') @Input('aria-label') ariaLabel: string | null = 'Carousel description here';\n\n /**\n * Aria-role description for screen readers, identifying this component as a carousel.\n */\n @HostBinding('attr.aria-roledescription') ariaRoleDescription = 'carousel';\n\n /**\n * Determines whether the carousel should autoplay.\n */\n @Input({ transform: booleanAttribute }) isAutoplay: boolean;\n\n /**\n * Interval in milliseconds between automatic slide transitions.\n */\n @Input({ transform: numberAttribute }) playInterval = 5000;\n\n /**\n * Event emitted when a slide change occurs.\n */\n @Output() slide = new EventEmitter<EclSlideEvent>();\n\n /**\n * Reference to the main carousel container element.\n */\n @ViewChild('carouselContainer') carouselContainerElement: ElementRef;\n\n /**\n * Collection of slide components rendered inside the carousel.\n */\n @ContentChildren(forwardRef(() => EclCarouselItemComponent)) slides: QueryList<EclCarouselItemComponent>;\n\n /**\n * References to the navigation buttons corresponding to each slide.\n */\n @ViewChildren('currButton') navigationButtons: QueryList<ElementRef>;\n\n /**\n * Reference to the play button element.\n */\n @ViewChild('playButton') playButton: ElementRef;\n\n /**\n * Reference to the pause button element.\n */\n @ViewChild('pauseButton') pauseButton: ElementRef;\n\n /**\n * Reference to the first hidden slide item (used for focus management).\n */\n @ViewChild('firstHiddenItem') firstHiddenItem: EclCarouselItemComponent;\n\n /**\n * Reference to the last hidden slide item (used for focus management).\n */\n @ViewChild('lastHiddenItem') lastHiddenItem: EclCarouselItemComponent;\n\n /**\n * Reference to the slides container element.\n */\n @ViewChild('slidesContainer') slidesContainer: ElementRef;\n\n /**\n * Indicates whether autoplay is currently active.\n */\n public isPlaying = false;\n\n /**\n * Indicates whether autoplay was manually paused.\n */\n public isPausedForced = false;\n\n /**\n * Indicates whether the layout is currently in RTL mode.\n */\n public isRtl = false;\n\n /**\n * Width of a single slide, used for positioning and transitions.\n */\n slideWidth: number;\n\n /**\n * Duration of the slide transition animation (in seconds).\n */\n transitionDuration = 0.4;\n\n private isMobileBreakpoint = false;\n private isSmallTabletBreakpoint = false;\n private isTabletBreakpoint = false;\n private isDesktopBreakpoint = false;\n private playSubject = new Subject<void>();\n private stopSubject = new Subject<void>();\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private unsubscribeListener: () => void;\n\n /**\n * Debounce interval (ms) used internally for timing and transitions.\n */\n private readonly TIMEOUT_INTERVAL = 400;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private cd = inject(ChangeDetectorRef);\n private renderer2 = inject(Renderer2);\n private eclRtlService = inject(EclRtlService);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeElementSizeChanges();\n this.cd.detectChanges();\n this.observeBreakpointChanges();\n });\n }\n\n /**\n * Returns the computed CSS class list for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-carousel')].join(' ').trim();\n }\n\n @HostListener('window:resize')\n onWindowResize(): void {\n this.observeElementSizeChanges();\n }\n\n /**\n * Angular lifecycle hook: initializes autoplay and RTL detection.\n */\n ngOnInit(): void {\n this.initAutoplay();\n this.handleRtlChangeState();\n }\n\n /**\n * Angular lifecycle hook: called after content (slides) is initialized.\n */\n ngAfterContentInit(): void {\n setTimeout(() => {\n this.initializeSlider();\n });\n }\n\n /**\n * Angular lifecycle hook: cleans up subscriptions and event listeners.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n if (this.unsubscribeListener) {\n this.unsubscribeListener();\n }\n }\n\n /**\n * Starts autoplay and focuses the pause button.\n */\n onPlayClick(): void {\n this.startPlaying();\n this.focusOnButton(this.pauseButton);\n }\n\n /**\n * Stops autoplay and focuses the play button.\n */\n onPauseClick(): void {\n this.stopPlaying();\n this.focusOnButton(this.playButton);\n }\n\n /**\n * Handles key press on the first carousel element to stop autoplay if TAB is pressed.\n */\n onFirstCarouselElementPress(e): void {\n if (e.key === KeyCode.TAB) {\n if (this.isPlaying) {\n this.stopPlaying();\n }\n }\n }\n\n /**\n * Handles keyboard interaction on the play button.\n */\n onPlayKeyboardPress(e): void {\n if (e.key === KeyCode.TAB && e.shiftKey) {\n return;\n }\n if ([KeyCode.TAB].includes(e.key)) {\n if (this.isPlaying) {\n this.focusOnButton(this.navigationButtons.get(this.getCurrentSlideIndex()));\n this.stopPlaying();\n } else {\n this.focusOnButton(this.navigationButtons.get(this.getCurrentSlideIndex()));\n }\n e.preventDefault();\n } else if (!this.isPlaying && [KeyCode.ARROW_RIGHT].includes(e.key)) {\n this.focusOnButton(this.navigationButtons.get(this.getCurrentSlideIndex()));\n }\n }\n\n /**\n * Handles keyboard navigation for the navigation buttons.\n */\n onNavBtnKeyboardPress(e: KeyboardEvent, index: number): void {\n if (e.key === KeyCode.ARROW_RIGHT) {\n this.onNavigationButtonArrowRight(e);\n } else if (e.key === KeyCode.ARROW_LEFT) {\n this.onNavigationButtonArrowLeft(e, index);\n }\n return;\n }\n\n /**\n * Checks whether a given button is currently visible (not hidden via style).\n */\n isButtonVisible(button: ElementRef): boolean {\n if (!button) {\n return false;\n }\n return button.nativeElement.style.display === '';\n }\n\n /**\n * Sets focus on the specified button.\n */\n focusOnButton(button: ElementRef): void {\n if (!button) {\n return;\n }\n button.nativeElement.focus();\n }\n\n /**\n * Handles user interaction with a slide control button.\n */\n onSlideControlClick(slide: EclCarouselItemComponent): void {\n this.stopPlaying();\n this.activateSlide(slide, true);\n }\n\n /**\n * Navigates to the next slide and stops autoplay.\n */\n onNextSlideClick(): void {\n this.stopPlaying();\n this.goToNextSlide(true);\n }\n\n /**\n * Navigates to the previous slide and stops autoplay.\n */\n onPreviousSlideClick(): void {\n this.stopPlaying();\n this.goToPreviousSlide(true);\n }\n\n /**\n * Pauses autoplay on mouse hover.\n */\n onSlideHover(): void {\n this.pausePlaying();\n }\n\n /**\n * Resumes autoplay on mouse leave, if not manually paused.\n */\n onSlideHoverout(): void {\n if (!this.isStopButtonPressed()) {\n this.resumePlaying();\n }\n }\n\n /**\n * Returns whether the stop button (pause) has been pressed by the user.\n */\n public isStopButtonPressed(): boolean {\n return this.isPausedForced;\n }\n\n /**\n * Returns whether the carousel has padding applied (e.g., on desktop breakpoint).\n */\n public isPadded(): boolean {\n return this.isDesktopBreakpoint;\n }\n\n /**\n * Checks whether there are enough slides to render controls.\n */\n public hasControls(): boolean {\n return this.getSlidesCount() > 1;\n }\n\n /**\n * Retrieves the current active slide index.\n * Corrects index for internal structure with hidden buffer slides.\n */\n public getCurrentSlideIndex(): number {\n let currentIndex: number;\n\n this.getAllSlidesArray().forEach((item, idx) => {\n if (item && item.isCurrent) {\n currentIndex = idx;\n }\n });\n if (currentIndex === this.getAllSlidesCount() - 1) {\n return 0;\n } else if (currentIndex === 0) {\n return this.getSlidesCount() - 1;\n }\n return currentIndex - 1;\n }\n\n /**\n * Calculates the total width of the slides container based on the number of slides.\n */\n public getCarouselSlidesWidth(): number {\n return this.carouselContainerElement?.nativeElement.offsetWidth * this.getAllSlidesCount();\n }\n\n /**\n * Computes the left offset to shift the slides container.\n */\n public getCarouselSlidesOffsetLeft(): number {\n return -1 * this.carouselContainerElement?.nativeElement.offsetWidth * this.getCurrentItemIndex();\n }\n\n /**\n * Computes the right offset to shift the slides container (same logic as left in RTL).\n */\n public getCarouselSlidesOffsetRight(): number {\n return -1 * this.carouselContainerElement?.nativeElement.offsetWidth * this.getCurrentItemIndex();\n }\n\n /**\n * Subscribes to RTL layout state changes to adapt carousel behavior.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Initializes autoplay logic using RxJS intervals and subject triggers.\n */\n private initAutoplay(): void {\n const start$ = this.playSubject.asObservable();\n const stop$ = this.stopSubject.asObservable();\n\n start$\n .pipe(\n switchMap(() => interval(this.playInterval).pipe(takeUntil(stop$))),\n takeUntil(this.destroy$),\n )\n .subscribe(() => {\n this.goToNextSlide(true);\n });\n }\n\n /**\n * Returns the index of the currently active slide item.\n */\n private getCurrentItemIndex(): number {\n let result = 0;\n this.getAllSlidesArray().forEach((item, index) => {\n if (item && item.isCurrent) {\n result = index;\n }\n });\n return result;\n }\n\n /**\n * Initializes slides, hidden buffer items, and sets default active slide.\n */\n private initializeSlider(): void {\n this.slides.forEach((item, idx) => {\n this.initSlide(item, idx);\n });\n\n if (this.hasControls()) {\n this.initHiddenItems();\n if (this.isNoSlideSelected()) {\n this.activateSlide(this.slides.first, false);\n }\n }\n }\n\n /**\n * Initializes hidden first and last slide clones used for infinite scroll illusion.\n */\n private initHiddenItems(): void {\n this.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();\n this.firstHiddenItem.isCurrent = false;\n this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();\n this.lastHiddenItem.isCurrent = false;\n this.slideWidth = this.slides.first.width;\n this.unsubscribeListener = this.renderer2.listen(this.slidesContainer.nativeElement, 'transitionend', () => this.checkIndex());\n }\n\n /**\n * Verifies current index and resets to actual slide if hidden clone is reached.\n */\n private checkIndex(): void {\n if (this.getCurrentItemIndex() === this.getAllSlidesCount() - 1) {\n const item = this.slides.first;\n this.activateSlide(item, false);\n } else if (this.getCurrentItemIndex() === 0) {\n const item = this.slides.last;\n this.activateSlide(item, false);\n }\n }\n\n /**\n * Returns the inner HTML of the last real slide (used for buffer item).\n */\n private getLastContentChild(): string {\n return this.getSlidesCount() > 0 ? this.slides.get(this.getSlidesCount() - 1).el.nativeElement.innerHTML : '';\n }\n\n /**\n * Returns the inner HTML of the first real slide (used for buffer item).\n */\n private getFirstContentChild(): string {\n return this.getSlidesCount() > 0 ? this.slides.get(0).el.nativeElement.innerHTML : '';\n }\n\n /**\n * Sets up a slide with index, ARIA label, and calculated width.\n */\n private initSlide(item: EclCarouselItemComponent, idx: number): void {\n item.index = idx;\n item.ariaLabel = `slide ${idx + 1} of ${this.getSlidesCount()}`;\n item.width = 100 / this.getAllSlidesCount();\n }\n\n /**\n * Activates the next slide, with option to loop.\n */\n private goToNextSlide(isLoop: boolean): void {\n this.activateSlide(this.getNextSlide(isLoop), true);\n }\n\n /**\n * Activates the previous slide, with option to loop.\n */\n private goToPreviousSlide(isLoop: boolean): void {\n this.activateSlide(this.getPreviousSlide(isLoop), true);\n }\n\n /**\n * Activates a specific slide and triggers slide change event if needed.\n */\n private activateSlide(slideItem: EclCarouselItemComponent, withTransition: boolean): void {\n if (withTransition) {\n this.transitionDuration = 0.4;\n } else {\n this.transitionDuration = 0;\n }\n if (slideItem) {\n this.getAllSlidesArray().forEach((item) => {\n item.isCurrent = false;\n });\n slideItem.isCurrent = true;\n }\n this.cd.detectChanges();\n if (withTransition) {\n this.slide.next(new EclSlideEvent(this.slides.get(this.getCurrentSlideIndex())));\n }\n }\n\n /**\n * Checks if the currently focused button is the last in the list.\n */\n private isLastButton(index): boolean {\n const buttonsList = this.navigationButtons;\n return index + 1 >= buttonsList.length;\n }\n\n /**\n * Checks if the currently focused button is the first in the list.\n */\n private isFirstButton(index): boolean {\n return index <= 0;\n }\n\n /**\n * Starts autoplay mode and updates state.\n */\n private startPlaying(): void {\n this.isPlaying = true;\n this.cd.detectChanges();\n this.isPausedForced = false;\n this.playSubject.next();\n }\n\n /**\n * Stops autoplay mode and updates state.\n */\n private stopPlaying(): void {\n this.isPlaying = false;\n this.cd.detectChanges();\n this.isPausedForced = true;\n this.stopSubject.next();\n }\n\n /**\n * Temporarily pauses autoplay (e.g. on mouse hover).\n */\n private pausePlaying(): void {\n this.isPlaying = false;\n this.cd.detectChanges();\n this.stopSubject.next();\n }\n\n /**\n * Resumes autoplay after being paused.\n */\n private resumePlaying(): void {\n this.isPlaying = true;\n this.cd.detectChanges();\n this.playSubject.next();\n }\n\n /**\n * Retrieves the next slide based on the current index and loop setting.\n */\n private getNextSlide(isLoop: boolean): EclCarouselItemComponent {\n const slidesCount = this.getSlidesCount();\n const currentIndex = this.getCurrentSlideIndex();\n\n if (currentIndex >= slidesCount - 1) {\n if (isLoop) {\n return this.getAllSlidesArray()[this.getAllSlidesCount() - 1];\n } else {\n return this.slides.last;\n }\n } else {\n return this.slides.get(currentIndex + 1);\n }\n }\n\n /**\n * Returns all slides, including the hidden buffer items.\n */\n private getAllSlidesArray(): EclCarouselItemComponent[] {\n return [...[this.firstHiddenItem], ...this.slides.toArray(), ...[this.lastHiddenItem]];\n }\n\n /**\n * Retrieves the previous slide based on the current index and loop setting.\n */\n private getPreviousSlide(isLoop: boolean): EclCarouselItemComponent {\n const currentIndex = this.getCurrentSlideIndex();\n\n if (currentIndex <= 0) {\n if (isLoop) {\n return this.getAllSlidesArray()[0];\n } else {\n return this.slides.first;\n }\n } else {\n return this.slides.get(currentIndex - 1);\n }\n }\n\n /**\n * Returns the number of actual visible slides (excluding hidden buffer).\n */\n private getSlidesCount(): number {\n return this.slides.length;\n }\n\n /**\n * Returns total number of slides, including buffer (hidden) items.\n */\n private getAllSlidesCount(): number {\n if (this.hasControls()) {\n return this.slides.length + 2;\n } else {\n return this.slides.length;\n }\n }\n\n /**\n * Determines whether no slide is currently marked as active.\n */\n private isNoSlideSelected(): boolean {\n return !this.slides.some((item) => item.isCurrent);\n }\n\n /**\n * Handles right arrow key navigation for buttons.\n */\n private onNavigationButtonArrowRight(e: KeyboardEvent): void {\n setTimeout(() => {\n this.goToNextSlide(false);\n const button: ElementRef = this.navigationButtons.get(this.getCurrentSlideIndex());\n this.focusOnButton(button);\n }, this.TIMEOUT_INTERVAL);\n e.preventDefault();\n }\n\n /**\n * Handles left arrow key navigation for buttons.\n */\n private onNavigationButtonArrowLeft(e: KeyboardEvent, index: number): void {\n if (this.isFirstButton(index)) {\n if (this.playButton) {\n this.focusOnButton(this.playButton);\n }\n if (this.pauseButton) {\n this.focusOnButton(this.pauseButton);\n }\n } else {\n setTimeout(() => {\n this.goToPreviousSlide(false);\n const button: ElementRef = this.navigationButtons.get(this.getCurrentSlideIndex());\n this.focusOnButton(button);\n }, this.TIMEOUT_INTERVAL);\n e.preventDefault();\n }\n }\n\n /**\n * Observes screen breakpoint changes to adjust autoplay and layout behavior.\n */\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(max-width: 768px)',\n '(max-width: 997px)',\n '(min-width: 998px)',\n '(min-width: 1140px) and (max-width: 1260px)',\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.breakpoints['(max-width: 768px)'];\n this.isSmallTabletBreakpoint = result.breakpoints['(max-width: 997px)'];\n this.isTabletBreakpoint = result.breakpoints['(min-width: 998px)'];\n this.isDesktopBreakpoint = result.breakpoints['(min-width: 1140px) and (max-width: 1260px)'];\n if (this.isMobileBreakpoint && !this.isAutoplay) {\n this.stopPlaying();\n }\n\n if (this.isTabletBreakpoint) {\n if (this.isAutoplay || this.isAutoplay === undefined) {\n this.startPlaying();\n }\n }\n });\n }\n\n /**\n * Observes changes to the carousel's container element size using ResizeObserver.\n */\n private observeElementSizeChanges(): void {\n // new ResizeObserver(() => { // Removing this for now , because it is causing problems (infinite loop). Observing window:resize.\n setTimeout(() => {\n if (this.isSmallTabletBreakpoint) {\n this.resetHeight();\n } else if (!this.isSmallTabletBreakpoint) {\n this.checkBannerHeights();\n }\n }, this.TIMEOUT_INTERVAL);\n // }).observe(this.carouselContainerElement.nativeElement);\n }\n\n /**\n * Normalizes the height of all banners to match the tallest banner.\n */\n private checkBannerHeights(): void {\n const heightValues = this.slides.map((slide) => {\n const el = slide.banner?.el.nativeElement;\n if (!el) return undefined;\n\n const height = el.offsetHeight;\n const computedStyle = getComputedStyle(el);\n const footerHeight =\n parseInt(computedStyle.getPropertyValue('--banner-footer-height'), 10) || 0;\n\n if (height === 'auto') {\n return 0;\n }\n if (Number.isNaN(height) || height === 100) {\n return 0;\n }\n\n return height + footerHeight;\n });\n\n const elementHeights = heightValues.filter((h) => h !== undefined) as number[];\n const tallestElementHeight = Math.max(...elementHeights);\n\n if (tallestElementHeight > 0) {\n this.slides.forEach((slide) => {\n const banner = slide.banner;\n if (!banner) return;\n\n const el = banner.el.nativeElement;\n const bannerImage = banner.eclBannerImage;\n const bannerVideo = banner.eclBannerVideo;\n\n const computedStyle = getComputedStyle(el);\n const footerHeight =\n parseInt(computedStyle.getPropertyValue('--banner-footer-height'), 10) || 0;\n const desiredHeight = tallestElementHeight; // - footerHeight;\n const currentHeight = el.offsetHeight;\n\n // ✅ only apply style if height actually changed\n if (currentHeight !== desiredHeight) {\n this.renderer2.setStyle(el, 'height', `${desiredHeight}px`);\n }\n\n if (bannerImage) {\n this.renderer2.removeStyle(bannerImage.el.nativeElement, 'aspectRatio');\n }\n if (bannerVideo) {\n this.renderer2.removeStyle(bannerVideo.el.nativeElement, 'aspectRatio');\n }\n });\n this.resetHiddenItems();\n }\n }\n\n /**\n * Clears all explicit banner height and aspect ratio styling for smaller breakpoints.\n */\n private resetHeight(): void {\n this.getAllSlidesArray().forEach((slide) => {\n const banner = slide.banner;\n if (banner) {\n const bannerImage = slide.banner.eclBannerImage;\n const bannerVideo = slide.banner.eclBannerVideo;\n this.renderer2.setStyle(banner.el.nativeElement, 'height', '');\n if (bannerImage) {\n this.renderer2.setStyle(bannerImage.el.nativeElement, 'aspectRatio', '');\n }\n if (bannerVideo) {\n this.renderer2.setStyle(bannerVideo.el.nativeElement, 'aspectRatio', '');\n }\n }\n });\n this.resetHiddenItems();\n }\n\n /**\n * Re-renders the content of hidden buffer items after style reset.\n */\n private resetHiddenItems(): void {\n if (this.hasControls()) {\n this.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();\n this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();\n }\n }\n}\n","@if(hasControls()){\n<div class=\"ecl-carousel__controls\">\n <div class=\"ecl-container\">\n <div class=\"ecl-carousel__autoplay\">\n <button #playButton class=\"ecl-button ecl-button--tertiary ecl-carousel__play ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'none' : 'flex'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPlayClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PLAY' | translate }}\n </span>\n <ecl-icon icon=\"play-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\">\n </ecl-icon>\n </span>\n </button>\n\n <button #pauseButton class=\"ecl-button ecl-button--tertiary ecl-carousel__pause ecl-button--icon-only\"\n type=\"button\" [style.display]=\"isPlaying ? 'flex' : 'none'\" (keydown)=\"onPlayKeyboardPress($event)\"\n (click)=\"onPauseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.carousel.PAUSE' | translate }}\n </span>\n <ecl-icon icon=\"pause-outline\" size=\"m\" class=\"ecl-button__icon ecl-carousel__icon-default\"> </ecl-icon>\n </span>\n\n </button>\n </div>\n\n <div class=\"ecl-carousel__navigation\" role=\"tablist\" >\n @for (slide of slides; let i = $index; track slide) {\n <button #currButton [attr.aria-current]=\"i === getCurrentSlideIndex()\" [attr.tabindex]=\"i === getCurrentSlideIndex() ? null: -1\"\n class=\"ecl-button ecl-button--tertiary ecl-carousel__navigation-item\" role=\"tab\" (click)=\"onSlideControlClick(slide)\"\n (keydown)=\"onNavBtnKeyboardPress($event, i)\">\n {{ i + 1 }}\n </button>\n }\n </div>\n </div>\n</div>\n}\n<div #carouselContainer class=\"ecl-carousel__container\" [class.ecl-carousel-container--padded]=\"isPadded()\">\n <div #slidesContainer (keyup)=\"onFirstCarouselElementPress($event)\" class=\"ecl-carousel__slides\"\n [style.width.px]=\"getCarouselSlidesWidth()\" [style.left.px]=\"!isRtl ? getCarouselSlidesOffsetLeft() : null\"\n [style.right.px]=\"isRtl ? getCarouselSlidesOffsetRight() : null\"\n [style.transition-duration.s]=\"transitionDuration\" (mouseover)=\"onSlideHover()\" (mouseout)=\"onSlideHoverout()\">\n\n @if(hasControls()){\n <ecl-carousel-item #firstHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n <ng-content></ng-content>\n\n @if(hasControls()){\n <ecl-carousel-item #lastHiddenItem [style.width.%]=\"slideWidth\"></ecl-carousel-item>\n }\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { EclCarouselComponent } from './ecl-carousel.component';\nimport { EclCarouselItemComponent } from './ecl-carousel-item.component';\n\n/**\n * @description\n * Module that provides the EclCarousel component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_CAROUSEL} instead.\n */\n@NgModule({\n imports: [EclCarouselComponent, EclCarouselItemComponent],\n exports: [EclCarouselComponent, EclCarouselItemComponent],\n})\nexport class EclCarouselModule {}\n","import { EclCarouselComponent } from './ecl-carousel.component';\nimport { EclCarouselItemComponent } from './ecl-carousel-item.component';\n\nexport * from './ecl-carousel.module';\nexport * from './ecl-carousel.component';\nexport * from './ecl-carousel-item.component';\nexport * from './events/ecl-slide.event';\nexport * from './models/ecl-carousel-item.model';\n\nexport const EUI_ECL_CAROUSEL = [\n EclCarouselComponent,\n EclCarouselItemComponent,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}