@eui/ecl 22.0.0-alpha.2 → 22.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/changelog.html +618 -0
- package/docs/components/EclDateBlockComponent.html +0 -9
- package/docs/components/EclDescriptionListDefinitionComponent.html +6 -44
- package/docs/components/EclIconComponent.html +1 -1
- package/docs/components/EclListIllustrationComponent.html +0 -171
- package/docs/components/EclListIllustrationItemComponent.html +77 -83
- package/docs/components/EclLoadingIndicatorComponent.html +4 -91
- package/docs/components/EclMegaMenuComponent.html +5 -203
- package/docs/components/EclMegaMenuFeaturedComponent.html +10 -126
- package/docs/components/EclMegaMenuInfoComponent.html +0 -91
- package/docs/components/EclMegaMenuItemComponent.html +38 -115
- package/docs/components/EclMegaMenuSubitemComponent.html +4 -68
- package/docs/components/EclMenuItemComponent.html +46 -0
- package/docs/components/EclModalBodyComponent.html +4 -45
- package/docs/components/EclModalComponent.html +5 -178
- package/docs/components/EclModalFooterComponent.html +4 -45
- package/docs/components/EclModalHeaderComponent.html +9 -76
- package/docs/components/EclSiteFooterRowCommonComponent.html +1 -1
- package/docs/components/EclSiteHeaderLanguageComponent.html +5 -627
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +99 -440
- package/docs/components/EclSiteHeaderLoginComponent.html +9 -453
- package/docs/components/EclSiteHeaderSearchComponent.html +18 -470
- package/docs/components/EclSocialMediaFollowComponent.html +28 -39
- package/docs/components/EclSocialMediaFollowItemComponent.html +26 -129
- package/docs/components/EclStoryCardComponent.html +1 -1
- package/docs/directives/ECLClickOutsideDirective.html +3 -0
- package/docs/directives/EclDescriptionListDefinitionItemDirective.html +6 -47
- package/docs/directives/EclDescriptionListDefinitionListDirective.html +0 -116
- package/docs/directives/EclDividerDirective.html +0 -116
- package/docs/directives/EclFileUploadDirective.html +2 -390
- package/docs/directives/EclLabelDirective.html +0 -46
- package/docs/directives/EclLinkDirective.html +0 -39
- package/docs/directives/EclLoadingIndicatorLabelDirective.html +0 -61
- package/docs/directives/EclLoadingIndicatorOverlayDirective.html +0 -45
- package/docs/directives/EclMediaContainerCaptionDirective.html +0 -39
- package/docs/directives/EclMediaContainerCreditDirective.html +0 -39
- package/docs/directives/EclMediaContainerIframeDirective.html +13 -19
- package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +0 -39
- package/docs/directives/EclMediaContainerItemDirective.html +0 -39
- package/docs/directives/EclMediaContainerPictureDirective.html +0 -39
- package/docs/directives/EclMegaMenuContainerDirective.html +0 -104
- package/docs/directives/EclMegaMenuFeaturedImageDirective.html +0 -104
- package/docs/directives/EclMegaMenuFeaturedListDirective.html +0 -104
- package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +0 -104
- package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +0 -104
- package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +0 -39
- package/docs/directives/EclMegaMenuListDirective.html +0 -104
- package/docs/directives/EclMegaMenuSpacerDirective.html +0 -104
- package/docs/directives/EclMegaMenuSublistDirective.html +0 -165
- package/docs/directives/EclModalBodyFixedContentDirective.html +0 -61
- package/docs/directives/EclModalCloseDirective.html +1 -90
- package/docs/directives/EclModalTriggerDirective.html +1 -90
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclIconComponent.md +1 -1
- package/docs/json/EclMediaContainerIframeDirective.md +0 -1
- package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
- package/docs/json/EclSiteHeaderSearchComponent.md +1 -0
- package/docs/json/EclSocialMediaFollowComponent.md +1 -0
- package/docs/json/documentation.json +1261 -2880
- package/docs/llms.txt +31 -84
- package/docs/miscellaneous/variables.html +222 -41
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -13
- package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +13 -27
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +55 -9
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -6
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-link.mjs +10 -13
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -30
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs +44 -41
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +17 -20
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs +36 -33
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +100 -159
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +16 -3
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs +94 -88
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +326 -261
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +17 -17
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-story-card.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-divider.d.ts +0 -4
- package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +25 -0
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-link.d.ts +2 -4
- package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list-illustration.d.ts +3 -3
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list.d.ts +9 -12
- package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts +7 -2
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-mega-menu.d.ts +12 -22
- package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +12 -1
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-modal.d.ts +20 -10
- package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts +240 -216
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +5 -3
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
|
@@ -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/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, inject, OnInit, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * @deprecated This component is deprecated and will be removed in v23. Not used anymore.\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 implements OnInit {\n @HostBinding('class.ecl-site-header__banner-top') className = true;\n\n private platformId = inject(PLATFORM_ID);\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n console.warn(\n 'EclSiteHeaderBannerTopComponent: <ecl-site-header-banner-top> is deprecated and will be removed in v23.',\n );\n }\n }\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 { isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, Directive, EventEmitter, HostBinding, HostListener, Input, Output, PLATFORM_ID, contentChild, forwardRef, inject, input } 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 ecl-button--neutral ecl-button--icon-only';\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 eclIconComponent = contentChild<EclIconComponent>(forwardRef(() => EclIconComponent), { descendants: true });\n private readonly ARIA_CONTROLS = 'custom-action-overlay';\n private platformId = inject(PLATFORM_ID);\n\n ngAfterContentInit(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n if (this.eclIconComponent()) {\n this.eclIconComponent().addExtraClass('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 @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, AfterContentInit, OnDestroy, contentChild } 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 readonly title = contentChild(EclSiteHeaderCustomActionTitleDirective);\n readonly eclSiteHeaderCustomActionLink = contentChild(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 const title = this.title();\n if (title) {\n this.titleId = title.id;\n }\n\n // Subscribe to link output, which toggles the dropdown.\n const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();\n if (eclSiteHeaderCustomActionLink) {\n 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 const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();\n if (!eclSiteHeaderCustomActionLink.hasLink()) 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 {\n private readonly _width: number;\n private readonly _left: number;\n private readonly _right: number;\n\n constructor(width: number, left: number, right: number) {\n this._width = width;\n this._left = left;\n this._right = right;\n }\n\n get width(): number {\n return this._width;\n }\n\n get left(): number {\n return this._left;\n }\n\n get right(): number {\n return this._right;\n }\n}","import { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { Component, DOCUMENT, ElementRef, HostBinding, HostListener, Input, NgZone, OnDestroy, afterNextRender, booleanAttribute, inject, output, input, viewChild } from '@angular/core';\nimport { auditTime, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { TranslatePipe } 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: [TranslatePipe, ...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 readonly languageContent = viewChild<ElementRef>('languageContent');\n /**\n * Current language\n */\n @Input() languageCode: string;\n @Input() euLanguages: EuiLanguage[] = [];\n @Input() nonEuLanguages: EuiLanguage[] = [];\n /**\n * Number of columns for eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly euColumnsCount = input<number>(undefined);\n /**\n * Number of columns for non-eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly nonEuColumnsCount = input<number>(undefined);\n /**\n * Property to show/hide the dialog.\n */\n readonly isHidden = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isPushRight = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isPushLeft = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isStack = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isFull = input(false, { transform: booleanAttribute });\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 readonly languageClosed = output<EclSiteHeaderLanguageCloseEvent>();\n readonly languageSelected = output<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 private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n constructor() {\n super();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n // Calculate the height after resize. If the window is too small -> scroll should appear.\n setTimeout(() => this.setLanguageContentMaxHeight());\n });\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 ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onCloseClick(): void {\n this.languageClosed.emit(new EclSiteHeaderLanguageCloseEvent());\n }\n\n onLanguageClick(language: EuiLanguage, evt: MouseEvent): void {\n this.languageCode = language.code;\n this.languageSelected.emit(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 = this.window.innerHeight;\n const languageContent = this.languageContent();\n if (languageContent) {\n const listTop = 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 public dataSubject$: Observable<EclAreaChangeEvent>;\n private dataSubject: Subject<EclAreaChangeEvent> = new Subject<EclAreaChangeEvent>();\n\n constructor() {\n this.dataSubject$ = this.dataSubject.asObservable();\n }\n\n /**\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 publishEvent(event: EclAreaChangeEvent): void {\n this.dataSubject.next(event);\n }\n}","import {\n AfterViewInit,\n Component,\n DOCUMENT,\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 { TranslatePipe } 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, TranslatePipe, 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 readonly languagePopover = viewChild(EclSiteHeaderLanguagePopoverComponent);\n /**\n * The link to open the popover dialog.\n */\n readonly languageLinkElement = viewChild('languageLink', { read: ElementRef });\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: EuiLanguage[] = [];\n /**\n * Array of non-EU languages, that can be selected for the current site.\n */\n nonEuLanguages: EuiLanguage[] = [];\n euColumnsCount = 1;\n nonEuColumnsCount = 1;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private _languages: EuiLanguage[] = [];\n private parentHeaderWidth: number;\n private isRtl = false;\n private eclAreaDataService = inject(EclAreaDataService);\n private eclRtlService = inject(EclRtlService);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\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 = this.window.innerWidth;\n const vw = Math.max(document.documentElement.clientWidth || 0, this.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, DOCUMENT, ElementRef, EventEmitter, HostBinding, HostListener, OnChanges, OnDestroy, Output, SimpleChanges, afterNextRender, booleanAttribute, inject, output, input, viewChild } from '@angular/core';\nimport { Subject, debounceTime, takeUntil } from 'rxjs';\nimport { TranslatePipe } 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: [TranslatePipe, ...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 \n outputs: ['eclClickOutside'],\n },\n ],\n})\nexport class EclSiteHeaderLoginComponent extends ECLBaseDirective implements OnChanges, OnDestroy {\n readonly isLoggedIn = input(false, { transform: booleanAttribute });\n @HostBinding('class') class = 'ecl-site-header__login-container';\n\n readonly loginLinkElement = viewChild('loginLink', { read: ElementRef });\n\n readonly login = output<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 private document = inject<Document>(DOCUMENT);\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.emit(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 = this.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 { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, DOCUMENT, ElementRef, EventEmitter, forwardRef, HostBinding, inject, Input, OnDestroy, Output, PLATFORM_ID, Provider, output, input, viewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclSearchFormEvent, EUI_ECL_SEARCH_FORM } from '@eui/ecl/components/ecl-search-form';\nimport { ECLBaseDirective, EclRtlService } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { debounceTime, Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderSearchEvent, EclSiteHeaderSearchToggleEvent } from '../events';\nimport { EclAreaDataService } from '../services/ecl-area-data.service';\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, TranslatePipe, ...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, AfterViewInit, 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 readonly searchInputPlaceholder = input<string>(undefined);\n readonly searchButtonLabel = input<string>(undefined);\n\n /**\n * The search link element from the view, i.e. the search button.\n */\n readonly searchLinkElement = viewChild('searchLink', { read: ElementRef });\n\n readonly searchEvent = output<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 private cdr = inject(ChangeDetectorRef);\n private platformId = inject(PLATFORM_ID);\n private ro?: ResizeObserver;\n private document = inject<Document>(DOCUMENT);\n\n ngAfterViewInit(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n this.handleRtlChangeState();\n this.handleSiteHeaderAreaChangeEvent();\n\n const el = (this as any).elementRef?.nativeElement ?? null; // if ECLBaseDirective exposes it\n if (!el) return;\n\n this.ro = new ResizeObserver(() => {\n this.calculateSearchFormArrowPosition(this.parentHeaderRight);\n });\n\n this.ro.observe(el);\n }\n\n ngOnDestroy(): void {\n this.ro?.disconnect();\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n onSearch(evt: EclSearchFormEvent): boolean {\n this.searchEvent.emit(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 = this.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 this.cdr.detectChanges();\n }\n }\n}\n","<a\n #searchLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__search-toggle ecl-button--neutral\"\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, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, Component, ElementRef, HostBinding, Input, OnDestroy, PLATFORM_ID, afterNextRender, booleanAttribute, forwardRef, inject, output, input, viewChild, contentChild } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\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 { TranslatePipe } 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, TranslatePipe, ...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 readonly logoSize = input<'s' | 'm' | 'l'>('m');\n\n /**\n * Determines if the site name should be displayed only on mobile devices.\n */\n readonly isSiteNameMobileOnly = input(false, { transform: booleanAttribute });\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 readonly logoClick = output<EclSiteHeaderLogoClickEvent>();\n readonly languageClick = output<EclSiteHeaderLanguageClickEvent>();\n\n readonly topContainerElement = viewChild<ElementRef>('topContainer');\n readonly siteHeaderHeader = viewChild<ElementRef>('siteHeaderHeader');\n readonly bannerHeader = viewChild<ElementRef>('bannerHeader');\n readonly eclLoginComponent = contentChild(EclSiteHeaderLoginComponent);\n readonly eclMenuComponent = contentChild(EclMenuComponent);\n readonly eclMegaMenuComponent = contentChild(EclMegaMenuComponent);\n readonly eclSearchComponent = contentChild(EclSiteHeaderSearchComponent);\n readonly eclLanguageComponent = contentChild(EclSiteHeaderLanguageComponent);\n readonly eclNotificationComponent = contentChild(EclSiteHeaderNotificationComponent);\n readonly eclHeaderLink = contentChild(forwardRef(() => EclSiteHeaderLinkDirective));\n readonly eclHeaderImage = contentChild(forwardRef(() => 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 private platformId = inject(PLATFORM_ID);\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 if (!isPlatformBrowser(this.platformId)) return;\n\n this.handleRtlChangeState();\n this.handleLanguageChangeState();\n const eclHeaderImage = this.eclHeaderImage();\n if (eclHeaderImage) {\n eclHeaderImage.logoSize = this.logoSize();\n }\n\n const eclLoginComponent = this.eclLoginComponent();\n const eclSearchComponent = this.eclSearchComponent();\n if (eclLoginComponent && eclSearchComponent) {\n eclLoginComponent.loginBoxToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclSearchComponent().isSearchBoxActive = false;\n this.sendResizeEventToChildComponents();\n });\n\n eclSearchComponent.searchToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclLoginComponent().isLoginBoxActive = false;\n this.sendResizeEventToChildComponents();\n });\n }\n\n const eclLanguageComponent = this.eclLanguageComponent();\n if (eclLanguageComponent) {\n eclLanguageComponent.languageClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageClick.emit(new EclSiteHeaderLanguageClickEvent());\n this.sendResizeEventToChildComponents();\n });\n\n eclLanguageComponent.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageCode = evt.language?.code;\n });\n }\n\n if (eclLanguageComponent) {\n this.languageCode = eclLanguageComponent?.languageCode;\n }\n\n const eclMenuComponent = this.eclMenuComponent();\n if (eclMenuComponent) {\n outputToObservable(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.emit(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 const topContainerElement = this.topContainerElement();\n if (topContainerElement.nativeElement.getBoundingClientRect().width !== undefined) {\n const topContainerRect = 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 const eclNotificationComponent = this.eclNotificationComponent();\n if (eclNotificationComponent) {\n eclNotificationComponent.onHide();\n }\n const bannerHeader = this.bannerHeader();\n if (bannerHeader) {\n 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 const eclNotificationComponent = this.eclNotificationComponent();\n if (eclNotificationComponent) {\n eclNotificationComponent.onShow();\n }\n const bannerHeader = this.bannerHeader();\n if (bannerHeader) {\n 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 const eclLanguageComponent = this.eclLanguageComponent();\n if (eclLanguageComponent) {\n 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://commission.europa.eu/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\"\n style=\"display: flex; align-items: center; position: relative;\">\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/logo/ec/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/logo/ec/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/logo/eu/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/logo/eu/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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"}
|
|
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/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/services/ecl-area-data.service.ts","../../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, inject, OnInit, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * @deprecated This component is deprecated and will be removed in v23. Not used anymore.\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 implements OnInit {\n @HostBinding('class.ecl-site-header__banner-top') className = true;\n\n private platformId = inject(PLATFORM_ID);\n\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n console.warn(\n 'EclSiteHeaderBannerTopComponent: <ecl-site-header-banner-top> is deprecated and will be removed in v23.',\n );\n }\n }\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 { isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, Directive, EventEmitter, HostBinding, HostListener, Input, Output, PLATFORM_ID, contentChild, forwardRef, inject, input } 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 ecl-button--neutral ecl-button--icon-only';\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 eclIconComponent = contentChild<EclIconComponent>(forwardRef(() => EclIconComponent), { descendants: true });\n private readonly ARIA_CONTROLS = 'custom-action-overlay';\n private platformId = inject(PLATFORM_ID);\n\n ngAfterContentInit(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n if (this.eclIconComponent()) {\n this.eclIconComponent().addExtraClass('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 @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, AfterContentInit, OnDestroy, contentChild } 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 readonly title = contentChild(EclSiteHeaderCustomActionTitleDirective);\n readonly eclSiteHeaderCustomActionLink = contentChild(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 const title = this.title();\n if (title) {\n this.titleId = title.id;\n }\n\n // Subscribe to link output, which toggles the dropdown.\n const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();\n if (eclSiteHeaderCustomActionLink) {\n 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 const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();\n if (!eclSiteHeaderCustomActionLink.hasLink()) 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 {\n private readonly _width: number;\n private readonly _left: number;\n private readonly _right: number;\n\n constructor(width: number, left: number, right: number) {\n this._width = width;\n this._left = left;\n this._right = right;\n }\n\n get width(): number {\n return this._width;\n }\n\n get left(): number {\n return this._left;\n }\n\n get right(): number {\n return this._right;\n }\n}","import { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { Component, DOCUMENT, ElementRef, NgZone, OnDestroy, afterNextRender, booleanAttribute, inject, output, input, viewChild } from '@angular/core';\nimport { auditTime, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { TranslatePipe } 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: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n host: {\n // The role of the dialog is 'dialog'. Should not be changed.\n role: 'dialog',\n 'aria-labelledby': 'ecl-site-header__language-title',\n '[class]': 'cssClasses',\n '[style.display]': 'display',\n '[style.right.px]': 'rightPosition()',\n '[style.left.px]': 'leftPosition()',\n '[style.--ecl-overlay-arrow-position]': 'languageArrowPosition()',\n '[attr.aria-modal]': 'isModal',\n '[attr.hidden]': 'isDropdownHidden',\n },\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 readonly languageContent = viewChild<ElementRef>('languageContent');\n /**\n * Current language\n */\n readonly languageCode = input<string>(undefined);\n readonly euLanguages = input<EuiLanguage[]>([]);\n readonly nonEuLanguages = input<EuiLanguage[]>([]);\n /**\n * Number of columns for eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly euColumnsCount = input<number>(undefined);\n /**\n * Number of columns for non-eu languages. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly nonEuColumnsCount = input<number>(undefined);\n /**\n * Property to show/hide the dialog.\n */\n readonly isHidden = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isPushRight = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isPushLeft = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isStack = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly isFull = input(false, { transform: booleanAttribute });\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly rightPosition = input<number>(undefined);\n /**\n * Property to position the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly leftPosition = input<number>(undefined);\n /**\n * Property to position the arrow of the dialog correctly. Calculated by the parent component 'ecl-site-header-language'.\n */\n readonly languageArrowPosition = input<string>(undefined);\n\n readonly languageClosed = output<EclSiteHeaderLanguageCloseEvent>();\n readonly languageSelected = output<EclSiteHeaderLanguageSelectedEvent>();\n\n languageContentMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private scrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n constructor() {\n super();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n // Calculate the height after resize. If the window is too small -> scroll should appear.\n setTimeout(() => this.setLanguageContentMaxHeight());\n });\n });\n }\n\n protected 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 protected get display(): string {\n return this.isHidden() ? 'none' : 'block';\n }\n\n protected get isModal(): boolean | undefined {\n return !this.isHidden() || undefined;\n }\n\n protected get isDropdownHidden(): boolean | undefined {\n return this.isHidden() || undefined;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n onCloseClick(): void {\n this.languageClosed.emit(new EclSiteHeaderLanguageCloseEvent());\n }\n\n onLanguageClick(language: EuiLanguage, evt: MouseEvent): void {\n this.languageSelected.emit(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 = this.window.innerHeight;\n const languageContent = this.languageContent();\n if (languageContent) {\n const listTop = 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 {\n AfterViewInit,\n Component,\n DOCUMENT,\n ElementRef,\n EventEmitter,\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 { TranslatePipe } 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 { debounceTime, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderLanguageClickEvent, EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageSelectedEvent } from '../events';\nimport { EclSiteHeaderLanguagePopoverComponent } from './ecl-site-header-language-popover.component';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/** Half the arrow's own width, matching ECL's `arrowSize`. */\nconst ARROW_SIZE = '0.5rem';\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, TranslatePipe, 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 host: {\n '[class]': 'cssClasses',\n '(eclClickOutside)': 'onClickOutside()',\n '(document:keydown.escape)': 'onEscapeKeydownHandler()',\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 * 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 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: EuiLanguage[] = [];\n /**\n * Array of non-EU languages, that can be selected for the current site.\n */\n nonEuLanguages: EuiLanguage[] = [];\n euColumnsCount = 1;\n nonEuColumnsCount = 1;\n\n /**\n * The language popover, that shows all available languages (configured in the config file of the current site).\n */\n private readonly languagePopover = viewChild(EclSiteHeaderLanguagePopoverComponent);\n /**\n * The link to open the popover dialog.\n */\n private readonly languageLinkElement = viewChild('languageLink', { read: ElementRef });\n\n private readonly MOBILE_BREAKPOINT = 768;\n private readonly LANGUAGE_MAX_COLUMNS = 8;\n private readonly RESIZE_DEBOUNCE = 200;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private _languages: EuiLanguage[] = [];\n private isRtl = false;\n private readonly eclRtlService = inject(EclRtlService);\n private readonly el = inject(ElementRef);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n protected 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 -> set up resize repositioning and initialize languages, that are configured in the config file\n * of the current site.\n */\n ngAfterViewInit(): void {\n this.handleResize();\n this.handleInitialConfiguredLanguages();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n protected 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 protected onLanguageClick(evt: Event): void {\n this.isLanguagesDropdownVisible = !this.isLanguagesDropdownVisible;\n if (!this.isLanguagesDropdownVisible) {\n setTimeout(() => this.resetPositioning());\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 // Position the popover and its arrow after the popover is rendered and reflowed.\n // Matches ECL's updateOverlayPosition call in toggleOverlay.\n requestAnimationFrame(() => this.calculatePopoverPosition());\n }\n this.languageClick.next(new EclSiteHeaderLanguageClickEvent());\n\n evt.preventDefault();\n }\n\n protected onLanguageClosed(evt: EclSiteHeaderLanguageCloseEvent): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n protected 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 protected onClickOutside(): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n /**\n * Close the dropdown, when pressing ESC key.\n */\n protected onEscapeKeydownHandler(): void {\n this.isLanguagesDropdownVisible = false;\n }\n\n 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 if (this.isLanguagesDropdownVisible) {\n this.calculatePopoverPosition();\n }\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 /**\n * Clears every positioning flag/offset so a fresh calculation (or a close) starts from a known state.\n */\n private resetPositioning(): void {\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\n /**\n * Positions the language popover and its arrow, matching ECL's updateOverlayPosition.\n * The container is the site-header top area (ECL's '[data-ecl-site-header-top]'), resolved from\n * the DOM rather than a shared service so the measurement is taken at the right time (on open/resize).\n */\n private calculatePopoverPosition(): void {\n if (!this.isLanguagesDropdownVisible || !this.hasLanguageCodes()) return;\n\n const container = this.el.nativeElement.closest('.ecl-site-header__top') as HTMLElement | null;\n const languagePopover = this.languagePopover();\n if (!container || !languagePopover) return;\n\n const toggleButtonRect = this.languageLinkElement().nativeElement.getBoundingClientRect();\n const popoverRect = languagePopover.el.nativeElement.getBoundingClientRect();\n const containerRect = container.getBoundingClientRect();\n const screenWidth = this.window.innerWidth;\n const clientWidth = Math.max(this.document.documentElement.clientWidth || 0, this.window.innerWidth || 0);\n\n this.resetPositioning();\n\n // Stack the EU / non-EU lists when the popover is wider than the container.\n if (popoverRect.width > containerRect.width) {\n this.isStack = true;\n if (this.nonEuLanguages.length) {\n this.nonEuColumnsCount = Math.max(this.euColumnsCount, this.nonEuColumnsCount);\n }\n }\n\n // Mobile: the popover is full width. The arrow is anchored from the box's right edge,\n // so the offset is measured against popoverRect.right. Exclusive with push-right/left,\n // matching ECL's updateOverlayPosition (mobile branch returns early).\n if (clientWidth < this.MOBILE_BREAKPOINT) {\n const arrowOffset = popoverRect.right - toggleButtonRect.right + toggleButtonRect.width / 2;\n this.isFull = true;\n this.languageArrowPosition = `calc(${arrowOffset}px - ${ARROW_SIZE})`;\n return;\n }\n\n // RTL: popover overflows the left edge -> push it right against the container's left edge.\n if (this.isRtl && popoverRect.left < 0) {\n const arrowOffset = toggleButtonRect.right - containerRect.left - toggleButtonRect.width / 2;\n this.isPushLeft = true;\n this.leftPosition = -toggleButtonRect.left + containerRect.left;\n this.languageArrowPosition = `${arrowOffset}px`;\n } else if (!this.isRtl && popoverRect.right > screenWidth) {\n // LTR: popover overflows the right edge -> push it left against the container's right edge.\n const arrowOffset = containerRect.right - toggleButtonRect.right + toggleButtonRect.width / 2;\n this.isPushRight = true;\n this.rightPosition = -containerRect.right + toggleButtonRect.right;\n this.languageArrowPosition = `calc(${arrowOffset}px - ${ARROW_SIZE})`;\n }\n }\n\n /**\n * On window resize -> reposition the popover, but only while it is open.\n * Debounced for performance, matching ECL's handleResize.\n */\n private handleResize(): void {\n const win = this.window;\n if (!win) return;\n fromEvent(win, 'resize')\n .pipe(debounceTime(this.RESIZE_DEBOUNCE), takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isLanguagesDropdownVisible) {\n this.calculatePopoverPosition();\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, DOCUMENT, ElementRef, EventEmitter, OnChanges, OnDestroy, Output, SimpleChanges, afterNextRender, booleanAttribute, inject, signal, output, input, viewChild } from '@angular/core';\nimport { Subject, debounceTime, fromEvent, takeUntil } from 'rxjs';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { ECLBaseDirective, ECLClickOutsideDirective } from '@eui/ecl/core';\nimport { EclRtlService } from '@eui/ecl/core';\nimport { EclSiteHeaderLoginBoxToggleEvent, EclSiteHeaderLoginEvent } from '../events';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n/** Half the arrow's own width, matching ECL's `arrowSize`. */\nconst ARROW_SIZE = '0.5rem';\n/** Debounce for the resize recomputation, matching ECL's `handleResize`. */\nconst RESIZE_DEBOUNCE = 200;\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: [TranslatePipe, ...EUI_ECL_ICON],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n outputs: ['eclClickOutside'],\n },\n ],\n host: {\n class: 'ecl-site-header__login-container',\n '(eclClickOutside)': 'onClickOutside()',\n },\n})\nexport class EclSiteHeaderLoginComponent extends ECLBaseDirective implements OnChanges, OnDestroy {\n readonly isLoggedIn = input(false, { transform: booleanAttribute });\n\n readonly login = output<EclSiteHeaderLoginEvent>();\n @Output() loginBoxToggle = new EventEmitter<EclSiteHeaderLoginBoxToggleEvent>();\n\n /**\n * If login popover is open (true) or closed (false). Kept public because the parent\n * `ecl-site-header` resets it directly when the search box opens.\n */\n isLoginBoxActive = false;\n\n /**\n * The position of the arrow of the popover, when in mobile (full-width) mode.\n */\n protected readonly loginArrowPosition = signal<string | undefined>(undefined);\n\n /**\n * The login link element from the view, i.e. the login button (the toggle).\n */\n private readonly loginLinkElement = viewChild('loginLink', { read: ElementRef });\n /**\n * The login box element from the view, i.e. the dropdown the arrow points at.\n */\n private readonly loginBoxElement = viewChild('loginBox', { read: ElementRef });\n\n private readonly destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly eclRtlService = inject(EclRtlService);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView;\n\n constructor() {\n super();\n afterNextRender(() => {\n // Recompute the arrow only while the box is open.\n this.eclRtlService.currentRtlState$.pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => {\n if (this.isLoginBoxActive) this.setLoginArrow();\n });\n if (this.window) {\n fromEvent(this.window, 'resize').pipe(debounceTime(RESIZE_DEBOUNCE), takeUntil(this.destroy$)).subscribe(() => {\n if (this.isLoginBoxActive) this.setLoginArrow();\n });\n }\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 protected onClickOutside(): void {\n this.onLoginBoxClose();\n }\n\n /**\n * @returns classes for the login popover.\n */\n protected getLoginBoxCssClasses(): string {\n return ['ecl-site-header__login-box', this.isLoginBoxActive ? 'ecl-site-header__login-box--active' : ''].join(' ');\n }\n\n protected onLoginClick(evt: MouseEvent): void {\n const event = new EclSiteHeaderLoginEvent();\n this.login.emit(event);\n evt.preventDefault();\n }\n\n protected 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 if (this.isLoginBoxActive) {\n // Measure after the '--active' class is applied and the box reflows to full width.\n this.window?.requestAnimationFrame(() => this.setLoginArrow());\n }\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 this.loginArrowPosition.set(undefined);\n }\n }\n\n /**\n * Position the dropdown arrow so it points at the toggle button.\n * The arrow only exists on the mobile full-width dropdown, so the calculation is gated on the box\n * spanning (almost) the full viewport width. The offset is relative to the box's own left edge.\n * Mirrors ECL's 'setLoginArrow' in site-header.js.\n */\n private setLoginArrow(): void {\n const loginBoxRect = this.loginBoxElement()?.nativeElement.getBoundingClientRect();\n const toggleButtonRect = this.loginLinkElement()?.nativeElement.getBoundingClientRect();\n if (!loginBoxRect || !toggleButtonRect) return;\n\n const clientWidth = this.document.documentElement.clientWidth;\n if (loginBoxRect.width >= clientWidth - 1) {\n const arrowOffset = toggleButtonRect.left - loginBoxRect.left + toggleButtonRect.width / 2;\n this.loginArrowPosition.set(`calc(${arrowOffset}px - ${ARROW_SIZE})`);\n } else {\n this.loginArrowPosition.set(undefined);\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 #loginBox\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 { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, Component, DOCUMENT, ElementRef, EventEmitter, forwardRef, inject, Input, OnDestroy, Output, PLATFORM_ID, Provider, output, input, signal, viewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclSearchFormEvent, EUI_ECL_SEARCH_FORM } from '@eui/ecl/components/ecl-search-form';\nimport { ECLBaseDirective, ECLClickOutsideDirective, EclRtlService } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { debounceTime, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { EclSiteHeaderSearchEvent, EclSiteHeaderSearchToggleEvent } from '../events';\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/** Half the arrow's own width, matching ECL's `arrowSize`. */\nconst ARROW_SIZE = '0.5rem';\n/** Debounce for the resize recomputation, matching ECL's `handleResize`. */\nconst RESIZE_DEBOUNCE = 200;\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, TranslatePipe, ...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 hostDirectives: [\n {\n directive: ECLClickOutsideDirective,\n outputs: ['eclClickOutside'],\n },\n ],\n host: {\n class: 'ecl-site-header__search-container',\n // The default role of the component is 'search', should not be changed.\n role: 'search',\n '(eclClickOutside)': 'onClickOutside()',\n },\n})\nexport class EclSiteHeaderSearchComponent extends ECLBaseDirective implements ControlValueAccessor, AfterViewInit, OnDestroy {\n @Input() searchInputText: string;\n readonly searchInputPlaceholder = input<string>(undefined);\n readonly searchButtonLabel = input<string>(undefined);\n\n readonly searchEvent = output<EclSiteHeaderSearchEvent>();\n @Output() searchToggle = new EventEmitter<EclSiteHeaderSearchToggleEvent>();\n\n /**\n * Whether the search dropdown is open. Kept public because the parent\n * `ecl-site-header` resets it directly when the login box opens.\n */\n isSearchBoxActive = false;\n\n /**\n * The arrow position of the search dropdown, when in mobile (full-width) mode.\n */\n protected readonly searchArrowPosition = signal<string | undefined>(undefined);\n\n /**\n * The search link element from the view, i.e. the search button (the toggle).\n */\n private readonly searchLinkElement = viewChild('searchLink', { read: ElementRef });\n /**\n * The search form element from the view, i.e. the dropdown box the arrow points from.\n */\n private readonly searchFormElement = viewChild('searchForm', { read: ElementRef });\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onChange: (_: any) => void = noop;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private onTouched: (_: any) => void = noop;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private readonly eclRtlService = inject(EclRtlService);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n ngAfterViewInit(): void {\n if (!isPlatformBrowser(this.platformId)) return;\n\n // Recompute while open on resize (debounced, matching ECL's handleResize).\n if (this.window) {\n fromEvent(this.window, 'resize')\n .pipe(debounceTime(RESIZE_DEBOUNCE), takeUntil(this.destroy$))\n .subscribe(() => this.setSearchArrow());\n }\n\n // Recompute while open on RTL direction change.\n this.eclRtlService.currentRtlState$.pipe(debounceTime(50), takeUntil(this.destroy$)).subscribe(() => this.setSearchArrow());\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\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 /**\n * Close the search dropdown on click outside, matching ECL's `handleClickGlobal`.\n */\n protected onClickOutside(): void {\n this.closeSearchBox();\n }\n\n protected onSearch(evt: EclSearchFormEvent): boolean {\n this.searchEvent.emit(new EclSiteHeaderSearchEvent(evt.keyword));\n this.onChange(evt.keyword);\n return false;\n }\n\n protected 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 // Measure after the `--active` class is applied and the box reflows to\n // full width (matching ECL's toggleSearch -> setSearchArrow order).\n if (this.isSearchBoxActive) {\n this.window?.requestAnimationFrame(() => this.setSearchArrow());\n }\n }\n\n /**\n *\n * @returns The classes for the ecl search form.\n */\n protected getSearchBoxCssClasses(): string {\n return ['ecl-site-header__search', this.isSearchBoxActive ? 'ecl-site-header__search--active' : ''].join(' ');\n }\n\n protected onModelChange(newValue: string): void {\n this.searchInputText = newValue;\n this.onChange(newValue);\n }\n\n private closeSearchBox(): void {\n if (!this.isSearchBoxActive) return;\n\n this.isSearchBoxActive = false;\n this.searchToggle.next(new EclSiteHeaderSearchToggleEvent(this.isSearchBoxActive));\n this.searchArrowPosition.set(undefined);\n }\n\n /**\n * Positions the dropdown arrow so it points at the center of the search toggle button.\n * Mirrors ECL's `setSearchArrow`: the arrow position is an offset relative to the\n * search form's own left edge, and it only applies to the mobile full-width dropdown\n * (`searchFormRect.width >= clientWidth - 1`, the `- 1` absorbing subpixel rounding).\n */\n private setSearchArrow(): void {\n if (!this.isSearchBoxActive) return;\n\n const searchFormRect = this.searchFormElement()?.nativeElement.getBoundingClientRect();\n const toggleButtonRect = this.searchLinkElement()?.nativeElement.getBoundingClientRect();\n if (!searchFormRect || !toggleButtonRect) return;\n\n const clientWidth = this.document.documentElement.clientWidth;\n if (searchFormRect.width >= clientWidth - 1) {\n const arrowOffset = toggleButtonRect.left - searchFormRect.left + toggleButtonRect.width / 2;\n this.searchArrowPosition.set(`calc(${arrowOffset}px - ${ARROW_SIZE})`);\n } else {\n this.searchArrowPosition.set(undefined);\n }\n }\n}\n","<a\n #searchLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__search-toggle ecl-button--neutral\"\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 #searchForm\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 { 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 public dataSubject$: Observable<EclAreaChangeEvent>;\n private dataSubject: Subject<EclAreaChangeEvent> = new Subject<EclAreaChangeEvent>();\n\n constructor() {\n this.dataSubject$ = this.dataSubject.asObservable();\n }\n\n /**\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 publishEvent(event: EclAreaChangeEvent): void {\n this.dataSubject.next(event);\n }\n}","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, Component, ElementRef, HostBinding, Input, OnDestroy, PLATFORM_ID, afterNextRender, booleanAttribute, forwardRef, inject, output, input, viewChild, contentChild } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\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 { TranslatePipe } 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, TranslatePipe, ...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 readonly logoSize = input<'s' | 'm' | 'l'>('m');\n\n /**\n * Determines if the site name should be displayed only on mobile devices.\n */\n readonly isSiteNameMobileOnly = input(false, { transform: booleanAttribute });\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 readonly logoClick = output<EclSiteHeaderLogoClickEvent>();\n readonly languageClick = output<EclSiteHeaderLanguageClickEvent>();\n\n readonly topContainerElement = viewChild<ElementRef>('topContainer');\n readonly siteHeaderHeader = viewChild<ElementRef>('siteHeaderHeader');\n readonly bannerHeader = viewChild<ElementRef>('bannerHeader');\n readonly eclLoginComponent = contentChild(EclSiteHeaderLoginComponent);\n readonly eclMenuComponent = contentChild(EclMenuComponent);\n readonly eclMegaMenuComponent = contentChild(EclMegaMenuComponent);\n readonly eclSearchComponent = contentChild(EclSiteHeaderSearchComponent);\n readonly eclLanguageComponent = contentChild(EclSiteHeaderLanguageComponent);\n readonly eclNotificationComponent = contentChild(EclSiteHeaderNotificationComponent);\n readonly eclHeaderLink = contentChild(forwardRef(() => EclSiteHeaderLinkDirective));\n readonly eclHeaderImage = contentChild(forwardRef(() => 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 private platformId = inject(PLATFORM_ID);\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 if (!isPlatformBrowser(this.platformId)) return;\n\n this.handleRtlChangeState();\n this.handleLanguageChangeState();\n const eclHeaderImage = this.eclHeaderImage();\n if (eclHeaderImage) {\n eclHeaderImage.logoSize = this.logoSize();\n }\n\n const eclLoginComponent = this.eclLoginComponent();\n const eclSearchComponent = this.eclSearchComponent();\n if (eclLoginComponent && eclSearchComponent) {\n eclLoginComponent.loginBoxToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclSearchComponent().isSearchBoxActive = false;\n this.sendResizeEventToChildComponents();\n });\n\n eclSearchComponent.searchToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.eclLoginComponent().isLoginBoxActive = false;\n this.sendResizeEventToChildComponents();\n });\n }\n\n const eclLanguageComponent = this.eclLanguageComponent();\n if (eclLanguageComponent) {\n eclLanguageComponent.languageClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageClick.emit(new EclSiteHeaderLanguageClickEvent());\n this.sendResizeEventToChildComponents();\n });\n\n eclLanguageComponent.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.languageCode = evt.language?.code;\n });\n }\n\n if (eclLanguageComponent) {\n this.languageCode = eclLanguageComponent?.languageCode;\n }\n\n const eclMenuComponent = this.eclMenuComponent();\n if (eclMenuComponent) {\n outputToObservable(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.emit(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 const topContainerElement = this.topContainerElement();\n if (topContainerElement.nativeElement.getBoundingClientRect().width !== undefined) {\n const topContainerRect = 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 const eclNotificationComponent = this.eclNotificationComponent();\n if (eclNotificationComponent) {\n eclNotificationComponent.onHide();\n }\n const bannerHeader = this.bannerHeader();\n if (bannerHeader) {\n 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 const eclNotificationComponent = this.eclNotificationComponent();\n if (eclNotificationComponent) {\n eclNotificationComponent.onShow();\n }\n const bannerHeader = this.bannerHeader();\n if (bannerHeader) {\n 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 const eclLanguageComponent = this.eclLanguageComponent();\n if (eclLanguageComponent) {\n 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://commission.europa.eu/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\"\n style=\"display: flex; align-items: center; position: relative;\">\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/logo/ec/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/logo/ec/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/logo/eu/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/logo/eu/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","ARROW_SIZE","RESIZE_DEBOUNCE"],"mappings":"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"}
|