@eui/ecl 21.0.0-next.9 → 21.0.0-rc.1

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 (508) hide show
  1. package/docs/changelog.html +863 -0
  2. package/docs/components/EclAccordionComponent.html +9 -3
  3. package/docs/components/EclAccordionItemComponent.html +9 -3
  4. package/docs/components/EclAppComponent.html +3 -3
  5. package/docs/components/EclBannerComponent.html +17 -5
  6. package/docs/components/EclBlockquoteComponent.html +3 -3
  7. package/docs/components/EclBreadcrumbComponent.html +12 -46
  8. package/docs/components/EclBreadcrumbSegmentComponent.html +10 -4
  9. package/docs/components/EclButtonComponent.html +9 -3
  10. package/docs/components/EclCardBodyComponent.html +3 -3
  11. package/docs/components/EclCardComponent.html +3 -3
  12. package/docs/components/EclCarouselComponent.html +31 -5
  13. package/docs/components/EclCarouselItemComponent.html +9 -3
  14. package/docs/components/EclCategoryFilterComponent.html +9 -3
  15. package/docs/components/EclCategoryFilterItemComponent.html +21 -5
  16. package/docs/components/EclCategoryFilterListComponent.html +9 -5
  17. package/docs/components/EclCheckboxHelpComponent.html +3 -3
  18. package/docs/components/EclCheckboxLabelComponent.html +3 -3
  19. package/docs/components/EclContentBlockComponent.html +3 -3
  20. package/docs/components/EclContentItemComponent.html +3 -3
  21. package/docs/components/EclDateBlockComponent.html +8 -6
  22. package/docs/components/EclDescriptionListDefinitionComponent.html +3 -5
  23. package/docs/components/EclExpandableComponent.html +3 -3
  24. package/docs/components/EclFactFiguresComponent.html +3 -3
  25. package/docs/components/EclFactFiguresItemComponent.html +3 -3
  26. package/docs/components/EclFactFiguresViewAllComponent.html +3 -3
  27. package/docs/components/EclFeaturedComponent.html +9 -3
  28. package/docs/components/EclFeaturedItemComponent.html +9 -3
  29. package/docs/components/EclFeaturedItemDescriptionComponent.html +9 -3
  30. package/docs/components/EclFileComponent.html +9 -3
  31. package/docs/components/EclFileItemComponent.html +3 -3
  32. package/docs/components/EclFileItemsComponent.html +3 -3
  33. package/docs/components/EclFileTaxonomyComponent.html +3 -3
  34. package/docs/components/EclFormGroupComponent.html +3 -3
  35. package/docs/components/EclFormLabelComponent.html +10 -4
  36. package/docs/components/EclGalleryComponent.html +15 -3
  37. package/docs/components/EclGalleryFooterComponent.html +9 -9
  38. package/docs/components/EclGalleryItemComponent.html +4 -75
  39. package/docs/components/EclIconComponent.html +15 -3
  40. package/docs/components/EclInpageNavigationComponent.html +19 -42
  41. package/docs/components/EclInpageNavigationItemComponent.html +10 -4
  42. package/docs/components/EclListIllustrationComponent.html +3 -3
  43. package/docs/components/EclListIllustrationItemComponent.html +21 -3
  44. package/docs/components/EclLoadingIndicatorComponent.html +3 -3
  45. package/docs/components/EclMediaContainerComponent.html +9 -3
  46. package/docs/components/EclMegaMenuComponent.html +56 -4
  47. package/docs/components/EclMegaMenuFeaturedComponent.html +9 -3
  48. package/docs/components/EclMegaMenuInfoComponent.html +9 -3
  49. package/docs/components/EclMegaMenuItemComponent.html +39 -3
  50. package/docs/components/EclMegaMenuSubitemComponent.html +18 -24
  51. package/docs/components/EclMenuComponent.html +51 -3
  52. package/docs/components/EclMenuItemComponent.html +33 -3
  53. package/docs/components/EclMenuMegaComponent.html +9 -3
  54. package/docs/components/EclMenuMegaItemComponent.html +21 -3
  55. package/docs/components/EclModalBodyComponent.html +4 -40
  56. package/docs/components/EclModalComponent.html +9 -5
  57. package/docs/components/EclModalFooterComponent.html +3 -3
  58. package/docs/components/EclModalHeaderComponent.html +9 -3
  59. package/docs/components/EclMultiselectComponent.html +9 -13
  60. package/docs/components/EclMultiselectDropdownComponent.html +27 -7
  61. package/docs/components/EclMultiselectInputComponent.html +3 -3
  62. package/docs/components/EclMultiselectOptgroupComponent.html +3 -3
  63. package/docs/components/EclMultiselectOptionComponent.html +10 -8
  64. package/docs/components/EclNavigationListComponent.html +3 -3
  65. package/docs/components/EclNavigationListItemComponent.html +9 -3
  66. package/docs/components/EclNewsTickerComponent.html +15 -5
  67. package/docs/components/EclNewsTickerItemComponent.html +9 -5
  68. package/docs/components/EclNotificationComponent.html +70 -4
  69. package/docs/components/EclPageHeaderComponent.html +3 -3
  70. package/docs/components/EclPageHeaderExpandableComponent.html +15 -4
  71. package/docs/components/EclPaginationComponent.html +15 -3
  72. package/docs/components/EclPaginationItemComponent.html +10 -4
  73. package/docs/components/EclPopoverComponent.html +9 -38
  74. package/docs/components/EclRadioHelpComponent.html +3 -3
  75. package/docs/components/EclRadioLabelComponent.html +3 -3
  76. package/docs/components/EclRangeBubbleComponent.html +15 -3
  77. package/docs/components/EclRangeValueComponent.html +3 -3
  78. package/docs/components/EclRatingFieldComponent.html +3 -3
  79. package/docs/components/EclSearchFormComponent.html +8 -8
  80. package/docs/components/EclSelectContainerComponent.html +3 -3
  81. package/docs/components/EclSiteFooterComponent.html +23 -4
  82. package/docs/components/{EclTabMoreComponent.html → EclSiteFooterCoownerComponent.html} +16 -50
  83. package/docs/components/EclSiteFooterCoreComponent.html +3 -3
  84. package/docs/components/EclSiteFooterFixedContentEUComponent.html +4 -4
  85. package/docs/components/EclSiteFooterRowCommonComponent.html +3 -3
  86. package/docs/components/EclSiteHeaderActionComponent.html +3 -3
  87. package/docs/components/EclSiteHeaderBannerTopComponent.html +9 -3
  88. package/docs/components/EclSiteHeaderComponent.html +9 -22
  89. package/docs/components/EclSiteHeaderCustomActionComponent.html +9 -3
  90. package/docs/components/EclSiteHeaderEnvironmentComponent.html +3 -3
  91. package/docs/components/EclSiteHeaderLanguageComponent.html +9 -3
  92. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +10 -4
  93. package/docs/components/EclSiteHeaderLoginComponent.html +9 -3
  94. package/docs/components/EclSiteHeaderNotificationComponent.html +3 -3
  95. package/docs/components/EclSiteHeaderSearchComponent.html +13 -7
  96. package/docs/components/EclSocialMediaFollowComponent.html +3 -3
  97. package/docs/components/EclSocialMediaFollowItemComponent.html +34 -5
  98. package/docs/components/EclSplashPageComponent.html +3 -3
  99. package/docs/components/EclSplashPageLanguageCategoryComponent.html +3 -3
  100. package/docs/components/EclSplashPageLanguageContainerComponent.html +3 -3
  101. package/docs/components/EclSplashPageLanguageLinkComponent.html +3 -3
  102. package/docs/components/EclSpotlightComponent.html +9 -3
  103. package/docs/components/EclSpotlightLinkComponent.html +21 -3
  104. package/docs/components/EclStickyContainerComponent.html +3 -3
  105. package/docs/components/EclTabComponent.html +10 -6
  106. package/docs/components/EclTabLabelComponent.html +9 -3
  107. package/docs/components/EclTableSortButtonComponent.html +9 -3
  108. package/docs/components/EclTabsComponent.html +46 -74
  109. package/docs/components/EclTagComponent.html +15 -3
  110. package/docs/components/EclTimelineComponent.html +3 -3
  111. package/docs/components/EclTimelineItemComponent.html +3 -3
  112. package/docs/components/EclTimelineItemTogglerComponent.html +3 -3
  113. package/docs/directives/ECLClickOutsideDirective.html +5 -1
  114. package/docs/directives/ECLFormLabelOptionalDirective.html +6 -0
  115. package/docs/directives/EclBannerDescriptionLinkDirective.html +6 -0
  116. package/docs/directives/EclBannerImageDirective.html +12 -0
  117. package/docs/directives/EclBannerTitleLinkDirective.html +6 -0
  118. package/docs/directives/EclBannerVideoDirective.html +6 -0
  119. package/docs/directives/EclBreadcrumbContainerDirective.html +6 -23
  120. package/docs/directives/EclButtonIconContainerDirective.html +6 -0
  121. package/docs/directives/EclCardImageDirective.html +6 -0
  122. package/docs/directives/EclCheckboxInputDirective.html +6 -0
  123. package/docs/directives/EclContentItemImageDirective.html +6 -0
  124. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +12 -0
  125. package/docs/directives/EclDescriptionListDefinitionListDirective.html +6 -0
  126. package/docs/directives/EclDescriptionListTermDirective.html +6 -0
  127. package/docs/directives/EclDividerDirective.html +6 -0
  128. package/docs/directives/EclFeaturedItemLinkDirective.html +6 -2
  129. package/docs/directives/EclFeedbackHiddenDirective.html +385 -0
  130. package/docs/directives/EclFileDownloadDirective.html +6 -0
  131. package/docs/directives/EclFileImageDirective.html +6 -0
  132. package/docs/directives/EclFilePreviewDirective.html +12 -0
  133. package/docs/directives/EclFileTitleDirective.html +6 -0
  134. package/docs/directives/EclFileTranslationDownloadDirective.html +6 -0
  135. package/docs/directives/EclGalleryMediaDirective.html +6 -0
  136. package/docs/directives/EclGalleryPictureDirective.html +6 -0
  137. package/docs/{modules/EclFormLabelModule.html → directives/EclHelpHiddenDirective.html} +169 -57
  138. package/docs/directives/EclIndicatorDirective.html +6 -0
  139. package/docs/directives/EclInpageNavigationListDirective.html +18 -0
  140. package/docs/directives/EclLinkDirective.html +150 -8
  141. package/docs/directives/EclLinkIconContainerDirective.html +6 -0
  142. package/docs/directives/EclLinkIndicatorDirective.html +6 -0
  143. package/docs/directives/EclListIllustrationIconDirective.html +6 -0
  144. package/docs/directives/EclListIllustrationImageDirective.html +6 -0
  145. package/docs/directives/EclLoadingIndicatorLabelDirective.html +6 -0
  146. package/docs/directives/EclMediaContainerIframeDirective.html +6 -0
  147. package/docs/directives/EclMediaContainerItemDirective.html +12 -0
  148. package/docs/directives/EclMegaMenuContainerDirective.html +6 -0
  149. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +6 -0
  150. package/docs/directives/EclMegaMenuFeaturedListDirective.html +6 -0
  151. package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +6 -0
  152. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +6 -0
  153. package/docs/directives/EclMegaMenuListDirective.html +6 -0
  154. package/docs/directives/EclMegaMenuSpacerDirective.html +6 -0
  155. package/docs/directives/EclMegaMenuSublistDirective.html +18 -0
  156. package/docs/directives/EclModalBodyFixedContentDirective.html +6 -0
  157. package/docs/directives/EclMultiselectOptionDirective.html +11 -5
  158. package/docs/directives/EclNewsTickerIconDirective.html +6 -0
  159. package/docs/{modules/EclNotificationModule.html → directives/EclNotificationIconDirective.html} +169 -57
  160. package/docs/directives/{EclSiteFooterLogoListDirective.html → EclNotificationLinkDirective.html} +57 -161
  161. package/docs/directives/EclOrderedListDirective.html +6 -0
  162. package/docs/directives/EclOrderedListItemDirective.html +6 -0
  163. package/docs/directives/EclPaginationListDirective.html +6 -0
  164. package/docs/directives/EclPopoverToggleDirective.html +12 -0
  165. package/docs/directives/EclRadioInputDirective.html +6 -0
  166. package/docs/directives/EclSiteFooterColumnDirective.html +6 -0
  167. package/docs/directives/{EclSiteFooterLogoDirective.html → EclSiteFooterCoownerItemDirective.html} +63 -31
  168. package/docs/directives/{EclSiteFooterLogoItemDirective.html → EclSiteFooterCoownerListDirective.html} +50 -166
  169. package/docs/directives/EclSiteFooterDescriptionDirective.html +6 -0
  170. package/docs/directives/EclSiteFooterDescriptionNameDirective.html +6 -0
  171. package/docs/directives/EclSiteFooterLinkDirective.html +6 -0
  172. package/docs/directives/EclSiteFooterListDirective.html +6 -19
  173. package/docs/directives/EclSiteFooterListItemDirective.html +6 -0
  174. package/docs/directives/EclSiteFooterLogoImageDirective.html +6 -0
  175. package/docs/directives/EclSiteFooterLogoLinkDirective.html +6 -0
  176. package/docs/directives/EclSiteFooterRowDirective.html +6 -0
  177. package/docs/directives/EclSiteFooterSectionDirective.html +0 -96
  178. package/docs/directives/EclSiteFooterSocialMediaDirective.html +6 -0
  179. package/docs/directives/EclSiteFooterTitleDirective.html +6 -0
  180. package/docs/directives/EclSiteFooterTitleLinkDirective.html +6 -0
  181. package/docs/directives/EclSiteHeaderCtaDirective.html +6 -0
  182. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +6 -0
  183. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +6 -0
  184. package/docs/directives/EclSpotlightImageDirective.html +6 -0
  185. package/docs/directives/EclTableCaptionDirective.html +6 -0
  186. package/docs/directives/EclTagSetItemDirective.html +6 -0
  187. package/docs/directives/EclTimelineSetDirective.html +6 -0
  188. package/docs/directives/EclUnorderedListDirective.html +6 -0
  189. package/docs/directives/EclUnorderedListItemDirective.html +6 -0
  190. package/docs/injectables/EclRtlService.html +6 -0
  191. package/docs/js/libs/bootstrap-native.js +1 -1
  192. package/docs/js/libs/vis-network.min.js +78 -0
  193. package/docs/js/menu-wc.js +53 -2401
  194. package/docs/js/menu-wc_es5.js +1 -1
  195. package/docs/js/search/search_index.js +2 -2
  196. package/docs/miscellaneous/functions.html +5 -1
  197. package/docs/miscellaneous/variables.html +534 -1395
  198. package/docs/modules.html +2 -722
  199. package/docs/overview.html +2 -2
  200. package/docs/properties.html +1 -1
  201. package/fesm2022/eui-ecl-components-ecl-accordion.mjs +8 -27
  202. package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
  203. package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -23
  204. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  205. package/fesm2022/eui-ecl-components-ecl-banner.mjs +36 -85
  206. package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
  207. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +11 -30
  208. package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
  209. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +15 -42
  210. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  211. package/fesm2022/eui-ecl-components-ecl-button.mjs +14 -34
  212. package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
  213. package/fesm2022/eui-ecl-components-ecl-card.mjs +14 -45
  214. package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
  215. package/fesm2022/eui-ecl-components-ecl-carousel.mjs +8 -27
  216. package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
  217. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +11 -30
  218. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  219. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +15 -34
  220. package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
  221. package/fesm2022/eui-ecl-components-ecl-content-block.mjs +56 -128
  222. package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
  223. package/fesm2022/eui-ecl-components-ecl-content-item.mjs +11 -30
  224. package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
  225. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +5 -23
  226. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  227. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs +5 -23
  228. package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
  229. package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -24
  230. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  231. package/fesm2022/eui-ecl-components-ecl-expandable.mjs +5 -23
  232. package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
  233. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +14 -48
  234. package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
  235. package/fesm2022/eui-ecl-components-ecl-featured.mjs +14 -47
  236. package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
  237. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs +5 -23
  238. package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
  239. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +5 -23
  240. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  241. package/fesm2022/eui-ecl-components-ecl-file.mjs +32 -81
  242. package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
  243. package/fesm2022/eui-ecl-components-ecl-form-group.mjs +5 -23
  244. package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
  245. package/fesm2022/eui-ecl-components-ecl-form-label.mjs +51 -22
  246. package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
  247. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +21 -75
  248. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  249. package/fesm2022/eui-ecl-components-ecl-help-block.mjs +5 -23
  250. package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
  251. package/fesm2022/eui-ecl-components-ecl-icon.mjs +5 -23
  252. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  253. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +24 -51
  254. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  255. package/fesm2022/eui-ecl-components-ecl-label.mjs +5 -23
  256. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  257. package/fesm2022/eui-ecl-components-ecl-link.mjs +44 -41
  258. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  259. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +18 -51
  260. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  261. package/fesm2022/eui-ecl-components-ecl-list.mjs +29 -74
  262. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  263. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +11 -30
  264. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  265. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +17 -50
  266. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  267. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +50 -112
  268. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  269. package/fesm2022/eui-ecl-components-ecl-menu.mjs +14 -33
  270. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  271. package/fesm2022/eui-ecl-components-ecl-modal.mjs +25 -80
  272. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  273. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +27 -66
  274. package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
  275. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +14 -44
  276. package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
  277. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +11 -39
  278. package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
  279. package/fesm2022/eui-ecl-components-ecl-notification.mjs +86 -50
  280. package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
  281. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +43 -100
  282. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  283. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +12 -32
  284. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  285. package/fesm2022/eui-ecl-components-ecl-popover.mjs +16 -44
  286. package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
  287. package/fesm2022/eui-ecl-components-ecl-radio.mjs +14 -32
  288. package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
  289. package/fesm2022/eui-ecl-components-ecl-range.mjs +11 -30
  290. package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
  291. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +5 -23
  292. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  293. package/fesm2022/eui-ecl-components-ecl-search-form.mjs +12 -32
  294. package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
  295. package/fesm2022/eui-ecl-components-ecl-select.mjs +8 -33
  296. package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
  297. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +150 -260
  298. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  299. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +73 -157
  300. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  301. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +14 -32
  302. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  303. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs +29 -74
  304. package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
  305. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs +13 -13
  306. package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
  307. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs +5 -23
  308. package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
  309. package/fesm2022/eui-ecl-components-ecl-table.mjs +32 -80
  310. package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
  311. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +56 -129
  312. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  313. package/fesm2022/eui-ecl-components-ecl-tag.mjs +14 -33
  314. package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
  315. package/fesm2022/eui-ecl-components-ecl-text-area.mjs +5 -24
  316. package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
  317. package/fesm2022/eui-ecl-components-ecl-text-input.mjs +5 -24
  318. package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
  319. package/fesm2022/eui-ecl-components-ecl-timeline.mjs +20 -62
  320. package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
  321. package/fesm2022/eui-ecl-core.mjs +25 -62
  322. package/fesm2022/eui-ecl-core.mjs.map +1 -1
  323. package/fesm2022/eui-ecl-shared.mjs +3 -3
  324. package/fesm2022/eui-ecl-shared.mjs.map +1 -1
  325. package/fesm2022/eui-ecl.mjs +1 -203
  326. package/fesm2022/eui-ecl.mjs.map +1 -1
  327. package/package.json +17 -17
  328. package/types/eui-ecl-components-ecl-accordion.d.ts +1 -13
  329. package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
  330. package/types/eui-ecl-components-ecl-app.d.ts +2 -13
  331. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  332. package/types/eui-ecl-components-ecl-banner.d.ts +2 -14
  333. package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
  334. package/types/eui-ecl-components-ecl-blockquote.d.ts +1 -13
  335. package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
  336. package/types/eui-ecl-components-ecl-breadcrumb.d.ts +11 -27
  337. package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
  338. package/types/eui-ecl-components-ecl-button.d.ts +1 -13
  339. package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
  340. package/types/eui-ecl-components-ecl-card.d.ts +1 -13
  341. package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
  342. package/types/eui-ecl-components-ecl-carousel.d.ts +1 -13
  343. package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
  344. package/types/eui-ecl-components-ecl-category-filter.d.ts +1 -13
  345. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  346. package/types/eui-ecl-components-ecl-checkbox.d.ts +1 -12
  347. package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
  348. package/types/eui-ecl-components-ecl-content-block.d.ts +1 -12
  349. package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
  350. package/types/eui-ecl-components-ecl-content-item.d.ts +1 -12
  351. package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
  352. package/types/eui-ecl-components-ecl-date-block.d.ts +1 -12
  353. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  354. package/types/eui-ecl-components-ecl-date-picker.d.ts +2 -13
  355. package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
  356. package/types/eui-ecl-components-ecl-divider.d.ts +1 -12
  357. package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
  358. package/types/eui-ecl-components-ecl-expandable.d.ts +2 -13
  359. package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
  360. package/types/eui-ecl-components-ecl-fact-figures.d.ts +1 -12
  361. package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
  362. package/types/eui-ecl-components-ecl-featured.d.ts +1 -13
  363. package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
  364. package/types/eui-ecl-components-ecl-feedback-message.d.ts +1 -12
  365. package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
  366. package/types/eui-ecl-components-ecl-file-upload.d.ts +1 -12
  367. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  368. package/types/eui-ecl-components-ecl-file.d.ts +1 -12
  369. package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
  370. package/types/eui-ecl-components-ecl-form-group.d.ts +1 -12
  371. package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
  372. package/types/eui-ecl-components-ecl-form-label.d.ts +24 -10
  373. package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
  374. package/types/eui-ecl-components-ecl-gallery.d.ts +3 -20
  375. package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
  376. package/types/eui-ecl-components-ecl-help-block.d.ts +1 -12
  377. package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
  378. package/types/eui-ecl-components-ecl-icon.d.ts +1 -12
  379. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  380. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +2 -17
  381. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  382. package/types/eui-ecl-components-ecl-label.d.ts +1 -12
  383. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  384. package/types/eui-ecl-components-ecl-link.d.ts +17 -16
  385. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  386. package/types/eui-ecl-components-ecl-list-illustration.d.ts +1 -12
  387. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  388. package/types/eui-ecl-components-ecl-list.d.ts +1 -12
  389. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  390. package/types/eui-ecl-components-ecl-loading-indicator.d.ts +1 -13
  391. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  392. package/types/eui-ecl-components-ecl-media-container.d.ts +1 -12
  393. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  394. package/types/eui-ecl-components-ecl-mega-menu.d.ts +1 -13
  395. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  396. package/types/eui-ecl-components-ecl-menu.d.ts +1 -12
  397. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  398. package/types/eui-ecl-components-ecl-modal.d.ts +2 -19
  399. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  400. package/types/eui-ecl-components-ecl-multiselect.d.ts +1 -12
  401. package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
  402. package/types/eui-ecl-components-ecl-navigation-list.d.ts +1 -12
  403. package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
  404. package/types/eui-ecl-components-ecl-news-ticker.d.ts +1 -13
  405. package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
  406. package/types/eui-ecl-components-ecl-notification.d.ts +45 -29
  407. package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
  408. package/types/eui-ecl-components-ecl-page-header.d.ts +1 -12
  409. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  410. package/types/eui-ecl-components-ecl-pagination.d.ts +3 -14
  411. package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
  412. package/types/eui-ecl-components-ecl-popover.d.ts +5 -17
  413. package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
  414. package/types/eui-ecl-components-ecl-radio.d.ts +1 -12
  415. package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
  416. package/types/eui-ecl-components-ecl-range.d.ts +1 -12
  417. package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
  418. package/types/eui-ecl-components-ecl-rating-field.d.ts +2 -13
  419. package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
  420. package/types/eui-ecl-components-ecl-search-form.d.ts +4 -15
  421. package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
  422. package/types/eui-ecl-components-ecl-select.d.ts +1 -13
  423. package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
  424. package/types/eui-ecl-components-ecl-site-footer.d.ts +42 -63
  425. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  426. package/types/eui-ecl-components-ecl-site-header.d.ts +4 -19
  427. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  428. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +6 -13
  429. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
  430. package/types/eui-ecl-components-ecl-splash-page.d.ts +1 -12
  431. package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
  432. package/types/eui-ecl-components-ecl-sticky-container.d.ts +1 -12
  433. package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
  434. package/types/eui-ecl-components-ecl-table.d.ts +1 -12
  435. package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
  436. package/types/eui-ecl-components-ecl-tabs.d.ts +4 -46
  437. package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
  438. package/types/eui-ecl-components-ecl-tag.d.ts +1 -12
  439. package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
  440. package/types/eui-ecl-components-ecl-text-area.d.ts +1 -13
  441. package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
  442. package/types/eui-ecl-components-ecl-text-input.d.ts +1 -13
  443. package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
  444. package/types/eui-ecl-components-ecl-timeline.d.ts +1 -12
  445. package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
  446. package/types/eui-ecl-core.d.ts +0 -3
  447. package/types/eui-ecl-core.d.ts.map +1 -1
  448. package/types/eui-ecl.d.ts +1 -69
  449. package/types/eui-ecl.d.ts.map +1 -1
  450. package/docs/js/libs/vis.min.js +0 -47
  451. package/docs/modules/EclAccordionModule.html +0 -273
  452. package/docs/modules/EclAllModule.html +0 -261
  453. package/docs/modules/EclAppModule.html +0 -267
  454. package/docs/modules/EclBannerModule.html +0 -321
  455. package/docs/modules/EclBlockquoteModule.html +0 -279
  456. package/docs/modules/EclBreadcrumbModule.html +0 -321
  457. package/docs/modules/EclButtonModule.html +0 -285
  458. package/docs/modules/EclCardModule.html +0 -321
  459. package/docs/modules/EclCarouselModule.html +0 -273
  460. package/docs/modules/EclCategoryFilterModule.html +0 -279
  461. package/docs/modules/EclCheckboxModule.html +0 -321
  462. package/docs/modules/EclContentBlockModule.html +0 -321
  463. package/docs/modules/EclContentItemModule.html +0 -321
  464. package/docs/modules/EclDateBlockModule.html +0 -267
  465. package/docs/modules/EclDatePickerModule.html +0 -267
  466. package/docs/modules/EclDividerModule.html +0 -267
  467. package/docs/modules/EclExpandableModule.html +0 -267
  468. package/docs/modules/EclFactFiguresModule.html +0 -285
  469. package/docs/modules/EclFeaturedModule.html +0 -321
  470. package/docs/modules/EclFeedbackMessageModule.html +0 -267
  471. package/docs/modules/EclFileModule.html +0 -321
  472. package/docs/modules/EclFileUploadModule.html +0 -267
  473. package/docs/modules/EclFormGroupModule.html +0 -267
  474. package/docs/modules/EclGalleryModule.html +0 -321
  475. package/docs/modules/EclHelpBlockModule.html +0 -267
  476. package/docs/modules/EclIconModule.html +0 -267
  477. package/docs/modules/EclInpageNavigationModule.html +0 -321
  478. package/docs/modules/EclLabelModule.html +0 -267
  479. package/docs/modules/EclLinkModule.html +0 -285
  480. package/docs/modules/EclListIllustrationModule.html +0 -321
  481. package/docs/modules/EclListModule.html +0 -321
  482. package/docs/modules/EclLoadingIndicatorModule.html +0 -279
  483. package/docs/modules/EclMediaContainerModule.html +0 -321
  484. package/docs/modules/EclMegaMenuModule.html +0 -321
  485. package/docs/modules/EclMenuModule.html +0 -321
  486. package/docs/modules/EclModalModule.html +0 -321
  487. package/docs/modules/EclMultiselectModule.html +0 -321
  488. package/docs/modules/EclNavigationListModule.html +0 -321
  489. package/docs/modules/EclNewsTickerModule.html +0 -321
  490. package/docs/modules/EclPageHeaderModule.html +0 -321
  491. package/docs/modules/EclPaginationModule.html +0 -321
  492. package/docs/modules/EclPopoverModule.html +0 -321
  493. package/docs/modules/EclRadioModule.html +0 -285
  494. package/docs/modules/EclRangeModule.html +0 -321
  495. package/docs/modules/EclRatingFieldModule.html +0 -267
  496. package/docs/modules/EclSearchFormModule.html +0 -267
  497. package/docs/modules/EclSelectModule.html +0 -321
  498. package/docs/modules/EclSiteFooterModule.html +0 -321
  499. package/docs/modules/EclSiteHeaderModule.html +0 -321
  500. package/docs/modules/EclSocialMediaFollowModule.html +0 -321
  501. package/docs/modules/EclSplashPageModule.html +0 -321
  502. package/docs/modules/EclStickyContainerModule.html +0 -267
  503. package/docs/modules/EclTableModule.html +0 -321
  504. package/docs/modules/EclTabsModule.html +0 -321
  505. package/docs/modules/EclTagModule.html +0 -321
  506. package/docs/modules/EclTextAreaModule.html +0 -267
  507. package/docs/modules/EclTextInputModule.html +0 -267
  508. package/docs/modules/EclTimelineModule.html +0 -297
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-site-header.mjs","sources":["../../components/ecl-site-header/action/ecl-site-header-action.component.ts","../../components/ecl-site-header/action/ecl-site-header-action.component.html","../../components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.ts","../../components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.html","../../components/ecl-site-header/cta/ecl-site-header-cta.directive.ts","../../components/ecl-site-header/custom-action/ecl-site-header-custom-action.directive.ts","../../components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.ts","../../components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.html","../../components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.ts","../../components/ecl-site-header/events/ecl-site-header-login.event.ts","../../components/ecl-site-header/events/ecl-site-header-language.event.ts","../../components/ecl-site-header/events/ecl-site-header-logo.event.ts","../../components/ecl-site-header/events/ecl-site-header-search.event.ts","../../components/ecl-site-header/events/ecl-area-change.event.ts","../../components/ecl-site-header/language/ecl-site-header-language-popover.component.ts","../../components/ecl-site-header/language/ecl-site-header-language-popover.component.html","../../components/ecl-site-header/services/ecl-area-data.service.ts","../../components/ecl-site-header/language/ecl-site-header-language.component.ts","../../components/ecl-site-header/language/ecl-site-header-language.component.html","../../components/ecl-site-header/login/ecl-site-header-login.component.ts","../../components/ecl-site-header/login/ecl-site-header-login.component.html","../../components/ecl-site-header/login/ecl-site-header-login-details.directive.ts","../../components/ecl-site-header/notification/ecl-site-header-notification.component.ts","../../components/ecl-site-header/notification/ecl-site-header-notification.component.html","../../components/ecl-site-header/picture/ecl-site-header-picture.directive.ts","../../components/ecl-site-header/search/ecl-site-header-search.component.ts","../../components/ecl-site-header/search/ecl-site-header-search.component.html","../../components/ecl-site-header/ecl-site-header.component.ts","../../components/ecl-site-header/ecl-site-header.component.html","../../components/ecl-site-header/ecl-site-header.module.ts","../../components/ecl-site-header/index.ts","../../components/ecl-site-header/eui-ecl-components-ecl-site-header.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This components is a container element for custom action, login, language and search components.\n */\n// TODO: maybe could be part of the header, and we don't need this component?\n@Component({\n selector: 'ecl-site-header-action',\n templateUrl: './ecl-site-header-action.component.html',\n})\nexport class EclSiteHeaderActionComponent extends ECLBaseDirective {\n @HostBinding('class') class = 'ecl-site-header__action';\n}\n","<ng-content select=\"[eclSiteHeaderCustomAction]\"></ng-content>\n<ng-content select=\"ecl-site-header-login\"></ng-content>\n<ng-content select=\"ecl-site-header-language\"></ng-content>\n<ng-content select=\"ecl-site-header-search\"></ng-content>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This component is used , when we want to show class name (used in standardised variant of site-header).\n */\n@Component({\n selector: 'ecl-site-header-banner-top',\n templateUrl: 'ecl-site-header-banner-top.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclSiteHeaderBannerTopComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__banner-top') className = true;\n}\n","<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive is used, when we want to show call-to-action link in the site-header. Used in harmonised and standardised header\n * variants.\n */\n@Directive({\n selector: '[eclSiteHeaderCta]',\n})\nexport class EclSiteHeaderCtaDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__cta') className = true;\n}\n","import { Directive, HostBinding, Input, ContentChild, forwardRef, AfterContentInit, HostListener, Output, EventEmitter } from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: 'a[eclSiteHeaderCustomActionLink]',\n})\nexport class EclSiteHeaderCustomActionLinkDirective extends ECLBaseDirective implements AfterContentInit {\n @HostBinding('class') className = 'ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary';\n @HostBinding('attr.aria-expanded') isOverlayExpanded : boolean;\n @HostBinding('attr.aria-controls') ariaControls : string;\n @Input() @HostBinding('attr.href') href : string;\n @Input() @HostBinding('attr.routerLink') routerLink : string;\n @Output() customActionOverlayToggle = new EventEmitter<boolean>();\n @ContentChild(forwardRef(() => EclIconComponent), { descendants: true }) eclIconComponent: EclIconComponent;\n private readonly ARIA_CONTROLS = 'custom-action-overlay';\n\n ngAfterContentInit(): void {\n setTimeout(() => {\n if (this.eclIconComponent) {\n this.eclIconComponent.baseDirective.class = this.eclIconComponent.baseDirective.class + ' ecl-site-header__icon';\n }\n if (!this.hasLink()) {\n this.href = '#';\n this.isOverlayExpanded = false;\n this.ariaControls = this.ARIA_CONTROLS;\n }\n });\n }\n\n @HostListener('click', ['$event']) onClick(evt: Event): void {\n if (!this.hasLink()) {\n this.isOverlayExpanded = !this.isOverlayExpanded;\n evt.preventDefault();\n this.customActionOverlayToggle.emit(this.isOverlayExpanded);\n }\n }\n\n hasLink(): boolean {\n return (!!this.href && this.href !== '#') || !!this.routerLink;\n }\n}\n@Directive({\n selector: 'div[eclSiteHeaderCustomActionContent]',\n})\nexport class EclSiteHeaderCustomActionContentDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__custom-action-content') className = true;\n}\n\n@Directive({\n selector: 'div[eclSiteHeaderCustomActionTitle]',\n})\nexport class EclSiteHeaderCustomActionTitleDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__custom-action-title') className = true;\n @HostBinding('attr.id')\n @Input() id = 'custom-action-overlay-title';\n\n}","import { Component, HostBinding, HostListener, ContentChild, AfterContentInit, OnDestroy } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ECLBaseDirective, ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { EclSiteHeaderCustomActionLinkDirective, EclSiteHeaderCustomActionTitleDirective } from './ecl-site-header-custom-action.directive';\nimport { takeUntil, Subject } from 'rxjs';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This components gives opportunity for user to add a custom action. It will appear at first place, before log-in and language\n * and search (if any of these exist). Adds specific styling and functionality. Opens a dropdown with some more content.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclSiteHeaderCustomAction]',\n templateUrl: './ecl-site-header-custom-action.component.html',\n imports: [A11yModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclSiteHeaderCustomActionComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n @HostBinding('class') class = 'ecl-site-header__custom-action';\n @ContentChild(EclSiteHeaderCustomActionTitleDirective) title: EclSiteHeaderCustomActionTitleDirective;\n @ContentChild(EclSiteHeaderCustomActionLinkDirective) eclSiteHeaderCustomActionLink: EclSiteHeaderCustomActionLinkDirective;\n /**\n * Used to expand/collapse the dropdown, if any.\n */\n isOverlayExpanded = false;\n titleId: string;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngAfterContentInit(): void {\n if (this.title) {\n this.titleId = this.title.id;\n }\n\n // Subscribe to link output, which toggles the dropdown.\n if (this.eclSiteHeaderCustomActionLink) {\n this.eclSiteHeaderCustomActionLink.customActionOverlayToggle.pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {\n this.isOverlayExpanded = isExpanded;\n })\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Close the overlay.\n */\n onCustomActionOverlayClose(): void {\n this.isOverlayExpanded = false;\n if (!this.eclSiteHeaderCustomActionLink.hasLink()) this.eclSiteHeaderCustomActionLink.isOverlayExpanded = false;\n }\n\n /**\n * Close the overlay, when clicking outside of it.\n */\n @HostListener('eclClickOutside')\n onClickOutsideHandler(): void {\n this.onCustomActionOverlayClose();\n }\n\n /**\n * Close the overlay with ESC key.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.onCustomActionOverlayClose();\n }\n}\n","<ng-content select=\"[eclSiteHeaderCustomActionLink]\"></ng-content>\n@if (isOverlayExpanded) {\n <div class=\"ecl-site-header__custom-action-overlay\" id=\"custom-action-overlay\" role=\"dialog\" [attr.aria-labelledby]=\"titleId\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div class=\"ecl-site-header__custom-action-header\">\n <ng-content select=\"[eclSiteHeaderCustomActionTitle]\"></ng-content>\n <button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-site-header__custom-action-close\" (click)=\"onCustomActionOverlayClose()\">\n <span eclButtonLabel>Close</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n </div>\n <ng-content select=\"[eclSiteHeaderCustomActionContent]\"></ng-content>\n </div>\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Component, ElementRef, HostBinding, OnDestroy, Renderer2, afterNextRender, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Custom component, that shows the current environment of the application, for example 'develop', 'acceptance', etc.\n * Adds some custom styling, so that the text will appear over the EU/EC logo.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclSiteHeaderEnvironment]',\n template: '<ng-content></ng-content>',\n styles: [\n `\n :host {\n position: absolute;\n width: 100%;\n font-size: 1.3rem;\n padding: 0.3rem;\n opacity: 0.6;\n text-align: center;\n transform: rotate(-10deg);\n }\n @media print {\n :host {\n display: none;\n }\n }\n `,\n ],\n})\nexport class EclSiteHeaderEnvironmentComponent extends ECLBaseDirective implements OnDestroy {\n private el = inject(ElementRef);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses(''), 'ecl-u-type-xl ecl-u-bg-error ecl-u-type-color-white'].join(' ');\n }\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isMobile = false;\n private parentEl: HTMLElement;\n\n constructor() {\n super();\n afterNextRender(() => {\n const el: HTMLElement = this.el.nativeElement;\n this.parentEl = this.renderer.parentNode(el);\n\n if (this.parentEl) {\n this.renderer.setStyle(this.parentEl, 'display', 'flex');\n this.renderer.setStyle(this.parentEl, 'alignItems', 'center');\n this.renderer.setStyle(this.parentEl, 'position', 'relative');\n }\n this.observeBreakpointChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 480px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobile = result.matches;\n if (this.isMobile) {\n this.manageMobile();\n } else {\n this.manageDesktop();\n }\n });\n }\n\n private manageMobile(): void {\n if (this.parentEl) {\n this.renderer.setStyle(this.parentEl, 'display', 'block');\n this.renderer.setStyle(this.el.nativeElement, 'width', 'unset');\n }\n }\n\n private manageDesktop(): void {\n if (this.parentEl) {\n this.renderer.setStyle(this.parentEl, 'display', 'flex');\n this.renderer.setStyle(this.el.nativeElement, 'width', '100%');\n }\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSiteHeaderLoginEvent extends EclBaseEvent {}\n\nexport class EclSiteHeaderLoginBoxToggleEvent extends EclBaseEvent {\n constructor(public isOpen: boolean) {\n super();\n }\n}","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EuiLanguage } from '@eui/core';\n\nexport class EclSiteHeaderLanguageClickEvent extends EclBaseEvent {}\n\nexport class EclSiteHeaderLanguageSelectedEvent extends EclBaseEvent {\n constructor(public language: EuiLanguage) {\n super();\n }\n}\n\nexport class EclSiteHeaderLanguageCloseEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSiteHeaderLogoClickEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSiteHeaderSearchEvent extends EclBaseEvent {\n constructor(public keyword: string) {\n super();\n }\n}\n\nexport class EclSiteHeaderSearchToggleEvent extends EclBaseEvent {\n constructor(public isOpen: boolean) {\n super();\n }\n}","\nexport class EclAreaChangeEvent {\nprivate readonly _width: number;\nprivate readonly _left: number;\nprivate readonly _right: number;\n\n\tconstructor(width: number, left: number, right: number) {\n\t\tthis._width = width;\n\t\tthis._left = left;\n\t\tthis._right = right;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tget left(): number {\n\t\treturn this._left;\n\t}\n\n\tget right(): number {\n\t\treturn this._right;\n\t}\n}","import { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, OnDestroy, Output, ViewChild, afterNextRender, inject } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageSelectedEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * This component is a popover, that appears after the user clicks on language link. It contains all the available languages,\n * configured for the current site. Adds styling and functionality for the dialog.\n * Emits events when language is selected and when dialog is closed.\n */\n@Component({\n selector: 'ecl-site-header-language-popover',\n templateUrl: './ecl-site-header-language-popover.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n})\nexport class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective implements OnDestroy {\n el = inject(ElementRef);\n protected eclThemeService = inject(EclThemeService);\n\n /**\n * The div, that wraps all the languages.\n */\n @ViewChild('languageContent') languageContent: ElementRef;\n /**\n * Current language\n */\n @Input() languageCode: string;\n @Input() euLanguages: Array<EuiLanguage> = [];\n @Input() nonEuLanguages: Array<EuiLanguage> = [];\n /**\n * Number of columns for eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() euColumnsCount: number;\n /**\n * Number of columns for non-eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() nonEuColumnsCount: number;\n /**\n * Property to show/hide the dialog.\n */\n @Input() isHidden = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isPushRight = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isPushLeft = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isStack = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isFull = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() @HostBinding('style.right.px') rightPosition: number;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() @HostBinding('style.left.px') leftPosition: number;\n /**\n * Property to position the arrow of the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() @HostBinding('style.--ecl-language-arrow-position') languageArrowPosition: string;\n\n @Output() languageClosed = new EventEmitter<EclSiteHeaderLanguageCloseEvent>();\n @Output() languageSelected = new EventEmitter<EclSiteHeaderLanguageSelectedEvent>();\n\n /**\n * The role of the dialog is 'dialog'. Should not be changed.\n */\n @HostBinding('attr.role') role = 'dialog';\n @HostBinding('attr.aria-labelledby') labelledBy = 'ecl-site-header__language-title';\n @HostBinding('style.display')\n get display():string {\n return this.isHidden ? 'none' : 'block';\n }\n\n languageContentMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private scrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n });\n }\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-site-header__language-container'),\n this.isPushRight ? 'ecl-site-header__language-container--push-right' : '',\n this.isPushLeft ? 'ecl-site-header__language-container--push-left' : '',\n this.isFull ? 'ecl-site-header__language-container--full' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @HostBinding('attr.aria-modal')\n get isModal(): boolean | undefined {\n return !this.isHidden || undefined;\n }\n\n @HostBinding('attr.hidden')\n get isDropdownHidden(): boolean | undefined {\n return this.isHidden || undefined;\n }\n\n /**\n * Calculate the height after resize. If the window is too small -> scroll should appear.\n */\n @HostListener('window:resize')\n onWindowResize(): void {\n setTimeout(() => this.setLanguageContentMaxHeight());\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onCloseClick(): void {\n this.languageClosed.next(new EclSiteHeaderLanguageCloseEvent());\n }\n\n onLanguageClick(language: EuiLanguage, evt: MouseEvent): void {\n this.languageCode = language.code;\n this.languageSelected.next(new EclSiteHeaderLanguageSelectedEvent(language));\n\n evt.preventDefault();\n }\n\n /**\n * Set the max-height property of the component. It is calculated depending on the viewport.\n */\n setLanguageContentMaxHeight(): void {\n const viewportHeight = window.innerHeight;\n if (this.languageContent) {\n const listTop = this.languageContent.nativeElement.getBoundingClientRect().top;\n const availableSpace = viewportHeight - listTop;\n if (availableSpace > 0) {\n this.languageContentMaxHeight = availableSpace;\n }\n }\n }\n\n private subscribeToCDKScrollEvent(): void {\n this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(() => {\n this.setLanguageContentMaxHeight();\n });\n });\n }\n}\n","<div class=\"ecl-site-header__language-header\">\n <div class=\"ecl-site-header__language-title\">\n {{ 'ecl.language-list.SELECT-LANGUAGE' | translate }}\n </div>\n <button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-site-header__language-close\" (click)=\"onCloseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </span>\n </button>\n</div>\n\n<div #languageContent class=\"ecl-site-header__language-content\" [style.max-height.px]=\"languageContentMaxHeight\"\n [class.ecl-site-header__language-content--stack]=\"isStack\">\n @if (euLanguages.length) {\n <div class=\"ecl-site-header__language-category ecl-site-header__language-category--{{ euColumnsCount }}-col\">\n <div class=\"ecl-site-header__language-category-title\">\n {{ 'ecl.language-list.EU-LANGUAGES' | translate }}\n </div>\n <ul class=\"ecl-site-header__language-list\" translate=\"no\">\n @for (item of euLanguages; track item.code) {\n <li class=\"ecl-site-header__language-item\">\n <a\n eclLink\n href=\"#\"\n variant=\"standalone\"\n [lang]=\"item.code\"\n [hreflang]=\"item.code\"\n class=\"ecl-site-header__language-link\"\n [class.ecl-site-header__language-link--active]=\"item.code === languageCode\"\n (click)=\"onLanguageClick(item, $event)\">\n <span class=\"ecl-site-header__language-link-code\">{{ item.code }}</span>\n <span class=\"ecl-site-header__language-link-label\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n @if (nonEuLanguages.length) {\n <div class=\"ecl-site-header__language-category ecl-site-header__language-category--{{ nonEuColumnsCount }}-col\">\n <div class=\"ecl-site-header__language-category-title\">\n {{ 'ecl.language-list.NON-EU-LANGUAGES' | translate }}\n </div>\n <ul class=\"ecl-site-header__language-list\" translate=\"no\">\n @for (item of nonEuLanguages; track item.code) {\n <li class=\"ecl-site-header__language-item\">\n <a\n eclLink\n href=\"#\"\n [lang]=\"item.code\"\n [hreflang]=\"item.code\"\n variant=\"standalone\"\n class=\"ecl-site-header__language-link\"\n [class.ecl-site-header__language-link--active]=\"item.code === languageCode\"\n (click)=\"onLanguageClick(item, $event)\">\n <span class=\"ecl-site-header__language-link-code\">{{ item.code }}</span>\n <span class=\"ecl-site-header__language-link-label\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</div>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EclAreaChangeEvent } from '../events/ecl-area-change.event';\n\n/**\n * This class is used for methods, that serve for communication between the components in ecl-side-header.\n */\n@Injectable({ providedIn: 'root' })\nexport class EclAreaDataService {\n\n\tpublic dataSubject$: Observable<EclAreaChangeEvent>;\n\tprivate dataSubject: Subject<EclAreaChangeEvent> = new Subject<EclAreaChangeEvent>();\n\n\tconstructor() {\n\t\tthis.dataSubject$ = this.dataSubject.asObservable();\n\t}\n\n\t/**\n\t * When header is resized, some of it's chidren parameters for positioning on the screen need to be recalculated.\n\t * This event publishes the new site header position, so that the chidren can adjust their position accordingly.\n\t * @param event\n\t */\n\tpublishEvent(event: EclAreaChangeEvent): void {\n\t\tthis.dataSubject.next(event);\n\t}\n}","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { UpperCasePipe } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EuiEuLanguages, GLOBAL_CONFIG_TOKEN, GlobalConfig, I18nService } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { ECLBaseDirective, ECLClickOutsideDirective, EclRtlService, EclThemeService } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderLanguageClickEvent, EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageSelectedEvent } from '../events';\nimport { EclSiteHeaderLanguagePopoverComponent } from './ecl-site-header-language-popover.component';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This component is used to switch between the languages of the application. Shows the current language, when clicked,\n * opens a language selector.\n */\n@Component({\n selector: 'ecl-site-header-language',\n templateUrl: './ecl-site-header-language.component.html',\n imports: [A11yModule, TranslateModule, UpperCasePipe, ...EUI_ECL_ICON, EclSiteHeaderLanguagePopoverComponent],\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n outputs: ['eclClickOutside'],\n },\n ],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclSiteHeaderLanguageComponent extends ECLBaseDirective implements OnInit, AfterViewInit, OnDestroy {\n protected eclThemeService = inject(EclThemeService);\n protected config = inject<GlobalConfig>(GLOBAL_CONFIG_TOKEN, { optional: true });\n protected i18nService = inject(I18nService);\n\n /**\n * The language popover, that shows all available languages (configured in the config file of the current site).\n */\n @ViewChild(EclSiteHeaderLanguagePopoverComponent) languagePopover: EclSiteHeaderLanguagePopoverComponent;\n /**\n * The link to open the popover dialog.\n */\n @ViewChild('languageLink', { read: ElementRef }) languageLinkElement: ElementRef<HTMLAnchorElement>;\n\n /**\n * Thie event is emited, when language link, showing the current language is clicked.\n */\n @Output() languageClick = new EventEmitter<EclSiteHeaderLanguageClickEvent>();\n /**\n * Thie event is emited, when user selects a new language from the dropdown.\n */\n @Output() languageSelected = new EventEmitter<EclSiteHeaderLanguageSelectedEvent>();\n\n readonly MOBILE_BREAKPOINT = 768;\n readonly LANGUAGE_MAX_COLUMNS = 8;\n isLanguagesDropdownVisible = false;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isPushRight: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isPushLeft: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isStack: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isFull: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n languageArrowPosition: string;\n languageCode = 'en';\n rightPosition: number;\n leftPosition: number;\n /**\n * Array of EU languages, that can be selected for the current site.\n */\n euLanguages: Array<EuiLanguage> = [];\n /**\n * Array of non-EU languages, that can be selected for the current site.\n */\n nonEuLanguages: Array<EuiLanguage> = [];\n euColumnsCount = 1;\n nonEuColumnsCount = 1;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private _languages: Array<EuiLanguage> = [];\n private parentHeaderWidth: number;\n private isRtl = false;\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-site-header__language')].join(' ').trim();\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n /**\n * After view is initialized -> calculate popover position and initialize languages, that are configured in the config file\n * of the current site.\n */\n ngAfterViewInit(): void {\n this.eclAreaDataService.dataSubject$.pipe(takeUntil(this.destroy$)).subscribe(\n parentHeaderRect => {\n this.calculatePopoverPosition(parentHeaderRect.right, parentHeaderRect.left);\n });\n this.handleInitialConfiguredLanguages();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n getLanguageLabel(): string {\n return `${EuiEuLanguages.getLanguageByCode(this.languageCode)?.label} - ${this.languageCode.toUpperCase()}`;\n }\n\n /**\n * Toggle the language dropdown when clicking the link, showing the current language.\n * @param evt\n */\n onLanguageClick(evt: Event): void {\n this.isLanguagesDropdownVisible = !this.isLanguagesDropdownVisible;\n if( !this.isLanguagesDropdownVisible ) {\n setTimeout(() => {\n this.isFull = false;\n this.isStack = false;\n this.isPushRight = false;\n this.rightPosition = undefined;\n this.leftPosition = undefined;\n this.languageArrowPosition = undefined;\n });\n }\n\n // If the dropdown is visible, we set the max-height of the dropdown, so that it can be scrolled.\n if (this.isLanguagesDropdownVisible) {\n setTimeout(() => this.languagePopover.setLanguageContentMaxHeight());\n }\n this.languageClick.next(new EclSiteHeaderLanguageClickEvent());\n\n evt.preventDefault();\n }\n\n onLanguageClosed(evt: EclSiteHeaderLanguageCloseEvent): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n onLanguageSelected(evt: EclSiteHeaderLanguageSelectedEvent): void {\n this.languageCode = evt.language.code;\n this.updateCurrentLanguage(evt.language.code);\n this.isLanguagesDropdownVisible = false;\n this.languageSelected.next(new EclSiteHeaderLanguageSelectedEvent(evt.language));\n }\n\n /**\n * Close the dropdown, when clicking outside of the component.\n */\n @HostListener('eclClickOutside')\n onClickOutside(): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n /**\n * Close the dropdown, when pressing ESC key.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n public hasLanguageCodes(): boolean {\n return this._languages && this._languages.length > 0;\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Calculate the number of columns for EU and non-EU languages, depending on languages' count.\n */\n private updateLanguages(): void {\n\n this.euLanguages = this._languages.filter((item) => EuiEuLanguages.isEuLanguage(item.code));\n\n this.nonEuLanguages = this._languages.filter((item) => !EuiEuLanguages.isEuLanguage(item.code));\n\n this.euColumnsCount = Math.ceil(this.euLanguages.length / this.LANGUAGE_MAX_COLUMNS);\n\n this.nonEuColumnsCount = Math.ceil(this.nonEuLanguages.length / this.LANGUAGE_MAX_COLUMNS);\n }\n\n private calculatePopoverPosition( parentHeaderRight: number, parentHeaderLeft: number): void {\n setTimeout(() => {\n if (this.hasLanguageCodes()) {\n const arrowSize = '0.5rem';\n const linkRect = this.languageLinkElement.nativeElement.getBoundingClientRect();\n const popoverRect = this.languagePopover?.el.nativeElement.getBoundingClientRect();\n const screenWidth = window.innerWidth;\n const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n\n this.isFull = false;\n this.isStack = false;\n this.isPushRight = false;\n this.isPushLeft = false;\n this.rightPosition = undefined;\n this.leftPosition = undefined;\n this.languageArrowPosition = undefined;\n\n if (popoverRect?.width > this.parentHeaderWidth) {\n this.isStack = true;\n if (this.nonEuLanguages.length) {\n this.nonEuColumnsCount = Math.max(this.euColumnsCount, this.nonEuColumnsCount);\n }\n }\n if (this.isRtl && popoverRect?.left < 0) {\n const arrowPosition = linkRect.right - parentHeaderLeft - linkRect.width / 2;\n this.isPushLeft = true;\n this.leftPosition = -linkRect.left + parentHeaderLeft;\n this.languageArrowPosition = `${arrowPosition}px`;\n } else if (!this.isRtl && popoverRect?.right > screenWidth) {\n const arrowPosition = parentHeaderRight - linkRect.right + linkRect.width / 2;\n\n this.isPushRight = true;\n this.rightPosition = -parentHeaderRight + linkRect.right;\n this.languageArrowPosition = `calc(${arrowPosition}px - ${arrowSize})`;\n }\n\n if (vw < this.MOBILE_BREAKPOINT) {\n const arrowPosition = popoverRect?.right - linkRect.right + linkRect.width / 2;\n\n this.isFull = true;\n this.languageArrowPosition = `calc(${arrowPosition}px - ${arrowSize})`;\n }\n }\n });\n }\n\n private getConfiguredLanguages(): void {\n const languages: string[] = this.config?.i18n?.i18nService?.languages.map(lang => {\n return (typeof lang !== 'string') ? (lang as EuiLanguage).code : lang\n }) || [];\n this._languages = EuiEuLanguages.getAllLanguagesByCodes(languages);\n\n if (this.config?.i18n?.i18nService?.defaultLanguage) {\n this.languageCode = this.config?.i18n?.i18nService?.defaultLanguage;\n } else {\n if (this._languages && this._languages.length > 0) {\n this.languageCode = this._languages[0].code;\n }\n }\n }\n\n private updateCurrentLanguage(lang: string): void {\n this.i18nService.updateState({\n activeLang: lang,\n });\n }\n\n private handleInitialConfiguredLanguages(): void {\n setTimeout(() => {\n if (this._languages === undefined || this._languages.length === 0) {\n this.getConfiguredLanguages();\n }\n this.updateLanguages();\n });\n }\n}\n","<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__language-selector\"\n aria-controls=\"language-list-overlay\"\n role=\"button\"\n [attr.aria-label]=\"'ecl.language-list.SELECT-LANGUAGE-EXT' | translate: { currentLang: getLanguageLabel() }\"\n [attr.aria-expanded]=\"isLanguagesDropdownVisible\"\n (click)=\"onLanguageClick($event)\"\n (keydown.space)=\"onLanguageClick($event)\">\n <span class=\"ecl-site-header__language-icon\">\n <ecl-icon icon=\"global\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n </span>\n {{ languageCode | uppercase }}\n</a>\n@if(hasLanguageCodes() && isLanguagesDropdownVisible) {\n<ecl-site-header-language-popover\n #languagePopover\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n id=\"language-list-overlay\"\n [languageCode]=\"languageCode\"\n [euLanguages]=\"euLanguages\"\n [nonEuLanguages]=\"nonEuLanguages\"\n [euColumnsCount]=\"euColumnsCount\"\n [nonEuColumnsCount]=\"nonEuColumnsCount\"\n [isStack]=\"isStack\"\n [isPushRight]=\"isPushRight\"\n [isPushLeft] = \"isPushLeft\"\n [isFull]=\"isFull\"\n [rightPosition]=\"rightPosition\"\n [leftPosition]=\"leftPosition\"\n [languageArrowPosition]=\"languageArrowPosition\"\n (languageSelected)=\"onLanguageSelected($event)\"\n (languageClosed)=\"onLanguageClosed($event)\">\n</ecl-site-header-language-popover>\n}","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewChild, afterNextRender, booleanAttribute, inject } from '@angular/core';\nimport { Subject, debounceTime, takeUntil } from 'rxjs';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ECLBaseDirective, ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EclSiteHeaderLoginBoxToggleEvent, EclSiteHeaderLoginEvent } from '../events';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component for login/logout as part of the harmonised site header. Emits events when user logs in and when user opens the\n * login dropdown.\n */\n@Component({\n selector: 'ecl-site-header-login',\n templateUrl: './ecl-site-header-login.component.html',\n imports: [TranslateModule, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclSiteHeaderLoginComponent extends ECLBaseDirective implements OnChanges, OnDestroy {\n @Input({ transform: booleanAttribute }) isLoggedIn = false;\n @HostBinding('class') class = 'ecl-site-header__login-container';\n\n @ViewChild('loginLink', { read: ElementRef }) loginLinkElement: ElementRef<HTMLAnchorElement>;\n\n @Output() login = new EventEmitter<EclSiteHeaderLoginEvent>();\n @Output() loginBoxToggle = new EventEmitter<EclSiteHeaderLoginBoxToggleEvent>();\n\n /**\n * If login popover is open (true) or closed (false).\n */\n public isLoginBoxActive = false;\n /**\n * The position of the arrow of the popover.\n */\n public loginArrowPosition: string;\n readonly TABLET_BREAKPOINT = 996;\n private parentHeaderRight: number | undefined;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.handleRtlChangeState();\n this.handleSiteHeaderAreaChangeEvent();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const isLoggedInChange = changes.isLoggedIn;\n if (isLoggedInChange && isLoggedInChange.previousValue === true) {\n this.isLoginBoxActive = false;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Close the login popover on click outside.\n */\n @HostListener('eclClickOutside')\n onClickOutsideMegaMenu(): void {\n this.onLoginBoxClose();\n }\n\n /**\n * @returns classes for the login popover.\n */\n getLoginBoxCssClasses(): string {\n return ['ecl-site-header__login-box', this.isLoginBoxActive ? 'ecl-site-header__login-box--active' : ''].join(' ');\n }\n\n onLoginClick(evt: MouseEvent): void {\n const event = new EclSiteHeaderLoginEvent();\n this.login.next(event);\n evt.preventDefault();\n }\n\n onLoginBoxToggle(evt: MouseEvent): void {\n this.isLoginBoxActive = !this.isLoginBoxActive;\n const event = new EclSiteHeaderLoginBoxToggleEvent(this.isLoginBoxActive);\n this.loginBoxToggle.next(event);\n evt.preventDefault();\n }\n\n private onLoginBoxClose(): void {\n if (this.isLoginBoxActive) {\n this.isLoginBoxActive = false;\n const event = new EclSiteHeaderLoginBoxToggleEvent(this.isLoginBoxActive);\n this.loginBoxToggle.next(event);\n }\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => {\n this.calculateLoginArrowPosition(this.parentHeaderRight);\n });\n }\n\n /**\n * On resize -> calculate the popover arrow position, using parent element ecl-header html parameters.\n */\n private handleSiteHeaderAreaChangeEvent(): void {\n this.eclAreaDataService.dataSubject$.pipe(takeUntil(this.destroy$)).subscribe(\n parentHeaderRect => {\n this.parentHeaderRight = parentHeaderRect.right;\n this.calculateLoginArrowPosition(this.parentHeaderRight);\n });\n }\n\n private calculateLoginArrowPosition(parentHeaderRight: number | undefined): void {\n\n const vw = document.documentElement.clientWidth;\n const arrowSize = '0.5rem';\n const loginLink = this.loginLinkElement?.nativeElement.getBoundingClientRect();\n const arrowPosition = parentHeaderRight - loginLink?.right + loginLink?.width /2;\n if (parentHeaderRight === undefined) {\n return;\n }\n if (this.isLoginBoxActive && vw < this.TABLET_BREAKPOINT) {\n this.loginArrowPosition = `calc(${arrowPosition}px + ${arrowSize})`;\n } else if (this.isLoginBoxActive ) {\n this.loginArrowPosition = null;\n }\n }\n}\n","@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__login-toggle\"\n aria-controls=\"login-box-id\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginBoxToggle($event)\">\n <ecl-icon icon=\"logged-in\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGGED-IN' | translate }}\n </a>\n <div\n id=\"login-box-id\"\n [style]=\"{'--ecl-login-arrow-position': loginArrowPosition}\"\n class=\"{{ getLoginBoxCssClasses() }}\">\n <ng-content></ng-content>\n </div>\n} @else {\n <a\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive is used to add specific class for the login description element, within the login dropdown.\n */\n@Directive({\n selector: '[eclSiteHeaderLoginDescription]',\n})\nexport class EclSiteHeaderLoginDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-site-header__login-description';\n}\n\n/**\n * This directive is used to add specific class for the horizontal line, that separates\n * description from the 'Logout' link.\n */\n@Directive({\n selector: '[eclSiteHeaderLoginSeparator]',\n})\nexport class EclSiteHeaderLoginSeparatorDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-site-header__login-separator';\n}\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This component is used as a wrapper around ecl-notification component, when used in the site-header. Adds specific class\n * and methods to show/hide the notification.\n */\n@Component({\n selector: 'ecl-site-header-notification',\n templateUrl: 'ecl-site-header-notification.component.html',\n})\nexport class EclSiteHeaderNotificationComponent extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-site-header__notification')].join(' ').trim();\n }\n @HostBinding('style.display') protected display = '';\n\n onHide(): void {\n this.display = 'none';\n }\n\n onShow(): void {\n this.display = '';\n }\n}\n","<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds some specific classes for picture element, when used in the site header logo.\n */\n@Directive({\n selector: '[eclSiteHeaderPicture]',\n})\nexport class EclSiteHeaderPictureDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-site-header__picture ecl-picture';\n}\n\n/**\n * Adds some specific classes for <img> element, when used in the site header logo.\n */\n@Directive({\n selector: '[eclSiteHeaderImage]',\n})\nexport class EclSiteHeaderImageDirective extends ECLBaseDirective {\n logoSize: string;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-site-header__logo-image'),\n `ecl-site-header__logo-image--${this.logoSize}`,\n ].join(' ').trim();\n }\n}\n\n/**\n * Adds some specific classes for <a> element, when used in the site header logo.\n */\n@Directive({\n selector: '[eclSiteHeaderLink]',\n})\nexport class EclSiteHeaderLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-link--standalone ecl-site-header__logo-link';\n}\n","import { afterNextRender, Component, ElementRef, EventEmitter, forwardRef, HostBinding, Input, OnDestroy, Output, Provider, ViewChild, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EclSearchFormEvent, EUI_ECL_SEARCH_FORM } from '@eui/ecl/components/ecl-search-form';\nimport { EclSiteHeaderSearchEvent, EclSiteHeaderSearchToggleEvent } from '../events';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport const ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclSiteHeaderSearchComponent),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty*/\n};\n\n/**\n * This component builds the search box in the ecl-site-header component. Adds specific style and functionality, emits\n * events on search and search toggle.\n */\n@Component({\n selector: 'ecl-site-header-search',\n templateUrl: './ecl-site-header-search.component.html',\n imports: [FormsModule, TranslateModule, ...EUI_ECL_SEARCH_FORM, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR],\n})\nexport class EclSiteHeaderSearchComponent extends ECLBaseDirective implements ControlValueAccessor, OnDestroy {\n @HostBinding('class') class = 'ecl-site-header__search-container';\n /**\n * The default role of the component is 'search', should not be changed.\n */\n @HostBinding('attr.role') role = 'search';\n\n @Input() searchInputText: string;\n @Input() searchInputPlaceholder: string;\n @Input() searchButtonLabel: string;\n\n /**\n * The search link element from the view, i.e. the search button.\n */\n @ViewChild('searchLink', { read: ElementRef }) searchLinkElement: ElementRef<HTMLAnchorElement>;\n\n // TODO: this output should be renamed in v20 - breaking change!\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() search = new EventEmitter<EclSiteHeaderSearchEvent>();\n @Output() searchToggle = new EventEmitter<EclSiteHeaderSearchToggleEvent>();\n\n /**\n * The arrow position of the serahc dropdown, when in mobile mode.\n */\n public searchArrowPosition: string;\n public isSearchBoxActive = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onTouched: (_: any) => void = noop;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private parentHeaderRight: number | undefined;\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.handleRtlChangeState();\n this.handleSiteHeaderAreaChangeEvent();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n onSearch(evt: EclSearchFormEvent): boolean {\n this.search.next(new EclSiteHeaderSearchEvent(evt.keyword));\n this.onChange(evt.keyword);\n return false;\n }\n\n onSearchBoxToggle(evt: MouseEvent): void {\n this.isSearchBoxActive = !this.isSearchBoxActive;\n const event = new EclSiteHeaderSearchToggleEvent(this.isSearchBoxActive);\n this.searchToggle.next(event);\n evt.preventDefault();\n }\n\n /**\n *\n * @returns The classes for the ecl search form.\n */\n getSearchBoxCssClasses(): string {\n return ['ecl-site-header__search', this.isSearchBoxActive ? 'ecl-site-header__search--active' : ''].join(' ');\n }\n\n onModelChange(newValue: string): void {\n this.searchInputText = newValue;\n this.onChange(newValue);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.searchInputText = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => {\n this.calculateSearchFormArrowPosition(this.parentHeaderRight);\n });\n }\n\n private handleSiteHeaderAreaChangeEvent(): void {\n this.eclAreaDataService.dataSubject$.pipe(takeUntil(this.destroy$)).subscribe(\n parentHeaderRect => {\n this.parentHeaderRight = parentHeaderRect.right;\n this.calculateSearchFormArrowPosition(this.parentHeaderRight);\n });\n }\n\n private calculateSearchFormArrowPosition(parentHeaderRight: number | undefined): void {\n const searchLink = this.searchLinkElement.nativeElement.getBoundingClientRect();\n const viewportWidth = document.documentElement.clientWidth;\n const arrowPosition = viewportWidth - searchLink.right + searchLink.width / 2;\n const arrowSize = '0.5rem';\n if (this.isSearchBoxActive || parentHeaderRight !== undefined) {\n this.searchArrowPosition = `calc(${arrowPosition}px + ${arrowSize})`;\n }\n }\n}\n","<a\n #searchLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__search-toggle\"\n data-ecl-search-toggle=\"true\"\n aria-controls=\"search-form-id\"\n [attr.aria-expanded]=\"isSearchBoxActive\"\n (click)=\"onSearchBoxToggle($event)\">\n <ecl-icon icon=\"search\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.common.SEARCH' | translate }}\n</a>\n\n<ecl-search-form\n [style]=\"{'--ecl-search-arrow-position': searchArrowPosition}\"\n (search)=\"onSearch($event)\"\n [placeholder]=\"searchInputPlaceholder\"\n (ngModelChange)=\"onModelChange($event)\"\n [(ngModel)]=\"searchInputText\"\n [searchButtonLabel]=\"searchButtonLabel\"\n [class]=\"getSearchBoxCssClasses()\">\n</ecl-search-form>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AsyncPipe } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewChild, afterNextRender, booleanAttribute, forwardRef, inject } from '@angular/core';\nimport { I18nService } from '@eui/core';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuComponent } from '@eui/ecl/components/ecl-mega-menu';\nimport { EclMenuComponent } from '@eui/ecl/components/ecl-menu';\nimport { ECLBaseDirective, EclRtlService, EclThemeService, logoLanguageCode } from '@eui/ecl/core';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderLanguageClickEvent, EclSiteHeaderLogoClickEvent } from './events';\nimport { EclAreaChangeEvent } from './events/ecl-area-change.event';\nimport { EclSiteHeaderLanguageComponent } from './language';\nimport { EclSiteHeaderLoginComponent } from './login';\nimport { EclSiteHeaderNotificationComponent } from './notification';\nimport { EclSiteHeaderImageDirective, EclSiteHeaderLinkDirective, EclSiteHeaderPictureDirective } from './picture';\nimport { EclSiteHeaderSearchComponent } from './search';\nimport { EclAreaDataService } from './services/ecl-area-data.service';\n\n/**\n * The Site header offers easily recognisable elements (such as the logo) and the most essential functionality of\n * every site (such as Language switcher or Search form). Additionally it can host the name of the site,\n * the class name to which it belongs and the main navigation. The header is always placed at the top of the page.\n * The elements required in the site header are different depending wether it is the corporate, standardised or an harmonised website.\n */\n@Component({\n selector: 'ecl-site-header',\n templateUrl: './ecl-site-header.component.html',\n imports: [AsyncPipe, TranslateModule, ...EUI_ECL_LINK, EclSiteHeaderPictureDirective],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclSiteHeaderComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n eclThemeService = inject(EclThemeService);\n protected i18nService = inject(I18nService);\n\n /**\n * The name of the site, to be added in the header, next to the logo.\n */\n @Input() siteName: string;\n /**\n * Language code of the current language of the site.\n */\n @Input() languageCode = 'en';\n /**\n * @deprecated - not used anywhere. to be removed in v20.\n */\n @Input() logoUrl: string;\n /**\n * The size of the logo, 's', 'm' or 'l', default to 'm'.\n */\n @Input() logoSize: 's' | 'm' | 'l' = 'm';\n\n /**\n * Determines if the site name should be displayed only on mobile devices.\n */\n @Input({ transform: booleanAttribute }) isSiteNameMobileOnly = false; // TODO: add info in the migration guide v21\n\n /**\n * Adds specific classes to the main element. Depending , logo size, menu and menu status, rtl status.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-site-header'),\n `ecl-site-header-with-logo-${this.logoSize}`,\n this.eclMenuComponent ? 'ecl-site-header--has-menu' : '',\n this.eclMegaMenuComponent ? 'ecl-site-header--has-mega-menu' : '',\n this.isEclMegaMenuOpen ? 'ecl-site-header--open-menu' : '',\n this.isEclMegaMenuStart ? 'ecl-site-header--open-menu-start' : '',\n this.isRtl ? 'ecl-site-header--rtl' : '',\n ].join(' ').trim();\n }\n\n @Output() logoClick = new EventEmitter<EclSiteHeaderLogoClickEvent>();\n @Output() languageClick = new EventEmitter<EclSiteHeaderLanguageClickEvent>();\n\n @ViewChild('topContainer') topContainerElement: ElementRef;\n @ViewChild('siteHeaderHeader') siteHeaderHeader: ElementRef;\n @ViewChild('bannerHeader') bannerHeader: ElementRef;\n @ContentChild(EclSiteHeaderLoginComponent) eclLoginComponent: EclSiteHeaderLoginComponent;\n @ContentChild(EclMenuComponent) eclMenuComponent: EclMenuComponent;\n @ContentChild(EclMegaMenuComponent) eclMegaMenuComponent: EclMegaMenuComponent;\n @ContentChild(EclSiteHeaderSearchComponent) eclSearchComponent: EclSiteHeaderSearchComponent;\n @ContentChild(EclSiteHeaderLanguageComponent) eclLanguageComponent: EclSiteHeaderLanguageComponent;\n @ContentChild(EclSiteHeaderNotificationComponent) eclNotificationComponent: EclSiteHeaderNotificationComponent;\n @ContentChild(forwardRef(() => EclSiteHeaderLinkDirective), { descendants: true }) eclHeaderLink: EclSiteHeaderLinkDirective;\n @ContentChild(forwardRef(() => EclSiteHeaderImageDirective), { descendants: true }) eclHeaderImage: EclSiteHeaderImageDirective;\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private isEclMegaMenuOpen = false;\n private isEclMegaMenuStart = false;\n private isMobileBreakpoint = false;\n private isRtl = false;\n private readonly TIMEOUT_INTERVAL = 100;\n private eclRtlService = inject(EclRtlService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclAreaDataService = inject(EclAreaDataService);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private el = inject(ElementRef);\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.subscribeToMegaMenuEvents();\n // Observe size changes of the component, for some child components size need to be also adjusted accordingly.\n new ResizeObserver(() => {\n setTimeout(() => {\n this.sendResizeEventToChildComponents();\n }, this.TIMEOUT_INTERVAL)\n }).observe(this.topContainerElement.nativeElement)\n });\n }\n\n /**\n * Subscibe to some child components' events.\n */\n ngAfterContentInit(): void {\n this.handleRtlChangeState();\n this.handleLanguageChangeState();\n if (this.eclHeaderImage) {\n this.eclHeaderImage.logoSize = this.logoSize;\n }\n\n if (this.eclLoginComponent && this.eclSearchComponent) {\n this.eclLoginComponent.loginBoxToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclSearchComponent.isSearchBoxActive = false;\n\t this.sendResizeEventToChildComponents();\n });\n\n this.eclSearchComponent.searchToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclLoginComponent.isLoginBoxActive = false;\n\t this.sendResizeEventToChildComponents();\n });\n }\n\n if (this.eclLanguageComponent) {\n this.eclLanguageComponent.languageClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageClick.next(new EclSiteHeaderLanguageClickEvent());\n\t this.sendResizeEventToChildComponents();\n });\n\n this.eclLanguageComponent.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageCode = evt.language?.code;\n });\n }\n\n if (this.eclLanguageComponent) {\n this.languageCode = this.eclLanguageComponent?.languageCode;\n }\n\n if (this.eclMenuComponent) {\n this.eclMenuComponent.openHamburgerMenu.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.positionMenu();\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * This method is used, when current language is not present for our available logo collection.\n * In this case, a default logo is returned.\n */\n get partOfLogoName(): string {\n return logoLanguageCode(this.languageCode);\n }\n\n onECLogoClick(evt: MouseEvent): void {\n const event = new EclSiteHeaderLogoClickEvent();\n this.logoClick.next(event);\n if (event.defaultPrevented) {\n evt.preventDefault();\n }\n }\n\n hasCustomLink(): boolean {\n return !!this.eclHeaderLink;\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Some child components need position and size to be set according to the parent site-header. So we share some site-header's measurements\n * via the 'eclAreaDataService'.\n */\n private sendResizeEventToChildComponents(): void {\n if (this.topContainerElement.nativeElement.getBoundingClientRect().width !== undefined) {\n const topContainerRect = this.topContainerElement.nativeElement.getBoundingClientRect();\n const siteHeaderAreaChangeEvent = new EclAreaChangeEvent(\n topContainerRect.width,\n topContainerRect.left,\n topContainerRect.right);\n\n this.eclAreaDataService.publishEvent(siteHeaderAreaChangeEvent);\n }\n }\n\n private subscribeToMegaMenuEvents(): void {\n this.eclHeaderMenuComunicationService.isMobileObjectOpen$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n if (this.isMobileBreakpoint) {\n this.isEclMegaMenuStart = isExpanded;\n this.isEclMegaMenuOpen = isExpanded;\n }\n if (isExpanded) {\n const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n });\n\n this.eclHeaderMenuComunicationService.isObjectExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n if (this.isMobileBreakpoint) {\n if (isExpanded) {\n this.onMegaMenuItemExpandMobile();\n } else {\n this.onMegaMenuItemCollapseMobile();\n }\n } else {\n this.isEclMegaMenuOpen = isExpanded;\n if (isExpanded) {\n const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n }\n });\n }\n\n private onMegaMenuItemExpandMobile(): void {\n this.isEclMegaMenuStart = false;\n if (this.eclNotificationComponent) {\n this.eclNotificationComponent.onHide();\n }\n if (this.bannerHeader) {\n this.bannerHeader.nativeElement.style.display = 'none';\n }\n const bottomSpaceY = this.siteHeaderHeader.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n\n private onMegaMenuItemCollapseMobile(): void {\n this.isEclMegaMenuStart = true;\n if (this.eclNotificationComponent) {\n this.eclNotificationComponent.onShow();\n }\n if (this.bannerHeader) {\n this.bannerHeader.nativeElement.style.display = '';\n }\n const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 996px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n\n private positionMenu(): void {\n const bottomSpaceY = this.siteHeaderHeader.nativeElement.getBoundingClientRect().bottom;\n this.eclMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n\n private handleLanguageChangeState(): void {\n this.i18nService.getState().pipe(takeUntil(this.destroy$)).subscribe((lang) => {\n this.languageCode = lang.activeLang;\n if (this.eclLanguageComponent) {\n this.eclLanguageComponent.languageCode = lang.activeLang;\n }\n });\n }\n}\n","<div class=\"ecl-site-header__background\">\n <div class=\"ecl-site-header__header\" #siteHeaderHeader>\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n @if(hasCustomLink()) {\n <ng-content select=\"[eclSiteHeaderLink]\"></ng-content>\n } @else {\n <a eclLink variant=\"standalone\" class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <ng-content select=\"[eclSiteHeaderEnvironment]\" media=\"(min-width: 1140px)\"></ng-content>\n\n @if (eclThemeService.isEC$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <source\n srcset=\"./assets/images/ecl/ec/logo/positive/logo-ec--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 415px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/ec/logo/logo-ec--mute.svg\"\n [attr.alt]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" />\n </picture>\n }\n @if (eclThemeService.isEU$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 415px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n alt=\"European Union\" />\n </picture>\n }\n </a>\n }\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n </div>\n <ng-content select=\"ecl-site-header-notification\"></ng-content>\n</div>\n\n\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n@if (siteName) {\n <div class=\"ecl-site-header__banner\" #bannerHeader [class.ecl-site-header__site-name--mobile-only]=\"isSiteNameMobileOnly\">\n <div class=\"ecl-container\">\n <div class=\"ecl-site-header__site-name\">{{ siteName }}</div>\n <ng-content select=\"[eclSiteHeaderCta]\"></ng-content>\n </div>\n </div>\n}\n\n<ng-content select=\"ecl-menu\"></ng-content>\n<ng-content select=\"[eclMegaMenu]\"></ng-content>\n","import { NgModule } from '@angular/core';\nimport { EclSiteHeaderActionComponent } from './action';\nimport { EclSiteHeaderBannerTopComponent } from './banner-top';\nimport { EclSiteHeaderCtaDirective } from './cta';\nimport { EclSiteHeaderCustomActionComponent } from './custom-action';\nimport { EclSiteHeaderCustomActionContentDirective, EclSiteHeaderCustomActionLinkDirective, EclSiteHeaderCustomActionTitleDirective } from './custom-action/ecl-site-header-custom-action.directive';\nimport { EclSiteHeaderEnvironmentComponent } from './ecl-site-header-environment';\nimport { EclSiteHeaderComponent } from './ecl-site-header.component';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguagePopoverComponent } from './language';\nimport {\n EclSiteHeaderLoginComponent,\n EclSiteHeaderLoginDescriptionDirective,\n EclSiteHeaderLoginSeparatorDirective,\n} from './login';\nimport { EclSiteHeaderNotificationComponent } from './notification';\nimport { EclSiteHeaderImageDirective, EclSiteHeaderLinkDirective, EclSiteHeaderPictureDirective } from './picture';\nimport { EclSiteHeaderSearchComponent } from './search';\n\nconst COMPONENTS = [\n EclSiteHeaderComponent,\n EclSiteHeaderActionComponent,\n EclSiteHeaderCustomActionComponent,\n EclSiteHeaderCustomActionContentDirective,\n EclSiteHeaderCustomActionLinkDirective,\n EclSiteHeaderCustomActionTitleDirective,\n EclSiteHeaderLoginComponent,\n EclSiteHeaderLoginDescriptionDirective,\n EclSiteHeaderLoginSeparatorDirective,\n EclSiteHeaderLanguageComponent,\n EclSiteHeaderLanguagePopoverComponent,\n EclSiteHeaderSearchComponent,\n EclSiteHeaderBannerTopComponent,\n EclSiteHeaderEnvironmentComponent,\n EclSiteHeaderNotificationComponent,\n EclSiteHeaderCtaDirective,\n EclSiteHeaderImageDirective,\n EclSiteHeaderPictureDirective,\n EclSiteHeaderLinkDirective,\n];\n\n/**\n * Module that provides the EclSiteHeaderComponent and it's dependencies.\n *\n * @deprecated Use {@link EUI_ECL_SITE_HEADER} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclSiteHeaderModule {}\n","import { EclSiteHeaderActionComponent } from './action';\nimport { EclSiteHeaderBannerTopComponent } from './banner-top';\nimport { EclSiteHeaderCtaDirective } from './cta';\nimport { EclSiteHeaderCustomActionComponent } from './custom-action';\nimport { EclSiteHeaderCustomActionContentDirective, EclSiteHeaderCustomActionLinkDirective, EclSiteHeaderCustomActionTitleDirective } from './custom-action/ecl-site-header-custom-action.directive';\nimport { EclSiteHeaderEnvironmentComponent } from './ecl-site-header-environment';\nimport { EclSiteHeaderComponent } from './ecl-site-header.component';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguagePopoverComponent } from './language';\nimport {\n EclSiteHeaderLoginComponent,\n EclSiteHeaderLoginDescriptionDirective,\n EclSiteHeaderLoginSeparatorDirective,\n} from './login';\nimport { EclSiteHeaderNotificationComponent } from './notification';\nimport { EclSiteHeaderImageDirective, EclSiteHeaderLinkDirective, EclSiteHeaderPictureDirective } from './picture';\nimport { EclSiteHeaderSearchComponent } from './search';\n\nexport * from './ecl-site-header.module';\nexport * from './ecl-site-header.component';\nexport * from './action/index';\nexport * from './banner-top/index';\nexport * from './language/index';\nexport * from './login/index';\nexport * from './search/index';\nexport * from './cta/index';\nexport * from './notification/index';\nexport * from './ecl-site-header-environment/index';\nexport * from './picture/index';\nexport * from './events/index';\nexport * from './custom-action/index';\n\nexport const EUI_ECL_SITE_HEADER = [\n EclSiteHeaderComponent,\n EclSiteHeaderActionComponent,\n EclSiteHeaderCustomActionComponent,\n EclSiteHeaderCustomActionContentDirective,\n EclSiteHeaderCustomActionLinkDirective,\n EclSiteHeaderCustomActionTitleDirective,\n EclSiteHeaderLoginComponent,\n EclSiteHeaderLoginDescriptionDirective,\n EclSiteHeaderLoginSeparatorDirective,\n EclSiteHeaderLanguageComponent,\n EclSiteHeaderLanguagePopoverComponent,\n EclSiteHeaderSearchComponent,\n EclSiteHeaderBannerTopComponent,\n EclSiteHeaderEnvironmentComponent,\n EclSiteHeaderNotificationComponent,\n EclSiteHeaderCtaDirective,\n EclSiteHeaderImageDirective,\n EclSiteHeaderPictureDirective,\n EclSiteHeaderLinkDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","takeUntil","i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-site-header.mjs","sources":["../../components/ecl-site-header/action/ecl-site-header-action.component.ts","../../components/ecl-site-header/action/ecl-site-header-action.component.html","../../components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.ts","../../components/ecl-site-header/banner-top/ecl-site-header-banner-top.component.html","../../components/ecl-site-header/cta/ecl-site-header-cta.directive.ts","../../components/ecl-site-header/custom-action/ecl-site-header-custom-action.directive.ts","../../components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.ts","../../components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.html","../../components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.ts","../../components/ecl-site-header/events/ecl-site-header-login.event.ts","../../components/ecl-site-header/events/ecl-site-header-language.event.ts","../../components/ecl-site-header/events/ecl-site-header-logo.event.ts","../../components/ecl-site-header/events/ecl-site-header-search.event.ts","../../components/ecl-site-header/events/ecl-area-change.event.ts","../../components/ecl-site-header/language/ecl-site-header-language-popover.component.ts","../../components/ecl-site-header/language/ecl-site-header-language-popover.component.html","../../components/ecl-site-header/services/ecl-area-data.service.ts","../../components/ecl-site-header/language/ecl-site-header-language.component.ts","../../components/ecl-site-header/language/ecl-site-header-language.component.html","../../components/ecl-site-header/login/ecl-site-header-login.component.ts","../../components/ecl-site-header/login/ecl-site-header-login.component.html","../../components/ecl-site-header/login/ecl-site-header-login-details.directive.ts","../../components/ecl-site-header/notification/ecl-site-header-notification.component.ts","../../components/ecl-site-header/notification/ecl-site-header-notification.component.html","../../components/ecl-site-header/picture/ecl-site-header-picture.directive.ts","../../components/ecl-site-header/search/ecl-site-header-search.component.ts","../../components/ecl-site-header/search/ecl-site-header-search.component.html","../../components/ecl-site-header/ecl-site-header.component.ts","../../components/ecl-site-header/ecl-site-header.component.html","../../components/ecl-site-header/index.ts","../../components/ecl-site-header/eui-ecl-components-ecl-site-header.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This components is a container element for custom action, login, language and search components.\n */\n// TODO: maybe could be part of the header, and we don't need this component?\n@Component({\n selector: 'ecl-site-header-action',\n templateUrl: './ecl-site-header-action.component.html',\n})\nexport class EclSiteHeaderActionComponent extends ECLBaseDirective {\n @HostBinding('class') class = 'ecl-site-header__action';\n}\n","<ng-content select=\"[eclSiteHeaderCustomAction]\"></ng-content>\n<ng-content select=\"ecl-site-header-login\"></ng-content>\n<ng-content select=\"ecl-site-header-language\"></ng-content>\n<ng-content select=\"ecl-site-header-search\"></ng-content>\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This component is used , when we want to show class name (used in standardised variant of site-header).\n */\n@Component({\n selector: 'ecl-site-header-banner-top',\n templateUrl: 'ecl-site-header-banner-top.component.html',\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclSiteHeaderBannerTopComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__banner-top') className = true;\n}\n","<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive is used, when we want to show call-to-action link in the site-header. Used in harmonised and standardised header\n * variants.\n */\n@Directive({\n selector: '[eclSiteHeaderCta]',\n})\nexport class EclSiteHeaderCtaDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__cta') className = true;\n}\n","import { Directive, HostBinding, Input, ContentChild, forwardRef, AfterContentInit, HostListener, Output, EventEmitter } from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: 'a[eclSiteHeaderCustomActionLink]',\n})\nexport class EclSiteHeaderCustomActionLinkDirective extends ECLBaseDirective implements AfterContentInit {\n @HostBinding('class') className = 'ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary';\n @HostBinding('attr.aria-expanded') isOverlayExpanded : boolean;\n @HostBinding('attr.aria-controls') ariaControls : string;\n @Input() @HostBinding('attr.href') href : string;\n @Input() @HostBinding('attr.routerLink') routerLink : string;\n @Output() customActionOverlayToggle = new EventEmitter<boolean>();\n @ContentChild(forwardRef(() => EclIconComponent), { descendants: true }) eclIconComponent: EclIconComponent;\n private readonly ARIA_CONTROLS = 'custom-action-overlay';\n\n ngAfterContentInit(): void {\n setTimeout(() => {\n if (this.eclIconComponent) {\n this.eclIconComponent.baseDirective.class = this.eclIconComponent.baseDirective.class + ' ecl-site-header__icon';\n }\n if (!this.hasLink()) {\n this.href = '#';\n this.isOverlayExpanded = false;\n this.ariaControls = this.ARIA_CONTROLS;\n }\n });\n }\n\n @HostListener('click', ['$event']) onClick(evt: Event): void {\n if (!this.hasLink()) {\n this.isOverlayExpanded = !this.isOverlayExpanded;\n evt.preventDefault();\n this.customActionOverlayToggle.emit(this.isOverlayExpanded);\n }\n }\n\n hasLink(): boolean {\n return (!!this.href && this.href !== '#') || !!this.routerLink;\n }\n}\n@Directive({\n selector: 'div[eclSiteHeaderCustomActionContent]',\n})\nexport class EclSiteHeaderCustomActionContentDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__custom-action-content') className = true;\n}\n\n@Directive({\n selector: 'div[eclSiteHeaderCustomActionTitle]',\n})\nexport class EclSiteHeaderCustomActionTitleDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-site-header__custom-action-title') className = true;\n @HostBinding('attr.id')\n @Input() id = 'custom-action-overlay-title';\n\n}","import { Component, HostBinding, HostListener, ContentChild, AfterContentInit, OnDestroy } from '@angular/core';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ECLBaseDirective, ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { EclSiteHeaderCustomActionLinkDirective, EclSiteHeaderCustomActionTitleDirective } from './ecl-site-header-custom-action.directive';\nimport { takeUntil, Subject } from 'rxjs';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This components gives opportunity for user to add a custom action. It will appear at first place, before log-in and language\n * and search (if any of these exist). Adds specific styling and functionality. Opens a dropdown with some more content.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[eclSiteHeaderCustomAction]',\n templateUrl: './ecl-site-header-custom-action.component.html',\n imports: [A11yModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON],\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclSiteHeaderCustomActionComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n @HostBinding('class') class = 'ecl-site-header__custom-action';\n @ContentChild(EclSiteHeaderCustomActionTitleDirective) title: EclSiteHeaderCustomActionTitleDirective;\n @ContentChild(EclSiteHeaderCustomActionLinkDirective) eclSiteHeaderCustomActionLink: EclSiteHeaderCustomActionLinkDirective;\n /**\n * Used to expand/collapse the dropdown, if any.\n */\n isOverlayExpanded = false;\n titleId: string;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngAfterContentInit(): void {\n if (this.title) {\n this.titleId = this.title.id;\n }\n\n // Subscribe to link output, which toggles the dropdown.\n if (this.eclSiteHeaderCustomActionLink) {\n this.eclSiteHeaderCustomActionLink.customActionOverlayToggle.pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {\n this.isOverlayExpanded = isExpanded;\n })\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Close the overlay.\n */\n onCustomActionOverlayClose(): void {\n this.isOverlayExpanded = false;\n if (!this.eclSiteHeaderCustomActionLink.hasLink()) this.eclSiteHeaderCustomActionLink.isOverlayExpanded = false;\n }\n\n /**\n * Close the overlay, when clicking outside of it.\n */\n @HostListener('eclClickOutside')\n onClickOutsideHandler(): void {\n this.onCustomActionOverlayClose();\n }\n\n /**\n * Close the overlay with ESC key.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.onCustomActionOverlayClose();\n }\n}\n","<ng-content select=\"[eclSiteHeaderCustomActionLink]\"></ng-content>\n@if (isOverlayExpanded) {\n <div class=\"ecl-site-header__custom-action-overlay\" id=\"custom-action-overlay\" role=\"dialog\" [attr.aria-labelledby]=\"titleId\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div class=\"ecl-site-header__custom-action-header\">\n <ng-content select=\"[eclSiteHeaderCustomActionTitle]\"></ng-content>\n <button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-site-header__custom-action-close\" (click)=\"onCustomActionOverlayClose()\">\n <span eclButtonLabel>Close</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n </div>\n <ng-content select=\"[eclSiteHeaderCustomActionContent]\"></ng-content>\n </div>\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Component, ElementRef, HostBinding, OnDestroy, Renderer2, afterNextRender, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Custom component, that shows the current environment of the application, for example 'develop', 'acceptance', etc.\n * Adds some custom styling, so that the text will appear over the EU/EC logo.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclSiteHeaderEnvironment]',\n template: '<ng-content></ng-content>',\n styles: [\n `\n :host {\n position: absolute;\n width: 100%;\n font-size: 1.3rem;\n padding: 0.3rem;\n opacity: 0.6;\n text-align: center;\n transform: rotate(-10deg);\n }\n @media print {\n :host {\n display: none;\n }\n }\n `,\n ],\n})\nexport class EclSiteHeaderEnvironmentComponent extends ECLBaseDirective implements OnDestroy {\n private el = inject(ElementRef);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private renderer = inject(Renderer2);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses(''), 'ecl-u-type-xl ecl-u-bg-error ecl-u-type-color-white'].join(' ');\n }\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isMobile = false;\n private parentEl: HTMLElement;\n\n constructor() {\n super();\n afterNextRender(() => {\n const el: HTMLElement = this.el.nativeElement;\n this.parentEl = this.renderer.parentNode(el);\n\n if (this.parentEl) {\n this.renderer.setStyle(this.parentEl, 'display', 'flex');\n this.renderer.setStyle(this.parentEl, 'alignItems', 'center');\n this.renderer.setStyle(this.parentEl, 'position', 'relative');\n }\n this.observeBreakpointChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 480px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobile = result.matches;\n if (this.isMobile) {\n this.manageMobile();\n } else {\n this.manageDesktop();\n }\n });\n }\n\n private manageMobile(): void {\n if (this.parentEl) {\n this.renderer.setStyle(this.parentEl, 'display', 'block');\n this.renderer.setStyle(this.el.nativeElement, 'width', 'unset');\n }\n }\n\n private manageDesktop(): void {\n if (this.parentEl) {\n this.renderer.setStyle(this.parentEl, 'display', 'flex');\n this.renderer.setStyle(this.el.nativeElement, 'width', '100%');\n }\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSiteHeaderLoginEvent extends EclBaseEvent {}\n\nexport class EclSiteHeaderLoginBoxToggleEvent extends EclBaseEvent {\n constructor(public isOpen: boolean) {\n super();\n }\n}","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EuiLanguage } from '@eui/core';\n\nexport class EclSiteHeaderLanguageClickEvent extends EclBaseEvent {}\n\nexport class EclSiteHeaderLanguageSelectedEvent extends EclBaseEvent {\n constructor(public language: EuiLanguage) {\n super();\n }\n}\n\nexport class EclSiteHeaderLanguageCloseEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSiteHeaderLogoClickEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclSiteHeaderSearchEvent extends EclBaseEvent {\n constructor(public keyword: string) {\n super();\n }\n}\n\nexport class EclSiteHeaderSearchToggleEvent extends EclBaseEvent {\n constructor(public isOpen: boolean) {\n super();\n }\n}","\nexport class EclAreaChangeEvent {\nprivate readonly _width: number;\nprivate readonly _left: number;\nprivate readonly _right: number;\n\n\tconstructor(width: number, left: number, right: number) {\n\t\tthis._width = width;\n\t\tthis._left = left;\n\t\tthis._right = right;\n\t}\n\n\tget width(): number {\n\t\treturn this._width;\n\t}\n\n\tget left(): number {\n\t\treturn this._left;\n\t}\n\n\tget right(): number {\n\t\treturn this._right;\n\t}\n}","import { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, OnDestroy, Output, ViewChild, afterNextRender, inject } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EuiLanguage } from '@eui/base';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageSelectedEvent } from '../events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * This component is a popover, that appears after the user clicks on language link. It contains all the available languages,\n * configured for the current site. Adds styling and functionality for the dialog.\n * Emits events when language is selected and when dialog is closed.\n */\n@Component({\n selector: 'ecl-site-header-language-popover',\n templateUrl: './ecl-site-header-language-popover.component.html',\n imports: [TranslateModule, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n})\nexport class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective implements OnDestroy {\n el = inject(ElementRef);\n protected eclThemeService = inject(EclThemeService);\n\n /**\n * The div, that wraps all the languages.\n */\n @ViewChild('languageContent') languageContent: ElementRef;\n /**\n * Current language\n */\n @Input() languageCode: string;\n @Input() euLanguages: Array<EuiLanguage> = [];\n @Input() nonEuLanguages: Array<EuiLanguage> = [];\n /**\n * Number of columns for eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() euColumnsCount: number;\n /**\n * Number of columns for non-eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() nonEuColumnsCount: number;\n /**\n * Property to show/hide the dialog.\n */\n @Input() isHidden = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isPushRight = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isPushLeft = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isStack = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() isFull = false;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() @HostBinding('style.right.px') rightPosition: number;\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() @HostBinding('style.left.px') leftPosition: number;\n /**\n * Property to position the arrow of the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n @Input() @HostBinding('style.--ecl-language-arrow-position') languageArrowPosition: string;\n\n @Output() languageClosed = new EventEmitter<EclSiteHeaderLanguageCloseEvent>();\n @Output() languageSelected = new EventEmitter<EclSiteHeaderLanguageSelectedEvent>();\n\n /**\n * The role of the dialog is 'dialog'. Should not be changed.\n */\n @HostBinding('attr.role') role = 'dialog';\n @HostBinding('attr.aria-labelledby') labelledBy = 'ecl-site-header__language-title';\n @HostBinding('style.display')\n get display():string {\n return this.isHidden ? 'none' : 'block';\n }\n\n languageContentMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private scrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n });\n }\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-site-header__language-container'),\n this.isPushRight ? 'ecl-site-header__language-container--push-right' : '',\n this.isPushLeft ? 'ecl-site-header__language-container--push-left' : '',\n this.isFull ? 'ecl-site-header__language-container--full' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @HostBinding('attr.aria-modal')\n get isModal(): boolean | undefined {\n return !this.isHidden || undefined;\n }\n\n @HostBinding('attr.hidden')\n get isDropdownHidden(): boolean | undefined {\n return this.isHidden || undefined;\n }\n\n /**\n * Calculate the height after resize. If the window is too small -> scroll should appear.\n */\n @HostListener('window:resize')\n onWindowResize(): void {\n setTimeout(() => this.setLanguageContentMaxHeight());\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onCloseClick(): void {\n this.languageClosed.next(new EclSiteHeaderLanguageCloseEvent());\n }\n\n onLanguageClick(language: EuiLanguage, evt: MouseEvent): void {\n this.languageCode = language.code;\n this.languageSelected.next(new EclSiteHeaderLanguageSelectedEvent(language));\n\n evt.preventDefault();\n }\n\n /**\n * Set the max-height property of the component. It is calculated depending on the viewport.\n */\n setLanguageContentMaxHeight(): void {\n const viewportHeight = window.innerHeight;\n if (this.languageContent) {\n const listTop = this.languageContent.nativeElement.getBoundingClientRect().top;\n const availableSpace = viewportHeight - listTop;\n if (availableSpace > 0) {\n this.languageContentMaxHeight = availableSpace;\n }\n }\n }\n\n private subscribeToCDKScrollEvent(): void {\n this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(() => {\n this.setLanguageContentMaxHeight();\n });\n });\n }\n}\n","<div class=\"ecl-site-header__language-header\">\n <div class=\"ecl-site-header__language-title\">\n {{ 'ecl.language-list.SELECT-LANGUAGE' | translate }}\n </div>\n <button eclButton variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly class=\"ecl-site-header__language-close\" (click)=\"onCloseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </span>\n </button>\n</div>\n\n<div #languageContent class=\"ecl-site-header__language-content\" [style.max-height.px]=\"languageContentMaxHeight\"\n [class.ecl-site-header__language-content--stack]=\"isStack\">\n @if (euLanguages.length) {\n <div class=\"ecl-site-header__language-category ecl-site-header__language-category--{{ euColumnsCount }}-col\">\n <div class=\"ecl-site-header__language-category-title\">\n {{ 'ecl.language-list.EU-LANGUAGES' | translate }}\n </div>\n <ul class=\"ecl-site-header__language-list\" [attr.translate]=\"'no'\">\n @for (item of euLanguages; track item.code) {\n <li class=\"ecl-site-header__language-item\">\n <a\n eclLink\n href=\"#\"\n variant=\"standalone\"\n [lang]=\"item.code\"\n [hreflang]=\"item.code\"\n class=\"ecl-site-header__language-link\"\n [class.ecl-site-header__language-link--active]=\"item.code === languageCode\"\n (click)=\"onLanguageClick(item, $event)\">\n <span class=\"ecl-site-header__language-link-code\">{{ item.code }}</span>\n <span class=\"ecl-site-header__language-link-label\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n @if (nonEuLanguages.length) {\n <div class=\"ecl-site-header__language-category ecl-site-header__language-category--{{ nonEuColumnsCount }}-col\">\n <div class=\"ecl-site-header__language-category-title\">\n {{ 'ecl.language-list.NON-EU-LANGUAGES' | translate }}\n </div>\n <ul class=\"ecl-site-header__language-list\" [attr.translate]=\"'no'\">\n @for (item of nonEuLanguages; track item.code) {\n <li class=\"ecl-site-header__language-item\">\n <a\n eclLink\n href=\"#\"\n [lang]=\"item.code\"\n [hreflang]=\"item.code\"\n variant=\"standalone\"\n class=\"ecl-site-header__language-link\"\n [class.ecl-site-header__language-link--active]=\"item.code === languageCode\"\n (click)=\"onLanguageClick(item, $event)\">\n <span class=\"ecl-site-header__language-link-code\">{{ item.code }}</span>\n <span class=\"ecl-site-header__language-link-label\">{{ item.label }}</span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</div>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { EclAreaChangeEvent } from '../events/ecl-area-change.event';\n\n/**\n * This class is used for methods, that serve for communication between the components in ecl-side-header.\n */\n@Injectable({ providedIn: 'root' })\nexport class EclAreaDataService {\n\n\tpublic dataSubject$: Observable<EclAreaChangeEvent>;\n\tprivate dataSubject: Subject<EclAreaChangeEvent> = new Subject<EclAreaChangeEvent>();\n\n\tconstructor() {\n\t\tthis.dataSubject$ = this.dataSubject.asObservable();\n\t}\n\n\t/**\n\t * When header is resized, some of it's chidren parameters for positioning on the screen need to be recalculated.\n\t * This event publishes the new site header position, so that the chidren can adjust their position accordingly.\n\t * @param event\n\t */\n\tpublishEvent(event: EclAreaChangeEvent): void {\n\t\tthis.dataSubject.next(event);\n\t}\n}","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n inject,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { UpperCasePipe } from '@angular/common';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EuiEuLanguages, GLOBAL_CONFIG_TOKEN, GlobalConfig, I18nService } from '@eui/core';\nimport { EuiLanguage } from '@eui/base';\nimport { ECLBaseDirective, ECLClickOutsideDirective, EclRtlService, EclThemeService } from '@eui/ecl/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderLanguageClickEvent, EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageSelectedEvent } from '../events';\nimport { EclSiteHeaderLanguagePopoverComponent } from './ecl-site-header-language-popover.component';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * This component is used to switch between the languages of the application. Shows the current language, when clicked,\n * opens a language selector.\n */\n@Component({\n selector: 'ecl-site-header-language',\n templateUrl: './ecl-site-header-language.component.html',\n imports: [A11yModule, TranslateModule, UpperCasePipe, ...EUI_ECL_ICON, EclSiteHeaderLanguagePopoverComponent],\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n outputs: ['eclClickOutside'],\n },\n ],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclSiteHeaderLanguageComponent extends ECLBaseDirective implements OnInit, AfterViewInit, OnDestroy {\n protected eclThemeService = inject(EclThemeService);\n protected config = inject<GlobalConfig>(GLOBAL_CONFIG_TOKEN, { optional: true });\n protected i18nService = inject(I18nService);\n\n /**\n * The language popover, that shows all available languages (configured in the config file of the current site).\n */\n @ViewChild(EclSiteHeaderLanguagePopoverComponent) languagePopover: EclSiteHeaderLanguagePopoverComponent;\n /**\n * The link to open the popover dialog.\n */\n @ViewChild('languageLink', { read: ElementRef }) languageLinkElement: ElementRef<HTMLAnchorElement>;\n\n /**\n * Thie event is emited, when language link, showing the current language is clicked.\n */\n @Output() languageClick = new EventEmitter<EclSiteHeaderLanguageClickEvent>();\n /**\n * Thie event is emited, when user selects a new language from the dropdown.\n */\n @Output() languageSelected = new EventEmitter<EclSiteHeaderLanguageSelectedEvent>();\n\n readonly MOBILE_BREAKPOINT = 768;\n readonly LANGUAGE_MAX_COLUMNS = 8;\n isLanguagesDropdownVisible = false;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isPushRight: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isPushLeft: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isStack: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n isFull: boolean;\n /**\n * This property is used for dropdown positioning on the screen.\n */\n languageArrowPosition: string;\n languageCode = 'en';\n rightPosition: number;\n leftPosition: number;\n /**\n * Array of EU languages, that can be selected for the current site.\n */\n euLanguages: Array<EuiLanguage> = [];\n /**\n * Array of non-EU languages, that can be selected for the current site.\n */\n nonEuLanguages: Array<EuiLanguage> = [];\n euColumnsCount = 1;\n nonEuColumnsCount = 1;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private _languages: Array<EuiLanguage> = [];\n private parentHeaderWidth: number;\n private isRtl = false;\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-site-header__language')].join(' ').trim();\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n /**\n * After view is initialized -> calculate popover position and initialize languages, that are configured in the config file\n * of the current site.\n */\n ngAfterViewInit(): void {\n this.eclAreaDataService.dataSubject$.pipe(takeUntil(this.destroy$)).subscribe(\n parentHeaderRect => {\n this.calculatePopoverPosition(parentHeaderRect.right, parentHeaderRect.left);\n });\n this.handleInitialConfiguredLanguages();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n getLanguageLabel(): string {\n return `${EuiEuLanguages.getLanguageByCode(this.languageCode)?.label} - ${this.languageCode.toUpperCase()}`;\n }\n\n /**\n * Toggle the language dropdown when clicking the link, showing the current language.\n * @param evt\n */\n onLanguageClick(evt: Event): void {\n this.isLanguagesDropdownVisible = !this.isLanguagesDropdownVisible;\n if( !this.isLanguagesDropdownVisible ) {\n setTimeout(() => {\n this.isFull = false;\n this.isStack = false;\n this.isPushRight = false;\n this.rightPosition = undefined;\n this.leftPosition = undefined;\n this.languageArrowPosition = undefined;\n });\n }\n\n // If the dropdown is visible, we set the max-height of the dropdown, so that it can be scrolled.\n if (this.isLanguagesDropdownVisible) {\n setTimeout(() => this.languagePopover.setLanguageContentMaxHeight());\n }\n this.languageClick.next(new EclSiteHeaderLanguageClickEvent());\n\n evt.preventDefault();\n }\n\n onLanguageClosed(evt: EclSiteHeaderLanguageCloseEvent): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n onLanguageSelected(evt: EclSiteHeaderLanguageSelectedEvent): void {\n this.languageCode = evt.language.code;\n this.updateCurrentLanguage(evt.language.code);\n this.isLanguagesDropdownVisible = false;\n this.languageSelected.next(new EclSiteHeaderLanguageSelectedEvent(evt.language));\n }\n\n /**\n * Close the dropdown, when clicking outside of the component.\n */\n @HostListener('eclClickOutside')\n onClickOutside(): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n /**\n * Close the dropdown, when pressing ESC key.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n public hasLanguageCodes(): boolean {\n return this._languages && this._languages.length > 0;\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Calculate the number of columns for EU and non-EU languages, depending on languages' count.\n */\n private updateLanguages(): void {\n\n this.euLanguages = this._languages.filter((item) => EuiEuLanguages.isEuLanguage(item.code));\n\n this.nonEuLanguages = this._languages.filter((item) => !EuiEuLanguages.isEuLanguage(item.code));\n\n this.euColumnsCount = Math.ceil(this.euLanguages.length / this.LANGUAGE_MAX_COLUMNS);\n\n this.nonEuColumnsCount = Math.ceil(this.nonEuLanguages.length / this.LANGUAGE_MAX_COLUMNS);\n }\n\n private calculatePopoverPosition( parentHeaderRight: number, parentHeaderLeft: number): void {\n setTimeout(() => {\n if (this.hasLanguageCodes()) {\n const arrowSize = '0.5rem';\n const linkRect = this.languageLinkElement.nativeElement.getBoundingClientRect();\n const popoverRect = this.languagePopover?.el.nativeElement.getBoundingClientRect();\n const screenWidth = window.innerWidth;\n const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);\n\n this.isFull = false;\n this.isStack = false;\n this.isPushRight = false;\n this.isPushLeft = false;\n this.rightPosition = undefined;\n this.leftPosition = undefined;\n this.languageArrowPosition = undefined;\n\n if (popoverRect?.width > this.parentHeaderWidth) {\n this.isStack = true;\n if (this.nonEuLanguages.length) {\n this.nonEuColumnsCount = Math.max(this.euColumnsCount, this.nonEuColumnsCount);\n }\n }\n if (this.isRtl && popoverRect?.left < 0) {\n const arrowPosition = linkRect.right - parentHeaderLeft - linkRect.width / 2;\n this.isPushLeft = true;\n this.leftPosition = -linkRect.left + parentHeaderLeft;\n this.languageArrowPosition = `${arrowPosition}px`;\n } else if (!this.isRtl && popoverRect?.right > screenWidth) {\n const arrowPosition = parentHeaderRight - linkRect.right + linkRect.width / 2;\n\n this.isPushRight = true;\n this.rightPosition = -parentHeaderRight + linkRect.right;\n this.languageArrowPosition = `calc(${arrowPosition}px - ${arrowSize})`;\n }\n\n if (vw < this.MOBILE_BREAKPOINT) {\n const arrowPosition = popoverRect?.right - linkRect.right + linkRect.width / 2;\n\n this.isFull = true;\n this.languageArrowPosition = `calc(${arrowPosition}px - ${arrowSize})`;\n }\n }\n });\n }\n\n private getConfiguredLanguages(): void {\n const languages: string[] = this.config?.i18n?.i18nService?.languages.map(lang => {\n return (typeof lang !== 'string') ? (lang as EuiLanguage).code : lang\n }) || [];\n this._languages = EuiEuLanguages.getAllLanguagesByCodes(languages);\n\n if (this.config?.i18n?.i18nService?.defaultLanguage) {\n this.languageCode = this.config?.i18n?.i18nService?.defaultLanguage;\n } else {\n if (this._languages && this._languages.length > 0) {\n this.languageCode = this._languages[0].code;\n }\n }\n }\n\n private updateCurrentLanguage(lang: string): void {\n this.i18nService.updateState({\n activeLang: lang,\n });\n }\n\n private handleInitialConfiguredLanguages(): void {\n setTimeout(() => {\n if (this._languages === undefined || this._languages.length === 0) {\n this.getConfiguredLanguages();\n }\n this.updateLanguages();\n });\n }\n}\n","<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__language-selector\"\n aria-controls=\"language-list-overlay\"\n role=\"button\"\n [attr.aria-label]=\"'ecl.language-list.SELECT-LANGUAGE-EXT' | translate: { currentLang: getLanguageLabel() }\"\n [attr.aria-expanded]=\"isLanguagesDropdownVisible\"\n (click)=\"onLanguageClick($event)\"\n (keydown.space)=\"onLanguageClick($event)\">\n <span class=\"ecl-site-header__language-icon\">\n <ecl-icon icon=\"global\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n </span>\n {{ languageCode | uppercase }}\n</a>\n@if(hasLanguageCodes() && isLanguagesDropdownVisible) {\n<ecl-site-header-language-popover\n #languagePopover\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n id=\"language-list-overlay\"\n [languageCode]=\"languageCode\"\n [euLanguages]=\"euLanguages\"\n [nonEuLanguages]=\"nonEuLanguages\"\n [euColumnsCount]=\"euColumnsCount\"\n [nonEuColumnsCount]=\"nonEuColumnsCount\"\n [isStack]=\"isStack\"\n [isPushRight]=\"isPushRight\"\n [isPushLeft] = \"isPushLeft\"\n [isFull]=\"isFull\"\n [rightPosition]=\"rightPosition\"\n [leftPosition]=\"leftPosition\"\n [languageArrowPosition]=\"languageArrowPosition\"\n (languageSelected)=\"onLanguageSelected($event)\"\n (languageClosed)=\"onLanguageClosed($event)\">\n</ecl-site-header-language-popover>\n}","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnChanges, OnDestroy, Output, SimpleChanges, ViewChild, afterNextRender, booleanAttribute, inject } from '@angular/core';\nimport { Subject, debounceTime, takeUntil } from 'rxjs';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ECLBaseDirective, ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EclSiteHeaderLoginBoxToggleEvent, EclSiteHeaderLoginEvent } from '../events';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/**\n * Component for login/logout as part of the harmonised site header. Emits events when user logs in and when user opens the\n * login dropdown.\n */\n@Component({\n selector: 'ecl-site-header-login',\n templateUrl: './ecl-site-header-login.component.html',\n imports: [TranslateModule, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n {\n directive: ECLClickOutsideDirective,\n // eslint-disable-next-line @angular-eslint/no-outputs-metadata-property\n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclSiteHeaderLoginComponent extends ECLBaseDirective implements OnChanges, OnDestroy {\n @Input({ transform: booleanAttribute }) isLoggedIn = false;\n @HostBinding('class') class = 'ecl-site-header__login-container';\n\n @ViewChild('loginLink', { read: ElementRef }) loginLinkElement: ElementRef<HTMLAnchorElement>;\n\n @Output() login = new EventEmitter<EclSiteHeaderLoginEvent>();\n @Output() loginBoxToggle = new EventEmitter<EclSiteHeaderLoginBoxToggleEvent>();\n\n /**\n * If login popover is open (true) or closed (false).\n */\n public isLoginBoxActive = false;\n /**\n * The position of the arrow of the popover.\n */\n public loginArrowPosition: string;\n readonly TABLET_BREAKPOINT = 996;\n private parentHeaderRight: number | undefined;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.handleRtlChangeState();\n this.handleSiteHeaderAreaChangeEvent();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const isLoggedInChange = changes.isLoggedIn;\n if (isLoggedInChange && isLoggedInChange.previousValue === true) {\n this.isLoginBoxActive = false;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Close the login popover on click outside.\n */\n @HostListener('eclClickOutside')\n onClickOutsideMegaMenu(): void {\n this.onLoginBoxClose();\n }\n\n /**\n * @returns classes for the login popover.\n */\n getLoginBoxCssClasses(): string {\n return ['ecl-site-header__login-box', this.isLoginBoxActive ? 'ecl-site-header__login-box--active' : ''].join(' ');\n }\n\n onLoginClick(evt: MouseEvent): void {\n const event = new EclSiteHeaderLoginEvent();\n this.login.next(event);\n evt.preventDefault();\n }\n\n onLoginBoxToggle(evt: MouseEvent): void {\n this.isLoginBoxActive = !this.isLoginBoxActive;\n const event = new EclSiteHeaderLoginBoxToggleEvent(this.isLoginBoxActive);\n this.loginBoxToggle.next(event);\n evt.preventDefault();\n }\n\n private onLoginBoxClose(): void {\n if (this.isLoginBoxActive) {\n this.isLoginBoxActive = false;\n const event = new EclSiteHeaderLoginBoxToggleEvent(this.isLoginBoxActive);\n this.loginBoxToggle.next(event);\n }\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => {\n this.calculateLoginArrowPosition(this.parentHeaderRight);\n });\n }\n\n /**\n * On resize -> calculate the popover arrow position, using parent element ecl-header html parameters.\n */\n private handleSiteHeaderAreaChangeEvent(): void {\n this.eclAreaDataService.dataSubject$.pipe(takeUntil(this.destroy$)).subscribe(\n parentHeaderRect => {\n this.parentHeaderRight = parentHeaderRect.right;\n this.calculateLoginArrowPosition(this.parentHeaderRight);\n });\n }\n\n private calculateLoginArrowPosition(parentHeaderRight: number | undefined): void {\n\n const vw = document.documentElement.clientWidth;\n const arrowSize = '0.5rem';\n const loginLink = this.loginLinkElement?.nativeElement.getBoundingClientRect();\n const arrowPosition = parentHeaderRight - loginLink?.right + loginLink?.width /2;\n if (parentHeaderRight === undefined) {\n return;\n }\n if (this.isLoginBoxActive && vw < this.TABLET_BREAKPOINT) {\n this.loginArrowPosition = `calc(${arrowPosition}px + ${arrowSize})`;\n } else if (this.isLoginBoxActive ) {\n this.loginArrowPosition = null;\n }\n }\n}\n","@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__login-toggle\"\n aria-controls=\"login-box-id\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginBoxToggle($event)\">\n <ecl-icon icon=\"logged-in\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGGED-IN' | translate }}\n </a>\n <div\n id=\"login-box-id\"\n [style]=\"{'--ecl-login-arrow-position': loginArrowPosition}\"\n class=\"{{ getLoginBoxCssClasses() }}\">\n <ng-content></ng-content>\n </div>\n} @else {\n <a\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-button--neutral ecl-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive is used to add specific class for the login description element, within the login dropdown.\n */\n@Directive({\n selector: '[eclSiteHeaderLoginDescription]',\n})\nexport class EclSiteHeaderLoginDescriptionDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-site-header__login-description';\n}\n\n/**\n * This directive is used to add specific class for the horizontal line, that separates\n * description from the 'Logout' link.\n */\n@Directive({\n selector: '[eclSiteHeaderLoginSeparator]',\n})\nexport class EclSiteHeaderLoginSeparatorDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-site-header__login-separator';\n}\n","import { Component, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This component is used as a wrapper around ecl-notification component, when used in the site-header. Adds specific class\n * and methods to show/hide the notification.\n */\n@Component({\n selector: 'ecl-site-header-notification',\n templateUrl: 'ecl-site-header-notification.component.html',\n})\nexport class EclSiteHeaderNotificationComponent extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-site-header__notification')].join(' ').trim();\n }\n @HostBinding('style.display') protected display = '';\n\n onHide(): void {\n this.display = 'none';\n }\n\n onShow(): void {\n this.display = '';\n }\n}\n","<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Adds some specific classes for picture element, when used in the site header logo.\n */\n@Directive({\n selector: '[eclSiteHeaderPicture]',\n})\nexport class EclSiteHeaderPictureDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-site-header__picture ecl-picture';\n}\n\n/**\n * Adds some specific classes for <img> element, when used in the site header logo.\n */\n@Directive({\n selector: '[eclSiteHeaderImage]',\n})\nexport class EclSiteHeaderImageDirective extends ECLBaseDirective {\n logoSize: string;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-site-header__logo-image'),\n `ecl-site-header__logo-image--${this.logoSize}`,\n ].join(' ').trim();\n }\n}\n\n/**\n * Adds some specific classes for <a> element, when used in the site header logo.\n */\n@Directive({\n selector: '[eclSiteHeaderLink]',\n})\nexport class EclSiteHeaderLinkDirective extends ECLBaseDirective {\n @HostBinding('class') className = 'ecl-link ecl-link--standalone ecl-site-header__logo-link';\n}\n","import { afterNextRender, Component, ElementRef, EventEmitter, forwardRef, HostBinding, Input, OnDestroy, Output, Provider, ViewChild, inject } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { debounceTime, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EclSearchFormEvent, EUI_ECL_SEARCH_FORM } from '@eui/ecl/components/ecl-search-form';\nimport { EclSiteHeaderSearchEvent, EclSiteHeaderSearchToggleEvent } from '../events';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport const ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclSiteHeaderSearchComponent),\n multi: true,\n};\n\nconst noop = (): void => {\n /** empty*/\n};\n\n/**\n * This component builds the search box in the ecl-site-header component. Adds specific style and functionality, emits\n * events on search and search toggle.\n */\n@Component({\n selector: 'ecl-site-header-search',\n templateUrl: './ecl-site-header-search.component.html',\n imports: [FormsModule, TranslateModule, ...EUI_ECL_SEARCH_FORM, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR],\n})\nexport class EclSiteHeaderSearchComponent extends ECLBaseDirective implements ControlValueAccessor, OnDestroy {\n @HostBinding('class') class = 'ecl-site-header__search-container';\n /**\n * The default role of the component is 'search', should not be changed.\n */\n @HostBinding('attr.role') role = 'search';\n\n @Input() searchInputText: string;\n @Input() searchInputPlaceholder: string;\n @Input() searchButtonLabel: string;\n\n /**\n * The search link element from the view, i.e. the search button.\n */\n @ViewChild('searchLink', { read: ElementRef }) searchLinkElement: ElementRef<HTMLAnchorElement>;\n\n @Output() searchEvent = new EventEmitter<EclSiteHeaderSearchEvent>();\n @Output() searchToggle = new EventEmitter<EclSiteHeaderSearchToggleEvent>();\n\n /**\n * The arrow position of the serahc dropdown, when in mobile mode.\n */\n public searchArrowPosition: string;\n public isSearchBoxActive = false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onTouched: (_: any) => void = noop;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private parentHeaderRight: number | undefined;\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.handleRtlChangeState();\n this.handleSiteHeaderAreaChangeEvent();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n onSearch(evt: EclSearchFormEvent): boolean {\n this.searchEvent.next(new EclSiteHeaderSearchEvent(evt.keyword));\n this.onChange(evt.keyword);\n return false;\n }\n\n onSearchBoxToggle(evt: MouseEvent): void {\n this.isSearchBoxActive = !this.isSearchBoxActive;\n const event = new EclSiteHeaderSearchToggleEvent(this.isSearchBoxActive);\n this.searchToggle.next(event);\n evt.preventDefault();\n }\n\n /**\n *\n * @returns The classes for the ecl search form.\n */\n getSearchBoxCssClasses(): string {\n return ['ecl-site-header__search', this.isSearchBoxActive ? 'ecl-site-header__search--active' : ''].join(' ');\n }\n\n onModelChange(newValue: string): void {\n this.searchInputText = newValue;\n this.onChange(newValue);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n writeValue(value: any): void {\n this.searchInputText = value;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => {\n this.calculateSearchFormArrowPosition(this.parentHeaderRight);\n });\n }\n\n private handleSiteHeaderAreaChangeEvent(): void {\n this.eclAreaDataService.dataSubject$.pipe(takeUntil(this.destroy$)).subscribe(\n parentHeaderRect => {\n this.parentHeaderRight = parentHeaderRect.right;\n this.calculateSearchFormArrowPosition(this.parentHeaderRight);\n });\n }\n\n private calculateSearchFormArrowPosition(parentHeaderRight: number | undefined): void {\n const searchLink = this.searchLinkElement.nativeElement.getBoundingClientRect();\n const viewportWidth = document.documentElement.clientWidth;\n const arrowPosition = viewportWidth - searchLink.right + searchLink.width / 2;\n const arrowSize = '0.5rem';\n if (this.isSearchBoxActive || parentHeaderRight !== undefined) {\n this.searchArrowPosition = `calc(${arrowPosition}px + ${arrowSize})`;\n }\n }\n}\n","<a\n #searchLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__search-toggle\"\n data-ecl-search-toggle=\"true\"\n aria-controls=\"search-form-id\"\n [attr.aria-expanded]=\"isSearchBoxActive\"\n (click)=\"onSearchBoxToggle($event)\">\n <ecl-icon icon=\"search\" size=\"m\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.common.SEARCH' | translate }}\n</a>\n\n<ecl-search-form\n [style]=\"{'--ecl-search-arrow-position': searchArrowPosition}\"\n (searchEvent)=\"onSearch($event)\"\n [placeholder]=\"searchInputPlaceholder\"\n (ngModelChange)=\"onModelChange($event)\"\n [(ngModel)]=\"searchInputText\"\n [searchButtonLabel]=\"searchButtonLabel\"\n [class]=\"getSearchBoxCssClasses()\">\n</ecl-search-form>\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AsyncPipe } from '@angular/common';\nimport { AfterContentInit, Component, ContentChild, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, Output, ViewChild, afterNextRender, booleanAttribute, forwardRef, inject } from '@angular/core';\nimport { I18nService } from '@eui/core';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { EclMegaMenuComponent } from '@eui/ecl/components/ecl-mega-menu';\nimport { EclMenuComponent } from '@eui/ecl/components/ecl-menu';\nimport { ECLBaseDirective, EclRtlService, EclThemeService, logoLanguageCode } from '@eui/ecl/core';\nimport { EclHeaderMenuComunicationService } from '@eui/ecl/shared';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderLanguageClickEvent, EclSiteHeaderLogoClickEvent } from './events';\nimport { EclAreaChangeEvent } from './events/ecl-area-change.event';\nimport { EclSiteHeaderLanguageComponent } from './language';\nimport { EclSiteHeaderLoginComponent } from './login';\nimport { EclSiteHeaderNotificationComponent } from './notification';\nimport { EclSiteHeaderImageDirective, EclSiteHeaderLinkDirective, EclSiteHeaderPictureDirective } from './picture';\nimport { EclSiteHeaderSearchComponent } from './search';\nimport { EclAreaDataService } from './services/ecl-area-data.service';\n\n/**\n * The Site header offers easily recognisable elements (such as the logo) and the most essential functionality of\n * every site (such as Language switcher or Search form). Additionally it can host the name of the site,\n * the class name to which it belongs and the main navigation. The header is always placed at the top of the page.\n * The elements required in the site header are different depending wether it is the corporate, standardised or an harmonised website.\n */\n@Component({\n selector: 'ecl-site-header',\n templateUrl: './ecl-site-header.component.html',\n imports: [AsyncPipe, TranslateModule, ...EUI_ECL_LINK, EclSiteHeaderPictureDirective],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclSiteHeaderComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n eclThemeService = inject(EclThemeService);\n protected i18nService = inject(I18nService);\n\n /**\n * The name of the site, to be added in the header, next to the logo.\n */\n @Input() siteName: string;\n /**\n * Language code of the current language of the site.\n */\n @Input() languageCode = 'en';\n /**\n * The size of the logo, 's', 'm' or 'l', default to 'm'.\n */\n @Input() logoSize: 's' | 'm' | 'l' = 'm';\n\n /**\n * Determines if the site name should be displayed only on mobile devices.\n */\n @Input({ transform: booleanAttribute }) isSiteNameMobileOnly = false;\n\n /**\n * Adds specific classes to the main element. Depending , logo size, menu and menu status, rtl status.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-site-header'),\n `ecl-site-header-with-logo-${this.logoSize}`,\n this.eclMenuComponent ? 'ecl-site-header--has-menu' : '',\n this.eclMegaMenuComponent ? 'ecl-site-header--has-mega-menu' : '',\n this.isEclMegaMenuOpen ? 'ecl-site-header--open-menu' : '',\n this.isEclMegaMenuStart ? 'ecl-site-header--open-menu-start' : '',\n this.isRtl ? 'ecl-site-header--rtl' : '',\n ].join(' ').trim();\n }\n\n @Output() logoClick = new EventEmitter<EclSiteHeaderLogoClickEvent>();\n @Output() languageClick = new EventEmitter<EclSiteHeaderLanguageClickEvent>();\n\n @ViewChild('topContainer') topContainerElement: ElementRef;\n @ViewChild('siteHeaderHeader') siteHeaderHeader: ElementRef;\n @ViewChild('bannerHeader') bannerHeader: ElementRef;\n @ContentChild(EclSiteHeaderLoginComponent) eclLoginComponent: EclSiteHeaderLoginComponent;\n @ContentChild(EclMenuComponent) eclMenuComponent: EclMenuComponent;\n @ContentChild(EclMegaMenuComponent) eclMegaMenuComponent: EclMegaMenuComponent;\n @ContentChild(EclSiteHeaderSearchComponent) eclSearchComponent: EclSiteHeaderSearchComponent;\n @ContentChild(EclSiteHeaderLanguageComponent) eclLanguageComponent: EclSiteHeaderLanguageComponent;\n @ContentChild(EclSiteHeaderNotificationComponent) eclNotificationComponent: EclSiteHeaderNotificationComponent;\n @ContentChild(forwardRef(() => EclSiteHeaderLinkDirective), { descendants: true }) eclHeaderLink: EclSiteHeaderLinkDirective;\n @ContentChild(forwardRef(() => EclSiteHeaderImageDirective), { descendants: true }) eclHeaderImage: EclSiteHeaderImageDirective;\n\n protected destroy$: Subject<boolean> = new Subject<boolean>();\n private isEclMegaMenuOpen = false;\n private isEclMegaMenuStart = false;\n private isMobileBreakpoint = false;\n private isRtl = false;\n private readonly TIMEOUT_INTERVAL = 100;\n private eclRtlService = inject(EclRtlService);\n private eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);\n private eclAreaDataService = inject(EclAreaDataService);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private el = inject(ElementRef);\n\n constructor() {\n super();\n\n afterNextRender(() => {\n this.observeBreakpointChanges();\n this.subscribeToMegaMenuEvents();\n // Observe size changes of the component, for some child components size need to be also adjusted accordingly.\n new ResizeObserver(() => {\n setTimeout(() => {\n this.sendResizeEventToChildComponents();\n }, this.TIMEOUT_INTERVAL)\n }).observe(this.topContainerElement.nativeElement)\n });\n }\n\n /**\n * Subscibe to some child components' events.\n */\n ngAfterContentInit(): void {\n this.handleRtlChangeState();\n this.handleLanguageChangeState();\n if (this.eclHeaderImage) {\n this.eclHeaderImage.logoSize = this.logoSize;\n }\n\n if (this.eclLoginComponent && this.eclSearchComponent) {\n this.eclLoginComponent.loginBoxToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclSearchComponent.isSearchBoxActive = false;\n\t this.sendResizeEventToChildComponents();\n });\n\n this.eclSearchComponent.searchToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclLoginComponent.isLoginBoxActive = false;\n\t this.sendResizeEventToChildComponents();\n });\n }\n\n if (this.eclLanguageComponent) {\n this.eclLanguageComponent.languageClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageClick.next(new EclSiteHeaderLanguageClickEvent());\n\t this.sendResizeEventToChildComponents();\n });\n\n this.eclLanguageComponent.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageCode = evt.language?.code;\n });\n }\n\n if (this.eclLanguageComponent) {\n this.languageCode = this.eclLanguageComponent?.languageCode;\n }\n\n if (this.eclMenuComponent) {\n this.eclMenuComponent.openHamburgerMenu.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.positionMenu();\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * This method is used, when current language is not present for our available logo collection.\n * In this case, a default logo is returned.\n */\n get partOfLogoName(): string {\n return logoLanguageCode(this.languageCode);\n }\n\n onECLogoClick(evt: MouseEvent): void {\n const event = new EclSiteHeaderLogoClickEvent();\n this.logoClick.next(event);\n if (event.defaultPrevented) {\n evt.preventDefault();\n }\n }\n\n hasCustomLink(): boolean {\n return !!this.eclHeaderLink;\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Some child components need position and size to be set according to the parent site-header. So we share some site-header's measurements\n * via the 'eclAreaDataService'.\n */\n private sendResizeEventToChildComponents(): void {\n if (this.topContainerElement.nativeElement.getBoundingClientRect().width !== undefined) {\n const topContainerRect = this.topContainerElement.nativeElement.getBoundingClientRect();\n const siteHeaderAreaChangeEvent = new EclAreaChangeEvent(\n topContainerRect.width,\n topContainerRect.left,\n topContainerRect.right);\n\n this.eclAreaDataService.publishEvent(siteHeaderAreaChangeEvent);\n }\n }\n\n private subscribeToMegaMenuEvents(): void {\n this.eclHeaderMenuComunicationService.isMobileObjectOpen$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n if (this.isMobileBreakpoint) {\n this.isEclMegaMenuStart = isExpanded;\n this.isEclMegaMenuOpen = isExpanded;\n }\n if (isExpanded) {\n const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n });\n\n this.eclHeaderMenuComunicationService.isObjectExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {\n if (this.isMobileBreakpoint) {\n if (isExpanded) {\n this.onMegaMenuItemExpandMobile();\n } else {\n this.onMegaMenuItemCollapseMobile();\n }\n } else {\n this.isEclMegaMenuOpen = isExpanded;\n if (isExpanded) {\n const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n }\n });\n }\n\n private onMegaMenuItemExpandMobile(): void {\n this.isEclMegaMenuStart = false;\n if (this.eclNotificationComponent) {\n this.eclNotificationComponent.onHide();\n }\n if (this.bannerHeader) {\n this.bannerHeader.nativeElement.style.display = 'none';\n }\n const bottomSpaceY = this.siteHeaderHeader.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n\n private onMegaMenuItemCollapseMobile(): void {\n this.isEclMegaMenuStart = true;\n if (this.eclNotificationComponent) {\n this.eclNotificationComponent.onShow();\n }\n if (this.bannerHeader) {\n this.bannerHeader.nativeElement.style.display = '';\n }\n const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;\n this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe(['(max-width: 996px)'])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n\n private positionMenu(): void {\n const bottomSpaceY = this.siteHeaderHeader.nativeElement.getBoundingClientRect().bottom;\n this.eclMenuComponent.positionMenuOverlay(bottomSpaceY);\n }\n\n private handleLanguageChangeState(): void {\n this.i18nService.getState().pipe(takeUntil(this.destroy$)).subscribe((lang) => {\n this.languageCode = lang.activeLang;\n if (this.eclLanguageComponent) {\n this.eclLanguageComponent.languageCode = lang.activeLang;\n }\n });\n }\n}\n","<div class=\"ecl-site-header__background\">\n <div class=\"ecl-site-header__header\" #siteHeaderHeader>\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n @if(hasCustomLink()) {\n <ng-content select=\"[eclSiteHeaderLink]\"></ng-content>\n } @else {\n <a eclLink variant=\"standalone\" class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <ng-content select=\"[eclSiteHeaderEnvironment]\" media=\"(min-width: 1140px)\"></ng-content>\n\n @if (eclThemeService.isEC$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <source\n srcset=\"./assets/images/ecl/ec/logo/positive/logo-ec--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 415px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/ec/logo/logo-ec--mute.svg\"\n [attr.alt]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" />\n </picture>\n }\n @if (eclThemeService.isEU$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 415px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n alt=\"European Union\" />\n </picture>\n }\n </a>\n }\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n </div>\n <ng-content select=\"ecl-site-header-notification\"></ng-content>\n</div>\n\n\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n@if (siteName) {\n <div class=\"ecl-site-header__banner\" #bannerHeader [class.ecl-site-header__site-name--mobile-only]=\"isSiteNameMobileOnly\">\n <div class=\"ecl-container\">\n <div class=\"ecl-site-header__site-name\">{{ siteName }}</div>\n <ng-content select=\"[eclSiteHeaderCta]\"></ng-content>\n </div>\n </div>\n}\n\n<ng-content select=\"ecl-menu\"></ng-content>\n<ng-content select=\"[eclMegaMenu]\"></ng-content>\n","import { EclSiteHeaderActionComponent } from './action';\nimport { EclSiteHeaderBannerTopComponent } from './banner-top';\nimport { EclSiteHeaderCtaDirective } from './cta';\nimport { EclSiteHeaderCustomActionComponent } from './custom-action';\nimport { EclSiteHeaderCustomActionContentDirective, EclSiteHeaderCustomActionLinkDirective, EclSiteHeaderCustomActionTitleDirective } from './custom-action/ecl-site-header-custom-action.directive';\nimport { EclSiteHeaderEnvironmentComponent } from './ecl-site-header-environment';\nimport { EclSiteHeaderComponent } from './ecl-site-header.component';\nimport { EclSiteHeaderLanguageComponent, EclSiteHeaderLanguagePopoverComponent } from './language';\nimport {\n EclSiteHeaderLoginComponent,\n EclSiteHeaderLoginDescriptionDirective,\n EclSiteHeaderLoginSeparatorDirective,\n} from './login';\nimport { EclSiteHeaderNotificationComponent } from './notification';\nimport { EclSiteHeaderImageDirective, EclSiteHeaderLinkDirective, EclSiteHeaderPictureDirective } from './picture';\nimport { EclSiteHeaderSearchComponent } from './search';\n\nexport * from './ecl-site-header.component';\nexport * from './action/index';\nexport * from './banner-top/index';\nexport * from './language/index';\nexport * from './login/index';\nexport * from './search/index';\nexport * from './cta/index';\nexport * from './notification/index';\nexport * from './ecl-site-header-environment/index';\nexport * from './picture/index';\nexport * from './events/index';\nexport * from './custom-action/index';\n\nexport const EUI_ECL_SITE_HEADER = [\n EclSiteHeaderComponent,\n EclSiteHeaderActionComponent,\n EclSiteHeaderCustomActionComponent,\n EclSiteHeaderCustomActionContentDirective,\n EclSiteHeaderCustomActionLinkDirective,\n EclSiteHeaderCustomActionTitleDirective,\n EclSiteHeaderLoginComponent,\n EclSiteHeaderLoginDescriptionDirective,\n EclSiteHeaderLoginSeparatorDirective,\n EclSiteHeaderLanguageComponent,\n EclSiteHeaderLanguagePopoverComponent,\n EclSiteHeaderSearchComponent,\n EclSiteHeaderBannerTopComponent,\n EclSiteHeaderEnvironmentComponent,\n EclSiteHeaderNotificationComponent,\n EclSiteHeaderCtaDirective,\n EclSiteHeaderImageDirective,\n EclSiteHeaderPictureDirective,\n EclSiteHeaderLinkDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","takeUntil","i1","i2","i3"],"mappings":"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"}