@eui/ecl 19.2.0-snapshot-1745849345782 → 19.2.0-snapshot-1745854088357

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/components/ecl-link/ecl-link.directive.d.ts.map +1 -1
  2. package/components/ecl-site-header/action/ecl-site-header-action.component.d.ts +1 -1
  3. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.d.ts +24 -0
  4. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.component.d.ts.map +1 -0
  5. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.directive.d.ts +31 -0
  6. package/components/ecl-site-header/custom-action/ecl-site-header-custom-action.directive.d.ts.map +1 -0
  7. package/components/ecl-site-header/custom-action/index.d.ts +3 -0
  8. package/components/ecl-site-header/custom-action/index.d.ts.map +1 -0
  9. package/components/ecl-site-header/ecl-site-header.module.d.ts +22 -19
  10. package/components/ecl-site-header/ecl-site-header.module.d.ts.map +1 -1
  11. package/components/ecl-site-header/index.d.ts +1 -0
  12. package/components/ecl-site-header/index.d.ts.map +1 -1
  13. package/docs/components/EclAccordionComponent.html +2 -2
  14. package/docs/components/EclAccordionItemComponent.html +2 -2
  15. package/docs/components/EclAppComponent.html +2 -2
  16. package/docs/components/EclBannerComponent.html +2 -2
  17. package/docs/components/EclBlockquoteComponent.html +2 -2
  18. package/docs/components/EclBreadcrumbComponent.html +2 -2
  19. package/docs/components/EclBreadcrumbSegmentComponent.html +2 -2
  20. package/docs/components/EclButtonComponent.html +2 -2
  21. package/docs/components/EclCardBodyComponent.html +2 -2
  22. package/docs/components/EclCardComponent.html +2 -2
  23. package/docs/components/EclCarouselComponent.html +2 -2
  24. package/docs/components/EclCarouselItemComponent.html +2 -2
  25. package/docs/components/EclCategoryFilterComponent.html +2 -2
  26. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  27. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  28. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  29. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  30. package/docs/components/EclContentBlockComponent.html +2 -2
  31. package/docs/components/EclContentItemComponent.html +2 -2
  32. package/docs/components/EclDateBlockComponent.html +2 -2
  33. package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
  34. package/docs/components/EclExpandableComponent.html +2 -2
  35. package/docs/components/EclFactFiguresComponent.html +2 -2
  36. package/docs/components/EclFactFiguresDescriptionComponent.html +2 -2
  37. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  38. package/docs/components/EclFactFiguresTitleComponent.html +2 -2
  39. package/docs/components/EclFactFiguresValueComponent.html +2 -2
  40. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  41. package/docs/components/EclFeaturedComponent.html +2 -2
  42. package/docs/components/EclFeaturedItemComponent.html +2 -2
  43. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  44. package/docs/components/EclFeaturedItemFooterComponent.html +2 -2
  45. package/docs/components/EclFileComponent.html +2 -2
  46. package/docs/components/EclFileItemComponent.html +2 -2
  47. package/docs/components/EclFileItemsComponent.html +2 -2
  48. package/docs/components/EclFileTaxonomyComponent.html +2 -2
  49. package/docs/components/EclFormGroupComponent.html +2 -2
  50. package/docs/components/EclFormLabelComponent.html +2 -2
  51. package/docs/components/EclGalleryComponent.html +2 -2
  52. package/docs/components/EclGalleryFooterComponent.html +2 -2
  53. package/docs/components/EclGalleryItemComponent.html +2 -2
  54. package/docs/components/EclIconComponent.html +2 -2
  55. package/docs/components/EclInpageNavigationComponent.html +2 -2
  56. package/docs/components/EclInpageNavigationItemComponent.html +2 -2
  57. package/docs/components/EclListIllustrationComponent.html +2 -2
  58. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  59. package/docs/components/EclLoadingIndicatorComponent.html +2 -2
  60. package/docs/components/EclMediaContainerComponent.html +2 -2
  61. package/docs/components/EclMegaMenuComponent.html +2 -2
  62. package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
  63. package/docs/components/EclMegaMenuInfoComponent.html +2 -2
  64. package/docs/components/EclMegaMenuItemComponent.html +2 -2
  65. package/docs/components/EclMegaMenuSubitemComponent.html +2 -2
  66. package/docs/components/EclMenuComponent.html +2 -2
  67. package/docs/components/EclMenuItemComponent.html +2 -2
  68. package/docs/components/EclMenuMegaComponent.html +2 -2
  69. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  70. package/docs/components/EclModalBodyComponent.html +2 -2
  71. package/docs/components/EclModalComponent.html +2 -2
  72. package/docs/components/EclModalFooterComponent.html +2 -2
  73. package/docs/components/EclModalHeaderComponent.html +2 -2
  74. package/docs/components/EclMultiselectComponent.html +2 -2
  75. package/docs/components/EclMultiselectDropdownComponent.html +2 -2
  76. package/docs/components/EclMultiselectInputComponent.html +2 -2
  77. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  78. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  79. package/docs/components/EclNavigationListComponent.html +2 -2
  80. package/docs/components/EclNavigationListItemComponent.html +2 -2
  81. package/docs/components/EclNewsTickerComponent.html +2 -2
  82. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  83. package/docs/components/EclNotificationComponent.html +2 -2
  84. package/docs/components/EclPageHeaderComponent.html +2 -2
  85. package/docs/components/EclPaginationComponent.html +2 -2
  86. package/docs/components/EclPaginationItemComponent.html +2 -2
  87. package/docs/components/EclPopoverComponent.html +2 -2
  88. package/docs/components/EclRadioHelpComponent.html +2 -2
  89. package/docs/components/EclRadioLabelComponent.html +2 -2
  90. package/docs/components/EclRangeBubbleComponent.html +2 -2
  91. package/docs/components/EclRangeValueComponent.html +2 -2
  92. package/docs/components/EclRatingFieldComponent.html +2 -2
  93. package/docs/components/EclSearchFormComponent.html +2 -2
  94. package/docs/components/EclSelectContainerComponent.html +2 -2
  95. package/docs/components/EclSiteFooterComponent.html +2 -2
  96. package/docs/components/EclSiteFooterFixedContentECComponent.html +2 -2
  97. package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
  98. package/docs/components/EclSiteHeaderActionComponent.html +3 -3
  99. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  100. package/docs/components/EclSiteHeaderComponent.html +2 -2
  101. package/docs/components/EclSiteHeaderCustomActionComponent.html +911 -0
  102. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  103. package/docs/components/EclSiteHeaderLanguageComponent.html +3 -3
  104. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  105. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  106. package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
  107. package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
  108. package/docs/components/EclSocialMediaFollowComponent.html +2 -2
  109. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  110. package/docs/components/EclSocialMediaShareComponent.html +2 -2
  111. package/docs/components/EclSocialMediaShareItemComponent.html +2 -2
  112. package/docs/components/EclSplashPageComponent.html +2 -2
  113. package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
  114. package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
  115. package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
  116. package/docs/components/EclStickyContainerComponent.html +2 -2
  117. package/docs/components/EclTabComponent.html +2 -2
  118. package/docs/components/EclTabLabelComponent.html +2 -2
  119. package/docs/components/EclTabMoreComponent.html +2 -2
  120. package/docs/components/EclTableSortButtonComponent.html +2 -2
  121. package/docs/components/EclTabsComponent.html +2 -2
  122. package/docs/components/EclTagComponent.html +2 -2
  123. package/docs/components/EclTimelineComponent.html +2 -2
  124. package/docs/components/EclTimelineItemComponent.html +2 -2
  125. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  126. package/docs/dependencies.html +2 -2
  127. package/docs/directives/EclLinkDirective.html +1 -1
  128. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +497 -0
  129. package/docs/directives/EclSiteHeaderCustomActionLinkDirective.html +879 -0
  130. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +521 -0
  131. package/docs/index.html +2 -2
  132. package/docs/js/menu-wc.js +21 -9
  133. package/docs/js/menu-wc_es5.js +1 -1
  134. package/docs/js/search/search_index.js +2 -2
  135. package/docs/miscellaneous/variables.html +26 -22
  136. package/fesm2022/eui-ecl-components-ecl-link.mjs +2 -2
  137. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  138. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +217 -26
  139. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  140. package/package.json +1 -1
@@ -1,26 +1,28 @@
1
- import * as i6$1 from '@angular/common';
2
- import { CommonModule } from '@angular/common';
1
+ import * as i7 from '@angular/common';
2
+ import { DOCUMENT, CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
4
  import { HostBinding, Component, Directive, afterNextRender, EventEmitter, HostListener, Output, Input, ViewChild, Injectable, ElementRef, Optional, Inject, booleanAttribute, forwardRef, ContentChild, NgModule } from '@angular/core';
5
- import * as i3$2 from '@angular/forms';
5
+ import * as i4 from '@angular/cdk/a11y';
6
+ import { A11yModule } from '@angular/cdk/a11y';
7
+ import * as i3$3 from '@angular/forms';
6
8
  import { NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule } from '@angular/forms';
7
9
  import * as i6 from '@ngx-translate/core';
8
10
  import { TranslateModule } from '@ngx-translate/core';
9
- import * as i4 from '@eui/ecl/components/ecl-button';
11
+ import * as i3$1 from '@eui/ecl/components/ecl-button';
10
12
  import { EclButtonModule } from '@eui/ecl/components/ecl-button';
11
13
  import { EclFormGroupModule } from '@eui/ecl/components/ecl-form-group';
12
- import * as i4$1 from '@eui/ecl/components/ecl-icon';
13
- import { EclIconModule } from '@eui/ecl/components/ecl-icon';
14
+ import * as i5 from '@eui/ecl/components/ecl-icon';
15
+ import { EclIconComponent, EclIconModule } from '@eui/ecl/components/ecl-icon';
14
16
  import * as i3 from '@eui/ecl/components/ecl-link';
15
17
  import { EclLinkModule } from '@eui/ecl/components/ecl-link';
16
- import * as i5 from '@eui/ecl/components/ecl-search-form';
18
+ import * as i5$1 from '@eui/ecl/components/ecl-search-form';
17
19
  import { EclSearchFormModule } from '@eui/ecl/components/ecl-search-form';
18
20
  import * as i2 from '@eui/ecl/core';
19
21
  import { ECLBaseDirective, EclBaseEvent, ECLClickOutsideDirective } from '@eui/ecl/core';
20
22
  import { Subject, takeUntil as takeUntil$1, debounceTime } from 'rxjs';
21
23
  import { takeUntil } from 'rxjs/operators';
22
24
  import * as i1 from '@angular/cdk/layout';
23
- import * as i3$1 from '@eui/core';
25
+ import * as i3$2 from '@eui/core';
24
26
  import { EuiEuLanguages, GLOBAL_CONFIG_TOKEN } from '@eui/core';
25
27
  import { EclMegaMenuComponent } from '@eui/ecl/components/ecl-mega-menu';
26
28
  import { EclMenuComponent } from '@eui/ecl/components/ecl-menu';
@@ -33,11 +35,11 @@ class EclSiteHeaderActionComponent extends ECLBaseDirective {
33
35
  this.class = 'ecl-site-header__action';
34
36
  }
35
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderActionComponent, isStandalone: false, selector: "ecl-site-header-action", host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<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" }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderActionComponent, isStandalone: false, selector: "ecl-site-header-action", host: { properties: { "class": "this.class" } }, usesInheritance: true, ngImport: i0, template: "<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" }); }
37
39
  }
38
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderActionComponent, decorators: [{
39
41
  type: Component,
40
- args: [{ selector: 'ecl-site-header-action', standalone: false, template: "<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" }]
42
+ args: [{ selector: 'ecl-site-header-action', standalone: false, template: "<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" }]
41
43
  }], propDecorators: { class: [{
42
44
  type: HostBinding,
43
45
  args: ['class']
@@ -252,7 +254,7 @@ class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective {
252
254
  });
253
255
  }
254
256
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLanguagePopoverComponent, deps: [{ token: i0.ElementRef }, { token: i2.EclThemeService }, { token: i2$1.ScrollDispatcher }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
255
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderLanguagePopoverComponent, isStandalone: false, selector: "ecl-site-header-language-popover", inputs: { languageCode: "languageCode", euLanguages: "euLanguages", nonEuLanguages: "nonEuLanguages", euColumnsCount: "euColumnsCount", nonEuColumnsCount: "nonEuColumnsCount", isHidden: "isHidden", isPushRight: "isPushRight", isPushLeft: "isPushLeft", isStack: "isStack", isFull: "isFull", rightPosition: "rightPosition", leftPosition: "leftPosition", languageArrowPosition: "languageArrowPosition" }, outputs: { languageClosed: "languageClosed", languageSelected: "languageSelected" }, host: { listeners: { "window:resize": "onWindowResize($event)" }, properties: { "style.right.px": "this.rightPosition", "style.left.px": "this.leftPosition", "style.--ecl-language-arrow-position": "this.languageArrowPosition", "attr.role": "this.role", "attr.aria-labelledby": "this.labelledBy", "style.display": "this.display", "class": "this.cssClasses", "attr.aria-modal": "this.isModal", "attr.hidden": "this.isDropdownHidden" } }, viewQueries: [{ propertyName: "languageContent", first: true, predicate: ["languageContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__language-header\">\n <div class=\"ecl-site-header__language-title\">\n {{ 'ecl.language-list.SELECT-LANGUAGE' | translate }}\n </div>\n <button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-site-header__language-close\" (click)=\"onCloseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n @if (eclThemeService.isECTheme()) {\n <ecl-icon icon=\"close\" size=\"m\"> </ecl-icon>\n } @else {\n <ecl-icon icon=\"close\" size=\"s\"> </ecl-icon>\n }\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\">\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\">\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", dependencies: [{ kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }, { kind: "component", type: i4.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "component", type: i4$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
257
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderLanguagePopoverComponent, isStandalone: false, selector: "ecl-site-header-language-popover", inputs: { languageCode: "languageCode", euLanguages: "euLanguages", nonEuLanguages: "nonEuLanguages", euColumnsCount: "euColumnsCount", nonEuColumnsCount: "nonEuColumnsCount", isHidden: "isHidden", isPushRight: "isPushRight", isPushLeft: "isPushLeft", isStack: "isStack", isFull: "isFull", rightPosition: "rightPosition", leftPosition: "leftPosition", languageArrowPosition: "languageArrowPosition" }, outputs: { languageClosed: "languageClosed", languageSelected: "languageSelected" }, host: { listeners: { "window:resize": "onWindowResize($event)" }, properties: { "style.right.px": "this.rightPosition", "style.left.px": "this.leftPosition", "style.--ecl-language-arrow-position": "this.languageArrowPosition", "attr.role": "this.role", "attr.aria-labelledby": "this.labelledBy", "style.display": "this.display", "class": "this.cssClasses", "attr.aria-modal": "this.isModal", "attr.hidden": "this.isDropdownHidden" } }, viewQueries: [{ propertyName: "languageContent", first: true, predicate: ["languageContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__language-header\">\n <div class=\"ecl-site-header__language-title\">\n {{ 'ecl.language-list.SELECT-LANGUAGE' | translate }}\n </div>\n <button eclButton variant=\"tertiary\" isIconOnly class=\"ecl-site-header__language-close\" (click)=\"onCloseClick()\">\n <span class=\"ecl-button__container\">\n <span class=\"ecl-button__label\">\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n @if (eclThemeService.isECTheme()) {\n <ecl-icon icon=\"close\" size=\"m\"> </ecl-icon>\n } @else {\n <ecl-icon icon=\"close\" size=\"s\"> </ecl-icon>\n }\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\">\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\">\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", dependencies: [{ kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }, { kind: "component", type: i3$1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
256
258
  }
257
259
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLanguagePopoverComponent, decorators: [{
258
260
  type: Component,
@@ -428,7 +430,7 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
428
430
  if (this.hasLanguageCodes()) {
429
431
  const arrowSize = '0.5rem';
430
432
  const linkRect = this.languageLinkElement.nativeElement.getBoundingClientRect();
431
- const popoverRect = this.languagePopover.el.nativeElement.getBoundingClientRect();
433
+ const popoverRect = this.languagePopover?.el.nativeElement.getBoundingClientRect();
432
434
  const screenWidth = window.innerWidth;
433
435
  const vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
434
436
  this.isFull = false;
@@ -438,26 +440,26 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
438
440
  this.rightPosition = undefined;
439
441
  this.leftPosition = undefined;
440
442
  this.languageArrowPosition = undefined;
441
- if (popoverRect.width > this.parentHeaderWidth) {
443
+ if (popoverRect?.width > this.parentHeaderWidth) {
442
444
  this.isStack = true;
443
445
  if (this.nonEuLanguages.length) {
444
446
  this.nonEuColumnsCount = Math.max(this.euColumnsCount, this.nonEuColumnsCount);
445
447
  }
446
448
  }
447
- if (this.isRtl && popoverRect.left < 0) {
449
+ if (this.isRtl && popoverRect?.left < 0) {
448
450
  const arrowPosition = linkRect.right - parentHeaderLeft - linkRect.width / 2;
449
451
  this.isPushLeft = true;
450
452
  this.leftPosition = -linkRect.left + parentHeaderLeft;
451
453
  this.languageArrowPosition = `${arrowPosition}px`;
452
454
  }
453
- else if (!this.isRtl && popoverRect.right > screenWidth) {
455
+ else if (!this.isRtl && popoverRect?.right > screenWidth) {
454
456
  const arrowPosition = parentHeaderRight - linkRect.right + linkRect.width / 2;
455
457
  this.isPushRight = true;
456
458
  this.rightPosition = -parentHeaderRight + linkRect.right;
457
459
  this.languageArrowPosition = `calc(${arrowPosition}px - ${arrowSize})`;
458
460
  }
459
461
  if (vw < this.MOBILE_BREAKPOINT) {
460
- const arrowPosition = popoverRect.right - linkRect.right + linkRect.width / 2;
462
+ const arrowPosition = popoverRect?.right - linkRect.right + linkRect.width / 2;
461
463
  this.isFull = true;
462
464
  this.languageArrowPosition = `calc(${arrowPosition}px - ${arrowSize})`;
463
465
  }
@@ -491,8 +493,8 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
491
493
  this.updateLanguages();
492
494
  });
493
495
  }
494
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLanguageComponent, deps: [{ token: EclAreaDataService }, { token: i2.EclRtlService }, { token: i2.EclThemeService }, { token: GLOBAL_CONFIG_TOKEN, optional: true }, { token: i3$1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
495
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderLanguageComponent, isStandalone: false, selector: "ecl-site-header-language", outputs: { languageClick: "languageClick", languageSelected: "languageSelected" }, host: { listeners: { "eclClickOutside": "onClickOutside()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "languagePopover", first: true, predicate: EclSiteHeaderLanguagePopoverComponent, descendants: true }, { propertyName: "languageLinkElement", first: true, predicate: ["languageLink"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i2.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary 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=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n </span>\n {{ languageCode | uppercase }}\n</a>\n@if(hasLanguageCodes()) {\n<ecl-site-header-language-popover\n #languagePopover\n id=\"language-list-overlay\"\n [languageCode]=\"languageCode\"\n [euLanguages]=\"euLanguages\"\n [nonEuLanguages]=\"nonEuLanguages\"\n [euColumnsCount]=\"euColumnsCount\"\n [nonEuColumnsCount]=\"nonEuColumnsCount\"\n [isHidden]=\"!isLanguagesDropdownVisible\"\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}", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i4$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclSiteHeaderLanguagePopoverComponent, selector: "ecl-site-header-language-popover", inputs: ["languageCode", "euLanguages", "nonEuLanguages", "euColumnsCount", "nonEuColumnsCount", "isHidden", "isPushRight", "isPushLeft", "isStack", "isFull", "rightPosition", "leftPosition", "languageArrowPosition"], outputs: ["languageClosed", "languageSelected"] }, { kind: "pipe", type: i6$1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
496
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLanguageComponent, deps: [{ token: EclAreaDataService }, { token: i2.EclRtlService }, { token: i2.EclThemeService }, { token: GLOBAL_CONFIG_TOKEN, optional: true }, { token: i3$2.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
497
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderLanguageComponent, isStandalone: false, selector: "ecl-site-header-language", outputs: { languageClick: "languageClick", languageSelected: "languageSelected" }, host: { listeners: { "eclClickOutside": "onClickOutside()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "languagePopover", first: true, predicate: EclSiteHeaderLanguagePopoverComponent, descendants: true }, { propertyName: "languageLinkElement", first: true, predicate: ["languageLink"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i2.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary 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=\"s\" 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}", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclSiteHeaderLanguagePopoverComponent, selector: "ecl-site-header-language-popover", inputs: ["languageCode", "euLanguages", "nonEuLanguages", "euColumnsCount", "nonEuColumnsCount", "isHidden", "isPushRight", "isPushLeft", "isStack", "isFull", "rightPosition", "leftPosition", "languageArrowPosition"], outputs: ["languageClosed", "languageSelected"] }, { kind: "pipe", type: i7.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
496
498
  }
497
499
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLanguageComponent, decorators: [{
498
500
  type: Component,
@@ -501,13 +503,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
501
503
  directive: ECLClickOutsideDirective,
502
504
  outputs: ['eclClickOutside'],
503
505
  },
504
- ], template: "<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary 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=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n </span>\n {{ languageCode | uppercase }}\n</a>\n@if(hasLanguageCodes()) {\n<ecl-site-header-language-popover\n #languagePopover\n id=\"language-list-overlay\"\n [languageCode]=\"languageCode\"\n [euLanguages]=\"euLanguages\"\n [nonEuLanguages]=\"nonEuLanguages\"\n [euColumnsCount]=\"euColumnsCount\"\n [nonEuColumnsCount]=\"nonEuColumnsCount\"\n [isHidden]=\"!isLanguagesDropdownVisible\"\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}", styles: [":host{display:block}\n"] }]
506
+ ], template: "<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary 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=\"s\" 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}", styles: [":host{display:block}\n"] }]
505
507
  }], ctorParameters: () => [{ type: EclAreaDataService }, { type: i2.EclRtlService }, { type: i2.EclThemeService }, { type: undefined, decorators: [{
506
508
  type: Optional
507
509
  }, {
508
510
  type: Inject,
509
511
  args: [GLOBAL_CONFIG_TOKEN]
510
- }] }, { type: i3$1.I18nService }], propDecorators: { languagePopover: [{
512
+ }] }, { type: i3$2.I18nService }], propDecorators: { languagePopover: [{
511
513
  type: ViewChild,
512
514
  args: [EclSiteHeaderLanguagePopoverComponent]
513
515
  }], languageLinkElement: [{
@@ -606,7 +608,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
606
608
  }
607
609
  }
608
610
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLoginComponent, deps: [{ token: EclAreaDataService }, { token: i2.EclRtlService }], target: i0.ɵɵFactoryTarget.Component }); }
609
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderLoginComponent, isStandalone: false, selector: "ecl-site-header-login", inputs: { isLoggedIn: ["isLoggedIn", "isLoggedIn", booleanAttribute] }, outputs: { login: "login", loginBoxToggle: "loginBoxToggle" }, host: { listeners: { "eclClickOutside": "onClickOutsideMegaMenu()" }, properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "loginLinkElement", first: true, predicate: ["loginLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i2.ECLBaseDirective }, { directive: i2.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary 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=\"s\" 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-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i4$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
611
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderLoginComponent, isStandalone: false, selector: "ecl-site-header-login", inputs: { isLoggedIn: ["isLoggedIn", "isLoggedIn", booleanAttribute] }, outputs: { login: "login", loginBoxToggle: "loginBoxToggle" }, host: { listeners: { "eclClickOutside": "onClickOutsideMegaMenu()" }, properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "loginLinkElement", first: true, predicate: ["loginLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i2.ECLBaseDirective }, { directive: i2.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "@if (isLoggedIn) {\n <a\n #loginLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary 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=\"s\" 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-site-header__login-toggle\"\n [attr.aria-expanded]=\"isLoginBoxActive\"\n (click)=\"onLoginClick($event)\">\n <ecl-icon icon=\"log-in\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.site-header.LOGIN' | translate }}\n </a>\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
610
612
  }
611
613
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderLoginComponent, decorators: [{
612
614
  type: Component,
@@ -844,7 +846,7 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
844
846
  }
845
847
  }
846
848
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderSearchComponent, deps: [{ token: EclAreaDataService }, { token: i2.EclRtlService }], target: i0.ɵɵFactoryTarget.Component }); }
847
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderSearchComponent, isStandalone: false, selector: "ecl-site-header-search", inputs: { searchInputText: "searchInputText", searchInputPlaceholder: "searchInputPlaceholder", searchButtonLabel: "searchButtonLabel" }, outputs: { search: "search", searchToggle: "searchToggle" }, host: { properties: { "class": "this.class", "attr.role": "this.role" } }, providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR], viewQueries: [{ propertyName: "searchLinkElement", first: true, predicate: ["searchLink"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<a\n #searchLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__search-toggle\"\n data-ecl-search-toggle=\"true\"\n aria-controls=\"search-form-id\"\n [attr.aria-expanded]=\"isSearchBoxActive\"\n (click)=\"onSearchBoxToggle($event)\">\n <ecl-icon icon=\"search\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.common.SEARCH' | translate }}\n</a>\n\n<ecl-search-form\n [style]=\"{'--ecl-search-arrow-position': searchArrowPosition}\"\n (search)=\"onSearch($event)\"\n [placeholder]=\"searchInputPlaceholder\"\n (ngModelChange)=\"onModelChange($event)\"\n [(ngModel)]=\"searchInputText\"\n [searchButtonLabel]=\"searchButtonLabel\"\n [class]=\"getSearchBoxCssClasses()\">\n</ecl-search-form>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i5.EclSearchFormComponent, selector: "ecl-search-form", inputs: ["searchInputText", "placeholder", "searchButtonLabel", "searchButtonIcon", "buttonExtraClassses", "inputExtraClassses"], outputs: ["search"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
849
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderSearchComponent, isStandalone: false, selector: "ecl-site-header-search", inputs: { searchInputText: "searchInputText", searchInputPlaceholder: "searchInputPlaceholder", searchButtonLabel: "searchButtonLabel" }, outputs: { search: "search", searchToggle: "searchToggle" }, host: { properties: { "class": "this.class", "attr.role": "this.role" } }, providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR], viewQueries: [{ propertyName: "searchLinkElement", first: true, predicate: ["searchLink"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<a\n #searchLink\n href=\"#\"\n class=\"ecl-button ecl-button--tertiary ecl-site-header__search-toggle\"\n data-ecl-search-toggle=\"true\"\n aria-controls=\"search-form-id\"\n [attr.aria-expanded]=\"isSearchBoxActive\"\n (click)=\"onSearchBoxToggle($event)\">\n <ecl-icon icon=\"search\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n {{ 'ecl.common.SEARCH' | translate }}\n</a>\n\n<ecl-search-form\n [style]=\"{'--ecl-search-arrow-position': searchArrowPosition}\"\n (search)=\"onSearch($event)\"\n [placeholder]=\"searchInputPlaceholder\"\n (ngModelChange)=\"onModelChange($event)\"\n [(ngModel)]=\"searchInputText\"\n [searchButtonLabel]=\"searchButtonLabel\"\n [class]=\"getSearchBoxCssClasses()\">\n</ecl-search-form>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: i5$1.EclSearchFormComponent, selector: "ecl-search-form", inputs: ["searchInputText", "placeholder", "searchButtonLabel", "searchButtonIcon", "buttonExtraClassses", "inputExtraClassses"], outputs: ["search"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
848
850
  }
849
851
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderSearchComponent, decorators: [{
850
852
  type: Component,
@@ -1069,13 +1071,13 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1069
1071
  }
1070
1072
  });
1071
1073
  }
1072
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderComponent, deps: [{ token: i1$1.EclHeaderMenuComunicationService }, { token: EclAreaDataService }, { token: i1.BreakpointObserver }, { token: i0.ElementRef }, { token: i2.EclThemeService }, { token: i2.EclRtlService }, { token: i3$1.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
1073
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderComponent, isStandalone: false, selector: "ecl-site-header", inputs: { siteName: "siteName", languageCode: "languageCode", logoUrl: "logoUrl", logoSize: "logoSize" }, outputs: { logoClick: "logoClick", languageClick: "languageClick" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclLoginComponent", first: true, predicate: EclSiteHeaderLoginComponent, descendants: true }, { propertyName: "eclMenuComponent", first: true, predicate: EclMenuComponent, descendants: true }, { propertyName: "eclMegaMenuComponent", first: true, predicate: EclMegaMenuComponent, descendants: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }, { propertyName: "eclNotificationComponent", first: true, predicate: EclSiteHeaderNotificationComponent, descendants: true }, { propertyName: "eclHeaderLink", first: true, predicate: i0.forwardRef(() => EclSiteHeaderLinkDirective), descendants: true }, { propertyName: "eclHeaderImage", first: true, predicate: i0.forwardRef(() => EclSiteHeaderImageDirective), descendants: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true }, { propertyName: "siteHeaderHeader", first: true, predicate: ["siteHeaderHeader"], descendants: true }, { propertyName: "bannerHeader", first: true, predicate: ["bannerHeader"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__background\">\n <div class=\"ecl-site-header__header\" #siteHeaderHeader>\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n @if(hasCustomLink()) {\n <ng-content select=\"[eclSiteHeaderLink]\"></ng-content>\n } @else {\n <a eclLink variant=\"standalone\" class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n @if (eclThemeService.isEC$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <source\n srcset=\"./assets/images/ecl/ec/logo/positive/logo-ec--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 996px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/ec/logo/logo-ec--mute.svg\"\n [attr.alt]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" />\n </picture>\n }\n @if (eclThemeService.isEU$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 996px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n alt=\"European Union\" />\n </picture>\n }\n </a>\n }\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n </div>\n <ng-content select=\"ecl-site-header-notification\"></ng-content>\n</div>\n\n\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n@if (siteName) {\n <div class=\"ecl-site-header__banner\" #bannerHeader>\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", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }, { kind: "directive", type: EclSiteHeaderPictureDirective, selector: "[eclSiteHeaderPicture]" }, { kind: "pipe", type: i6$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
1074
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderComponent, deps: [{ token: i1$1.EclHeaderMenuComunicationService }, { token: EclAreaDataService }, { token: i1.BreakpointObserver }, { token: i0.ElementRef }, { token: i2.EclThemeService }, { token: i2.EclRtlService }, { token: i3$2.I18nService }], target: i0.ɵɵFactoryTarget.Component }); }
1075
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderComponent, isStandalone: false, selector: "ecl-site-header", inputs: { siteName: "siteName", languageCode: "languageCode", logoUrl: "logoUrl", logoSize: "logoSize" }, outputs: { logoClick: "logoClick", languageClick: "languageClick" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclLoginComponent", first: true, predicate: EclSiteHeaderLoginComponent, descendants: true }, { propertyName: "eclMenuComponent", first: true, predicate: EclMenuComponent, descendants: true }, { propertyName: "eclMegaMenuComponent", first: true, predicate: EclMegaMenuComponent, descendants: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }, { propertyName: "eclNotificationComponent", first: true, predicate: EclSiteHeaderNotificationComponent, descendants: true }, { propertyName: "eclHeaderLink", first: true, predicate: i0.forwardRef(() => EclSiteHeaderLinkDirective), descendants: true }, { propertyName: "eclHeaderImage", first: true, predicate: i0.forwardRef(() => EclSiteHeaderImageDirective), descendants: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true }, { propertyName: "siteHeaderHeader", first: true, predicate: ["siteHeaderHeader"], descendants: true }, { propertyName: "bannerHeader", first: true, predicate: ["bannerHeader"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__background\">\n <div class=\"ecl-site-header__header\" #siteHeaderHeader>\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n @if(hasCustomLink()) {\n <ng-content select=\"[eclSiteHeaderLink]\"></ng-content>\n } @else {\n <a eclLink variant=\"standalone\" class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n @if (eclThemeService.isEC$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <source\n srcset=\"./assets/images/ecl/ec/logo/positive/logo-ec--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 996px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/ec/logo/logo-ec--mute.svg\"\n [attr.alt]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" />\n </picture>\n }\n @if (eclThemeService.isEU$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 996px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n alt=\"European Union\" />\n </picture>\n }\n </a>\n }\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n </div>\n <ng-content select=\"ecl-site-header-notification\"></ng-content>\n</div>\n\n\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n@if (siteName) {\n <div class=\"ecl-site-header__banner\" #bannerHeader>\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", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }, { kind: "directive", type: EclSiteHeaderPictureDirective, selector: "[eclSiteHeaderPicture]" }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
1074
1076
  }
1075
1077
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderComponent, decorators: [{
1076
1078
  type: Component,
1077
1079
  args: [{ selector: 'ecl-site-header', standalone: false, template: "<div class=\"ecl-site-header__background\">\n <div class=\"ecl-site-header__header\" #siteHeaderHeader>\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n @if(hasCustomLink()) {\n <ng-content select=\"[eclSiteHeaderLink]\"></ng-content>\n } @else {\n <a eclLink variant=\"standalone\" class=\"ecl-site-header__logo-link\"\n href=\"https://ec.europa.eu/info/index_{{ languageCode }}\" (click)=\"onECLogoClick($event)\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <ng-content select=\"[eclSiteHeaderEnvironment]\"></ng-content>\n\n @if (eclThemeService.isEC$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\">\n <source\n srcset=\"./assets/images/ecl/ec/logo/positive/logo-ec--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 996px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/ec/logo/logo-ec--mute.svg\"\n [attr.alt]=\"'ecl.footer.EUROPEAN-COMMISSION' | translate\" />\n </picture>\n }\n @if (eclThemeService.isEU$ | async) {\n <picture eclSiteHeaderPicture\n [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n media=\"(min-width: 996px)\" />\n <img class=\"ecl-site-header__logo-image ecl-site-header__logo-image--{{logoSize}}\"\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ partOfLogoName }}.svg\"\n alt=\"European Union\" />\n </picture>\n }\n </a>\n }\n <ng-content select=\"ecl-site-header-action\"></ng-content>\n </div>\n </div>\n </div>\n <ng-content select=\"ecl-site-header-notification\"></ng-content>\n</div>\n\n\n<ng-content select=\"ecl-site-header-banner-top\"></ng-content>\n@if (siteName) {\n <div class=\"ecl-site-header__banner\" #bannerHeader>\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", styles: [":host{display:block}\n"] }]
1078
- }], ctorParameters: () => [{ type: i1$1.EclHeaderMenuComunicationService }, { type: EclAreaDataService }, { type: i1.BreakpointObserver }, { type: i0.ElementRef }, { type: i2.EclThemeService }, { type: i2.EclRtlService }, { type: i3$1.I18nService }], propDecorators: { siteName: [{
1080
+ }], ctorParameters: () => [{ type: i1$1.EclHeaderMenuComunicationService }, { type: EclAreaDataService }, { type: i1.BreakpointObserver }, { type: i0.ElementRef }, { type: i2.EclThemeService }, { type: i2.EclRtlService }, { type: i3$2.I18nService }], propDecorators: { siteName: [{
1079
1081
  type: Input
1080
1082
  }], languageCode: [{
1081
1083
  type: Input
@@ -1125,9 +1127,187 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
1125
1127
  args: [forwardRef(() => EclSiteHeaderImageDirective), { descendants: true }]
1126
1128
  }] } });
1127
1129
 
1130
+ class EclSiteHeaderCustomActionLinkDirective extends ECLBaseDirective {
1131
+ constructor() {
1132
+ super(...arguments);
1133
+ this.className = 'ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary';
1134
+ this.customActionOverlayToggle = new EventEmitter();
1135
+ this.ARIA_CONTROLS = 'custom-action-overlay';
1136
+ }
1137
+ ngAfterContentInit() {
1138
+ setTimeout(() => {
1139
+ if (this.eclIconComponent) {
1140
+ this.eclIconComponent.baseDirective.class = this.eclIconComponent.baseDirective.class + ' ecl-site-header__icon';
1141
+ }
1142
+ if (!this.hasLink()) {
1143
+ this.href = '#';
1144
+ this.isOverlayExpanded = false;
1145
+ this.ariaControls = this.ARIA_CONTROLS;
1146
+ }
1147
+ });
1148
+ }
1149
+ onClick(evt) {
1150
+ if (!this.hasLink()) {
1151
+ this.isOverlayExpanded = !this.isOverlayExpanded;
1152
+ evt.preventDefault();
1153
+ this.customActionOverlayToggle.emit(this.isOverlayExpanded);
1154
+ }
1155
+ }
1156
+ hasLink() {
1157
+ return (!!this.href && this.href !== '#') || !!this.routerLink;
1158
+ }
1159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1160
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderCustomActionLinkDirective, isStandalone: false, selector: "a[eclSiteHeaderCustomActionLink]", inputs: { href: "href", routerLink: "routerLink" }, outputs: { customActionOverlayToggle: "customActionOverlayToggle" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class": "this.className", "attr.aria-expanded": "this.isOverlayExpanded", "attr.aria-controls": "this.ariaControls", "attr.href": "this.href", "attr.routerLink": "this.routerLink" } }, queries: [{ propertyName: "eclIconComponent", first: true, predicate: i0.forwardRef(() => EclIconComponent), descendants: true }], usesInheritance: true, ngImport: i0 }); }
1161
+ }
1162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionLinkDirective, decorators: [{
1163
+ type: Directive,
1164
+ args: [{
1165
+ selector: 'a[eclSiteHeaderCustomActionLink]',
1166
+ standalone: false,
1167
+ }]
1168
+ }], propDecorators: { className: [{
1169
+ type: HostBinding,
1170
+ args: ['class']
1171
+ }], isOverlayExpanded: [{
1172
+ type: HostBinding,
1173
+ args: ['attr.aria-expanded']
1174
+ }], ariaControls: [{
1175
+ type: HostBinding,
1176
+ args: ['attr.aria-controls']
1177
+ }], href: [{
1178
+ type: Input
1179
+ }, {
1180
+ type: HostBinding,
1181
+ args: ['attr.href']
1182
+ }], routerLink: [{
1183
+ type: Input
1184
+ }, {
1185
+ type: HostBinding,
1186
+ args: ['attr.routerLink']
1187
+ }], customActionOverlayToggle: [{
1188
+ type: Output
1189
+ }], eclIconComponent: [{
1190
+ type: ContentChild,
1191
+ args: [forwardRef(() => EclIconComponent), { descendants: true }]
1192
+ }], onClick: [{
1193
+ type: HostListener,
1194
+ args: ['click', ['$event']]
1195
+ }] } });
1196
+ class EclSiteHeaderCustomActionContentDirective extends ECLBaseDirective {
1197
+ constructor() {
1198
+ super(...arguments);
1199
+ this.className = true;
1200
+ }
1201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1202
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderCustomActionContentDirective, isStandalone: false, selector: "div[eclSiteHeaderCustomActionContent]", host: { properties: { "class.ecl-site-header__custom-action-content": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
1203
+ }
1204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionContentDirective, decorators: [{
1205
+ type: Directive,
1206
+ args: [{
1207
+ selector: 'div[eclSiteHeaderCustomActionContent]',
1208
+ standalone: false,
1209
+ }]
1210
+ }], propDecorators: { className: [{
1211
+ type: HostBinding,
1212
+ args: ['class.ecl-site-header__custom-action-content']
1213
+ }] } });
1214
+ class EclSiteHeaderCustomActionTitleDirective extends ECLBaseDirective {
1215
+ constructor() {
1216
+ super(...arguments);
1217
+ this.className = true;
1218
+ this.id = 'custom-action-overlay-title';
1219
+ }
1220
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1221
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: EclSiteHeaderCustomActionTitleDirective, isStandalone: false, selector: "div[eclSiteHeaderCustomActionTitle]", inputs: { id: "id" }, host: { properties: { "class.ecl-site-header__custom-action-title": "this.className", "attr.id": "this.id" } }, usesInheritance: true, ngImport: i0 }); }
1222
+ }
1223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionTitleDirective, decorators: [{
1224
+ type: Directive,
1225
+ args: [{
1226
+ selector: 'div[eclSiteHeaderCustomActionTitle]',
1227
+ standalone: false,
1228
+ }]
1229
+ }], propDecorators: { className: [{
1230
+ type: HostBinding,
1231
+ args: ['class.ecl-site-header__custom-action-title']
1232
+ }], id: [{
1233
+ type: HostBinding,
1234
+ args: ['attr.id']
1235
+ }, {
1236
+ type: Input
1237
+ }] } });
1238
+
1239
+ class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
1240
+ constructor(document, renderer) {
1241
+ super();
1242
+ this.document = document;
1243
+ this.renderer = renderer;
1244
+ this.class = 'ecl-site-header__custom-action';
1245
+ this.isOverlayExpanded = false;
1246
+ this.destroy$ = new Subject();
1247
+ }
1248
+ ngAfterContentInit() {
1249
+ if (this.title) {
1250
+ this.titleId = this.title.id;
1251
+ }
1252
+ if (this.eclSiteHeaderCustomActionLink) {
1253
+ this.eclSiteHeaderCustomActionLink.customActionOverlayToggle.pipe(takeUntil$1(this.destroy$)).subscribe((isExpanded) => {
1254
+ this.isOverlayExpanded = isExpanded;
1255
+ });
1256
+ }
1257
+ }
1258
+ ngOnDestroy() {
1259
+ this.destroy$.next(true);
1260
+ this.destroy$.unsubscribe();
1261
+ }
1262
+ onCustomActionOverlayClose() {
1263
+ this.isOverlayExpanded = false;
1264
+ if (!this.eclSiteHeaderCustomActionLink.hasLink())
1265
+ this.eclSiteHeaderCustomActionLink.isOverlayExpanded = false;
1266
+ }
1267
+ onClickOutsideHandler() {
1268
+ this.onCustomActionOverlayClose();
1269
+ }
1270
+ onEscapeKeydownHandler() {
1271
+ this.onCustomActionOverlayClose();
1272
+ }
1273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionComponent, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1274
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: EclSiteHeaderCustomActionComponent, isStandalone: false, selector: "div[eclSiteHeaderCustomAction]", host: { listeners: { "eclClickOutside": "onClickOutsideHandler()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.class" } }, queries: [{ propertyName: "title", first: true, predicate: EclSiteHeaderCustomActionTitleDirective, descendants: true }, { propertyName: "eclSiteHeaderCustomActionLink", first: true, predicate: EclSiteHeaderCustomActionLinkDirective, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i2.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<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", dependencies: [{ kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i3$1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "containerStyleClass"] }, { kind: "directive", type: i3$1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i5.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
1275
+ }
1276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderCustomActionComponent, decorators: [{
1277
+ type: Component,
1278
+ args: [{ selector: 'div[eclSiteHeaderCustomAction]', standalone: false, hostDirectives: [
1279
+ {
1280
+ directive: ECLClickOutsideDirective,
1281
+ outputs: ['eclClickOutside'],
1282
+ },
1283
+ ], template: "<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" }]
1284
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
1285
+ type: Inject,
1286
+ args: [DOCUMENT]
1287
+ }] }, { type: i0.Renderer2 }], propDecorators: { class: [{
1288
+ type: HostBinding,
1289
+ args: ['class']
1290
+ }], title: [{
1291
+ type: ContentChild,
1292
+ args: [EclSiteHeaderCustomActionTitleDirective]
1293
+ }], eclSiteHeaderCustomActionLink: [{
1294
+ type: ContentChild,
1295
+ args: [EclSiteHeaderCustomActionLinkDirective]
1296
+ }], onClickOutsideHandler: [{
1297
+ type: HostListener,
1298
+ args: ['eclClickOutside']
1299
+ }], onEscapeKeydownHandler: [{
1300
+ type: HostListener,
1301
+ args: ['document:keydown.escape']
1302
+ }] } });
1303
+
1128
1304
  const COMPONENTS = [
1129
1305
  EclSiteHeaderComponent,
1130
1306
  EclSiteHeaderActionComponent,
1307
+ EclSiteHeaderCustomActionComponent,
1308
+ EclSiteHeaderCustomActionContentDirective,
1309
+ EclSiteHeaderCustomActionLinkDirective,
1310
+ EclSiteHeaderCustomActionTitleDirective,
1131
1311
  EclSiteHeaderLoginComponent,
1132
1312
  EclSiteHeaderLoginDescriptionDirective,
1133
1313
  EclSiteHeaderLoginSeparatorDirective,
@@ -1146,6 +1326,10 @@ class EclSiteHeaderModule {
1146
1326
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1147
1327
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderModule, declarations: [EclSiteHeaderComponent,
1148
1328
  EclSiteHeaderActionComponent,
1329
+ EclSiteHeaderCustomActionComponent,
1330
+ EclSiteHeaderCustomActionContentDirective,
1331
+ EclSiteHeaderCustomActionLinkDirective,
1332
+ EclSiteHeaderCustomActionTitleDirective,
1149
1333
  EclSiteHeaderLoginComponent,
1150
1334
  EclSiteHeaderLoginDescriptionDirective,
1151
1335
  EclSiteHeaderLoginSeparatorDirective,
@@ -1159,6 +1343,7 @@ class EclSiteHeaderModule {
1159
1343
  EclSiteHeaderImageDirective,
1160
1344
  EclSiteHeaderPictureDirective,
1161
1345
  EclSiteHeaderLinkDirective], imports: [CommonModule,
1346
+ A11yModule,
1162
1347
  TranslateModule,
1163
1348
  FormsModule,
1164
1349
  ReactiveFormsModule,
@@ -1168,6 +1353,10 @@ class EclSiteHeaderModule {
1168
1353
  EclFormGroupModule,
1169
1354
  EclSearchFormModule], exports: [EclSiteHeaderComponent,
1170
1355
  EclSiteHeaderActionComponent,
1356
+ EclSiteHeaderCustomActionComponent,
1357
+ EclSiteHeaderCustomActionContentDirective,
1358
+ EclSiteHeaderCustomActionLinkDirective,
1359
+ EclSiteHeaderCustomActionTitleDirective,
1171
1360
  EclSiteHeaderLoginComponent,
1172
1361
  EclSiteHeaderLoginDescriptionDirective,
1173
1362
  EclSiteHeaderLoginSeparatorDirective,
@@ -1182,6 +1371,7 @@ class EclSiteHeaderModule {
1182
1371
  EclSiteHeaderPictureDirective,
1183
1372
  EclSiteHeaderLinkDirective] }); }
1184
1373
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: EclSiteHeaderModule, providers: [EclAreaDataService], imports: [CommonModule,
1374
+ A11yModule,
1185
1375
  TranslateModule,
1186
1376
  FormsModule,
1187
1377
  ReactiveFormsModule,
@@ -1196,6 +1386,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
1196
1386
  args: [{
1197
1387
  imports: [
1198
1388
  CommonModule,
1389
+ A11yModule,
1199
1390
  TranslateModule,
1200
1391
  FormsModule,
1201
1392
  ReactiveFormsModule,
@@ -1215,5 +1406,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
1215
1406
  * Generated bundle index. Do not edit.
1216
1407
  */
1217
1408
 
1218
- export { ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR, EclSiteHeaderActionComponent, EclSiteHeaderBannerTopComponent, EclSiteHeaderComponent, EclSiteHeaderCtaDirective, EclSiteHeaderEnvironmentComponent, EclSiteHeaderImageDirective, EclSiteHeaderLanguageClickEvent, EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageComponent, EclSiteHeaderLanguagePopoverComponent, EclSiteHeaderLanguageSelectedEvent, EclSiteHeaderLinkDirective, EclSiteHeaderLoginBoxToggleEvent, EclSiteHeaderLoginComponent, EclSiteHeaderLoginDescriptionDirective, EclSiteHeaderLoginEvent, EclSiteHeaderLoginSeparatorDirective, EclSiteHeaderLogoClickEvent, EclSiteHeaderModule, EclSiteHeaderNotificationComponent, EclSiteHeaderPictureDirective, EclSiteHeaderSearchComponent, EclSiteHeaderSearchEvent, EclSiteHeaderSearchToggleEvent };
1409
+ export { ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR, EclSiteHeaderActionComponent, EclSiteHeaderBannerTopComponent, EclSiteHeaderComponent, EclSiteHeaderCtaDirective, EclSiteHeaderCustomActionComponent, EclSiteHeaderCustomActionContentDirective, EclSiteHeaderCustomActionLinkDirective, EclSiteHeaderCustomActionTitleDirective, EclSiteHeaderEnvironmentComponent, EclSiteHeaderImageDirective, EclSiteHeaderLanguageClickEvent, EclSiteHeaderLanguageCloseEvent, EclSiteHeaderLanguageComponent, EclSiteHeaderLanguagePopoverComponent, EclSiteHeaderLanguageSelectedEvent, EclSiteHeaderLinkDirective, EclSiteHeaderLoginBoxToggleEvent, EclSiteHeaderLoginComponent, EclSiteHeaderLoginDescriptionDirective, EclSiteHeaderLoginEvent, EclSiteHeaderLoginSeparatorDirective, EclSiteHeaderLogoClickEvent, EclSiteHeaderModule, EclSiteHeaderNotificationComponent, EclSiteHeaderPictureDirective, EclSiteHeaderSearchComponent, EclSiteHeaderSearchEvent, EclSiteHeaderSearchToggleEvent };
1219
1410
  //# sourceMappingURL=eui-ecl-components-ecl-site-header.mjs.map