@eui/ecl 22.0.0-alpha.33 → 22.0.0-alpha.35

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 (184) hide show
  1. package/docs/changelog.html +38 -0
  2. package/docs/components/EclAccordionSummaryComponent.html +1 -1
  3. package/docs/components/EclAddToCalendarComponent.html +1 -1
  4. package/docs/components/EclAnimatedNumbersComponent.html +1 -1
  5. package/docs/components/EclAnimatedNumbersItemComponent.html +1 -1
  6. package/docs/components/EclAppComponent.html +1 -1
  7. package/docs/components/EclBannerComponent.html +1 -1
  8. package/docs/components/EclBlockquoteComponent.html +1 -1
  9. package/docs/components/EclBreadcrumbComponent.html +1 -1
  10. package/docs/components/EclBreadcrumbSegmentComponent.html +1 -1
  11. package/docs/components/EclButtonComponent.html +1 -1
  12. package/docs/components/EclCardBodyComponent.html +1 -1
  13. package/docs/components/EclCardComponent.html +1 -1
  14. package/docs/components/EclCarouselComponent.html +1 -1
  15. package/docs/components/EclCarouselItemComponent.html +1 -1
  16. package/docs/components/EclCategoryFilterComponent.html +1 -1
  17. package/docs/components/EclCategoryFilterItemComponent.html +1 -1
  18. package/docs/components/EclCategoryFilterListComponent.html +1 -1
  19. package/docs/components/EclCheckboxHelpComponent.html +1 -1
  20. package/docs/components/EclCheckboxLabelComponent.html +1 -1
  21. package/docs/components/EclContentBlockComponent.html +1 -1
  22. package/docs/components/EclContentItemComponent.html +1 -1
  23. package/docs/components/EclDateBlockComponent.html +1 -1
  24. package/docs/components/EclDescriptionListDefinitionComponent.html +1 -1
  25. package/docs/components/EclExpandableComponent.html +1 -1
  26. package/docs/components/EclFactFiguresComponent.html +1 -1
  27. package/docs/components/EclFactFiguresItemComponent.html +1 -1
  28. package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
  29. package/docs/components/EclFeaturedComponent.html +1 -1
  30. package/docs/components/EclFeaturedItemComponent.html +1 -1
  31. package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
  32. package/docs/components/EclFileComponent.html +1 -1
  33. package/docs/components/EclFileItemComponent.html +1 -1
  34. package/docs/components/EclFileItemsComponent.html +1 -1
  35. package/docs/components/EclFileListsComponent.html +1 -1
  36. package/docs/components/EclFormGroupComponent.html +1 -1
  37. package/docs/components/EclFormLabelComponent.html +1 -1
  38. package/docs/components/EclGalleryComponent.html +1 -1
  39. package/docs/components/EclGalleryFooterComponent.html +1 -1
  40. package/docs/components/EclGalleryItemComponent.html +1 -1
  41. package/docs/components/EclHighlightBoxComponent.html +1 -1
  42. package/docs/components/EclHighlightedSearchComponent.html +1 -1
  43. package/docs/components/EclIconComponent.html +4 -3
  44. package/docs/components/EclIndicatorComponent-1.html +1 -1
  45. package/docs/components/EclIndicatorComponent.html +1 -1
  46. package/docs/components/EclInpageNavigationComponent.html +1 -1
  47. package/docs/components/EclInpageNavigationItemComponent.html +1 -1
  48. package/docs/components/EclLayoutWrapperComponent.html +1 -1
  49. package/docs/components/EclListIllustrationComponent.html +1 -1
  50. package/docs/components/EclListIllustrationItemComponent.html +1 -1
  51. package/docs/components/EclLoadingIndicatorComponent.html +1 -1
  52. package/docs/components/EclMediaContainerComponent.html +1 -1
  53. package/docs/components/EclMegaMenuComponent.html +1 -1
  54. package/docs/components/EclMegaMenuFeaturedComponent.html +1 -1
  55. package/docs/components/EclMegaMenuInfoComponent.html +1 -1
  56. package/docs/components/EclMegaMenuItemComponent.html +1 -1
  57. package/docs/components/EclMegaMenuSubitemComponent.html +1 -1
  58. package/docs/components/EclMenuComponent.html +1 -1
  59. package/docs/components/EclMenuItemComponent.html +1 -1
  60. package/docs/components/EclMenuMegaComponent.html +1 -1
  61. package/docs/components/EclMenuMegaItemComponent.html +1 -1
  62. package/docs/components/EclModalBodyComponent.html +1 -1
  63. package/docs/components/EclModalComponent.html +1 -1
  64. package/docs/components/EclModalFooterComponent.html +1 -1
  65. package/docs/components/EclModalHeaderComponent.html +1 -1
  66. package/docs/components/EclMultiselectComponent.html +1 -1
  67. package/docs/components/EclMultiselectDropdownComponent.html +1 -1
  68. package/docs/components/EclMultiselectInputComponent.html +1 -1
  69. package/docs/components/EclMultiselectOptgroupComponent.html +1 -1
  70. package/docs/components/EclMultiselectOptionComponent.html +1 -1
  71. package/docs/components/EclNavigationListComponent.html +1 -1
  72. package/docs/components/EclNavigationListItemComponent.html +1 -1
  73. package/docs/components/EclNewsTickerComponent.html +1 -1
  74. package/docs/components/EclNewsTickerItemComponent.html +1 -1
  75. package/docs/components/EclNotificationComponent.html +1 -1
  76. package/docs/components/EclPageHeaderComponent.html +1 -1
  77. package/docs/components/EclPageHeaderDescriptionContainerComponent.html +1 -1
  78. package/docs/components/EclPageHeaderExpandableComponent.html +1 -1
  79. package/docs/components/EclPageHeaderNextComponent.html +1 -1
  80. package/docs/components/EclPageHeaderSectionComponent.html +1 -1
  81. package/docs/components/EclPageHeaderSectionInfoComponent.html +1 -1
  82. package/docs/components/EclPageSummaryComponent.html +1 -1
  83. package/docs/components/EclPaginationComponent.html +1 -1
  84. package/docs/components/EclPaginationItemComponent.html +1 -1
  85. package/docs/components/EclPopoverComponent.html +1 -1
  86. package/docs/components/EclQuizCardComponent.html +1 -1
  87. package/docs/components/EclQuizComponent.html +1 -1
  88. package/docs/components/EclRadioHelpComponent.html +1 -1
  89. package/docs/components/EclRadioLabelComponent.html +1 -1
  90. package/docs/components/EclRangeBubbleComponent.html +1 -1
  91. package/docs/components/EclRangeValueComponent.html +1 -1
  92. package/docs/components/EclRatingFieldComponent.html +1 -1
  93. package/docs/components/EclSearchFormComponent.html +1 -1
  94. package/docs/components/EclSelectContainerComponent.html +1 -1
  95. package/docs/components/EclSiteFooterComponent.html +2 -2
  96. package/docs/components/EclSiteFooterCoownerComponent.html +5 -40
  97. package/docs/components/EclSiteFooterCoreComponent.html +5 -40
  98. package/docs/components/EclSiteFooterFeedbackComponent.html +1 -1
  99. package/docs/components/EclSiteFooterFixedContentEUComponent.html +1 -1
  100. package/docs/components/EclSiteFooterRowCommonComponent.html +5 -40
  101. package/docs/components/EclSiteHeaderActionComponent.html +5 -105
  102. package/docs/components/EclSiteHeaderBannerTopComponent.html +5 -105
  103. package/docs/components/EclSiteHeaderComponent.html +56 -102
  104. package/docs/components/EclSiteHeaderCustomActionComponent.html +7 -331
  105. package/docs/components/EclSiteHeaderEnvironmentComponent.html +5 -40
  106. package/docs/components/EclSiteHeaderLanguageComponent.html +4 -365
  107. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +4 -59
  108. package/docs/components/EclSiteHeaderLoginComponent.html +9 -9
  109. package/docs/components/EclSiteHeaderNotificationComponent.html +5 -69
  110. package/docs/components/EclSiteHeaderSearchComponent.html +43 -24
  111. package/docs/components/EclSloganTickerComponent.html +1 -1
  112. package/docs/components/EclSocialMediaFollowComponent.html +1 -1
  113. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  114. package/docs/components/EclSplashPageComponent.html +1 -1
  115. package/docs/components/EclSplashPageLanguageCategoryComponent.html +1 -1
  116. package/docs/components/EclSplashPageLanguageContainerComponent.html +1 -1
  117. package/docs/components/EclSplashPageLanguageLinkComponent.html +1 -1
  118. package/docs/components/EclSpotlightComponent.html +1 -1
  119. package/docs/components/EclSpotlightLinkComponent.html +1 -1
  120. package/docs/components/EclStickyContainerComponent.html +1 -1
  121. package/docs/components/EclStoryCardComponent.html +1 -1
  122. package/docs/components/EclStoryCardGridDetailsComponent.html +1 -1
  123. package/docs/components/EclStoryCardItemComponent.html +1 -1
  124. package/docs/components/EclTabComponent.html +1 -1
  125. package/docs/components/EclTabLabelComponent.html +1 -1
  126. package/docs/components/EclTableSortButtonComponent.html +1 -1
  127. package/docs/components/EclTabsComponent.html +1 -1
  128. package/docs/components/EclTagComponent.html +1 -1
  129. package/docs/components/EclTextMediaComponent.html +1 -1
  130. package/docs/components/EclTimelineComponent.html +1 -1
  131. package/docs/components/EclTimelineItemComponent.html +1 -1
  132. package/docs/components/EclTimelineItemTogglerComponent.html +1 -1
  133. package/docs/directives/EclSiteFooterColumnDirective.html +0 -104
  134. package/docs/directives/EclSiteFooterCoownerItemDirective.html +0 -39
  135. package/docs/directives/EclSiteFooterCoownerListDirective.html +0 -85
  136. package/docs/directives/EclSiteFooterDescriptionDirective.html +0 -104
  137. package/docs/directives/EclSiteFooterDescriptionNameDirective.html +0 -104
  138. package/docs/directives/EclSiteFooterListItemDirective.html +0 -104
  139. package/docs/directives/EclSiteFooterRowDirective.html +0 -104
  140. package/docs/directives/EclSiteFooterSectionDirective.html +0 -39
  141. package/docs/directives/EclSiteFooterSocialMediaDirective.html +0 -104
  142. package/docs/directives/EclSiteFooterTitleDirective.html +0 -133
  143. package/docs/directives/EclSiteFooterTitleLinkDirective.html +0 -104
  144. package/docs/directives/EclSiteHeaderCtaDirective.html +0 -104
  145. package/docs/directives/EclSiteHeaderCustomActionContentDirective.html +0 -104
  146. package/docs/directives/EclSiteHeaderCustomActionLinkDirective.html +16 -253
  147. package/docs/directives/EclSiteHeaderCustomActionTitleDirective.html +0 -104
  148. package/docs/directives/EclSiteHeaderImageDirective.html +0 -39
  149. package/docs/directives/EclSiteHeaderLinkDirective.html +0 -104
  150. package/docs/directives/EclSiteHeaderLoginDescriptionDirective.html +0 -104
  151. package/docs/directives/EclSiteHeaderLoginSeparatorDirective.html +0 -104
  152. package/docs/directives/EclSiteHeaderPictureDirective.html +0 -104
  153. package/docs/js/search/search_index.js +2 -2
  154. package/docs/json/EclIconComponent.md +1 -1
  155. package/docs/json/EclSiteFooterComponent.md +1 -1
  156. package/docs/json/EclSiteHeaderComponent.md +3 -2
  157. package/docs/json/EclSiteHeaderCustomActionLinkDirective.md +2 -1
  158. package/docs/json/EclSiteHeaderLanguageComponent.md +2 -2
  159. package/docs/json/EclSiteHeaderLoginComponent.md +1 -1
  160. package/docs/json/EclSiteHeaderSearchComponent.md +3 -2
  161. package/docs/json/EclSocialMediaFollowItemComponent.md +1 -1
  162. package/docs/json/documentation.json +982 -1826
  163. package/docs/llms.txt +19 -92
  164. package/docs/miscellaneous/typealiases.html +28 -0
  165. package/docs/properties.html +1 -1
  166. package/fesm2022/eui-ecl-components-ecl-app.mjs +5 -1
  167. package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
  168. package/fesm2022/eui-ecl-components-ecl-icon.mjs +2 -1
  169. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  170. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +48 -116
  171. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  172. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +168 -224
  173. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  174. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  175. package/package.json +1 -1
  176. package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
  177. package/types/eui-ecl-components-ecl-icon.d.ts +8 -2
  178. package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
  179. package/types/eui-ecl-components-ecl-site-footer.d.ts +1 -10
  180. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  181. package/types/eui-ecl-components-ecl-site-header.d.ts +87 -90
  182. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  183. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +2 -2
  184. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
@@ -1,8 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Component, inject, PLATFORM_ID, Directive, EventEmitter, contentChild, forwardRef, HostListener, Output, Input, ElementRef, Renderer2, afterNextRender, viewChild, input, booleanAttribute, output, NgZone, DOCUMENT, signal, Injectable } from '@angular/core';
2
+ import { Component, inject, PLATFORM_ID, Directive, model, input, output, contentChild, forwardRef, ElementRef, Renderer2, afterNextRender, booleanAttribute, viewChild, NgZone, DOCUMENT, signal, Injectable } from '@angular/core';
3
3
  import * as i1 from '@eui/ecl/core';
4
4
  import { ECLBaseDirective, ECLClickOutsideDirective, EclBaseEvent, EclThemeService, EclRtlService, logoLanguageCode } from '@eui/ecl/core';
5
5
  import { isPlatformBrowser, UpperCasePipe, AsyncPipe } from '@angular/common';
6
+ import { outputToObservable } from '@angular/core/rxjs-interop';
6
7
  import * as i2 from '@angular/cdk/a11y';
7
8
  import { A11yModule } from '@angular/cdk/a11y';
8
9
  import * as i2$1 from '@eui/ecl/components/ecl-icon';
@@ -12,7 +13,6 @@ import * as i3 from '@eui/ecl/components/ecl-button';
12
13
  import { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';
13
14
  import { BreakpointObserver } from '@angular/cdk/layout';
14
15
  import { takeUntil as takeUntil$1 } from 'rxjs/operators';
15
- import { outputToObservable } from '@angular/core/rxjs-interop';
16
16
  import { GLOBAL_CONFIG_TOKEN, I18nService, EuiEuLanguages } from '@eui/core';
17
17
  import * as i3$1 from '@eui/ecl/components/ecl-link';
18
18
  import { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';
@@ -31,20 +31,15 @@ import { EUI_ECL_SEARCH_FORM } from '@eui/ecl/components/ecl-search-form';
31
31
  */
32
32
  // TODO: maybe could be part of the header, and we don't need this component?
33
33
  class EclSiteHeaderActionComponent extends ECLBaseDirective {
34
- constructor() {
35
- super(...arguments);
36
- this.class = 'ecl-site-header__action';
37
- }
38
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderActionComponent, isStandalone: true, 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" }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderActionComponent, isStandalone: true, selector: "ecl-site-header-action", host: { classAttribute: "ecl-site-header__action" }, 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" }); }
40
36
  }
41
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderActionComponent, decorators: [{
42
38
  type: Component,
43
- args: [{ selector: 'ecl-site-header-action', 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" }]
44
- }], propDecorators: { class: [{
45
- type: HostBinding,
46
- args: ['class']
47
- }] } });
39
+ args: [{ selector: 'ecl-site-header-action', host: {
40
+ class: 'ecl-site-header__action',
41
+ }, 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" }]
42
+ }] });
48
43
 
49
44
  /**
50
45
  * @deprecated This component is deprecated and will be removed in v23. Not used anymore.
@@ -54,7 +49,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
54
49
  class EclSiteHeaderBannerTopComponent extends ECLBaseDirective {
55
50
  constructor() {
56
51
  super(...arguments);
57
- this.className = true;
58
52
  this.platformId = inject(PLATFORM_ID);
59
53
  }
60
54
  ngOnInit() {
@@ -63,43 +57,41 @@ class EclSiteHeaderBannerTopComponent extends ECLBaseDirective {
63
57
  }
64
58
  }
65
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderBannerTopComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderBannerTopComponent, isStandalone: true, selector: "ecl-site-header-banner-top", host: { properties: { "class.ecl-site-header__banner-top": "this.className" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}\n"] }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderBannerTopComponent, isStandalone: true, selector: "ecl-site-header-banner-top", host: { classAttribute: "ecl-site-header__banner-top" }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}\n"] }); }
67
61
  }
68
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderBannerTopComponent, decorators: [{
69
63
  type: Component,
70
- args: [{ selector: 'ecl-site-header-banner-top', template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}\n"] }]
71
- }], propDecorators: { className: [{
72
- type: HostBinding,
73
- args: ['class.ecl-site-header__banner-top']
74
- }] } });
64
+ args: [{ selector: 'ecl-site-header-banner-top', host: {
65
+ class: 'ecl-site-header__banner-top',
66
+ }, template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>", styles: [":host{display:block}\n"] }]
67
+ }] });
75
68
 
76
69
  /**
77
70
  * This directive is used, when we want to show call-to-action link in the site-header. Used in harmonised and standardised header
78
71
  * variants.
79
72
  */
80
73
  class EclSiteHeaderCtaDirective extends ECLBaseDirective {
81
- constructor() {
82
- super(...arguments);
83
- this.className = true;
84
- }
85
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCtaDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
86
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderCtaDirective, isStandalone: true, selector: "[eclSiteHeaderCta]", host: { properties: { "class.ecl-site-header__cta": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
75
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderCtaDirective, isStandalone: true, selector: "[eclSiteHeaderCta]", host: { classAttribute: "ecl-site-header__cta" }, usesInheritance: true, ngImport: i0 }); }
87
76
  }
88
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCtaDirective, decorators: [{
89
78
  type: Directive,
90
79
  args: [{
91
80
  selector: '[eclSiteHeaderCta]',
81
+ host: {
82
+ class: 'ecl-site-header__cta',
83
+ },
92
84
  }]
93
- }], propDecorators: { className: [{
94
- type: HostBinding,
95
- args: ['class.ecl-site-header__cta']
96
- }] } });
85
+ }] });
97
86
 
98
87
  class EclSiteHeaderCustomActionLinkDirective extends ECLBaseDirective {
99
88
  constructor() {
100
89
  super(...arguments);
101
- this.className = 'ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary ecl-button--neutral ecl-button--icon-only';
102
- this.customActionOverlayToggle = new EventEmitter();
90
+ this.href = model(/* @ts-ignore */
91
+ ...(ngDevMode ? [undefined, { debugName: "href" }] : /* istanbul ignore next */ []));
92
+ this.routerLink = input(/* @ts-ignore */
93
+ ...(ngDevMode ? [undefined, { debugName: "routerLink" }] : /* istanbul ignore next */ []));
94
+ this.customActionOverlayToggle = output();
103
95
  this.eclIconComponent = contentChild(forwardRef(() => EclIconComponent), { ...(ngDevMode ? { debugName: "eclIconComponent" } : /* istanbul ignore next */ {}), descendants: true });
104
96
  this.ARIA_CONTROLS = 'custom-action-overlay';
105
97
  this.platformId = inject(PLATFORM_ID);
@@ -111,7 +103,7 @@ class EclSiteHeaderCustomActionLinkDirective extends ECLBaseDirective {
111
103
  this.eclIconComponent().addExtraClass('ecl-site-header__icon');
112
104
  }
113
105
  if (!this.hasLink()) {
114
- this.href = '#';
106
+ this.href.set('#');
115
107
  this.isOverlayExpanded = false;
116
108
  this.ariaControls = this.ARIA_CONTROLS;
117
109
  }
@@ -124,81 +116,57 @@ class EclSiteHeaderCustomActionLinkDirective extends ECLBaseDirective {
124
116
  }
125
117
  }
126
118
  hasLink() {
127
- return (!!this.href && this.href !== '#') || !!this.routerLink;
119
+ return (!!this.href() && this.href() !== '#') || !!this.routerLink();
128
120
  }
129
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
130
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclSiteHeaderCustomActionLinkDirective, isStandalone: true, 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, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
122
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.2", type: EclSiteHeaderCustomActionLinkDirective, isStandalone: true, selector: "a[eclSiteHeaderCustomActionLink]", inputs: { href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, routerLink: { classPropertyName: "routerLink", publicName: "routerLink", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { href: "hrefChange", customActionOverlayToggle: "customActionOverlayToggle" }, host: { listeners: { "click": "onClick($event)" }, properties: { "attr.aria-expanded": "isOverlayExpanded", "attr.aria-controls": "ariaControls", "attr.href": "href()", "attr.routerLink": "routerLink()" }, classAttribute: "ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary ecl-button--neutral ecl-button--icon-only" }, queries: [{ propertyName: "eclIconComponent", first: true, predicate: i0.forwardRef(() => EclIconComponent), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 }); }
131
123
  }
132
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionLinkDirective, decorators: [{
133
125
  type: Directive,
134
126
  args: [{
135
127
  selector: 'a[eclSiteHeaderCustomActionLink]',
128
+ host: {
129
+ class: 'ecl-site-header__custom-action-toggle ecl-button ecl-button--tertiary ecl-button--neutral ecl-button--icon-only',
130
+ '[attr.aria-expanded]': 'isOverlayExpanded',
131
+ '[attr.aria-controls]': 'ariaControls',
132
+ '[attr.href]': 'href()',
133
+ '[attr.routerLink]': 'routerLink()',
134
+ '(click)': 'onClick($event)',
135
+ },
136
136
  }]
137
- }], propDecorators: { className: [{
138
- type: HostBinding,
139
- args: ['class']
140
- }], isOverlayExpanded: [{
141
- type: HostBinding,
142
- args: ['attr.aria-expanded']
143
- }], ariaControls: [{
144
- type: HostBinding,
145
- args: ['attr.aria-controls']
146
- }], href: [{
147
- type: Input
148
- }, {
149
- type: HostBinding,
150
- args: ['attr.href']
151
- }], routerLink: [{
152
- type: Input
153
- }, {
154
- type: HostBinding,
155
- args: ['attr.routerLink']
156
- }], customActionOverlayToggle: [{
157
- type: Output
158
- }], eclIconComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclIconComponent), { ...{ descendants: true }, isSignal: true }] }], onClick: [{
159
- type: HostListener,
160
- args: ['click', ['$event']]
161
- }] } });
137
+ }], propDecorators: { href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }, { type: i0.Output, args: ["hrefChange"] }], routerLink: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerLink", required: false }] }], customActionOverlayToggle: [{ type: i0.Output, args: ["customActionOverlayToggle"] }], eclIconComponent: [{ type: i0.ContentChild, args: [forwardRef(() => EclIconComponent), { ...{ descendants: true }, isSignal: true }] }] } });
162
138
  class EclSiteHeaderCustomActionContentDirective extends ECLBaseDirective {
163
- constructor() {
164
- super(...arguments);
165
- this.className = true;
166
- }
167
139
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionContentDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
168
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderCustomActionContentDirective, isStandalone: true, selector: "div[eclSiteHeaderCustomActionContent]", host: { properties: { "class.ecl-site-header__custom-action-content": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
140
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderCustomActionContentDirective, isStandalone: true, selector: "div[eclSiteHeaderCustomActionContent]", host: { classAttribute: "ecl-site-header__custom-action-content" }, usesInheritance: true, ngImport: i0 }); }
169
141
  }
170
142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionContentDirective, decorators: [{
171
143
  type: Directive,
172
144
  args: [{
173
145
  selector: 'div[eclSiteHeaderCustomActionContent]',
146
+ host: {
147
+ class: 'ecl-site-header__custom-action-content',
148
+ },
174
149
  }]
175
- }], propDecorators: { className: [{
176
- type: HostBinding,
177
- args: ['class.ecl-site-header__custom-action-content']
178
- }] } });
150
+ }] });
179
151
  class EclSiteHeaderCustomActionTitleDirective extends ECLBaseDirective {
180
152
  constructor() {
181
153
  super(...arguments);
182
- this.className = true;
183
- this.id = 'custom-action-overlay-title';
154
+ this.id = input('custom-action-overlay-title', /* @ts-ignore */
155
+ ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
184
156
  }
185
157
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionTitleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
186
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderCustomActionTitleDirective, isStandalone: true, 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 }); }
158
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclSiteHeaderCustomActionTitleDirective, isStandalone: true, selector: "div[eclSiteHeaderCustomActionTitle]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "id()" }, classAttribute: "ecl-site-header__custom-action-title" }, usesInheritance: true, ngImport: i0 }); }
187
159
  }
188
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionTitleDirective, decorators: [{
189
161
  type: Directive,
190
162
  args: [{
191
163
  selector: 'div[eclSiteHeaderCustomActionTitle]',
164
+ host: {
165
+ class: 'ecl-site-header__custom-action-title',
166
+ '[attr.id]': 'id()',
167
+ },
192
168
  }]
193
- }], propDecorators: { className: [{
194
- type: HostBinding,
195
- args: ['class.ecl-site-header__custom-action-title']
196
- }], id: [{
197
- type: HostBinding,
198
- args: ['attr.id']
199
- }, {
200
- type: Input
201
- }] } });
169
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
202
170
 
203
171
  /**
204
172
  * This components gives opportunity for user to add a custom action. It will appear at first place, before log-in and language
@@ -207,26 +175,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
207
175
  class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
208
176
  constructor() {
209
177
  super(...arguments);
210
- this.class = 'ecl-site-header__custom-action';
211
- this.title = contentChild(EclSiteHeaderCustomActionTitleDirective, /* @ts-ignore */
212
- ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
213
- this.eclSiteHeaderCustomActionLink = contentChild(EclSiteHeaderCustomActionLinkDirective, /* @ts-ignore */
214
- ...(ngDevMode ? [{ debugName: "eclSiteHeaderCustomActionLink" }] : /* istanbul ignore next */ []));
215
178
  /**
216
179
  * Used to expand/collapse the dropdown, if any.
217
180
  */
218
181
  this.isOverlayExpanded = false;
182
+ this.title = contentChild(EclSiteHeaderCustomActionTitleDirective, /* @ts-ignore */
183
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
184
+ this.eclSiteHeaderCustomActionLink = contentChild(EclSiteHeaderCustomActionLinkDirective, /* @ts-ignore */
185
+ ...(ngDevMode ? [{ debugName: "eclSiteHeaderCustomActionLink" }] : /* istanbul ignore next */ []));
219
186
  this.destroy$ = new Subject();
220
187
  }
221
188
  ngAfterContentInit() {
222
189
  const title = this.title();
223
190
  if (title) {
224
- this.titleId = title.id;
191
+ this.titleId = title.id();
225
192
  }
226
193
  // Subscribe to link output, which toggles the dropdown.
227
194
  const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();
228
195
  if (eclSiteHeaderCustomActionLink) {
229
- eclSiteHeaderCustomActionLink.customActionOverlayToggle.pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {
196
+ outputToObservable(eclSiteHeaderCustomActionLink.customActionOverlayToggle).pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {
230
197
  this.isOverlayExpanded = isExpanded;
231
198
  });
232
199
  }
@@ -257,7 +224,7 @@ class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
257
224
  this.onCustomActionOverlayClose();
258
225
  }
259
226
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
260
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSiteHeaderCustomActionComponent, isStandalone: true, selector: "div[eclSiteHeaderCustomAction]", host: { listeners: { "eclClickOutside": "onClickOutsideHandler()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.class" } }, queries: [{ propertyName: "title", first: true, predicate: EclSiteHeaderCustomActionTitleDirective, descendants: true, isSignal: true }, { propertyName: "eclSiteHeaderCustomActionLink", first: true, predicate: EclSiteHeaderCustomActionLinkDirective, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSiteHeaderCustomActionComponent, isStandalone: true, selector: "div[eclSiteHeaderCustomAction]", host: { listeners: { "eclClickOutside": "onClickOutsideHandler()", "document:keydown.escape": "onEscapeKeydownHandler()" }, classAttribute: "ecl-site-header__custom-action" }, queries: [{ propertyName: "title", first: true, predicate: EclSiteHeaderCustomActionTitleDirective, descendants: true, isSignal: true }, { propertyName: "eclSiteHeaderCustomActionLink", first: true, predicate: EclSiteHeaderCustomActionLinkDirective, descendants: true, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.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: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i3.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }] }); }
261
228
  }
262
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderCustomActionComponent, decorators: [{
263
230
  type: Component,
@@ -266,17 +233,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
266
233
  directive: ECLClickOutsideDirective,
267
234
  outputs: ['eclClickOutside'],
268
235
  },
269
- ], 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" }]
270
- }], propDecorators: { class: [{
271
- type: HostBinding,
272
- args: ['class']
273
- }], title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderCustomActionTitleDirective), { isSignal: true }] }], eclSiteHeaderCustomActionLink: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderCustomActionLinkDirective), { isSignal: true }] }], onClickOutsideHandler: [{
274
- type: HostListener,
275
- args: ['eclClickOutside']
276
- }], onEscapeKeydownHandler: [{
277
- type: HostListener,
278
- args: ['document:keydown.escape']
279
- }] } });
236
+ ], host: {
237
+ class: 'ecl-site-header__custom-action',
238
+ '(eclClickOutside)': 'onClickOutsideHandler()',
239
+ '(document:keydown.escape)': 'onEscapeKeydownHandler()',
240
+ }, 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" }]
241
+ }], propDecorators: { title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderCustomActionTitleDirective), { isSignal: true }] }], eclSiteHeaderCustomActionLink: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderCustomActionLinkDirective), { isSignal: true }] }] } });
280
242
 
281
243
  /**
282
244
  * Custom component, that shows the current environment of the application, for example 'develop', 'acceptance', etc.
@@ -335,15 +297,14 @@ class EclSiteHeaderEnvironmentComponent extends ECLBaseDirective {
335
297
  }
336
298
  }
337
299
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderEnvironmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
338
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderEnvironmentComponent, isStandalone: true, selector: "[eclSiteHeaderEnvironment]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{position:absolute;width:100%;font-size:1.3rem;padding:.3rem;opacity:.6;text-align:center;transform:rotate(-10deg)}@media print{:host{display:none}}\n"] }); }
300
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderEnvironmentComponent, isStandalone: true, selector: "[eclSiteHeaderEnvironment]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{position:absolute;width:100%;font-size:1.3rem;padding:.3rem;opacity:.6;text-align:center;transform:rotate(-10deg)}@media print{:host{display:none}}\n"] }); }
339
301
  }
340
302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderEnvironmentComponent, decorators: [{
341
303
  type: Component,
342
- args: [{ selector: '[eclSiteHeaderEnvironment]', template: '<ng-content></ng-content>', styles: [":host{position:absolute;width:100%;font-size:1.3rem;padding:.3rem;opacity:.6;text-align:center;transform:rotate(-10deg)}@media print{:host{display:none}}\n"] }]
343
- }], ctorParameters: () => [], propDecorators: { cssClasses: [{
344
- type: HostBinding,
345
- args: ['class']
346
- }] } });
304
+ args: [{ selector: '[eclSiteHeaderEnvironment]', template: '<ng-content></ng-content>', host: {
305
+ '[class]': 'cssClasses',
306
+ }, styles: [":host{position:absolute;width:100%;font-size:1.3rem;padding:.3rem;opacity:.6;text-align:center;transform:rotate(-10deg)}@media print{:host{display:none}}\n"] }]
307
+ }], ctorParameters: () => [] });
347
308
 
348
309
  class EclSiteHeaderLoginEvent extends EclBaseEvent {
349
310
  }
@@ -406,13 +367,10 @@ class EclAreaChangeEvent {
406
367
  class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective {
407
368
  constructor() {
408
369
  super();
409
- this.el = inject(ElementRef);
410
- this.eclThemeService = inject(EclThemeService);
411
370
  /**
412
- * The div, that wraps all the languages.
371
+ * Host element reference. Read by the parent `ecl-site-header-language` for positioning.
413
372
  */
414
- this.languageContent = viewChild('languageContent', /* @ts-ignore */
415
- ...(ngDevMode ? [{ debugName: "languageContent" }] : /* istanbul ignore next */ []));
373
+ this.el = inject(ElementRef);
416
374
  /**
417
375
  * Current language
418
376
  */
@@ -469,6 +427,12 @@ class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective {
469
427
  ...(ngDevMode ? [{ debugName: "languageArrowPosition" }] : /* istanbul ignore next */ []));
470
428
  this.languageClosed = output();
471
429
  this.languageSelected = output();
430
+ this.eclThemeService = inject(EclThemeService);
431
+ /**
432
+ * The div, that wraps all the languages.
433
+ */
434
+ this.languageContent = viewChild('languageContent', /* @ts-ignore */
435
+ ...(ngDevMode ? [{ debugName: "languageContent" }] : /* istanbul ignore next */ []));
472
436
  this.destroy$ = new Subject();
473
437
  this.scrollDispatcher = inject(ScrollDispatcher);
474
438
  this.zone = inject(NgZone);
@@ -550,7 +514,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
550
514
  '[attr.aria-modal]': 'isModal',
551
515
  '[attr.hidden]': 'isDropdownHidden',
552
516
  }, 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\" 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" }]
553
- }], ctorParameters: () => [], propDecorators: { languageContent: [{ type: i0.ViewChild, args: ['languageContent', { isSignal: true }] }], languageCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageCode", required: false }] }], euLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "euLanguages", required: false }] }], nonEuLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "nonEuLanguages", required: false }] }], euColumnsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "euColumnsCount", required: false }] }], nonEuColumnsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "nonEuColumnsCount", required: false }] }], isHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "isHidden", required: false }] }], isPushRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPushRight", required: false }] }], isPushLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPushLeft", required: false }] }], isStack: [{ type: i0.Input, args: [{ isSignal: true, alias: "isStack", required: false }] }], isFull: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFull", required: false }] }], rightPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightPosition", required: false }] }], leftPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "leftPosition", required: false }] }], languageArrowPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageArrowPosition", required: false }] }], languageClosed: [{ type: i0.Output, args: ["languageClosed"] }], languageSelected: [{ type: i0.Output, args: ["languageSelected"] }] } });
517
+ }], ctorParameters: () => [], propDecorators: { languageCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageCode", required: false }] }], euLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "euLanguages", required: false }] }], nonEuLanguages: [{ type: i0.Input, args: [{ isSignal: true, alias: "nonEuLanguages", required: false }] }], euColumnsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "euColumnsCount", required: false }] }], nonEuColumnsCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "nonEuColumnsCount", required: false }] }], isHidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "isHidden", required: false }] }], isPushRight: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPushRight", required: false }] }], isPushLeft: [{ type: i0.Input, args: [{ isSignal: true, alias: "isPushLeft", required: false }] }], isStack: [{ type: i0.Input, args: [{ isSignal: true, alias: "isStack", required: false }] }], isFull: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFull", required: false }] }], rightPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightPosition", required: false }] }], leftPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "leftPosition", required: false }] }], languageArrowPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageArrowPosition", required: false }] }], languageClosed: [{ type: i0.Output, args: ["languageClosed"] }], languageSelected: [{ type: i0.Output, args: ["languageSelected"] }], languageContent: [{ type: i0.ViewChild, args: ['languageContent', { isSignal: true }] }] } });
554
518
 
555
519
  /** Half the arrow's own width, matching ECL's `arrowSize`. */
556
520
  const ARROW_SIZE$2 = '0.5rem';
@@ -561,19 +525,22 @@ const ARROW_SIZE$2 = '0.5rem';
561
525
  class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
562
526
  constructor() {
563
527
  super(...arguments);
564
- this.eclThemeService = inject(EclThemeService);
565
- this.config = inject(GLOBAL_CONFIG_TOKEN, { optional: true });
566
- this.i18nService = inject(I18nService);
567
528
  /**
568
529
  * Thie event is emited, when language link, showing the current language is clicked.
569
530
  */
570
- this.languageClick = new EventEmitter();
531
+ this.languageClick = output();
571
532
  /**
572
533
  * Thie event is emited, when user selects a new language from the dropdown.
573
534
  */
574
- this.languageSelected = new EventEmitter();
575
- this.isLanguagesDropdownVisible = false;
535
+ this.languageSelected = output();
536
+ /**
537
+ * Current language code. Read and written by the parent `ecl-site-header`.
538
+ */
576
539
  this.languageCode = 'en';
540
+ this.eclThemeService = inject(EclThemeService);
541
+ this.config = inject(GLOBAL_CONFIG_TOKEN, { optional: true });
542
+ this.i18nService = inject(I18nService);
543
+ this.isLanguagesDropdownVisible = false;
577
544
  /**
578
545
  * Array of EU languages, that can be selected for the current site.
579
546
  */
@@ -641,7 +608,7 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
641
608
  // Matches ECL's updateOverlayPosition call in toggleOverlay.
642
609
  requestAnimationFrame(() => this.calculatePopoverPosition());
643
610
  }
644
- this.languageClick.next(new EclSiteHeaderLanguageClickEvent());
611
+ this.languageClick.emit(new EclSiteHeaderLanguageClickEvent());
645
612
  evt.preventDefault();
646
613
  }
647
614
  onLanguageClosed(evt) {
@@ -651,7 +618,7 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
651
618
  this.languageCode = evt.language.code;
652
619
  this.updateCurrentLanguage(evt.language.code);
653
620
  this.isLanguagesDropdownVisible = false;
654
- this.languageSelected.next(new EclSiteHeaderLanguageSelectedEvent(evt.language));
621
+ this.languageSelected.emit(new EclSiteHeaderLanguageSelectedEvent(evt.language));
655
622
  }
656
623
  /**
657
624
  * Close the dropdown, when clicking outside of the component.
@@ -804,11 +771,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
804
771
  '(eclClickOutside)': 'onClickOutside()',
805
772
  '(document:keydown.escape)': 'onEscapeKeydownHandler()',
806
773
  }, template: "<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}", styles: [":host{display:block}\n"] }]
807
- }], propDecorators: { languageClick: [{
808
- type: Output
809
- }], languageSelected: [{
810
- type: Output
811
- }], languagePopover: [{ type: i0.ViewChild, args: [i0.forwardRef(() => EclSiteHeaderLanguagePopoverComponent), { isSignal: true }] }], languageLinkElement: [{ type: i0.ViewChild, args: ['languageLink', { ...{ read: ElementRef }, isSignal: true }] }] } });
774
+ }], propDecorators: { languageClick: [{ type: i0.Output, args: ["languageClick"] }], languageSelected: [{ type: i0.Output, args: ["languageSelected"] }], languagePopover: [{ type: i0.ViewChild, args: [i0.forwardRef(() => EclSiteHeaderLanguagePopoverComponent), { isSignal: true }] }], languageLinkElement: [{ type: i0.ViewChild, args: ['languageLink', { ...{ read: ElementRef }, isSignal: true }] }] } });
812
775
 
813
776
  /** Half the arrow's own width, matching ECL's `arrowSize`. */
814
777
  const ARROW_SIZE$1 = '0.5rem';
@@ -823,7 +786,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
823
786
  super();
824
787
  this.isLoggedIn = input(false, { ...(ngDevMode ? { debugName: "isLoggedIn" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
825
788
  this.login = output();
826
- this.loginBoxToggle = new EventEmitter();
789
+ this.loginBoxToggle = output();
827
790
  /**
828
791
  * If login popover is open (true) or closed (false). Kept public because the parent
829
792
  * `ecl-site-header` resets it directly when the search box opens.
@@ -890,7 +853,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
890
853
  onLoginBoxToggle(evt) {
891
854
  this.isLoginBoxActive = !this.isLoginBoxActive;
892
855
  const event = new EclSiteHeaderLoginBoxToggleEvent(this.isLoginBoxActive);
893
- this.loginBoxToggle.next(event);
856
+ this.loginBoxToggle.emit(event);
894
857
  evt.preventDefault();
895
858
  if (this.isLoginBoxActive) {
896
859
  // Measure after the '--active' class is applied and the box reflows to full width.
@@ -901,7 +864,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
901
864
  if (this.isLoginBoxActive) {
902
865
  this.isLoginBoxActive = false;
903
866
  const event = new EclSiteHeaderLoginBoxToggleEvent(this.isLoginBoxActive);
904
- this.loginBoxToggle.next(event);
867
+ this.loginBoxToggle.emit(event);
905
868
  this.loginArrowPosition.set(undefined);
906
869
  }
907
870
  }
@@ -939,51 +902,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
939
902
  class: 'ecl-site-header__login-container',
940
903
  '(eclClickOutside)': 'onClickOutside()',
941
904
  }, template: "@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", styles: [":host{display:block}\n"] }]
942
- }], ctorParameters: () => [], propDecorators: { isLoggedIn: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoggedIn", required: false }] }], login: [{ type: i0.Output, args: ["login"] }], loginBoxToggle: [{
943
- type: Output
944
- }], loginLinkElement: [{ type: i0.ViewChild, args: ['loginLink', { ...{ read: ElementRef }, isSignal: true }] }], loginBoxElement: [{ type: i0.ViewChild, args: ['loginBox', { ...{ read: ElementRef }, isSignal: true }] }] } });
905
+ }], ctorParameters: () => [], propDecorators: { isLoggedIn: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoggedIn", required: false }] }], login: [{ type: i0.Output, args: ["login"] }], loginBoxToggle: [{ type: i0.Output, args: ["loginBoxToggle"] }], loginLinkElement: [{ type: i0.ViewChild, args: ['loginLink', { ...{ read: ElementRef }, isSignal: true }] }], loginBoxElement: [{ type: i0.ViewChild, args: ['loginBox', { ...{ read: ElementRef }, isSignal: true }] }] } });
945
906
 
946
907
  /**
947
908
  * This directive is used to add specific class for the login description element, within the login dropdown.
948
909
  */
949
910
  class EclSiteHeaderLoginDescriptionDirective extends ECLBaseDirective {
950
- constructor() {
951
- super(...arguments);
952
- this.className = 'ecl-site-header__login-description';
953
- }
954
911
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderLoginDescriptionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
955
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderLoginDescriptionDirective, isStandalone: true, selector: "[eclSiteHeaderLoginDescription]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
912
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderLoginDescriptionDirective, isStandalone: true, selector: "[eclSiteHeaderLoginDescription]", host: { classAttribute: "ecl-site-header__login-description" }, usesInheritance: true, ngImport: i0 }); }
956
913
  }
957
914
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderLoginDescriptionDirective, decorators: [{
958
915
  type: Directive,
959
916
  args: [{
960
917
  selector: '[eclSiteHeaderLoginDescription]',
918
+ host: {
919
+ class: 'ecl-site-header__login-description',
920
+ },
961
921
  }]
962
- }], propDecorators: { className: [{
963
- type: HostBinding,
964
- args: ['class']
965
- }] } });
922
+ }] });
966
923
  /**
967
924
  * This directive is used to add specific class for the horizontal line, that separates
968
925
  * description from the 'Logout' link.
969
926
  */
970
927
  class EclSiteHeaderLoginSeparatorDirective extends ECLBaseDirective {
971
- constructor() {
972
- super(...arguments);
973
- this.className = 'ecl-site-header__login-separator';
974
- }
975
928
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderLoginSeparatorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
976
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderLoginSeparatorDirective, isStandalone: true, selector: "[eclSiteHeaderLoginSeparator]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
929
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderLoginSeparatorDirective, isStandalone: true, selector: "[eclSiteHeaderLoginSeparator]", host: { classAttribute: "ecl-site-header__login-separator" }, usesInheritance: true, ngImport: i0 }); }
977
930
  }
978
931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderLoginSeparatorDirective, decorators: [{
979
932
  type: Directive,
980
933
  args: [{
981
934
  selector: '[eclSiteHeaderLoginSeparator]',
935
+ host: {
936
+ class: 'ecl-site-header__login-separator',
937
+ },
982
938
  }]
983
- }], propDecorators: { className: [{
984
- type: HostBinding,
985
- args: ['class']
986
- }] } });
939
+ }] });
987
940
 
988
941
  /**
989
942
  * This component is used as a wrapper around ecl-notification component, when used in the site-header. Adds specific class
@@ -1004,39 +957,32 @@ class EclSiteHeaderNotificationComponent extends ECLBaseDirective {
1004
957
  this.display = '';
1005
958
  }
1006
959
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderNotificationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1007
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderNotificationComponent, isStandalone: true, selector: "ecl-site-header-notification", host: { properties: { "class": "this.cssClasses", "style.display": "this.display" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>\n" }); }
960
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderNotificationComponent, isStandalone: true, selector: "ecl-site-header-notification", host: { properties: { "class": "cssClasses", "style.display": "display" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>\n" }); }
1008
961
  }
1009
962
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderNotificationComponent, decorators: [{
1010
963
  type: Component,
1011
- args: [{ selector: 'ecl-site-header-notification', template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>\n" }]
1012
- }], propDecorators: { cssClasses: [{
1013
- type: HostBinding,
1014
- args: ['class']
1015
- }], display: [{
1016
- type: HostBinding,
1017
- args: ['style.display']
1018
- }] } });
964
+ args: [{ selector: 'ecl-site-header-notification', host: {
965
+ '[class]': 'cssClasses',
966
+ '[style.display]': 'display',
967
+ }, template: "<div class=\"ecl-container\">\n <ng-content></ng-content>\n</div>\n" }]
968
+ }] });
1019
969
 
1020
970
  /**
1021
971
  * Adds some specific classes for picture element, when used in the site header logo.
1022
972
  */
1023
973
  class EclSiteHeaderPictureDirective extends ECLBaseDirective {
1024
- constructor() {
1025
- super(...arguments);
1026
- this.className = 'ecl-site-header__picture ecl-picture';
1027
- }
1028
974
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderPictureDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1029
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderPictureDirective, isStandalone: true, selector: "[eclSiteHeaderPicture]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
975
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderPictureDirective, isStandalone: true, selector: "[eclSiteHeaderPicture]", host: { classAttribute: "ecl-site-header__picture ecl-picture" }, usesInheritance: true, ngImport: i0 }); }
1030
976
  }
1031
977
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderPictureDirective, decorators: [{
1032
978
  type: Directive,
1033
979
  args: [{
1034
980
  selector: '[eclSiteHeaderPicture]',
981
+ host: {
982
+ class: 'ecl-site-header__picture ecl-picture',
983
+ },
1035
984
  }]
1036
- }], propDecorators: { className: [{
1037
- type: HostBinding,
1038
- args: ['class']
1039
- }] } });
985
+ }] });
1040
986
  /**
1041
987
  * Adds some specific classes for <img> element, when used in the site header logo.
1042
988
  */
@@ -1048,37 +994,33 @@ class EclSiteHeaderImageDirective extends ECLBaseDirective {
1048
994
  ].join(' ').trim();
1049
995
  }
1050
996
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderImageDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1051
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderImageDirective, isStandalone: true, selector: "[eclSiteHeaderImage]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
997
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderImageDirective, isStandalone: true, selector: "[eclSiteHeaderImage]", host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
1052
998
  }
1053
999
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderImageDirective, decorators: [{
1054
1000
  type: Directive,
1055
1001
  args: [{
1056
1002
  selector: '[eclSiteHeaderImage]',
1003
+ host: {
1004
+ '[class]': 'cssClasses',
1005
+ },
1057
1006
  }]
1058
- }], propDecorators: { cssClasses: [{
1059
- type: HostBinding,
1060
- args: ['class']
1061
- }] } });
1007
+ }] });
1062
1008
  /**
1063
1009
  * Adds some specific classes for <a> element, when used in the site header logo.
1064
1010
  */
1065
1011
  class EclSiteHeaderLinkDirective extends ECLBaseDirective {
1066
- constructor() {
1067
- super(...arguments);
1068
- this.className = 'ecl-link ecl-link--standalone ecl-site-header__logo-link';
1069
- }
1070
1012
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderLinkDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1071
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderLinkDirective, isStandalone: true, selector: "[eclSiteHeaderLink]", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0 }); }
1013
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.2", type: EclSiteHeaderLinkDirective, isStandalone: true, selector: "[eclSiteHeaderLink]", host: { classAttribute: "ecl-link ecl-link--standalone ecl-site-header__logo-link" }, usesInheritance: true, ngImport: i0 }); }
1072
1014
  }
1073
1015
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderLinkDirective, decorators: [{
1074
1016
  type: Directive,
1075
1017
  args: [{
1076
1018
  selector: '[eclSiteHeaderLink]',
1019
+ host: {
1020
+ class: 'ecl-link ecl-link--standalone ecl-site-header__logo-link',
1021
+ },
1077
1022
  }]
1078
- }], propDecorators: { className: [{
1079
- type: HostBinding,
1080
- args: ['class']
1081
- }] } });
1023
+ }] });
1082
1024
 
1083
1025
  const ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR = {
1084
1026
  provide: NG_VALUE_ACCESSOR,
@@ -1099,12 +1041,14 @@ const RESIZE_DEBOUNCE = 200;
1099
1041
  class EclSiteHeaderSearchComponent extends ECLBaseDirective {
1100
1042
  constructor() {
1101
1043
  super(...arguments);
1044
+ this.searchInputText = model(/* @ts-ignore */
1045
+ ...(ngDevMode ? [undefined, { debugName: "searchInputText" }] : /* istanbul ignore next */ []));
1102
1046
  this.searchInputPlaceholder = input(undefined, /* @ts-ignore */
1103
1047
  ...(ngDevMode ? [{ debugName: "searchInputPlaceholder" }] : /* istanbul ignore next */ []));
1104
1048
  this.searchButtonLabel = input(undefined, /* @ts-ignore */
1105
1049
  ...(ngDevMode ? [{ debugName: "searchButtonLabel" }] : /* istanbul ignore next */ []));
1106
1050
  this.searchEvent = output();
1107
- this.searchToggle = new EventEmitter();
1051
+ this.searchToggle = output();
1108
1052
  /**
1109
1053
  * Whether the search dropdown is open. Kept public because the parent
1110
1054
  * `ecl-site-header` resets it directly when the login box opens.
@@ -1151,7 +1095,7 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
1151
1095
  }
1152
1096
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1153
1097
  writeValue(value) {
1154
- this.searchInputText = value;
1098
+ this.searchInputText.set(value);
1155
1099
  }
1156
1100
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1157
1101
  registerOnChange(fn) {
@@ -1175,7 +1119,7 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
1175
1119
  onSearchBoxToggle(evt) {
1176
1120
  this.isSearchBoxActive = !this.isSearchBoxActive;
1177
1121
  const event = new EclSiteHeaderSearchToggleEvent(this.isSearchBoxActive);
1178
- this.searchToggle.next(event);
1122
+ this.searchToggle.emit(event);
1179
1123
  evt.preventDefault();
1180
1124
  // Measure after the `--active` class is applied and the box reflows to
1181
1125
  // full width (matching ECL's toggleSearch -> setSearchArrow order).
@@ -1191,14 +1135,14 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
1191
1135
  return ['ecl-site-header__search', this.isSearchBoxActive ? 'ecl-site-header__search--active' : ''].join(' ');
1192
1136
  }
1193
1137
  onModelChange(newValue) {
1194
- this.searchInputText = newValue;
1138
+ this.searchInputText.set(newValue);
1195
1139
  this.onChange(newValue);
1196
1140
  }
1197
1141
  closeSearchBox() {
1198
1142
  if (!this.isSearchBoxActive)
1199
1143
  return;
1200
1144
  this.isSearchBoxActive = false;
1201
- this.searchToggle.next(new EclSiteHeaderSearchToggleEvent(this.isSearchBoxActive));
1145
+ this.searchToggle.emit(new EclSiteHeaderSearchToggleEvent(this.isSearchBoxActive));
1202
1146
  this.searchArrowPosition.set(undefined);
1203
1147
  }
1204
1148
  /**
@@ -1224,7 +1168,7 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
1224
1168
  }
1225
1169
  }
1226
1170
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderSearchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1227
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclSiteHeaderSearchComponent, isStandalone: true, selector: "ecl-site-header-search", inputs: { searchInputText: { classPropertyName: "searchInputText", publicName: "searchInputText", isSignal: false, isRequired: false, transformFunction: null }, searchInputPlaceholder: { classPropertyName: "searchInputPlaceholder", publicName: "searchInputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, searchButtonLabel: { classPropertyName: "searchButtonLabel", publicName: "searchButtonLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchEvent: "searchEvent", searchToggle: "searchToggle" }, host: { attributes: { "role": "search" }, listeners: { "eclClickOutside": "onClickOutside()" }, classAttribute: "ecl-site-header__search-container" }, providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR], viewQueries: [{ propertyName: "searchLinkElement", first: true, predicate: ["searchLink"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "searchFormElement", first: true, predicate: ["searchForm"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<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", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$2.EclSearchFormComponent, selector: "ecl-search-form", inputs: ["searchInputText", "placeholder", "searchButtonLabel", "searchButtonIcon", "buttonExtraClassses", "inputExtraClassses"], outputs: ["searchInputTextChange", "searchEvent"] }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1171
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclSiteHeaderSearchComponent, isStandalone: true, selector: "ecl-site-header-search", inputs: { searchInputText: { classPropertyName: "searchInputText", publicName: "searchInputText", isSignal: true, isRequired: false, transformFunction: null }, searchInputPlaceholder: { classPropertyName: "searchInputPlaceholder", publicName: "searchInputPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, searchButtonLabel: { classPropertyName: "searchButtonLabel", publicName: "searchButtonLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchInputText: "searchInputTextChange", searchEvent: "searchEvent", searchToggle: "searchToggle" }, host: { attributes: { "role": "search" }, listeners: { "eclClickOutside": "onClickOutside()" }, classAttribute: "ecl-site-header__search-container" }, providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR], viewQueries: [{ propertyName: "searchLinkElement", first: true, predicate: ["searchLink"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "searchFormElement", first: true, predicate: ["searchForm"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<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", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$2.EclSearchFormComponent, selector: "ecl-search-form", inputs: ["searchInputText", "placeholder", "searchButtonLabel", "searchButtonIcon", "buttonExtraClassses", "inputExtraClassses"], outputs: ["searchInputTextChange", "searchEvent"] }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1228
1172
  }
1229
1173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderSearchComponent, decorators: [{
1230
1174
  type: Component,
@@ -1238,12 +1182,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImpor
1238
1182
  // The default role of the component is 'search', should not be changed.
1239
1183
  role: 'search',
1240
1184
  '(eclClickOutside)': 'onClickOutside()',
1241
- }, template: "<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", styles: [":host{display:block}\n"] }]
1242
- }], propDecorators: { searchInputText: [{
1243
- type: Input
1244
- }], searchInputPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchInputPlaceholder", required: false }] }], searchButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchButtonLabel", required: false }] }], searchEvent: [{ type: i0.Output, args: ["searchEvent"] }], searchToggle: [{
1245
- type: Output
1246
- }], searchLinkElement: [{ type: i0.ViewChild, args: ['searchLink', { ...{ read: ElementRef }, isSignal: true }] }], searchFormElement: [{ type: i0.ViewChild, args: ['searchForm', { ...{ read: ElementRef }, isSignal: true }] }] } });
1185
+ }, template: "<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", styles: [":host{display:block}\n"] }]
1186
+ }], propDecorators: { searchInputText: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchInputText", required: false }] }, { type: i0.Output, args: ["searchInputTextChange"] }], searchInputPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchInputPlaceholder", required: false }] }], searchButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchButtonLabel", required: false }] }], searchEvent: [{ type: i0.Output, args: ["searchEvent"] }], searchToggle: [{ type: i0.Output, args: ["searchToggle"] }], searchLinkElement: [{ type: i0.ViewChild, args: ['searchLink', { ...{ read: ElementRef }, isSignal: true }] }], searchFormElement: [{ type: i0.ViewChild, args: ['searchForm', { ...{ read: ElementRef }, isSignal: true }] }] } });
1247
1187
 
1248
1188
  /**
1249
1189
  * This class is used for methods, that serve for communication between the components in ecl-side-header.
@@ -1285,19 +1225,23 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1285
1225
  `ecl-site-header-with-logo-${this.logoSize()}`,
1286
1226
  this.eclMenuComponent() ? 'ecl-site-header--has-menu' : '',
1287
1227
  this.eclMegaMenuComponent() ? 'ecl-site-header--has-mega-menu' : '',
1288
- this.isEclMegaMenuOpen ? 'ecl-site-header--open-menu' : '',
1289
- this.isEclMegaMenuStart ? 'ecl-site-header--open-menu-start' : '',
1290
- this.isRtl ? 'ecl-site-header--rtl' : '',
1228
+ this.isEclMegaMenuOpen() ? 'ecl-site-header--open-menu' : '',
1229
+ this.isEclMegaMenuStart() ? 'ecl-site-header--open-menu-start' : '',
1230
+ this.isRtl() ? 'ecl-site-header--rtl' : '',
1291
1231
  ].join(' ').trim();
1292
1232
  }
1293
1233
  constructor() {
1294
1234
  super();
1295
- this.eclThemeService = inject(EclThemeService);
1296
- this.i18nService = inject(I18nService);
1235
+ /**
1236
+ * The name of the site, to be added in the header, next to the logo.
1237
+ */
1238
+ this.siteName = input(/* @ts-ignore */
1239
+ ...(ngDevMode ? [undefined, { debugName: "siteName" }] : /* istanbul ignore next */ []));
1297
1240
  /**
1298
1241
  * Language code of the current language of the site.
1299
1242
  */
1300
- this.languageCode = 'en';
1243
+ this.languageCode = model('en', /* @ts-ignore */
1244
+ ...(ngDevMode ? [{ debugName: "languageCode" }] : /* istanbul ignore next */ []));
1301
1245
  /**
1302
1246
  * The size of the logo, 's', 'm' or 'l', default to 'm'.
1303
1247
  */
@@ -1331,11 +1275,16 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1331
1275
  ...(ngDevMode ? [{ debugName: "eclHeaderLink" }] : /* istanbul ignore next */ []));
1332
1276
  this.eclHeaderImage = contentChild(forwardRef(() => EclSiteHeaderImageDirective), /* @ts-ignore */
1333
1277
  ...(ngDevMode ? [{ debugName: "eclHeaderImage" }] : /* istanbul ignore next */ []));
1278
+ this.eclThemeService = inject(EclThemeService);
1279
+ this.i18nService = inject(I18nService);
1334
1280
  this.destroy$ = new Subject();
1335
- this.isEclMegaMenuOpen = false;
1336
- this.isEclMegaMenuStart = false;
1281
+ this.isEclMegaMenuOpen = signal(false, /* @ts-ignore */
1282
+ ...(ngDevMode ? [{ debugName: "isEclMegaMenuOpen" }] : /* istanbul ignore next */ []));
1283
+ this.isEclMegaMenuStart = signal(false, /* @ts-ignore */
1284
+ ...(ngDevMode ? [{ debugName: "isEclMegaMenuStart" }] : /* istanbul ignore next */ []));
1337
1285
  this.isMobileBreakpoint = false;
1338
- this.isRtl = false;
1286
+ this.isRtl = signal(false, /* @ts-ignore */
1287
+ ...(ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []));
1339
1288
  this.TIMEOUT_INTERVAL = 100;
1340
1289
  this.eclRtlService = inject(EclRtlService);
1341
1290
  this.eclHeaderMenuComunicationService = inject(EclHeaderMenuComunicationService);
@@ -1369,27 +1318,27 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1369
1318
  const eclLoginComponent = this.eclLoginComponent();
1370
1319
  const eclSearchComponent = this.eclSearchComponent();
1371
1320
  if (eclLoginComponent && eclSearchComponent) {
1372
- eclLoginComponent.loginBoxToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1321
+ outputToObservable(eclLoginComponent.loginBoxToggle).pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1373
1322
  this.eclSearchComponent().isSearchBoxActive = false;
1374
1323
  this.sendResizeEventToChildComponents();
1375
1324
  });
1376
- eclSearchComponent.searchToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1325
+ outputToObservable(eclSearchComponent.searchToggle).pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1377
1326
  this.eclLoginComponent().isLoginBoxActive = false;
1378
1327
  this.sendResizeEventToChildComponents();
1379
1328
  });
1380
1329
  }
1381
1330
  const eclLanguageComponent = this.eclLanguageComponent();
1382
1331
  if (eclLanguageComponent) {
1383
- eclLanguageComponent.languageClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1332
+ outputToObservable(eclLanguageComponent.languageClick).pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1384
1333
  this.languageClick.emit(new EclSiteHeaderLanguageClickEvent());
1385
1334
  this.sendResizeEventToChildComponents();
1386
1335
  });
1387
- eclLanguageComponent.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1388
- this.languageCode = evt.language?.code;
1336
+ outputToObservable(eclLanguageComponent.languageSelected).pipe(takeUntil(this.destroy$)).subscribe((evt) => {
1337
+ this.languageCode.set(evt.language?.code);
1389
1338
  });
1390
1339
  }
1391
1340
  if (eclLanguageComponent) {
1392
- this.languageCode = eclLanguageComponent?.languageCode;
1341
+ this.languageCode.set(eclLanguageComponent?.languageCode);
1393
1342
  }
1394
1343
  const eclMenuComponent = this.eclMenuComponent();
1395
1344
  if (eclMenuComponent) {
@@ -1407,7 +1356,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1407
1356
  * In this case, a default logo is returned.
1408
1357
  */
1409
1358
  get partOfLogoName() {
1410
- return logoLanguageCode(this.languageCode);
1359
+ return logoLanguageCode(this.languageCode());
1411
1360
  }
1412
1361
  onECLogoClick(evt) {
1413
1362
  const event = new EclSiteHeaderLogoClickEvent();
@@ -1421,7 +1370,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1421
1370
  }
1422
1371
  handleRtlChangeState() {
1423
1372
  this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {
1424
- this.isRtl = rtlState;
1373
+ this.isRtl.set(rtlState);
1425
1374
  });
1426
1375
  }
1427
1376
  /**
@@ -1439,8 +1388,8 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1439
1388
  subscribeToMegaMenuEvents() {
1440
1389
  this.eclHeaderMenuComunicationService.isMobileObjectOpen$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {
1441
1390
  if (this.isMobileBreakpoint) {
1442
- this.isEclMegaMenuStart = isExpanded;
1443
- this.isEclMegaMenuOpen = isExpanded;
1391
+ this.isEclMegaMenuStart.set(isExpanded);
1392
+ this.isEclMegaMenuOpen.set(isExpanded);
1444
1393
  }
1445
1394
  if (isExpanded) {
1446
1395
  const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;
@@ -1457,7 +1406,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1457
1406
  }
1458
1407
  }
1459
1408
  else {
1460
- this.isEclMegaMenuOpen = isExpanded;
1409
+ this.isEclMegaMenuOpen.set(isExpanded);
1461
1410
  if (isExpanded) {
1462
1411
  const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;
1463
1412
  this.eclMegaMenuComponent().positionMenuOverlay(bottomSpaceY);
@@ -1466,7 +1415,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1466
1415
  });
1467
1416
  }
1468
1417
  onMegaMenuItemExpandMobile() {
1469
- this.isEclMegaMenuStart = false;
1418
+ this.isEclMegaMenuStart.set(false);
1470
1419
  const eclNotificationComponent = this.eclNotificationComponent();
1471
1420
  if (eclNotificationComponent) {
1472
1421
  eclNotificationComponent.onHide();
@@ -1479,7 +1428,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1479
1428
  this.eclMegaMenuComponent().positionMenuOverlay(bottomSpaceY);
1480
1429
  }
1481
1430
  onMegaMenuItemCollapseMobile() {
1482
- this.isEclMegaMenuStart = true;
1431
+ this.isEclMegaMenuStart.set(true);
1483
1432
  const eclNotificationComponent = this.eclNotificationComponent();
1484
1433
  if (eclNotificationComponent) {
1485
1434
  eclNotificationComponent.onShow();
@@ -1505,7 +1454,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1505
1454
  }
1506
1455
  handleLanguageChangeState() {
1507
1456
  this.i18nService.getState().pipe(takeUntil(this.destroy$)).subscribe((lang) => {
1508
- this.languageCode = lang.activeLang;
1457
+ this.languageCode.set(lang.activeLang);
1509
1458
  const eclLanguageComponent = this.eclLanguageComponent();
1510
1459
  if (eclLanguageComponent) {
1511
1460
  eclLanguageComponent.languageCode = lang.activeLang;
@@ -1513,19 +1462,14 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
1513
1462
  });
1514
1463
  }
1515
1464
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1516
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSiteHeaderComponent, isStandalone: true, selector: "ecl-site-header", inputs: { siteName: { classPropertyName: "siteName", publicName: "siteName", isSignal: false, isRequired: false, transformFunction: null }, languageCode: { classPropertyName: "languageCode", publicName: "languageCode", isSignal: false, isRequired: false, transformFunction: null }, logoSize: { classPropertyName: "logoSize", publicName: "logoSize", isSignal: true, isRequired: false, transformFunction: null }, isSiteNameMobileOnly: { classPropertyName: "isSiteNameMobileOnly", publicName: "isSiteNameMobileOnly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { logoClick: "logoClick", languageClick: "languageClick" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclLoginComponent", first: true, predicate: EclSiteHeaderLoginComponent, descendants: true, isSignal: true }, { propertyName: "eclMenuComponent", first: true, predicate: EclMenuComponent, descendants: true, isSignal: true }, { propertyName: "eclMegaMenuComponent", first: true, predicate: EclMegaMenuComponent, descendants: true, isSignal: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true, isSignal: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true, isSignal: true }, { propertyName: "eclNotificationComponent", first: true, predicate: EclSiteHeaderNotificationComponent, descendants: true, isSignal: true }, { propertyName: "eclHeaderLink", first: true, predicate: i0.forwardRef(() => EclSiteHeaderLinkDirective), descendants: true, isSignal: true }, { propertyName: "eclHeaderImage", first: true, predicate: i0.forwardRef(() => EclSiteHeaderImageDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true, isSignal: true }, { propertyName: "siteHeaderHeader", first: true, predicate: ["siteHeaderHeader"], descendants: true, isSignal: true }, { propertyName: "bannerHeader", first: true, predicate: ["bannerHeader"], descendants: true, isSignal: 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://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", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3$1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: EclSiteHeaderPictureDirective, selector: "[eclSiteHeaderPicture]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1465
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclSiteHeaderComponent, isStandalone: true, selector: "ecl-site-header", inputs: { siteName: { classPropertyName: "siteName", publicName: "siteName", isSignal: true, isRequired: false, transformFunction: null }, languageCode: { classPropertyName: "languageCode", publicName: "languageCode", isSignal: true, isRequired: false, transformFunction: null }, logoSize: { classPropertyName: "logoSize", publicName: "logoSize", isSignal: true, isRequired: false, transformFunction: null }, isSiteNameMobileOnly: { classPropertyName: "isSiteNameMobileOnly", publicName: "isSiteNameMobileOnly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { languageCode: "languageCodeChange", logoClick: "logoClick", languageClick: "languageClick" }, host: { properties: { "class": "cssClasses" } }, queries: [{ propertyName: "eclLoginComponent", first: true, predicate: EclSiteHeaderLoginComponent, descendants: true, isSignal: true }, { propertyName: "eclMenuComponent", first: true, predicate: EclMenuComponent, descendants: true, isSignal: true }, { propertyName: "eclMegaMenuComponent", first: true, predicate: EclMegaMenuComponent, descendants: true, isSignal: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true, isSignal: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true, isSignal: true }, { propertyName: "eclNotificationComponent", first: true, predicate: EclSiteHeaderNotificationComponent, descendants: true, isSignal: true }, { propertyName: "eclHeaderLink", first: true, predicate: i0.forwardRef(() => EclSiteHeaderLinkDirective), descendants: true, isSignal: true }, { propertyName: "eclHeaderImage", first: true, predicate: i0.forwardRef(() => EclSiteHeaderImageDirective), descendants: true, isSignal: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true, isSignal: true }, { propertyName: "siteHeaderHeader", first: true, predicate: ["siteHeaderHeader"], descendants: true, isSignal: true }, { propertyName: "bannerHeader", first: true, predicate: ["bannerHeader"], descendants: true, isSignal: 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://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", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i3$1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "directive", type: EclSiteHeaderPictureDirective, selector: "[eclSiteHeaderPicture]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
1517
1466
  }
1518
1467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclSiteHeaderComponent, decorators: [{
1519
1468
  type: Component,
1520
- args: [{ selector: 'ecl-site-header', imports: [AsyncPipe, TranslatePipe, ...EUI_ECL_LINK, EclSiteHeaderPictureDirective], 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://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", styles: [":host{display:block}\n"] }]
1521
- }], ctorParameters: () => [], propDecorators: { siteName: [{
1522
- type: Input
1523
- }], languageCode: [{
1524
- type: Input
1525
- }], logoSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoSize", required: false }] }], isSiteNameMobileOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSiteNameMobileOnly", required: false }] }], cssClasses: [{
1526
- type: HostBinding,
1527
- args: ['class']
1528
- }], logoClick: [{ type: i0.Output, args: ["logoClick"] }], languageClick: [{ type: i0.Output, args: ["languageClick"] }], topContainerElement: [{ type: i0.ViewChild, args: ['topContainer', { isSignal: true }] }], siteHeaderHeader: [{ type: i0.ViewChild, args: ['siteHeaderHeader', { isSignal: true }] }], bannerHeader: [{ type: i0.ViewChild, args: ['bannerHeader', { isSignal: true }] }], eclLoginComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderLoginComponent), { isSignal: true }] }], eclMenuComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMenuComponent), { isSignal: true }] }], eclMegaMenuComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMegaMenuComponent), { isSignal: true }] }], eclSearchComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderSearchComponent), { isSignal: true }] }], eclLanguageComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderLanguageComponent), { isSignal: true }] }], eclNotificationComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderNotificationComponent), { isSignal: true }] }], eclHeaderLink: [{ type: i0.ContentChild, args: [forwardRef(() => EclSiteHeaderLinkDirective), { isSignal: true }] }], eclHeaderImage: [{ type: i0.ContentChild, args: [forwardRef(() => EclSiteHeaderImageDirective), { isSignal: true }] }] } });
1469
+ args: [{ selector: 'ecl-site-header', imports: [AsyncPipe, TranslatePipe, ...EUI_ECL_LINK, EclSiteHeaderPictureDirective], host: {
1470
+ '[class]': 'cssClasses',
1471
+ }, 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://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", styles: [":host{display:block}\n"] }]
1472
+ }], ctorParameters: () => [], propDecorators: { siteName: [{ type: i0.Input, args: [{ isSignal: true, alias: "siteName", required: false }] }], languageCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "languageCode", required: false }] }, { type: i0.Output, args: ["languageCodeChange"] }], logoSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoSize", required: false }] }], isSiteNameMobileOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSiteNameMobileOnly", required: false }] }], logoClick: [{ type: i0.Output, args: ["logoClick"] }], languageClick: [{ type: i0.Output, args: ["languageClick"] }], topContainerElement: [{ type: i0.ViewChild, args: ['topContainer', { isSignal: true }] }], siteHeaderHeader: [{ type: i0.ViewChild, args: ['siteHeaderHeader', { isSignal: true }] }], bannerHeader: [{ type: i0.ViewChild, args: ['bannerHeader', { isSignal: true }] }], eclLoginComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderLoginComponent), { isSignal: true }] }], eclMenuComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMenuComponent), { isSignal: true }] }], eclMegaMenuComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclMegaMenuComponent), { isSignal: true }] }], eclSearchComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderSearchComponent), { isSignal: true }] }], eclLanguageComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderLanguageComponent), { isSignal: true }] }], eclNotificationComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderNotificationComponent), { isSignal: true }] }], eclHeaderLink: [{ type: i0.ContentChild, args: [forwardRef(() => EclSiteHeaderLinkDirective), { isSignal: true }] }], eclHeaderImage: [{ type: i0.ContentChild, args: [forwardRef(() => EclSiteHeaderImageDirective), { isSignal: true }] }] } });
1529
1473
 
1530
1474
  const EUI_ECL_SITE_HEADER = [
1531
1475
  EclSiteHeaderComponent,