@eui/ecl 21.0.0-alpha.3 → 21.0.0-alpha.31

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 (631) hide show
  1. package/assets/i18n-ecl/bg.json +1 -0
  2. package/assets/i18n-ecl/cs.json +1 -0
  3. package/assets/i18n-ecl/da.json +1 -0
  4. package/assets/i18n-ecl/de.json +1 -0
  5. package/assets/i18n-ecl/el.json +1 -0
  6. package/assets/i18n-ecl/en.json +1 -0
  7. package/assets/i18n-ecl/es.json +1 -0
  8. package/assets/i18n-ecl/et.json +1 -0
  9. package/assets/i18n-ecl/fi.json +1 -0
  10. package/assets/i18n-ecl/fr.json +1 -0
  11. package/assets/i18n-ecl/ga.json +1 -0
  12. package/assets/i18n-ecl/hr.json +1 -0
  13. package/assets/i18n-ecl/hu.json +1 -0
  14. package/assets/i18n-ecl/it.json +1 -0
  15. package/assets/i18n-ecl/lt.json +1 -0
  16. package/assets/i18n-ecl/lv.json +1 -0
  17. package/assets/i18n-ecl/mt.json +1 -0
  18. package/assets/i18n-ecl/nl.json +1 -0
  19. package/assets/i18n-ecl/pl.json +1 -0
  20. package/assets/i18n-ecl/pt.json +1 -0
  21. package/assets/i18n-ecl/ro.json +1 -0
  22. package/assets/i18n-ecl/sk.json +1 -0
  23. package/assets/i18n-ecl/sl.json +1 -0
  24. package/assets/i18n-ecl/sv.json +1 -0
  25. package/components/ecl-banner/index.d.ts +13 -4
  26. package/components/ecl-banner/index.d.ts.map +1 -1
  27. package/components/ecl-carousel/index.d.ts +1 -0
  28. package/components/ecl-carousel/index.d.ts.map +1 -1
  29. package/components/ecl-featured/index.d.ts +1 -1
  30. package/components/ecl-featured/index.d.ts.map +1 -1
  31. package/components/ecl-gallery/index.d.ts +1 -1
  32. package/components/ecl-gallery/index.d.ts.map +1 -1
  33. package/components/ecl-link/index.d.ts +6 -6
  34. package/components/ecl-link/index.d.ts.map +1 -1
  35. package/components/ecl-mega-menu/index.d.ts +2 -1
  36. package/components/ecl-mega-menu/index.d.ts.map +1 -1
  37. package/components/ecl-menu/index.d.ts +7 -1
  38. package/components/ecl-menu/index.d.ts.map +1 -1
  39. package/components/ecl-multiselect/index.d.ts +2 -2
  40. package/components/ecl-pagination/index.d.ts +1 -0
  41. package/components/ecl-pagination/index.d.ts.map +1 -1
  42. package/components/ecl-popover/index.d.ts +1 -1
  43. package/components/ecl-popover/index.d.ts.map +1 -1
  44. package/components/ecl-site-footer/index.d.ts +55 -32
  45. package/components/ecl-site-footer/index.d.ts.map +1 -1
  46. package/components/ecl-site-header/index.d.ts +1 -3
  47. package/components/ecl-site-header/index.d.ts.map +1 -1
  48. package/components/ecl-social-media-follow/index.d.ts +3 -1
  49. package/components/ecl-social-media-follow/index.d.ts.map +1 -1
  50. package/components/ecl-tabs/index.d.ts +5 -1
  51. package/components/ecl-tabs/index.d.ts.map +1 -1
  52. package/core/index.d.ts +7 -1
  53. package/core/index.d.ts.map +1 -1
  54. package/docs/changelog.html +427 -7760
  55. package/docs/classes/EclAccordionToggleEvent.html +18 -0
  56. package/docs/classes/EclAppLanguageDismissEvent.html +18 -0
  57. package/docs/classes/EclAreaChangeEvent.html +18 -0
  58. package/docs/classes/EclBaseEvent.html +18 -0
  59. package/docs/classes/EclBreadcrumbSegmentClickEvent.html +18 -0
  60. package/docs/classes/EclCategoryFilterItemSelectEvent.html +18 -0
  61. package/docs/classes/EclDatePickerDatePickedEvent.html +18 -0
  62. package/docs/classes/EclDomEvent.html +18 -0
  63. package/docs/classes/EclExpandableToggleEvent.html +18 -0
  64. package/docs/classes/EclFileItemsToggleEvent.html +18 -0
  65. package/docs/classes/EclFileUploadFileSelectedEvent.html +18 -0
  66. package/docs/classes/EclGalleryFullScreenEvent.html +18 -0
  67. package/docs/classes/EclGalleryHideEvent.html +18 -0
  68. package/docs/classes/EclGalleryItemClickEvent.html +18 -0
  69. package/docs/classes/EclGalleryItemEvent.html +18 -0
  70. package/docs/classes/EclGalleryMediaSource.html +18 -0
  71. package/docs/classes/EclGalleryMediaTrack.html +18 -0
  72. package/docs/classes/EclGalleryPictureImage.html +18 -0
  73. package/docs/classes/EclGalleryPictureSource.html +18 -0
  74. package/docs/classes/EclGalleryShareEvent.html +18 -0
  75. package/docs/classes/EclGalleryShowEvent.html +18 -0
  76. package/docs/classes/EclGalleryToggleItemsEvent.html +18 -0
  77. package/docs/classes/EclInpageNavigationItemClickEvent.html +18 -0
  78. package/docs/classes/EclInpageNavigationSectionEnterEvent.html +18 -0
  79. package/docs/classes/EclLanguageService.html +18 -0
  80. package/docs/classes/EclMenuItemCaretEvent.html +18 -0
  81. package/docs/classes/EclMenuItemFocusEvent.html +18 -0
  82. package/docs/classes/EclMenuItemHoverEvent.html +18 -0
  83. package/docs/classes/EclMenuItemHoverOutEvent.html +18 -0
  84. package/docs/classes/EclMenuItemKeydownEvent.html +18 -0
  85. package/docs/classes/EclMenuItemParentFocusEvent.html +18 -0
  86. package/docs/classes/EclMenuItemSelectEvent.html +18 -0
  87. package/docs/classes/EclModalCloseEvent.html +18 -0
  88. package/docs/classes/EclModalOpenEvent.html +18 -0
  89. package/docs/classes/EclMultiselectMainInputClickEvent.html +18 -0
  90. package/docs/classes/EclMultiselectOptionClickEvent.html +18 -0
  91. package/docs/classes/EclMultiselectOptionKeydownEvent.html +18 -0
  92. package/docs/classes/EclNewsTickerItemEvent.html +18 -0
  93. package/docs/classes/EclNotificationCloseEvent.html +18 -0
  94. package/docs/classes/EclPaginationEvent.html +18 -0
  95. package/docs/classes/EclPaginationItemClickEvent.html +18 -0
  96. package/docs/classes/EclRangeEvent.html +18 -0
  97. package/docs/classes/EclRatingChangeEvent.html +18 -0
  98. package/docs/classes/EclSearchFormEvent.html +18 -0
  99. package/docs/classes/EclSiteHeaderLanguageClickEvent.html +18 -0
  100. package/docs/classes/EclSiteHeaderLanguageCloseEvent.html +18 -0
  101. package/docs/classes/EclSiteHeaderLanguageSelectedEvent.html +18 -0
  102. package/docs/classes/EclSiteHeaderLoginBoxToggleEvent.html +18 -0
  103. package/docs/classes/EclSiteHeaderLoginEvent.html +18 -0
  104. package/docs/classes/EclSiteHeaderLogoClickEvent.html +18 -0
  105. package/docs/classes/EclSiteHeaderSearchEvent.html +18 -0
  106. package/docs/classes/EclSiteHeaderSearchToggleEvent.html +18 -0
  107. package/docs/classes/EclSlideEvent.html +18 -0
  108. package/docs/classes/EclSocialMediaFollowItemClickEvent.html +18 -0
  109. package/docs/classes/EclSocialMediaShareItemClickEvent.html +18 -0
  110. package/docs/classes/EclSortTableEvent.html +18 -0
  111. package/docs/classes/EclTabSelectEvent.html +18 -0
  112. package/docs/classes/EclTagRemoveEvent.html +18 -0
  113. package/docs/classes/EclTimelineItemToggleEvent.html +18 -0
  114. package/docs/components/EclAccordionComponent.html +21 -3
  115. package/docs/components/EclAccordionItemComponent.html +22 -4
  116. package/docs/components/EclAppComponent.html +20 -2
  117. package/docs/components/EclBannerComponent.html +136 -6
  118. package/docs/components/EclBlockquoteComponent.html +20 -2
  119. package/docs/components/EclBreadcrumbComponent.html +22 -9
  120. package/docs/components/EclBreadcrumbSegmentComponent.html +24 -5
  121. package/docs/components/EclButtonComponent.html +21 -3
  122. package/docs/components/EclCardBodyComponent.html +20 -2
  123. package/docs/components/EclCardComponent.html +20 -2
  124. package/docs/components/EclCarouselComponent.html +101 -2
  125. package/docs/components/EclCarouselItemComponent.html +20 -2
  126. package/docs/components/EclCategoryFilterComponent.html +20 -2
  127. package/docs/components/EclCategoryFilterItemComponent.html +21 -3
  128. package/docs/components/EclCategoryFilterListComponent.html +20 -2
  129. package/docs/components/EclCheckboxHelpComponent.html +20 -2
  130. package/docs/components/EclCheckboxLabelComponent.html +21 -3
  131. package/docs/components/EclContentBlockComponent.html +20 -2
  132. package/docs/components/EclContentItemComponent.html +20 -2
  133. package/docs/components/EclDateBlockComponent.html +20 -2
  134. package/docs/components/EclDescriptionListDefinitionComponent.html +21 -3
  135. package/docs/components/EclExpandableComponent.html +22 -4
  136. package/docs/components/EclFactFiguresComponent.html +20 -2
  137. package/docs/components/EclFactFiguresDescriptionComponent.html +20 -2
  138. package/docs/components/EclFactFiguresItemComponent.html +20 -2
  139. package/docs/components/EclFactFiguresTitleComponent.html +20 -2
  140. package/docs/components/EclFactFiguresValueComponent.html +20 -2
  141. package/docs/components/EclFactFiguresViewAllComponent.html +20 -2
  142. package/docs/components/EclFeaturedComponent.html +20 -2
  143. package/docs/components/EclFeaturedItemComponent.html +20 -2
  144. package/docs/components/EclFeaturedItemDescriptionComponent.html +20 -2
  145. package/docs/components/EclFeaturedItemFooterComponent.html +20 -2
  146. package/docs/components/EclFileComponent.html +22 -4
  147. package/docs/components/EclFileItemComponent.html +20 -2
  148. package/docs/components/EclFileItemsComponent.html +22 -4
  149. package/docs/components/EclFileTaxonomyComponent.html +20 -2
  150. package/docs/components/EclFormGroupComponent.html +20 -2
  151. package/docs/components/EclFormLabelComponent.html +20 -2
  152. package/docs/components/EclGalleryComponent.html +27 -48
  153. package/docs/components/EclGalleryFooterComponent.html +21 -3
  154. package/docs/components/EclGalleryItemComponent.html +21 -3
  155. package/docs/components/EclIconComponent.html +20 -2
  156. package/docs/components/EclInpageNavigationComponent.html +21 -3
  157. package/docs/components/EclInpageNavigationItemComponent.html +21 -3
  158. package/docs/components/EclListIllustrationComponent.html +20 -2
  159. package/docs/components/EclListIllustrationItemComponent.html +20 -2
  160. package/docs/components/EclLoadingIndicatorComponent.html +20 -2
  161. package/docs/components/EclMediaContainerComponent.html +22 -4
  162. package/docs/components/EclMegaMenuComponent.html +47 -25
  163. package/docs/components/EclMegaMenuFeaturedComponent.html +20 -2
  164. package/docs/components/EclMegaMenuInfoComponent.html +20 -2
  165. package/docs/components/EclMegaMenuItemComponent.html +25 -6
  166. package/docs/components/EclMegaMenuSubitemComponent.html +25 -6
  167. package/docs/components/EclMenuComponent.html +195 -37
  168. package/docs/components/EclMenuItemComponent.html +25 -6
  169. package/docs/components/EclMenuMegaComponent.html +20 -2
  170. package/docs/components/EclMenuMegaItemComponent.html +21 -3
  171. package/docs/components/EclModalBodyComponent.html +20 -2
  172. package/docs/components/EclModalComponent.html +20 -2
  173. package/docs/components/EclModalFooterComponent.html +20 -2
  174. package/docs/components/EclModalHeaderComponent.html +22 -4
  175. package/docs/components/EclMultiselectComponent.html +21 -5
  176. package/docs/components/EclMultiselectDropdownComponent.html +26 -45
  177. package/docs/components/EclMultiselectInputComponent.html +22 -4
  178. package/docs/components/EclMultiselectOptgroupComponent.html +20 -2
  179. package/docs/components/EclMultiselectOptionComponent.html +20 -2
  180. package/docs/components/EclNavigationListComponent.html +20 -2
  181. package/docs/components/EclNavigationListItemComponent.html +20 -2
  182. package/docs/components/EclNewsTickerComponent.html +22 -4
  183. package/docs/components/EclNewsTickerItemComponent.html +20 -2
  184. package/docs/components/EclNotificationComponent.html +22 -4
  185. package/docs/components/EclPageHeaderComponent.html +20 -2
  186. package/docs/components/EclPaginationComponent.html +20 -2
  187. package/docs/components/EclPaginationItemComponent.html +50 -6
  188. package/docs/components/EclPopoverComponent.html +27 -54
  189. package/docs/components/EclRadioHelpComponent.html +20 -2
  190. package/docs/components/EclRadioLabelComponent.html +20 -2
  191. package/docs/components/EclRangeBubbleComponent.html +20 -2
  192. package/docs/components/EclRangeValueComponent.html +20 -2
  193. package/docs/components/EclRatingFieldComponent.html +21 -3
  194. package/docs/components/EclSearchFormComponent.html +22 -4
  195. package/docs/components/EclSelectContainerComponent.html +22 -4
  196. package/docs/components/EclSiteFooterComponent.html +65 -5
  197. package/docs/components/EclSiteFooterCoreComponent.html +575 -0
  198. package/docs/components/EclSiteFooterFixedContentEUComponent.html +21 -3
  199. package/docs/components/EclSiteFooterRowCommonComponent.html +647 -0
  200. package/docs/components/EclSiteHeaderActionComponent.html +20 -2
  201. package/docs/components/EclSiteHeaderBannerTopComponent.html +20 -2
  202. package/docs/components/EclSiteHeaderComponent.html +22 -4
  203. package/docs/components/EclSiteHeaderCustomActionComponent.html +22 -4
  204. package/docs/components/EclSiteHeaderEnvironmentComponent.html +20 -2
  205. package/docs/components/EclSiteHeaderLanguageComponent.html +21 -3
  206. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +24 -11
  207. package/docs/components/EclSiteHeaderLoginComponent.html +21 -3
  208. package/docs/components/EclSiteHeaderNotificationComponent.html +20 -2
  209. package/docs/components/EclSiteHeaderSearchComponent.html +22 -4
  210. package/docs/components/EclSocialMediaFollowComponent.html +20 -2
  211. package/docs/components/EclSocialMediaFollowItemComponent.html +38 -6
  212. package/docs/components/EclSocialMediaShareComponent.html +20 -2
  213. package/docs/components/EclSocialMediaShareItemComponent.html +22 -4
  214. package/docs/components/EclSplashPageComponent.html +20 -2
  215. package/docs/components/EclSplashPageLanguageCategoryComponent.html +20 -2
  216. package/docs/components/EclSplashPageLanguageContainerComponent.html +20 -2
  217. package/docs/components/EclSplashPageLanguageLinkComponent.html +20 -2
  218. package/docs/components/EclStickyContainerComponent.html +20 -2
  219. package/docs/components/EclTabComponent.html +47 -4
  220. package/docs/components/EclTabLabelComponent.html +20 -2
  221. package/docs/components/EclTabMoreComponent.html +20 -2
  222. package/docs/components/EclTableSortButtonComponent.html +21 -3
  223. package/docs/components/EclTabsComponent.html +22 -4
  224. package/docs/components/EclTagComponent.html +21 -3
  225. package/docs/components/EclTimelineComponent.html +20 -2
  226. package/docs/components/EclTimelineItemComponent.html +22 -4
  227. package/docs/components/EclTimelineItemTogglerComponent.html +20 -2
  228. package/docs/dependencies.html +18 -0
  229. package/docs/directives/ECLBaseDirective.html +18 -0
  230. package/docs/directives/ECLClickOutsideDirective.html +18 -0
  231. package/docs/directives/ECLFormLabelOptionalDirective.html +18 -0
  232. package/docs/directives/EclBannerDescriptionDirective.html +18 -0
  233. package/docs/directives/EclBannerDescriptionLinkDirective.html +18 -0
  234. package/docs/directives/EclBannerDescriptionTextDirective.html +18 -0
  235. package/docs/directives/EclBannerImageDirective.html +18 -0
  236. package/docs/directives/EclBannerPictureDirective.html +18 -0
  237. package/docs/directives/EclBannerTitleDirective.html +18 -0
  238. package/docs/directives/EclBannerTitleLinkDirective.html +18 -0
  239. package/docs/directives/EclBannerTitleTextDirective.html +18 -0
  240. package/docs/directives/EclBannerVideoDirective.html +18 -0
  241. package/docs/directives/EclBlockquoteImageDirective.html +18 -0
  242. package/docs/directives/EclBlockquotePictureDirective.html +18 -0
  243. package/docs/directives/EclBreadcrumbContainerDirective.html +18 -0
  244. package/docs/directives/EclButtonIconContainerDirective.html +18 -0
  245. package/docs/directives/EclButtonLabelDirective.html +18 -0
  246. package/docs/directives/EclCardImageDirective.html +18 -0
  247. package/docs/directives/EclCardPictureDirective.html +18 -0
  248. package/docs/directives/EclCheckboxDirective.html +18 -0
  249. package/docs/directives/EclCheckboxInputDirective.html +18 -0
  250. package/docs/directives/EclContentBlockDescriptionDirective.html +18 -0
  251. package/docs/directives/EclContentBlockLabelDirective.html +18 -0
  252. package/docs/directives/EclContentBlockLabelsDirective.html +18 -0
  253. package/docs/directives/EclContentBlockLinkDirective.html +18 -0
  254. package/docs/directives/EclContentBlockLinksContainerDirective.html +18 -0
  255. package/docs/directives/EclContentBlockLinksDirective.html +18 -0
  256. package/docs/directives/EclContentBlockListContainerDirective.html +18 -0
  257. package/docs/directives/EclContentBlockListDirective.html +18 -0
  258. package/docs/directives/EclContentBlockPrimaryMetaDirective.html +18 -0
  259. package/docs/directives/EclContentBlockPrimaryMetasDirective.html +18 -0
  260. package/docs/directives/EclContentBlockSecondaryMetaDirective.html +18 -0
  261. package/docs/directives/EclContentBlockSecondaryMetaIconDirective.html +18 -0
  262. package/docs/directives/EclContentBlockSecondaryMetaLabelDirective.html +18 -0
  263. package/docs/directives/EclContentBlockSecondaryMetasDirective.html +18 -0
  264. package/docs/directives/EclContentBlockTagDirective.html +18 -0
  265. package/docs/directives/EclContentBlockTagsDirective.html +18 -0
  266. package/docs/directives/EclContentBlockTitleDirective.html +18 -0
  267. package/docs/directives/EclContentItemImageDirective.html +18 -0
  268. package/docs/directives/EclContentItemPictureDirective.html +18 -0
  269. package/docs/directives/EclDatePickerDirective.html +18 -0
  270. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +18 -0
  271. package/docs/directives/EclDescriptionListDefinitionListDirective.html +18 -0
  272. package/docs/directives/EclDescriptionListDirective.html +18 -0
  273. package/docs/directives/EclDescriptionListTermDirective.html +18 -0
  274. package/docs/directives/EclFeaturedItemFooterLinkDirective.html +18 -0
  275. package/docs/directives/EclFeaturedItemFooterPictureDirective.html +18 -0
  276. package/docs/directives/EclFeaturedItemLinkDirective.html +18 -0
  277. package/docs/directives/EclFeedbackMessageDirective.html +18 -0
  278. package/docs/directives/EclFileDownloadDirective.html +18 -0
  279. package/docs/directives/EclFileImageDirective.html +18 -0
  280. package/docs/directives/EclFilePictureDirective.html +18 -0
  281. package/docs/directives/EclFilePreviewDirective.html +18 -0
  282. package/docs/directives/EclFileTitleDirective.html +18 -0
  283. package/docs/directives/EclFileTranslationDownloadDirective.html +18 -0
  284. package/docs/directives/EclFileUploadDirective.html +18 -0
  285. package/docs/directives/EclGalleryMediaDirective.html +18 -0
  286. package/docs/directives/EclGalleryPictureDirective.html +18 -0
  287. package/docs/directives/EclGalleryThumbnailDirective.html +18 -0
  288. package/docs/directives/EclHelpBlockDirective.html +18 -0
  289. package/docs/directives/EclHiddenDirective.html +18 -0
  290. package/docs/directives/EclIndicatorDirective.html +18 -0
  291. package/docs/directives/EclInpageNavigationListDirective.html +18 -0
  292. package/docs/directives/EclLabelDirective.html +18 -0
  293. package/docs/directives/EclLinkDirective.html +18 -0
  294. package/docs/directives/EclLinkIconContainerDirective.html +18 -0
  295. package/docs/directives/{EclIndicatorDirective-1.html → EclLinkIndicatorDirective.html} +20 -2
  296. package/docs/directives/EclLinkLabelDirective.html +18 -0
  297. package/docs/directives/EclListIllustrationIconDirective.html +18 -0
  298. package/docs/directives/EclListIllustrationImageDirective.html +18 -0
  299. package/docs/directives/EclListIllustrationPictureDirective.html +18 -0
  300. package/docs/directives/EclLoadingIndicatorLabelDirective.html +18 -0
  301. package/docs/directives/EclLoadingIndicatorOverlayDirective.html +18 -0
  302. package/docs/directives/EclMediaContainerIframeDirective.html +18 -0
  303. package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +18 -0
  304. package/docs/directives/EclMediaContainerItemDirective.html +18 -0
  305. package/docs/directives/EclMediaContainerPictureDirective.html +18 -0
  306. package/docs/directives/EclMegaMenuContainerDirective.html +18 -0
  307. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +18 -0
  308. package/docs/directives/EclMegaMenuFeaturedListDirective.html +18 -0
  309. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +18 -0
  310. package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +18 -0
  311. package/docs/directives/EclMegaMenuListDirective.html +18 -0
  312. package/docs/directives/EclMegaMenuSpacerDirective.html +18 -0
  313. package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
  314. package/docs/directives/EclModalBodyFixedContentDirective.html +18 -0
  315. package/docs/directives/EclModalCloseDirective.html +18 -0
  316. package/docs/directives/EclModalTriggerDirective.html +18 -0
  317. package/docs/directives/EclMultiselectOptionDirective.html +18 -0
  318. package/docs/directives/EclNavigationListImageDirective.html +18 -0
  319. package/docs/directives/EclNavigationListPictureDirective.html +18 -0
  320. package/docs/directives/EclNewsTickerIconDirective.html +18 -0
  321. package/docs/directives/EclNotificationTitleDirective.html +18 -0
  322. package/docs/directives/EclOrderedListDirective.html +18 -0
  323. package/docs/directives/EclOrderedListItemDirective.html +18 -0
  324. package/docs/directives/EclPageHeaderBackgroundImageDirective.html +18 -0
  325. package/docs/directives/EclPageHeaderBackgroundPictureDirective.html +18 -0
  326. package/docs/directives/EclPageHeaderDescriptionContainerDirective.html +18 -0
  327. package/docs/directives/EclPageHeaderDescriptionDirective.html +18 -0
  328. package/docs/directives/EclPageHeaderDescriptionPictureDirective.html +18 -0
  329. package/docs/directives/EclPageHeaderDescriptionThumbnailDirective.html +18 -0
  330. package/docs/directives/EclPageHeaderInfoDirective.html +18 -0
  331. package/docs/directives/EclPageHeaderMetaDirective.html +18 -0
  332. package/docs/directives/EclPageHeaderMetaItemDirective.html +18 -0
  333. package/docs/directives/EclPageHeaderTitleDirective.html +18 -0
  334. package/docs/directives/EclPaginationListDirective.html +18 -0
  335. package/docs/directives/EclPopoverContentDirective.html +18 -0
  336. package/docs/directives/EclPopoverToggleDirective.html +18 -0
  337. package/docs/directives/EclRadioDirective.html +18 -0
  338. package/docs/directives/EclRadioInputDirective.html +18 -0
  339. package/docs/directives/EclRangeDirective.html +20 -2
  340. package/docs/directives/EclSelectDirective.html +18 -0
  341. package/docs/directives/EclSeparatorDirective.html +18 -0
  342. package/docs/directives/EclSiteFooterColumnDirective.html +19 -1
  343. package/docs/directives/EclSiteFooterDescriptionDirective.html +18 -0
  344. package/docs/directives/EclSiteFooterLinkDirective.html +18 -0
  345. package/docs/directives/EclSiteFooterListDirective.html +18 -0
  346. package/docs/directives/EclSiteFooterListItemDirective.html +18 -0
  347. package/docs/directives/EclSiteFooterLogoDirective.html +18 -0
  348. package/docs/directives/EclSiteFooterLogoImageDirective.html +18 -0
  349. package/docs/directives/EclSiteFooterLogoItemDirective.html +18 -0
  350. package/docs/directives/EclSiteFooterLogoLinkDirective.html +18 -0
  351. package/docs/directives/EclSiteFooterLogoListDirective.html +18 -0
  352. package/docs/directives/EclSiteFooterPictureDirective.html +18 -0
  353. package/docs/directives/EclSiteFooterRowDirective.html +19 -1
  354. package/docs/directives/EclSiteFooterSectionDirective.html +359 -8
  355. package/docs/directives/{EclSiteFooterContentDirective.html → EclSiteFooterSocialMediaDirective.html} +28 -18
  356. package/docs/directives/EclSiteFooterTitleDirective.html +18 -0
  357. package/docs/directives/EclSiteFooterTitleLinkDirective.html +18 -0
  358. package/docs/directives/EclSiteHeaderCtaDirective.html +18 -0
  359. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +18 -0
  360. package/docs/directives/EclSiteHeaderCustomActionLinkDirective.html +18 -0
  361. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +18 -0
  362. package/docs/directives/EclSiteHeaderImageDirective.html +18 -0
  363. package/docs/directives/EclSiteHeaderLinkDirective.html +18 -0
  364. package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +18 -0
  365. package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +18 -0
  366. package/docs/directives/EclSiteHeaderPictureDirective.html +18 -0
  367. package/docs/directives/EclSocialMediaFollowLinkDirective.html +18 -0
  368. package/docs/directives/EclSocialMediaShareLinkDirective.html +18 -0
  369. package/docs/directives/EclSplashPageLanguageItemDirective.html +18 -0
  370. package/docs/directives/EclSplashPageLanguageListDirective.html +18 -0
  371. package/docs/directives/EclSplashPageLogoImageDirective.html +18 -0
  372. package/docs/directives/EclSplashPageLogoLinkDirective.html +18 -0
  373. package/docs/directives/EclSplashPagePictureDirective.html +18 -0
  374. package/docs/directives/EclTableBodyDirective.html +18 -0
  375. package/docs/directives/EclTableCaptionDirective.html +18 -0
  376. package/docs/directives/EclTableCellDirective.html +18 -0
  377. package/docs/directives/EclTableCellGroupDirective.html +18 -0
  378. package/docs/directives/EclTableDirective.html +18 -0
  379. package/docs/directives/EclTableHeadDirective.html +18 -0
  380. package/docs/directives/EclTableHeaderDirective.html +18 -0
  381. package/docs/directives/EclTableResponsiveDirective.html +18 -0
  382. package/docs/directives/EclTableRowDirective.html +18 -0
  383. package/docs/directives/EclTagIconExternalDirective.html +18 -0
  384. package/docs/directives/EclTagSetDirective.html +18 -0
  385. package/docs/directives/EclTagSetItemDirective.html +18 -0
  386. package/docs/directives/EclTextAreaDirective.html +18 -0
  387. package/docs/directives/EclTextInputDirective.html +18 -0
  388. package/docs/directives/EclTimelineItemLabelDirective.html +18 -0
  389. package/docs/directives/EclTimelineItemTitleDirective.html +18 -0
  390. package/docs/directives/EclUnorderedListDirective.html +18 -0
  391. package/docs/directives/EclUnorderedListItemDirective.html +18 -0
  392. package/docs/index.html +20 -2
  393. package/docs/injectables/EclAreaDataService.html +18 -0
  394. package/docs/injectables/EclDefaultLanguageService.html +18 -0
  395. package/docs/injectables/EclHeaderMenuComunicationService.html +18 -0
  396. package/docs/injectables/EclInpageNavigationService.html +18 -0
  397. package/docs/injectables/EclMegaMenuDataService.html +18 -0
  398. package/docs/injectables/EclMegaMenuService.html +18 -0
  399. package/docs/injectables/EclRtlService.html +18 -0
  400. package/docs/injectables/EclThemeService.html +18 -0
  401. package/docs/injectables/EclUserDeviceService.html +18 -0
  402. package/docs/interfaces/EclBreadcrumb.html +18 -0
  403. package/docs/interfaces/EclCarouselItem.html +18 -0
  404. package/docs/interfaces/EclCategoryFilterItem.html +18 -0
  405. package/docs/interfaces/EclFileUpload.html +18 -0
  406. package/docs/interfaces/EclGalleryItem.html +18 -0
  407. package/docs/interfaces/EclLanguage.html +18 -0
  408. package/docs/interfaces/EclMegaMenuItem.html +18 -0
  409. package/docs/interfaces/EclMenuItem.html +18 -0
  410. package/docs/interfaces/EclModalResult.html +18 -0
  411. package/docs/interfaces/EclMultiselectOption.html +18 -0
  412. package/docs/interfaces/EclTab.html +18 -0
  413. package/docs/js/libs/bootstrap-native.js +1 -1
  414. package/docs/js/libs/jszip.min.js +13 -0
  415. package/docs/js/libs/svg-pan-zoom.min.js +3 -3
  416. package/docs/js/libs/tablesort.min.js +3 -3
  417. package/docs/js/libs/tablesort.number.min.js +3 -3
  418. package/docs/js/menu-wc.js +55 -39
  419. package/docs/js/menu-wc_es5.js +1 -1
  420. package/docs/js/routes/routes_index.js +1 -0
  421. package/docs/js/routes.js +15 -8
  422. package/docs/js/search/search_index.js +2 -2
  423. package/docs/license.html +20 -2
  424. package/docs/miscellaneous/enumerations.html +18 -0
  425. package/docs/miscellaneous/functions.html +280 -0
  426. package/docs/miscellaneous/variables.html +155 -72
  427. package/docs/modules/EclAccordionModule.html +18 -0
  428. package/docs/modules/EclAllModule.html +27 -360
  429. package/docs/modules/EclAppModule.html +18 -0
  430. package/docs/modules/EclBannerModule.html +18 -0
  431. package/docs/modules/EclBlockquoteModule.html +18 -0
  432. package/docs/modules/EclBreadcrumbModule.html +18 -0
  433. package/docs/modules/EclButtonModule.html +18 -0
  434. package/docs/modules/EclCardModule.html +18 -0
  435. package/docs/modules/EclCarouselModule.html +18 -0
  436. package/docs/modules/EclCategoryFilterModule.html +18 -0
  437. package/docs/modules/EclCheckboxModule.html +18 -0
  438. package/docs/modules/EclContentBlockModule.html +18 -0
  439. package/docs/modules/EclContentItemModule.html +18 -0
  440. package/docs/modules/EclDateBlockModule.html +18 -0
  441. package/docs/modules/EclDatePickerModule.html +18 -0
  442. package/docs/modules/EclExpandableModule.html +18 -0
  443. package/docs/modules/EclFactFiguresModule.html +18 -0
  444. package/docs/modules/EclFeaturedModule.html +18 -0
  445. package/docs/modules/EclFeedbackMessageModule.html +18 -0
  446. package/docs/modules/EclFileModule.html +18 -0
  447. package/docs/modules/EclFileUploadModule.html +18 -0
  448. package/docs/modules/EclFormGroupModule.html +18 -0
  449. package/docs/modules/EclFormLabelModule.html +18 -0
  450. package/docs/modules/EclGalleryModule.html +18 -0
  451. package/docs/modules/EclHelpBlockModule.html +18 -0
  452. package/docs/modules/EclHiddenModule.html +18 -0
  453. package/docs/modules/EclIconModule.html +18 -0
  454. package/docs/modules/EclInpageNavigationModule.html +18 -0
  455. package/docs/modules/EclLabelModule.html +18 -0
  456. package/docs/modules/EclLinkModule.html +24 -3
  457. package/docs/modules/EclListIllustrationModule.html +18 -0
  458. package/docs/modules/EclListModule.html +18 -0
  459. package/docs/modules/EclLoadingIndicatorModule.html +18 -0
  460. package/docs/modules/EclMediaContainerModule.html +18 -0
  461. package/docs/modules/EclMegaMenuModule.html +18 -0
  462. package/docs/modules/EclMenuModule.html +18 -0
  463. package/docs/modules/EclModalModule.html +18 -0
  464. package/docs/modules/EclMultiselectModule.html +18 -0
  465. package/docs/modules/EclNavigationListModule.html +18 -0
  466. package/docs/modules/EclNewsTickerModule.html +18 -0
  467. package/docs/modules/EclNotificationModule.html +18 -0
  468. package/docs/modules/EclPageHeaderModule.html +18 -0
  469. package/docs/modules/EclPaginationModule.html +18 -0
  470. package/docs/modules/EclPopoverModule.html +18 -0
  471. package/docs/modules/EclRadioModule.html +18 -0
  472. package/docs/modules/EclRangeModule.html +18 -0
  473. package/docs/modules/EclRatingFieldModule.html +18 -0
  474. package/docs/modules/EclSearchFormModule.html +18 -0
  475. package/docs/modules/EclSelectModule.html +18 -0
  476. package/docs/modules/EclSeparatorModule.html +18 -0
  477. package/docs/modules/EclSiteFooterModule.html +18 -0
  478. package/docs/modules/EclSiteHeaderModule.html +18 -0
  479. package/docs/modules/EclSocialMediaFollowModule.html +18 -0
  480. package/docs/modules/EclSocialMediaShareModule.html +18 -0
  481. package/docs/modules/EclSplashPageModule.html +18 -0
  482. package/docs/modules/EclStickyContainerModule.html +18 -0
  483. package/docs/modules/EclTableModule.html +18 -0
  484. package/docs/modules/EclTabsModule.html +18 -0
  485. package/docs/modules/EclTagModule.html +18 -0
  486. package/docs/modules/EclTextAreaModule.html +18 -0
  487. package/docs/modules/EclTextInputModule.html +18 -0
  488. package/docs/modules/EclTimelineModule.html +18 -0
  489. package/docs/modules.html +18 -0
  490. package/docs/overview.html +29 -1
  491. package/docs/pipes/BoldTextPipe.html +18 -0
  492. package/docs/properties.html +19 -1
  493. package/docs/routes.html +204 -0
  494. package/docs/template-playground/default-templates.json +192 -0
  495. package/docs/template-playground/hbs-render.service.ts +212 -0
  496. package/docs/template-playground/main.ts +9 -0
  497. package/docs/template-playground/template-editor.service.ts +173 -0
  498. package/docs/template-playground/template-playground.component.ts +614 -0
  499. package/docs/template-playground/template-playground.module.ts +29 -0
  500. package/docs/template-playground/zip-export.service.ts +86 -0
  501. package/docs/template-playground-app/app.js +1389 -0
  502. package/docs/template-playground-app/index.html +462 -0
  503. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +14 -14
  504. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  505. package/fesm2022/eui-ecl-components-ecl-app.mjs +7 -7
  506. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  507. package/fesm2022/eui-ecl-components-ecl-banner.mjs +109 -81
  508. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  509. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +13 -13
  510. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  511. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +22 -23
  512. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  513. package/fesm2022/eui-ecl-components-ecl-button.mjs +18 -18
  514. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  515. package/fesm2022/eui-ecl-components-ecl-card.mjs +16 -16
  516. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  517. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +53 -31
  518. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  519. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +15 -15
  520. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  521. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +18 -18
  522. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  523. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +58 -58
  524. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  525. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +13 -13
  526. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  527. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +7 -7
  528. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  529. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +7 -7
  530. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  531. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +10 -10
  532. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  533. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +22 -22
  534. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  535. package/fesm2022/eui-ecl-components-ecl-featured.mjs +28 -26
  536. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  537. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +7 -7
  538. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  539. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +7 -7
  540. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  541. package/fesm2022/eui-ecl-components-ecl-file.mjs +41 -43
  542. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  543. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +7 -7
  544. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  545. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +10 -10
  546. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  547. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +32 -30
  548. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  549. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +7 -7
  550. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  551. package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -7
  552. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  553. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +20 -20
  554. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  555. package/fesm2022/eui-ecl-components-ecl-label.mjs +7 -7
  556. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  557. package/fesm2022/eui-ecl-components-ecl-link.mjs +21 -21
  558. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  559. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -19
  560. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  561. package/fesm2022/eui-ecl-components-ecl-list.mjs +33 -33
  562. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  563. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +13 -13
  564. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  565. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +22 -22
  566. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  567. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +66 -64
  568. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  569. package/fesm2022/eui-ecl-components-ecl-menu.mjs +54 -37
  570. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  571. package/fesm2022/eui-ecl-components-ecl-modal.mjs +29 -29
  572. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  573. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +34 -34
  574. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  575. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -16
  576. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  577. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +17 -17
  578. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  579. package/fesm2022/eui-ecl-components-ecl-notification.mjs +14 -14
  580. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  581. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +37 -37
  582. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  583. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +27 -21
  584. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  585. package/fesm2022/eui-ecl-components-ecl-popover.mjs +21 -21
  586. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  587. package/fesm2022/eui-ecl-components-ecl-radio.mjs +16 -16
  588. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  589. package/fesm2022/eui-ecl-components-ecl-range.mjs +14 -14
  590. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  591. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +9 -9
  592. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  593. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +10 -10
  594. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  595. package/fesm2022/eui-ecl-components-ecl-select.mjs +14 -14
  596. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  597. package/fesm2022/eui-ecl-components-ecl-separator.mjs +7 -7
  598. package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +1 -1
  599. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +273 -204
  600. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  601. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +100 -106
  602. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  603. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +21 -19
  604. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  605. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs +16 -16
  606. package/fesm2022/eui-ecl-components-ecl-social-media-share.mjs.map +1 -1
  607. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +31 -31
  608. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  609. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +7 -7
  610. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  611. package/fesm2022/eui-ecl-components-ecl-table.mjs +36 -36
  612. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  613. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +26 -24
  614. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  615. package/fesm2022/eui-ecl-components-ecl-tag.mjs +18 -18
  616. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  617. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +7 -7
  618. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  619. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +7 -7
  620. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  621. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +22 -22
  622. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  623. package/fesm2022/eui-ecl-core.mjs +165 -151
  624. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  625. package/fesm2022/eui-ecl-shared.mjs +3 -3
  626. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  627. package/fesm2022/eui-ecl.mjs +184 -304
  628. package/fesm2022/eui-ecl.mjs.map +1 -1
  629. package/index.d.ts +1 -1
  630. package/package.json +53 -54
  631. package/docs/components/EclSiteFooterFixedContentECComponent.html +0 -571
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-app.mjs","sources":["../../components/ecl-app/ecl-app.component.ts","../../components/ecl-app/ecl-app.component.html","../../components/ecl-app/ecl-app.module.ts","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, HostBinding, OnDestroy, Output, inject } from '@angular/core';\nimport { CssUtils } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguageSelectedEvent } from '@eui/ecl/components/ecl-site-header';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService } from '@eui/ecl/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * The wrapper component for an ecl application. Has some important global properties.\n */\nexport class EclAppLanguageDismissEvent extends EclBaseEvent {\n constructor(public language?: EuiLanguage) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-app',\n templateUrl: './ecl-app.component.html',\n})\nexport class EclAppComponent extends ECLBaseDirective implements AfterViewInit, OnDestroy {\n /**\n * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will\n * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.\n */\n @HostBinding('attr.dir') textDirection = 'ltr';\n\n @ContentChild(EclSiteHeaderLanguageComponent) eclSiteHeaderLanguage: EclSiteHeaderLanguageComponent;\n\n @Output() languageDismiss = new EventEmitter<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private eclRtlService = inject(EclRtlService);\n private document = inject<Document>(DOCUMENT);\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-19.\n CssUtils.setHtmlClass('eui-19', this.document);\n this.handleRtlChangeState();\n this.handleUIEvents();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Changes the text direction from 'ltr' to 'rtl' and vice versa.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState) {\n this.textDirection = 'rtl';\n } else {\n this.textDirection = 'ltr';\n }\n });\n }\n\n private handleUIEvents(): void {\n this.eclSiteHeaderLanguage?.languageSelected\n .pipe(takeUntil(this.destroy$))\n .subscribe((evt: EclSiteHeaderLanguageSelectedEvent) => {\n this.languageDismiss.next(new EclAppLanguageDismissEvent(evt.language));\n });\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclAppComponent } from './ecl-app.component';\n\n/**\n * Module that provides the EclAppComponent.\n *\n * @deprecated Use {@link EUI_ECL_APP} instead.\n */\n@NgModule({\n imports: [EclAppComponent],\n exports: [EclAppComponent],\n})\nexport class EclAppModule {}\n","import { EclAppComponent } from './ecl-app.component';\n\nexport * from './ecl-app.module';\nexport * from './ecl-app.component';\n\nexport const EUI_ECL_APP = [\n EclAppComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-app.mjs","sources":["../../components/ecl-app/ecl-app.component.ts","../../components/ecl-app/ecl-app.component.html","../../components/ecl-app/ecl-app.module.ts","../../components/ecl-app/index.ts","../../components/ecl-app/eui-ecl-components-ecl-app.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Component, ContentChild, EventEmitter, HostBinding, OnDestroy, Output, inject } from '@angular/core';\nimport { CssUtils } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguageSelectedEvent } from '@eui/ecl/components/ecl-site-header';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService } from '@eui/ecl/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * The wrapper component for an ecl application. Has some important global properties.\n */\nexport class EclAppLanguageDismissEvent extends EclBaseEvent {\n constructor(public language?: EuiLanguage) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-app',\n templateUrl: './ecl-app.component.html',\n})\nexport class EclAppComponent extends ECLBaseDirective implements AfterViewInit, OnDestroy {\n /**\n * Text direction, by default is 'ltr' - left-to-write. Can also be 'rtl' - right-to-left, which will\n * make all components within <ecl-app> to lign to the right, and apply some special styling and functionality.\n */\n @HostBinding('attr.dir') textDirection = 'ltr';\n\n @ContentChild(EclSiteHeaderLanguageComponent) eclSiteHeaderLanguage: EclSiteHeaderLanguageComponent;\n\n @Output() languageDismiss = new EventEmitter<EclAppLanguageDismissEvent>();\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private eclRtlService = inject(EclRtlService);\n private document = inject<Document>(DOCUMENT);\n\n ngAfterViewInit(): void {\n // Adds global class, which is used to apply the correct styling for eui-19.\n CssUtils.setHtmlClass('eui-19', this.document);\n this.handleRtlChangeState();\n this.handleUIEvents();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Changes the text direction from 'ltr' to 'rtl' and vice versa.\n */\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n if (rtlState) {\n this.textDirection = 'rtl';\n } else {\n this.textDirection = 'ltr';\n }\n });\n }\n\n private handleUIEvents(): void {\n this.eclSiteHeaderLanguage?.languageSelected\n .pipe(takeUntil(this.destroy$))\n .subscribe((evt: EclSiteHeaderLanguageSelectedEvent) => {\n this.languageDismiss.next(new EclAppLanguageDismissEvent(evt.language));\n });\n }\n}\n","<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclAppComponent } from './ecl-app.component';\n\n/**\n * Module that provides the EclAppComponent.\n *\n * @deprecated Use {@link EUI_ECL_APP} instead.\n */\n@NgModule({\n imports: [EclAppComponent],\n exports: [EclAppComponent],\n})\nexport class EclAppModule {}\n","import { EclAppComponent } from './ecl-app.component';\n\nexport * from './ecl-app.module';\nexport * from './ecl-app.component';\n\nexport const EUI_ECL_APP = [\n EclAppComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { BreakpointObserver } from '@angular/cdk/layout';
2
2
  import * as i0 from '@angular/core';
3
- import { HostBinding, Directive, inject, ElementRef, Renderer2, afterNextRender, booleanAttribute, ViewChild, ContentChild, forwardRef, ContentChildren, Input, Component, NgModule } from '@angular/core';
3
+ import { HostBinding, Directive, inject, ElementRef, Renderer2, afterNextRender, booleanAttribute, HostListener, ViewChild, ContentChild, forwardRef, ContentChildren, Input, Component, NgModule } from '@angular/core';
4
4
  import { Subject, takeUntil, delay } from 'rxjs';
5
5
  import { ECLBaseDirective } from '@eui/ecl/core';
6
6
  import { EclLinkDirective } from '@eui/ecl/components/ecl-link';
7
7
  import * as i1 from '@eui/ecl/components/ecl-icon';
8
- import { EclIconModule } from '@eui/ecl/components/ecl-icon';
8
+ import { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';
9
9
  import { NgTemplateOutlet } from '@angular/common';
10
10
  import * as i2 from '@eui/ecl/components/ecl-button';
11
- import { EclButtonModule } from '@eui/ecl/components/ecl-button';
11
+ import { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';
12
12
 
13
13
  /**
14
14
  * Directive applied to the <picture> element within the banner.
@@ -18,10 +18,10 @@ class EclBannerPictureDirective extends ECLBaseDirective {
18
18
  get cssClasses() {
19
19
  return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerPictureDirective, isStandalone: true, selector: "picture[eclBannerPicture]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerPictureDirective, isStandalone: true, selector: "picture[eclBannerPicture]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerPictureDirective, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerPictureDirective, decorators: [{
25
25
  type: Directive,
26
26
  args: [{
27
27
  selector: 'picture[eclBannerPicture]',
@@ -40,10 +40,10 @@ class EclBannerImageDirective extends ECLBaseDirective {
40
40
  this.el = inject(ElementRef);
41
41
  this.className = true;
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerImageDirective, isStandalone: true, selector: "img[eclBannerImage]", host: { properties: { "class.ecl-banner__image": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerImageDirective, isStandalone: true, selector: "img[eclBannerImage]", host: { properties: { "class.ecl-banner__image": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerImageDirective, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerImageDirective, decorators: [{
47
47
  type: Directive,
48
48
  args: [{
49
49
  selector: 'img[eclBannerImage]',
@@ -66,10 +66,10 @@ class EclBannerVideoDirective extends ECLBaseDirective {
66
66
  */
67
67
  this.videoClasses = 'ecl-video ecl-banner__video';
68
68
  }
69
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerVideoDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
70
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerVideoDirective, isStandalone: true, selector: "video[eclBannerVideo]", host: { properties: { "class": "this.videoClasses" } }, usesInheritance: true, ngImport: i0 }); }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerVideoDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
70
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerVideoDirective, isStandalone: true, selector: "video[eclBannerVideo]", host: { properties: { "class": "this.videoClasses" } }, usesInheritance: true, ngImport: i0 }); }
71
71
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerVideoDirective, decorators: [{
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerVideoDirective, decorators: [{
73
73
  type: Directive,
74
74
  args: [{
75
75
  selector: 'video[eclBannerVideo]',
@@ -94,6 +94,7 @@ class EclBannerComponent extends ECLBaseDirective {
94
94
  `ecl-banner--v-${this.verticalAlignment}`,
95
95
  `ecl-banner--color-${this.fontColor}`,
96
96
  this.isFullWidth ? 'ecl-banner--full-width' : '',
97
+ !this.hasMedia ? 'ecl-banner--no-media' : '',
97
98
  ]
98
99
  .join(' ')
99
100
  .trim();
@@ -150,11 +151,13 @@ class EclBannerComponent extends ECLBaseDirective {
150
151
  this.isPlaying = false;
151
152
  this.BANNER_PADDING = 16;
152
153
  this.destroy$ = new Subject();
153
- this.bannerWidth = 0;
154
+ this.breakpoint = 996;
155
+ this.bannerVPadding = 8;
154
156
  this.isTabletBreakpoint = true;
155
157
  this.TIMEOUT_INTERVAL = 200;
156
158
  this.renderer = inject(Renderer2);
157
159
  this.cdkBreakpointObserver = inject(BreakpointObserver);
160
+ this.maxIterations = 10;
158
161
  afterNextRender(() => {
159
162
  this.observeBreakpointChanges();
160
163
  this.observeElementSizeChanges();
@@ -202,6 +205,12 @@ class EclBannerComponent extends ECLBaseDirective {
202
205
  get hasVideo() {
203
206
  return !!this.eclBannerVideo;
204
207
  }
208
+ /**
209
+ * Indicates whether the banner contains any media (image or video).
210
+ */
211
+ get hasMedia() {
212
+ return this.hasImage || this.hasVideo;
213
+ }
205
214
  /**
206
215
  * Handles keyboard activation (Enter key) to play video.
207
216
  * Moves focus to pause button after playing starts.
@@ -210,6 +219,9 @@ class EclBannerComponent extends ECLBaseDirective {
210
219
  this.onVideoPlay();
211
220
  setTimeout(() => this.pauseBtn.onFocus());
212
221
  }
222
+ onWindowResize() {
223
+ this.observeElementSizeChanges();
224
+ }
213
225
  /**
214
226
  * Handles keyboard activation (Enter key) to pause video.
215
227
  * Moves focus to play button after pausing.
@@ -235,57 +247,70 @@ class EclBannerComponent extends ECLBaseDirective {
235
247
  videoEl.pause();
236
248
  }
237
249
  observeElementSizeChanges() {
238
- new ResizeObserver(() => {
239
- setTimeout(() => {
240
- if (this.bannerWidth !== this.bannerContainer.nativeElement.offsetWidth) {
241
- this.bannerWidth = this.bannerContainer.nativeElement.offsetWidth;
242
- if (this.eclBannerImage || this.eclBannerVideo) {
243
- this.setBannerHeight();
244
- }
245
- }
246
- }, this.TIMEOUT_INTERVAL);
247
- }).observe(this.bannerContainer.nativeElement);
250
+ // new ResizeObserver(() => { // Removing this for now , because it is causing problems (infinite loop). Observing window:resize.
251
+ setTimeout(() => {
252
+ this.checkViewport();
253
+ }, this.TIMEOUT_INTERVAL);
254
+ // }).observe(this.bannerContainer.nativeElement);
255
+ }
256
+ checkViewport() {
257
+ if (window.innerWidth > this.breakpoint) {
258
+ this.setBannerHeight();
259
+ }
260
+ else {
261
+ this.resetBannerHeight();
262
+ }
263
+ }
264
+ waitForAspectRatioToBeDefined(attemptCounter) {
265
+ attemptCounter = attemptCounter + 1;
266
+ const aspectRatio = window.getComputedStyle(this.el.nativeElement).getPropertyValue('--css-aspect-ratio');
267
+ if ((typeof aspectRatio === 'undefined' || aspectRatio === '') &&
268
+ this.maxIterations > attemptCounter) {
269
+ setTimeout(() => this.waitForAspectRatioToBeDefined(attemptCounter), 100);
270
+ }
271
+ else {
272
+ this.setHeight(aspectRatio);
273
+ }
248
274
  }
249
275
  setBannerHeight() {
250
- if (!this.bannerContainer) {
251
- return;
276
+ if (this.hasMedia) {
277
+ this.waitForAspectRatioToBeDefined(0);
252
278
  }
253
- const bannerContainerHeight = this.bannerContainer.nativeElement.offsetHeight + this.BANNER_PADDING;
254
- const ratioArray = this.getRatioArray();
255
- const elHeight = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10) * ratioArray[1] / ratioArray[0];
256
- if (this.isTabletBreakpoint && bannerContainerHeight > elHeight) {
257
- if (this.eclBannerImage) {
258
- this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', 'auto');
279
+ else {
280
+ this.setHeight(this.getDefaultRatio());
281
+ }
282
+ }
283
+ setHeight(ratio) {
284
+ if (this.bannerContainer) {
285
+ const bannerHeight = this.bannerContainer.nativeElement.offsetHeight + 2 * this.bannerVPadding;
286
+ const bannerWidth = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10);
287
+ const [denominator, numerator] = ratio.split('/').map(Number);
288
+ const currentHeight = (bannerWidth * numerator) / denominator;
289
+ if (bannerHeight > currentHeight) {
290
+ this.renderer.setStyle(this.el.nativeElement, 'aspect-ratio', 'auto');
291
+ this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerHeight}px`);
259
292
  }
260
- else if (this.eclBannerVideo) {
261
- this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', 'auto');
293
+ else {
294
+ this.resetBannerHeight();
262
295
  }
263
- this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerContainerHeight}px`);
264
- }
265
- else {
266
- this.resetHeight();
267
296
  }
297
+ // Add margin to the banner container when there is a footer
298
+ // This is needed to keep the vertical alignment
268
299
  if (this.bannerFooter) {
269
300
  this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;
301
+ // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', `${this.bannerFooter.nativeElement.offsetHeight}px`);
270
302
  }
271
303
  }
272
- resetHeight() {
304
+ resetBannerHeight() {
305
+ // remove aspect-ratio
306
+ this.renderer.removeStyle(this.el.nativeElement, 'aspect-ratio');
307
+ // set height to auto
273
308
  this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');
274
- if (this.eclBannerImage) {
275
- const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');
276
- this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', aspectRatio);
277
- }
278
- if (this.eclBannerVideo) {
279
- this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', this.getDefaultRatio());
280
- }
281
- }
282
- getRatioArray() {
283
- if (this.eclBannerImage) {
284
- const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');
285
- return aspectRatio.split('/').map(Number);
286
- }
287
- else {
288
- return this.getDefaultRatio().split('/').map(Number);
309
+ // update footer height if bannerFooter exists
310
+ if (this.bannerFooter) {
311
+ // const footerHeight = `${this.bannerFooter.nativeElement.offsetHeight}px`;
312
+ this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;
313
+ // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', footerHeight);
289
314
  }
290
315
  }
291
316
  getDefaultRatio() {
@@ -317,16 +342,16 @@ class EclBannerComponent extends ECLBaseDirective {
317
342
  }
318
343
  });
319
344
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: EclBannerComponent, isStandalone: true, selector: "ecl-banner", inputs: { eclSize: "eclSize", fontColor: "fontColor", fontSize: "fontSize", boxBackground: "boxBackground", horizontalAlignment: "horizontalAlignment", verticalAlignment: "verticalAlignment", copyright: "copyright", isFullWidth: ["isFullWidth", "isFullWidth", booleanAttribute] }, host: { properties: { "style.--banner-footer-height.px": "this.bannerFooterHeight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclBannerImage", first: true, predicate: EclBannerImageDirective, descendants: true }, { propertyName: "eclBannerVideo", first: true, predicate: EclBannerVideoDirective, descendants: true }, { propertyName: "eclLinkComponents", predicate: i0.forwardRef(() => EclLinkDirective) }], viewQueries: [{ propertyName: "bannerFooter", first: true, predicate: ["bannerFooter"], descendants: true }, { propertyName: "bannerContainer", first: true, predicate: ["bannerContainer"], descendants: true }, { propertyName: "playBtn", first: true, predicate: ["playBtn"], descendants: true }, { propertyName: "pauseBtn", first: true, predicate: ["pauseBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">\u00A9 {{copyright}}</div></div>\n</ng-template>", dependencies: [{ kind: "ngmodule", type: EclIconModule }, { kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "ngmodule", type: EclButtonModule }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
345
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
346
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0-next.5", type: EclBannerComponent, isStandalone: true, selector: "ecl-banner", inputs: { eclSize: "eclSize", fontColor: "fontColor", fontSize: "fontSize", boxBackground: "boxBackground", horizontalAlignment: "horizontalAlignment", verticalAlignment: "verticalAlignment", copyright: "copyright", isFullWidth: ["isFullWidth", "isFullWidth", booleanAttribute] }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "style.--banner-footer-height.px": "this.bannerFooterHeight", "class": "this.cssClasses" } }, queries: [{ propertyName: "eclBannerImage", first: true, predicate: EclBannerImageDirective, descendants: true }, { propertyName: "eclBannerVideo", first: true, predicate: EclBannerVideoDirective, descendants: true }, { propertyName: "eclLinkComponents", predicate: i0.forwardRef(() => EclLinkDirective) }], viewQueries: [{ propertyName: "bannerFooter", first: true, predicate: ["bannerFooter"], descendants: true }, { propertyName: "bannerContainer", first: true, predicate: ["bannerContainer"], descendants: true }, { propertyName: "playBtn", first: true, predicate: ["playBtn"], descendants: true }, { propertyName: "pauseBtn", first: true, predicate: ["pauseBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <footer #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">\u00A9 {{copyright}}</div></footer>\n</ng-template>", dependencies: [{ kind: "component", type: i1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i2.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i2.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
322
347
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerComponent, decorators: [{
348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerComponent, decorators: [{
324
349
  type: Component,
325
350
  args: [{ selector: 'ecl-banner', imports: [
326
- EclIconModule,
327
- EclButtonModule,
351
+ ...EUI_ECL_ICON,
352
+ ...EUI_ECL_BUTTON,
328
353
  NgTemplateOutlet,
329
- ], template: "@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">\u00A9 {{copyright}}</div></div>\n</ng-template>" }]
354
+ ], template: "@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <footer #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">\u00A9 {{copyright}}</div></footer>\n</ng-template>" }]
330
355
  }], ctorParameters: () => [], propDecorators: { eclSize: [{
331
356
  type: Input
332
357
  }], fontColor: [{
@@ -371,6 +396,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
371
396
  }], cssClasses: [{
372
397
  type: HostBinding,
373
398
  args: ['class']
399
+ }], onWindowResize: [{
400
+ type: HostListener,
401
+ args: ['window:resize']
374
402
  }] } });
375
403
 
376
404
  /**
@@ -382,10 +410,10 @@ class EclBannerTitleDirective extends ECLBaseDirective {
382
410
  super(...arguments);
383
411
  this.className = 'ecl-banner__title';
384
412
  }
385
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
386
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerTitleDirective, isStandalone: true, selector: "[eclBannerTitle]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
414
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerTitleDirective, isStandalone: true, selector: "[eclBannerTitle]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
387
415
  }
388
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerTitleDirective, decorators: [{
416
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleDirective, decorators: [{
389
417
  type: Directive,
390
418
  args: [{
391
419
  selector: '[eclBannerTitle]',
@@ -403,10 +431,10 @@ class EclBannerTitleTextDirective extends ECLBaseDirective {
403
431
  super(...arguments);
404
432
  this.className = 'ecl-banner__title-text';
405
433
  }
406
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerTitleTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
407
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerTitleTextDirective, isStandalone: true, selector: "[eclBannerTitleText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
434
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
435
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerTitleTextDirective, isStandalone: true, selector: "[eclBannerTitleText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
408
436
  }
409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerTitleTextDirective, decorators: [{
437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleTextDirective, decorators: [{
410
438
  type: Directive,
411
439
  args: [{
412
440
  selector: '[eclBannerTitleText]',
@@ -424,10 +452,10 @@ class EclBannerTitleLinkDirective extends ECLBaseDirective {
424
452
  super(...arguments);
425
453
  this.className = 'ecl-link ecl-banner__title-link';
426
454
  }
427
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerTitleLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
428
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerTitleLinkDirective, isStandalone: true, selector: "[eclBannerTitleLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
455
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
456
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerTitleLinkDirective, isStandalone: true, selector: "[eclBannerTitleLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
429
457
  }
430
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerTitleLinkDirective, decorators: [{
458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerTitleLinkDirective, decorators: [{
431
459
  type: Directive,
432
460
  args: [{
433
461
  selector: '[eclBannerTitleLink]',
@@ -445,10 +473,10 @@ class EclBannerDescriptionDirective extends ECLBaseDirective {
445
473
  super(...arguments);
446
474
  this.className = 'ecl-banner__description';
447
475
  }
448
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
449
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerDescriptionDirective, isStandalone: true, selector: "[eclBannerDescription]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
476
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
477
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerDescriptionDirective, isStandalone: true, selector: "[eclBannerDescription]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
450
478
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerDescriptionDirective, decorators: [{
479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionDirective, decorators: [{
452
480
  type: Directive,
453
481
  args: [{
454
482
  selector: '[eclBannerDescription]',
@@ -465,10 +493,10 @@ class EclBannerDescriptionTextDirective extends ECLBaseDirective {
465
493
  super(...arguments);
466
494
  this.className = 'ecl-banner__description-text';
467
495
  }
468
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerDescriptionTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
469
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerDescriptionTextDirective, isStandalone: true, selector: "[eclBannerDescriptionText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionTextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
497
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerDescriptionTextDirective, isStandalone: true, selector: "[eclBannerDescriptionText]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
470
498
  }
471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerDescriptionTextDirective, decorators: [{
499
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionTextDirective, decorators: [{
472
500
  type: Directive,
473
501
  args: [{
474
502
  selector: '[eclBannerDescriptionText]',
@@ -485,10 +513,10 @@ class EclBannerDescriptionLinkDirective extends ECLBaseDirective {
485
513
  super(...arguments);
486
514
  this.className = 'ecl-link ecl-banner__description-link';
487
515
  }
488
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerDescriptionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
489
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.1.6", type: EclBannerDescriptionLinkDirective, isStandalone: true, selector: "[eclBannerDescriptionLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
516
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
517
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0-next.5", type: EclBannerDescriptionLinkDirective, isStandalone: true, selector: "[eclBannerDescriptionLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
490
518
  }
491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerDescriptionLinkDirective, decorators: [{
519
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerDescriptionLinkDirective, decorators: [{
492
520
  type: Directive,
493
521
  args: [{
494
522
  selector: '[eclBannerDescriptionLink]',
@@ -517,8 +545,8 @@ const COMPONENTS = [
517
545
  * @deprecated Use {@link EUI_ECL_BANNER} instead.
518
546
  */
519
547
  class EclBannerModule {
520
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
521
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent,
548
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
549
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent,
522
550
  EclBannerTitleDirective,
523
551
  EclBannerTitleTextDirective,
524
552
  EclBannerDescriptionDirective,
@@ -537,9 +565,9 @@ class EclBannerModule {
537
565
  EclBannerTitleLinkDirective,
538
566
  EclBannerVideoDirective,
539
567
  EclBannerDescriptionLinkDirective] }); }
540
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent] }); }
568
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerModule, imports: [EclBannerComponent] }); }
541
569
  }
542
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: EclBannerModule, decorators: [{
570
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.5", ngImport: i0, type: EclBannerModule, decorators: [{
543
571
  type: NgModule,
544
572
  args: [{
545
573
  imports: [...COMPONENTS],
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-banner.mjs","sources":["../../components/ecl-banner/ecl-banner-picture.directive.ts","../../components/ecl-banner/ecl-banner-video.directive.ts","../../components/ecl-banner/ecl-banner.component.ts","../../components/ecl-banner/ecl-banner.component.html","../../components/ecl-banner/ecl-banner-title.directive.ts","../../components/ecl-banner/ecl-banner-description.directive.ts","../../components/ecl-banner/ecl-banner.module.ts","../../components/ecl-banner/index.ts","../../components/ecl-banner/eui-ecl-components-ecl-banner.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <picture> element within the banner.\n * Adds the appropriate classes for styling the banner picture.\n */\n@Directive({\n selector: 'picture[eclBannerPicture]',\n})\nexport class EclBannerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive applied to the <img> element inside the banner.\n * Enables class binding and exposes the element reference.\n */\n@Directive({\n selector: 'img[eclBannerImage]',\n})\nexport class EclBannerImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-banner__image') className = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the video element used in the banner.\n * Adds appropriate styling classes to the host element.\n */\n@Directive({\n selector: 'video[eclBannerVideo]',\n})\nexport class EclBannerVideoDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * CSS classes applied to the host video element.\n */\n @HostBinding('class') videoClasses = 'ecl-video ecl-banner__video';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Subject, delay, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclBannerImageDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon'; // TODO: Replace with EUI_ECL_ICON\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EclButtonComponent, EclButtonModule } from '@eui/ecl/components/ecl-button'; // TODO: Replace with EUI_ECL_BUTTON\n\nconst enum DefaultRatio {\n XS = '6/1',\n S = '5/1',\n M = '4/1',\n L = '3/1',\n}\n\n/**\n * Component representing a banner, which can contain image, video and call-to-action (CTA) links.\n * Allows customization of layout, alignment, and appearance through inputs.\n */\n@Component({\n selector: 'ecl-banner',\n templateUrl: './ecl-banner.component.html',\n imports: [\n EclIconModule,\n EclButtonModule,\n NgTemplateOutlet,\n ],\n})\nexport class EclBannerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n /**\n * Defines the size of the banner. Affects its height-to-width aspect ratio.\n * Allowed values: 'xs' | 's' | 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() eclSize: 'xs'| 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the color of the font inside the banner content box.\n * Allowed values: 'light' | 'dark'.\n * Default: 'dark'.\n */\n @Input() fontColor: 'light' | 'dark' | string = 'dark';\n\n /**\n * Defines the font size inside the banner content box.\n * Allowed values: 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() fontSize: 'm' | 'l' | string = 'm';\n\n /**\n * Defines the background color of the banner content box.\n * Allowed values: 'none' | 'light' | 'dark'.\n * Default: 'light'.\n */\n @Input() boxBackground: 'none' | 'light' | 'dark' | string = 'light';\n\n /**\n * Sets the horizontal alignment of the content inside the banner.\n * Allowed values: 'left' | 'center' | 'right'.\n * Default: 'left'.\n */\n @Input() horizontalAlignment: 'right' | 'left' | 'center' | string = 'left';\n\n /**\n * Sets the vertical alignment of the content inside the banner.\n * Allowed values: 'top' | 'center' | 'bottom'.\n * Default: 'center'.\n */\n @Input() verticalAlignment: 'top' | 'center' | 'bottom' | string = 'center';\n\n /**\n * Sets the copyright text displayed in the banner.\n */\n @Input() copyright = '';\n\n /**\n * When true, the banner stretches to full width of its container.\n * Default: false.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n\n @ContentChildren(forwardRef(() => EclLinkDirective)) eclLinkComponents: QueryList<EclLinkDirective>;\n @ContentChild(EclBannerImageDirective) eclBannerImage: EclBannerImageDirective;\n @ContentChild(EclBannerVideoDirective) eclBannerVideo: EclBannerVideoDirective;\n\n @ViewChild('bannerFooter') bannerFooter: ElementRef;\n @ViewChild('bannerContainer') bannerContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n @HostBinding('style.--banner-footer-height.px') bannerFooterHeight = null;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-banner'),\n `ecl-banner--${this.eclSize}`,\n `ecl-banner--font-${this.fontSize}`,\n `ecl-banner--box-bg-${this.boxBackground}`,\n `ecl-banner--h-${this.horizontalAlignment}`,\n `ecl-banner--v-${this.verticalAlignment}`,\n `ecl-banner--color-${this.fontColor}`,\n this.isFullWidth ? 'ecl-banner--full-width' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isPlaying = false;\n private readonly BANNER_PADDING = 16;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private bannerWidth = 0;\n private isTabletBreakpoint = true;\n private readonly TIMEOUT_INTERVAL = 200;\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.observeElementSizeChanges();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.eclLinkComponents) {\n this.eclLinkComponents.forEach((link) => {\n link.class = 'ecl-banner__link-cta';\n });\n }\n\n if (this.hasVideo) {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.addEventListener('play', () => {\n this.isPlaying = true;\n });\n videoEl.addEventListener('pause', () => {\n this.isPlaying = false;\n });\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.setProperty(videoEl, 'loop', true);\n this.renderer.setProperty(videoEl, 'autoplay', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Indicates whether the banner contains at least one call-to-action link.\n */\n get hasCtaLink(): boolean {\n return this.eclLinkComponents.length > 0;\n }\n\n /**\n * Indicates whether the banner contains an image.\n */\n get hasImage(): boolean {\n return !!this.eclBannerImage;\n }\n\n /**\n * Indicates whether the banner contains a video.\n */\n get hasVideo(): boolean {\n return !!this.eclBannerVideo;\n }\n\n /**\n * Handles keyboard activation (Enter key) to play video.\n * Moves focus to pause button after playing starts.\n */\n onKeydownEnterPlay(): void {\n this.onVideoPlay();\n setTimeout(() => this.pauseBtn.onFocus());\n }\n\n /**\n * Handles keyboard activation (Enter key) to pause video.\n * Moves focus to play button after pausing.\n */\n onKeydownEnterPause(): void {\n this.onVideoPause();\n setTimeout(() => this.playBtn.onFocus());\n }\n\n /**\n * Plays the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPlay(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.play();\n }\n\n /**\n * Pauses the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPause(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.pause();\n }\n\n private observeElementSizeChanges(): void {\n new ResizeObserver(() => {\n setTimeout(() => {\n if (this.bannerWidth !== this.bannerContainer.nativeElement.offsetWidth) {\n this.bannerWidth = this.bannerContainer.nativeElement.offsetWidth;\n if (this.eclBannerImage || this.eclBannerVideo) {\n this.setBannerHeight();\n }\n }\n }, this.TIMEOUT_INTERVAL);\n }).observe(this.bannerContainer.nativeElement);\n }\n\n private setBannerHeight(): void {\n if (!this.bannerContainer) {\n return;\n }\n\n const bannerContainerHeight = this.bannerContainer.nativeElement.offsetHeight + this.BANNER_PADDING;\n const ratioArray = this.getRatioArray();\n const elHeight = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10) * ratioArray[1] / ratioArray[0];\n if (this.isTabletBreakpoint && bannerContainerHeight > elHeight) {\n if (this.eclBannerImage) {\n this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', 'auto');\n } else if (this.eclBannerVideo) {\n this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', 'auto');\n }\n this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerContainerHeight}px`);\n } else {\n this.resetHeight();\n }\n\n if (this.bannerFooter) {\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n }\n }\n\n private resetHeight(): void {\n this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');\n if (this.eclBannerImage) {\n const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n this.renderer.setStyle(this.eclBannerImage.el.nativeElement, 'aspectRatio', aspectRatio);\n }\n if (this.eclBannerVideo) {\n this.renderer.setStyle(this.eclBannerVideo.el.nativeElement, 'aspectRatio', this.getDefaultRatio());\n }\n }\n\n private getRatioArray(): number[] {\n if (this.eclBannerImage) {\n const aspectRatio = window.getComputedStyle(this.eclBannerImage.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n return aspectRatio.split('/').map(Number);\n } else {\n return this.getDefaultRatio().split('/').map(Number);\n }\n }\n\n private getDefaultRatio(): string {\n switch(this.eclSize) {\n case 'xs': {\n return DefaultRatio.XS;\n }\n case 's': {\n return DefaultRatio.S;\n }\n case 'l': {\n return DefaultRatio.L;\n }\n default: {\n return DefaultRatio.M;\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(min-width: 997px)',\n ])\n .pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))\n .subscribe((result) => {\n this.isTabletBreakpoint = result.breakpoints['(min-width: 997px)'];\n if ( !this.isTabletBreakpoint) {\n this.setBannerHeight();\n }\n });\n }\n\n}\n","@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <div #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">© {{copyright}}</div></div>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the banner title container element.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitle]',\n})\nexport class EclBannerTitleDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title';\n}\n\n/**\n * Directive applied to the text element within the banner title.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleText]',\n})\nexport class EclBannerTitleTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title-text';\n}\n\n/**\n * Directive applied to the link element within the banner title.\n * Adds appropriate link styling classes to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleLink]',\n})\nexport class EclBannerTitleLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__title-link';\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the main banner description container.\n */\n@Directive({\n selector: '[eclBannerDescription]',\n})\nexport class EclBannerDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description';\n}\n\n/**\n * Directive for the textual content inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionText]',\n})\nexport class EclBannerDescriptionTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description-text';\n}\n\n/**\n * Directive for a link inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionLink]',\n})\nexport class EclBannerDescriptionLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__description-link';\n}\n","import { NgModule } from '@angular/core';\nimport { EclBannerTitleDirective, EclBannerTitleLinkDirective, EclBannerTitleTextDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionLinkDirective, EclBannerDescriptionTextDirective } from './ecl-banner-description.directive';\nimport { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nconst COMPONENTS = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerTitleLinkDirective,\n EclBannerVideoDirective,\n EclBannerDescriptionLinkDirective,\n];\n\n/**\n * @description\n * Module that provides the EclBanner component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_BANNER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclBannerModule {}\n","import { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerTitleDirective, EclBannerTitleTextDirective, EclBannerTitleLinkDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionTextDirective, EclBannerDescriptionLinkDirective } from './ecl-banner-description.directive';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nexport * from './ecl-banner.module';\nexport * from './ecl-banner.component';\nexport * from './ecl-banner-title.directive';\nexport * from './ecl-banner-description.directive';\nexport * from './ecl-banner-picture.directive';\nexport * from './ecl-banner-video.directive';\n\nexport const EUI_ECL_BANNER = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerTitleLinkDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerDescriptionLinkDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerVideoDirective,\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-banner.mjs","sources":["../../components/ecl-banner/ecl-banner-picture.directive.ts","../../components/ecl-banner/ecl-banner-video.directive.ts","../../components/ecl-banner/ecl-banner.component.ts","../../components/ecl-banner/ecl-banner.component.html","../../components/ecl-banner/ecl-banner-title.directive.ts","../../components/ecl-banner/ecl-banner-description.directive.ts","../../components/ecl-banner/ecl-banner.module.ts","../../components/ecl-banner/index.ts","../../components/ecl-banner/eui-ecl-components-ecl-banner.ts"],"sourcesContent":["import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the <picture> element within the banner.\n * Adds the appropriate classes for styling the banner picture.\n */\n@Directive({\n selector: 'picture[eclBannerPicture]',\n})\nexport class EclBannerPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-banner__picture')].join(' ').trim();\n }\n}\n\n/**\n * Directive applied to the <img> element inside the banner.\n * Enables class binding and exposes the element reference.\n */\n@Directive({\n selector: 'img[eclBannerImage]',\n})\nexport class EclBannerImageDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-banner__image') className = true;\n}\n","import { Directive, HostBinding, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the video element used in the banner.\n * Adds appropriate styling classes to the host element.\n */\n@Directive({\n selector: 'video[eclBannerVideo]',\n})\nexport class EclBannerVideoDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n\n /**\n * CSS classes applied to the host video element.\n */\n @HostBinding('class') videoClasses = 'ecl-video ecl-banner__video';\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { Subject, delay, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\nimport { EclBannerImageDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EclButtonComponent, EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\nconst enum DefaultRatio {\n XS = '6/1',\n S = '5/1',\n M = '4/1',\n L = '3/1',\n}\n\n/**\n * Component representing a banner, which can contain image, video and call-to-action (CTA) links.\n * Allows customization of layout, alignment, and appearance through inputs.\n */\n@Component({\n selector: 'ecl-banner',\n templateUrl: './ecl-banner.component.html',\n imports: [\n ...EUI_ECL_ICON,\n ...EUI_ECL_BUTTON,\n NgTemplateOutlet,\n ],\n})\nexport class EclBannerComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n /**\n * Defines the size of the banner. Affects its height-to-width aspect ratio.\n * Allowed values: 'xs' | 's' | 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() eclSize: 'xs'| 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the color of the font inside the banner content box.\n * Allowed values: 'light' | 'dark'.\n * Default: 'dark'.\n */\n @Input() fontColor: 'light' | 'dark' | string = 'dark';\n\n /**\n * Defines the font size inside the banner content box.\n * Allowed values: 'm' | 'l'.\n * Default: 'm'.\n */\n @Input() fontSize: 's' | 'm' | 'l' | string = 'm';\n\n /**\n * Defines the background color of the banner content box.\n * Allowed values: 'none' | 'light' | 'dark'.\n * Default: 'light'.\n */\n @Input() boxBackground: 'none' | 'light' | 'dark' | string = 'light';\n\n /**\n * Sets the horizontal alignment of the content inside the banner.\n * Allowed values: 'left' | 'center' | 'right'.\n * Default: 'left'.\n */\n @Input() horizontalAlignment: 'right' | 'left' | 'center' | string = 'left';\n\n /**\n * Sets the vertical alignment of the content inside the banner.\n * Allowed values: 'top' | 'center' | 'bottom'.\n * Default: 'center'.\n */\n @Input() verticalAlignment: 'top' | 'center' | 'bottom' | string = 'center';\n\n /**\n * Sets the copyright text displayed in the banner.\n */\n @Input() copyright = '';\n\n /**\n * When true, the banner stretches to full width of its container.\n * Default: false.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n\n @ContentChildren(forwardRef(() => EclLinkDirective)) eclLinkComponents: QueryList<EclLinkDirective>;\n @ContentChild(EclBannerImageDirective) eclBannerImage: EclBannerImageDirective;\n @ContentChild(EclBannerVideoDirective) eclBannerVideo: EclBannerVideoDirective;\n\n @ViewChild('bannerFooter') bannerFooter: ElementRef;\n @ViewChild('bannerContainer') bannerContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n @HostBinding('style.--banner-footer-height.px') bannerFooterHeight = null;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-banner'),\n `ecl-banner--${this.eclSize}`,\n `ecl-banner--font-${this.fontSize}`,\n `ecl-banner--box-bg-${this.boxBackground}`,\n `ecl-banner--h-${this.horizontalAlignment}`,\n `ecl-banner--v-${this.verticalAlignment}`,\n `ecl-banner--color-${this.fontColor}`,\n this.isFullWidth ? 'ecl-banner--full-width' : '',\n !this.hasMedia ? 'ecl-banner--no-media' : '',\n ]\n .join(' ')\n .trim();\n }\n\n isPlaying = false;\n private readonly BANNER_PADDING = 16;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private breakpoint = 996;\n private bannerVPadding = 8;\n private isTabletBreakpoint = true;\n private readonly TIMEOUT_INTERVAL = 200;\n private renderer = inject(Renderer2);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private maxIterations = 10;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.observeElementSizeChanges();\n });\n }\n\n ngAfterContentInit(): void {\n if (this.eclLinkComponents) {\n this.eclLinkComponents.forEach((link) => {\n link.class = 'ecl-banner__link-cta';\n });\n }\n\n if (this.hasVideo) {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.addEventListener('play', () => {\n this.isPlaying = true;\n });\n videoEl.addEventListener('pause', () => {\n this.isPlaying = false;\n });\n this.renderer.setProperty(videoEl, 'muted', true);\n this.renderer.setProperty(videoEl, 'loop', true);\n this.renderer.setProperty(videoEl, 'autoplay', true);\n this.renderer.removeAttribute(videoEl, 'controls');\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Indicates whether the banner contains at least one call-to-action link.\n */\n get hasCtaLink(): boolean {\n return this.eclLinkComponents.length > 0;\n }\n\n /**\n * Indicates whether the banner contains an image.\n */\n get hasImage(): boolean {\n return !!this.eclBannerImage;\n }\n\n /**\n * Indicates whether the banner contains a video.\n */\n get hasVideo(): boolean {\n return !!this.eclBannerVideo;\n }\n\n /**\n * Indicates whether the banner contains any media (image or video).\n */\n get hasMedia(): boolean {\n return this.hasImage || this.hasVideo;\n }\n\n /**\n * Handles keyboard activation (Enter key) to play video.\n * Moves focus to pause button after playing starts.\n */\n onKeydownEnterPlay(): void {\n this.onVideoPlay();\n setTimeout(() => this.pauseBtn.onFocus());\n }\n\n @HostListener('window:resize')\n onWindowResize(): void {\n this.observeElementSizeChanges();\n }\n\n /**\n * Handles keyboard activation (Enter key) to pause video.\n * Moves focus to play button after pausing.\n */\n onKeydownEnterPause(): void {\n this.onVideoPause();\n setTimeout(() => this.playBtn.onFocus());\n }\n\n /**\n * Plays the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPlay(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.play();\n }\n\n /**\n * Pauses the embedded banner video.\n * Triggered via interaction (e.g., button).\n */\n onVideoPause(): void {\n const videoEl : HTMLVideoElement = this.eclBannerVideo.el.nativeElement;\n videoEl.pause();\n }\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 this.checkViewport();\n }, this.TIMEOUT_INTERVAL);\n // }).observe(this.bannerContainer.nativeElement);\n }\n\n private checkViewport() {\n if (window.innerWidth > this.breakpoint) {\n this.setBannerHeight();\n } else {\n this.resetBannerHeight();\n }\n }\n\n private waitForAspectRatioToBeDefined(attemptCounter: number) {\n attemptCounter = attemptCounter + 1;\n const aspectRatio = window.getComputedStyle(this.el.nativeElement).getPropertyValue('--css-aspect-ratio');\n\n if (\n (typeof aspectRatio === 'undefined' || aspectRatio === '') &&\n this.maxIterations > attemptCounter\n ) {\n setTimeout(() => this.waitForAspectRatioToBeDefined(attemptCounter), 100);\n } else {\n this.setHeight(aspectRatio);\n }\n }\n\n private setBannerHeight(): void {\n if (this.hasMedia) {\n this.waitForAspectRatioToBeDefined(0);\n } else {\n this.setHeight(this.getDefaultRatio());\n }\n }\n\n private setHeight(ratio) {\n if (this.bannerContainer) {\n const bannerHeight = this.bannerContainer.nativeElement.offsetHeight + 2*this.bannerVPadding;\n const bannerWidth = parseInt(window.getComputedStyle(this.el.nativeElement).getPropertyValue('width'), 10);\n const [denominator, numerator] = ratio.split('/').map(Number);\n const currentHeight = (bannerWidth * numerator) / denominator;\n if (bannerHeight > currentHeight) {\n this.renderer.setStyle(this.el.nativeElement, 'aspect-ratio', 'auto');\n this.renderer.setStyle(this.el.nativeElement, 'height', `${bannerHeight}px`);\n } else {\n this.resetBannerHeight();\n }\n }\n\n // Add margin to the banner container when there is a footer\n // This is needed to keep the vertical alignment\n if (this.bannerFooter) {\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', `${this.bannerFooter.nativeElement.offsetHeight}px`);\n }\n }\n\n private resetBannerHeight(): void {\n // remove aspect-ratio\n this.renderer.removeStyle(this.el.nativeElement, 'aspect-ratio');\n\n // set height to auto\n this.renderer.setStyle(this.el.nativeElement, 'height', 'auto');\n\n // update footer height if bannerFooter exists\n if (this.bannerFooter) {\n // const footerHeight = `${this.bannerFooter.nativeElement.offsetHeight}px`;\n this.bannerFooterHeight = this.bannerFooter.nativeElement.offsetHeight;\n // this.renderer.setStyle(this.el.nativeElement, '--banner-footer-height', footerHeight);\n }\n }\n\n private getDefaultRatio(): string {\n switch(this.eclSize) {\n case 'xs': {\n return DefaultRatio.XS;\n }\n case 's': {\n return DefaultRatio.S;\n }\n case 'l': {\n return DefaultRatio.L;\n }\n default: {\n return DefaultRatio.M;\n }\n }\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([\n '(min-width: 997px)',\n ])\n .pipe(takeUntil(this.destroy$), delay(this.TIMEOUT_INTERVAL))\n .subscribe((result) => {\n this.isTabletBreakpoint = result.breakpoints['(min-width: 997px)'];\n if ( !this.isTabletBreakpoint) {\n this.setBannerHeight();\n }\n });\n }\n\n}\n","@if(hasImage) {\n<figure class=\"ecl-banner__picture-container\">\n <ng-content select=\"[eclBannerPicture]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n</figure>\n}\n\n@if(hasVideo) {\n<div class=\"ecl-banner__video-container\">\n <ng-content select=\"[eclBannerVideo]\"></ng-content>\n @if(copyright) {\n <ng-container *ngTemplateOutlet=\"bannerFooterTemplate\"></ng-container>\n }\n <button #playBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__play\" (click)=\"onVideoPlay()\"\n [style.display]=\"isPlaying ? 'none' : 'block'\" (keydown.enter)=\"onKeydownEnterPlay()\">\n <span eclButtonLabel>Play video</span>\n <ecl-icon icon=\"play-outline\" size=\"m\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton variant=\"tertiary\" isIconOnly class=\"ecl-banner__pause\" (click)=\"onVideoPause()\"\n [style.display]=\"isPlaying ? 'block' : 'none'\" (keydown.enter)=\"onKeydownEnterPause()\">\n <span eclButtonLabel>Pause video</span>\n <ecl-icon icon=\"pause-outline\" size=\"m\"></ecl-icon>\n </button>\n</div>\n}\n<div class=\"ecl-container ecl-banner__info\">\n <div #bannerContainer class=\"ecl-banner__container \">\n <div class=\"ecl-banner__content\">\n <ng-content select=\"[eclBannerTitle]\"></ng-content>\n <ng-content select=\"[eclBannerDescription]\"></ng-content>\n @if (hasCtaLink) {\n <div class=\"ecl-banner__cta\">\n <ng-content select=\"[eclLink]\"></ng-content>\n </div>\n }\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<ng-template #bannerFooterTemplate>\n <footer #bannerFooter class=\"ecl-banner__credit\"><div class=\"ecl-container\">© {{copyright}}</div></footer>\n</ng-template>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive applied to the banner title container element.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitle]',\n})\nexport class EclBannerTitleDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title';\n}\n\n/**\n * Directive applied to the text element within the banner title.\n * Adds appropriate styling class to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleText]',\n})\nexport class EclBannerTitleTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__title-text';\n}\n\n/**\n * Directive applied to the link element within the banner title.\n * Adds appropriate link styling classes to the host element.\n */\n@Directive({\n selector: '[eclBannerTitleLink]',\n})\nexport class EclBannerTitleLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__title-link';\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for the main banner description container.\n */\n@Directive({\n selector: '[eclBannerDescription]',\n})\nexport class EclBannerDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description';\n}\n\n/**\n * Directive for the textual content inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionText]',\n})\nexport class EclBannerDescriptionTextDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-banner__description-text';\n}\n\n/**\n * Directive for a link inside the banner description.\n */\n@Directive({\n selector: '[eclBannerDescriptionLink]',\n})\nexport class EclBannerDescriptionLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-banner__description-link';\n}\n","import { NgModule } from '@angular/core';\nimport { EclBannerTitleDirective, EclBannerTitleLinkDirective, EclBannerTitleTextDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionLinkDirective, EclBannerDescriptionTextDirective } from './ecl-banner-description.directive';\nimport { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nconst COMPONENTS = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerTitleLinkDirective,\n EclBannerVideoDirective,\n EclBannerDescriptionLinkDirective,\n];\n\n/**\n * @description\n * Module that provides the EclBanner component and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_BANNER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclBannerModule {}\n","import { EclBannerComponent } from './ecl-banner.component';\nimport { EclBannerTitleDirective, EclBannerTitleTextDirective, EclBannerTitleLinkDirective } from './ecl-banner-title.directive';\nimport { EclBannerDescriptionDirective, EclBannerDescriptionTextDirective, EclBannerDescriptionLinkDirective } from './ecl-banner-description.directive';\nimport { EclBannerImageDirective, EclBannerPictureDirective } from './ecl-banner-picture.directive';\nimport { EclBannerVideoDirective } from './ecl-banner-video.directive';\n\nexport * from './ecl-banner.module';\nexport * from './ecl-banner.component';\nexport * from './ecl-banner-title.directive';\nexport * from './ecl-banner-description.directive';\nexport * from './ecl-banner-picture.directive';\nexport * from './ecl-banner-video.directive';\n\nexport const EUI_ECL_BANNER = [\n EclBannerComponent,\n EclBannerTitleDirective,\n EclBannerTitleTextDirective,\n EclBannerTitleLinkDirective,\n EclBannerDescriptionDirective,\n EclBannerDescriptionTextDirective,\n EclBannerDescriptionLinkDirective,\n EclBannerPictureDirective,\n EclBannerImageDirective,\n EclBannerVideoDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}