@eui/ecl 23.0.0-alpha.6 → 23.0.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/changelog.html +41 -0
- package/docs/classes/EclLanguageService.html +8 -8
- package/docs/components/EclBannerComponent.html +28 -56
- package/docs/components/EclCardComponent.html +12 -24
- package/docs/components/EclCarouselComponent.html +33 -65
- package/docs/components/EclCarouselItemComponent.html +4 -8
- package/docs/components/EclCategoryFilterComponent.html +4 -8
- package/docs/components/EclCategoryFilterItemComponent.html +5 -9
- package/docs/components/EclCategoryFilterListComponent.html +5 -9
- package/docs/components/EclContentItemComponent.html +20 -40
- package/docs/components/EclFactFiguresItemComponent.html +4 -8
- package/docs/components/EclFactFiguresViewAllComponent.html +4 -8
- package/docs/components/EclFeaturedItemComponent.html +4 -10
- package/docs/components/EclFileComponent.html +4 -8
- package/docs/components/EclFileItemsComponent.html +4 -8
- package/docs/components/EclFormGroupComponent.html +4 -8
- package/docs/components/EclGalleryComponent.html +21 -41
- package/docs/components/EclGalleryItemComponent.html +8 -16
- package/docs/components/EclIconComponent.html +4 -8
- package/docs/components/EclInpageNavigationComponent.html +20 -40
- package/docs/components/EclInpageNavigationItemComponent.html +4 -8
- package/docs/components/EclListIllustrationComponent.html +4 -8
- package/docs/components/EclListIllustrationItemComponent.html +9 -17
- package/docs/components/EclMediaContainerComponent.html +21 -41
- package/docs/components/EclMegaMenuComponent.html +4 -8
- package/docs/components/EclMegaMenuFeaturedComponent.html +12 -24
- package/docs/components/EclMegaMenuInfoComponent.html +4 -8
- package/docs/components/EclMegaMenuItemComponent.html +37 -73
- package/docs/components/EclMegaMenuSubitemComponent.html +21 -43
- package/docs/components/EclMenuComponent.html +20 -40
- package/docs/components/EclMenuItemComponent.html +12 -24
- package/docs/components/EclMenuMegaItemComponent.html +12 -24
- package/docs/components/EclModalComponent.html +1 -1
- package/docs/components/EclMultiselectComponent.html +4 -8
- package/docs/components/EclMultiselectDropdownComponent.html +21 -41
- package/docs/components/EclMultiselectInputComponent.html +4 -8
- package/docs/components/EclMultiselectOptionComponent.html +4 -8
- package/docs/components/EclNavigationListComponent.html +4 -8
- package/docs/components/EclNavigationListItemComponent.html +4 -8
- package/docs/components/EclNewsTickerComponent.html +28 -48
- package/docs/components/EclNewsTickerItemComponent.html +4 -8
- package/docs/components/EclPageHeaderComponent.html +8 -16
- package/docs/components/EclPaginationComponent.html +4 -8
- package/docs/components/EclPopoverComponent.html +12 -24
- package/docs/components/EclSiteHeaderComponent.html +44 -88
- package/docs/components/EclSiteHeaderCustomActionComponent.html +8 -16
- package/docs/components/EclSiteHeaderLanguageComponent.html +10 -18
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +6 -10
- package/docs/components/EclSiteHeaderLoginComponent.html +4 -8
- package/docs/components/EclSiteHeaderSearchComponent.html +4 -8
- package/docs/components/EclTabComponent.html +12 -24
- package/docs/components/EclTabsComponent.html +29 -57
- package/docs/components/EclTimelineComponent.html +4 -8
- package/docs/components/EclTimelineItemComponent.html +16 -32
- package/docs/directives/EclCheckboxDirective.html +16 -32
- package/docs/directives/EclDescriptionListDirective.html +4 -8
- package/docs/directives/EclGalleryMediaDirective.html +2 -2
- package/docs/directives/EclGalleryPictureDirective.html +1 -1
- package/docs/directives/EclListIllustrationPictureDirective.html +4 -8
- package/docs/directives/EclMediaContainerItemDirective.html +4 -8
- package/docs/directives/EclMegaMenuSublistDirective.html +8 -16
- package/docs/directives/EclMultiselectOptionDirective.html +4 -8
- package/docs/directives/EclPageHeaderMetaItemDirective.html +9 -0
- package/docs/directives/EclRadioDirective.html +8 -16
- package/docs/directives/EclSocialMediaFollowLinkDirective.html +4 -8
- package/docs/directives/EclTableDirective.html +4 -8
- package/docs/directives/EclTableHeadDirective.html +4 -8
- package/docs/injectables/EclDefaultLanguageService.html +7 -7
- package/docs/injectables/EclMegaMenuService.html +2 -2
- package/docs/interfaces/EclMegaMenuItem.html +2 -2
- package/docs/interfaces/EclMenuItem.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/EclMegaMenuItemComponent.md +1 -1
- package/docs/json/EclMegaMenuSubitemComponent.md +1 -1
- package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +2 -2
- package/docs/json/documentation.json +1365 -2133
- package/docs/llms.txt +182 -182
- package/docs/miscellaneous/variables.html +16 -16
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs +37 -40
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs +23 -17
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs +105 -82
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +36 -29
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs +30 -20
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs +46 -27
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +25 -15
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs +10 -9
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs +17 -13
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-group.mjs +12 -7
- package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs +44 -49
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs +7 -8
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +48 -50
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -24
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs +6 -7
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs +31 -34
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +237 -197
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +108 -86
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs +0 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs +70 -67
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs +16 -14
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +67 -51
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs +17 -12
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs +9 -7
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs +44 -38
- package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs +22 -14
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +123 -118
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +10 -8
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-table.mjs +17 -15
- package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs +101 -81
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs +47 -37
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs +1 -1
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-banner.d.ts +42 -43
- package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-card.d.ts +34 -35
- package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-carousel.d.ts +10 -11
- package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-category-filter.d.ts +6 -6
- package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-checkbox.d.ts +47 -49
- package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-item.d.ts +16 -18
- package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-fact-figures.d.ts +3 -3
- package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-featured.d.ts +2 -2
- package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file.d.ts +42 -43
- package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-group.d.ts +1 -3
- package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-gallery.d.ts +12 -12
- package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +8 -8
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list-illustration.d.ts +44 -44
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list.d.ts +2 -2
- package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts +33 -33
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-mega-menu.d.ts +185 -191
- package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +126 -128
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-multiselect.d.ts +10 -10
- package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-navigation-list.d.ts +3 -4
- package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-news-ticker.d.ts +18 -18
- package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-header.d.ts +3 -3
- package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-pagination.d.ts +1 -1
- package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-popover.d.ts +3 -3
- package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-radio.d.ts +28 -28
- package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts +48 -48
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-table.d.ts +3 -3
- package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tabs.d.ts +12 -12
- package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-timeline.d.ts +27 -28
- package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
- package/types/eui-ecl-core.d.ts +11 -11
- package/types/eui-ecl-core.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { HostBinding, Component, inject, PLATFORM_ID, Directive, EventEmitter, contentChild, forwardRef, HostListener, Output, Input,
|
|
2
|
+
import { HostBinding, Component, inject, PLATFORM_ID, Directive, EventEmitter, contentChild, forwardRef, HostListener, Output, Input, ElementRef, Renderer2, afterNextRender, viewChild, input, booleanAttribute, output, NgZone, DOCUMENT, Injectable, ChangeDetectorRef } 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';
|
|
@@ -208,6 +208,10 @@ class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
|
|
|
208
208
|
constructor() {
|
|
209
209
|
super(...arguments);
|
|
210
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 */ []));
|
|
211
215
|
/**
|
|
212
216
|
* Used to expand/collapse the dropdown, if any.
|
|
213
217
|
*/
|
|
@@ -215,12 +219,14 @@ class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
|
|
|
215
219
|
this.destroy$ = new Subject();
|
|
216
220
|
}
|
|
217
221
|
ngAfterContentInit() {
|
|
218
|
-
|
|
219
|
-
|
|
222
|
+
const title = this.title();
|
|
223
|
+
if (title) {
|
|
224
|
+
this.titleId = title.id;
|
|
220
225
|
}
|
|
221
226
|
// Subscribe to link output, which toggles the dropdown.
|
|
222
|
-
|
|
223
|
-
|
|
227
|
+
const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();
|
|
228
|
+
if (eclSiteHeaderCustomActionLink) {
|
|
229
|
+
eclSiteHeaderCustomActionLink.customActionOverlayToggle.pipe(takeUntil(this.destroy$)).subscribe((isExpanded) => {
|
|
224
230
|
this.isOverlayExpanded = isExpanded;
|
|
225
231
|
});
|
|
226
232
|
}
|
|
@@ -234,8 +240,9 @@ class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
|
|
|
234
240
|
*/
|
|
235
241
|
onCustomActionOverlayClose() {
|
|
236
242
|
this.isOverlayExpanded = false;
|
|
237
|
-
|
|
238
|
-
|
|
243
|
+
const eclSiteHeaderCustomActionLink = this.eclSiteHeaderCustomActionLink();
|
|
244
|
+
if (!eclSiteHeaderCustomActionLink.hasLink())
|
|
245
|
+
eclSiteHeaderCustomActionLink.isOverlayExpanded = false;
|
|
239
246
|
}
|
|
240
247
|
/**
|
|
241
248
|
* Close the overlay, when clicking outside of it.
|
|
@@ -250,7 +257,7 @@ class EclSiteHeaderCustomActionComponent extends ECLBaseDirective {
|
|
|
250
257
|
this.onCustomActionOverlayClose();
|
|
251
258
|
}
|
|
252
259
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderCustomActionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", 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 }, { propertyName: "eclSiteHeaderCustomActionLink", first: true, predicate: EclSiteHeaderCustomActionLinkDirective, descendants: 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"] }] }); }
|
|
260
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", 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"] }] }); }
|
|
254
261
|
}
|
|
255
262
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderCustomActionComponent, decorators: [{
|
|
256
263
|
type: Component,
|
|
@@ -263,13 +270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
263
270
|
}], propDecorators: { class: [{
|
|
264
271
|
type: HostBinding,
|
|
265
272
|
args: ['class']
|
|
266
|
-
}], title: [{
|
|
267
|
-
type: ContentChild,
|
|
268
|
-
args: [EclSiteHeaderCustomActionTitleDirective]
|
|
269
|
-
}], eclSiteHeaderCustomActionLink: [{
|
|
270
|
-
type: ContentChild,
|
|
271
|
-
args: [EclSiteHeaderCustomActionLinkDirective]
|
|
272
|
-
}], onClickOutsideHandler: [{
|
|
273
|
+
}], title: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderCustomActionTitleDirective), { isSignal: true }] }], eclSiteHeaderCustomActionLink: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclSiteHeaderCustomActionLinkDirective), { isSignal: true }] }], onClickOutsideHandler: [{
|
|
273
274
|
type: HostListener,
|
|
274
275
|
args: ['eclClickOutside']
|
|
275
276
|
}], onEscapeKeydownHandler: [{
|
|
@@ -410,6 +411,11 @@ class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective {
|
|
|
410
411
|
super();
|
|
411
412
|
this.el = inject(ElementRef);
|
|
412
413
|
this.eclThemeService = inject(EclThemeService);
|
|
414
|
+
/**
|
|
415
|
+
* The div, that wraps all the languages.
|
|
416
|
+
*/
|
|
417
|
+
this.languageContent = viewChild('languageContent', /* @ts-ignore */
|
|
418
|
+
...(ngDevMode ? [{ debugName: "languageContent" }] : /* istanbul ignore next */ []));
|
|
413
419
|
this.euLanguages = [];
|
|
414
420
|
this.nonEuLanguages = [];
|
|
415
421
|
/**
|
|
@@ -495,8 +501,9 @@ class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective {
|
|
|
495
501
|
*/
|
|
496
502
|
setLanguageContentMaxHeight() {
|
|
497
503
|
const viewportHeight = this.window.innerHeight;
|
|
498
|
-
|
|
499
|
-
|
|
504
|
+
const languageContent = this.languageContent();
|
|
505
|
+
if (languageContent) {
|
|
506
|
+
const listTop = languageContent.nativeElement.getBoundingClientRect().top;
|
|
500
507
|
const availableSpace = viewportHeight - listTop;
|
|
501
508
|
if (availableSpace > 0) {
|
|
502
509
|
this.languageContentMaxHeight = availableSpace;
|
|
@@ -511,15 +518,12 @@ class EclSiteHeaderLanguagePopoverComponent extends ECLBaseDirective {
|
|
|
511
518
|
});
|
|
512
519
|
}
|
|
513
520
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderLanguagePopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
514
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclSiteHeaderLanguagePopoverComponent, isStandalone: true, selector: "ecl-site-header-language-popover", inputs: { languageCode: { classPropertyName: "languageCode", publicName: "languageCode", isSignal: false, isRequired: false, transformFunction: null }, euLanguages: { classPropertyName: "euLanguages", publicName: "euLanguages", isSignal: false, isRequired: false, transformFunction: null }, nonEuLanguages: { classPropertyName: "nonEuLanguages", publicName: "nonEuLanguages", isSignal: false, isRequired: false, transformFunction: null }, euColumnsCount: { classPropertyName: "euColumnsCount", publicName: "euColumnsCount", isSignal: true, isRequired: false, transformFunction: null }, nonEuColumnsCount: { classPropertyName: "nonEuColumnsCount", publicName: "nonEuColumnsCount", isSignal: true, isRequired: false, transformFunction: null }, isHidden: { classPropertyName: "isHidden", publicName: "isHidden", isSignal: true, isRequired: false, transformFunction: null }, isPushRight: { classPropertyName: "isPushRight", publicName: "isPushRight", isSignal: true, isRequired: false, transformFunction: null }, isPushLeft: { classPropertyName: "isPushLeft", publicName: "isPushLeft", isSignal: true, isRequired: false, transformFunction: null }, isStack: { classPropertyName: "isStack", publicName: "isStack", isSignal: true, isRequired: false, transformFunction: null }, isFull: { classPropertyName: "isFull", publicName: "isFull", isSignal: true, isRequired: false, transformFunction: null }, rightPosition: { classPropertyName: "rightPosition", publicName: "rightPosition", isSignal: false, isRequired: false, transformFunction: null }, leftPosition: { classPropertyName: "leftPosition", publicName: "leftPosition", isSignal: false, isRequired: false, transformFunction: null }, languageArrowPosition: { classPropertyName: "languageArrowPosition", publicName: "languageArrowPosition", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { languageClosed: "languageClosed", languageSelected: "languageSelected" }, host: { properties: { "style.right.px": "this.rightPosition", "style.left.px": "this.leftPosition", "style.--ecl-language-arrow-position": "this.languageArrowPosition", "attr.role": "this.role", "attr.aria-labelledby": "this.labelledBy", "style.display": "this.display", "class": "this.cssClasses", "attr.aria-modal": "this.isModal", "attr.hidden": "this.isDropdownHidden" } }, viewQueries: [{ propertyName: "languageContent", first: true, predicate: ["languageContent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__language-header\">\n <div class=\"ecl-site-header__language-title\">\n {{ 'ecl.language-list.SELECT-LANGUAGE' | translate }}\n </div>\n <button eclButton variant=\"tertiary\" 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", dependencies: [{ kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3$1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
521
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclSiteHeaderLanguagePopoverComponent, isStandalone: true, selector: "ecl-site-header-language-popover", inputs: { languageCode: { classPropertyName: "languageCode", publicName: "languageCode", isSignal: false, isRequired: false, transformFunction: null }, euLanguages: { classPropertyName: "euLanguages", publicName: "euLanguages", isSignal: false, isRequired: false, transformFunction: null }, nonEuLanguages: { classPropertyName: "nonEuLanguages", publicName: "nonEuLanguages", isSignal: false, isRequired: false, transformFunction: null }, euColumnsCount: { classPropertyName: "euColumnsCount", publicName: "euColumnsCount", isSignal: true, isRequired: false, transformFunction: null }, nonEuColumnsCount: { classPropertyName: "nonEuColumnsCount", publicName: "nonEuColumnsCount", isSignal: true, isRequired: false, transformFunction: null }, isHidden: { classPropertyName: "isHidden", publicName: "isHidden", isSignal: true, isRequired: false, transformFunction: null }, isPushRight: { classPropertyName: "isPushRight", publicName: "isPushRight", isSignal: true, isRequired: false, transformFunction: null }, isPushLeft: { classPropertyName: "isPushLeft", publicName: "isPushLeft", isSignal: true, isRequired: false, transformFunction: null }, isStack: { classPropertyName: "isStack", publicName: "isStack", isSignal: true, isRequired: false, transformFunction: null }, isFull: { classPropertyName: "isFull", publicName: "isFull", isSignal: true, isRequired: false, transformFunction: null }, rightPosition: { classPropertyName: "rightPosition", publicName: "rightPosition", isSignal: false, isRequired: false, transformFunction: null }, leftPosition: { classPropertyName: "leftPosition", publicName: "leftPosition", isSignal: false, isRequired: false, transformFunction: null }, languageArrowPosition: { classPropertyName: "languageArrowPosition", publicName: "languageArrowPosition", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { languageClosed: "languageClosed", languageSelected: "languageSelected" }, host: { properties: { "style.right.px": "this.rightPosition", "style.left.px": "this.leftPosition", "style.--ecl-language-arrow-position": "this.languageArrowPosition", "attr.role": "this.role", "attr.aria-labelledby": "this.labelledBy", "style.display": "this.display", "class": "this.cssClasses", "attr.aria-modal": "this.isModal", "attr.hidden": "this.isDropdownHidden" } }, viewQueries: [{ propertyName: "languageContent", first: true, predicate: ["languageContent"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__language-header\">\n <div class=\"ecl-site-header__language-title\">\n {{ 'ecl.language-list.SELECT-LANGUAGE' | translate }}\n </div>\n <button eclButton variant=\"tertiary\" 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", dependencies: [{ kind: "component", type: i3.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "directive", type: i3$1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "isBranded", "variant"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
515
522
|
}
|
|
516
523
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderLanguagePopoverComponent, decorators: [{
|
|
517
524
|
type: Component,
|
|
518
525
|
args: [{ selector: 'ecl-site-header-language-popover', imports: [TranslatePipe, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK], 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" }]
|
|
519
|
-
}], ctorParameters: () => [], propDecorators: { languageContent: [{
|
|
520
|
-
type: ViewChild,
|
|
521
|
-
args: ['languageContent']
|
|
522
|
-
}], languageCode: [{
|
|
526
|
+
}], ctorParameters: () => [], propDecorators: { languageContent: [{ type: i0.ViewChild, args: ['languageContent', { isSignal: true }] }], languageCode: [{
|
|
523
527
|
type: Input
|
|
524
528
|
}], euLanguages: [{
|
|
525
529
|
type: Input
|
|
@@ -594,6 +598,15 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
|
|
|
594
598
|
this.eclThemeService = inject(EclThemeService);
|
|
595
599
|
this.config = inject(GLOBAL_CONFIG_TOKEN, { optional: true });
|
|
596
600
|
this.i18nService = inject(I18nService);
|
|
601
|
+
/**
|
|
602
|
+
* The language popover, that shows all available languages (configured in the config file of the current site).
|
|
603
|
+
*/
|
|
604
|
+
this.languagePopover = viewChild(EclSiteHeaderLanguagePopoverComponent, /* @ts-ignore */
|
|
605
|
+
...(ngDevMode ? [{ debugName: "languagePopover" }] : /* istanbul ignore next */ []));
|
|
606
|
+
/**
|
|
607
|
+
* The link to open the popover dialog.
|
|
608
|
+
*/
|
|
609
|
+
this.languageLinkElement = viewChild('languageLink', { ...(ngDevMode ? { debugName: "languageLinkElement" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
597
610
|
/**
|
|
598
611
|
* Thie event is emited, when language link, showing the current language is clicked.
|
|
599
612
|
*/
|
|
@@ -665,7 +678,7 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
|
|
|
665
678
|
}
|
|
666
679
|
// If the dropdown is visible, we set the max-height of the dropdown, so that it can be scrolled.
|
|
667
680
|
if (this.isLanguagesDropdownVisible) {
|
|
668
|
-
setTimeout(() => this.languagePopover.setLanguageContentMaxHeight());
|
|
681
|
+
setTimeout(() => this.languagePopover().setLanguageContentMaxHeight());
|
|
669
682
|
}
|
|
670
683
|
this.languageClick.next(new EclSiteHeaderLanguageClickEvent());
|
|
671
684
|
evt.preventDefault();
|
|
@@ -712,8 +725,8 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
|
|
|
712
725
|
setTimeout(() => {
|
|
713
726
|
if (this.hasLanguageCodes()) {
|
|
714
727
|
const arrowSize = '0.5rem';
|
|
715
|
-
const linkRect = this.languageLinkElement.nativeElement.getBoundingClientRect();
|
|
716
|
-
const popoverRect = this.languagePopover?.el.nativeElement.getBoundingClientRect();
|
|
728
|
+
const linkRect = this.languageLinkElement().nativeElement.getBoundingClientRect();
|
|
729
|
+
const popoverRect = this.languagePopover()?.el.nativeElement.getBoundingClientRect();
|
|
717
730
|
const screenWidth = this.window.innerWidth;
|
|
718
731
|
const vw = Math.max(document.documentElement.clientWidth || 0, this.window.innerWidth || 0);
|
|
719
732
|
this.isFull = false;
|
|
@@ -777,7 +790,7 @@ class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
|
|
|
777
790
|
});
|
|
778
791
|
}
|
|
779
792
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderLanguageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
780
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclSiteHeaderLanguageComponent, isStandalone: true, selector: "ecl-site-header-language", outputs: { languageClick: "languageClick", languageSelected: "languageSelected" }, host: { listeners: { "eclClickOutside": "onClickOutside()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "languagePopover", first: true, predicate: EclSiteHeaderLanguagePopoverComponent, descendants: true }, { propertyName: "languageLinkElement", first: true, predicate: ["languageLink"], descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, 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"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclSiteHeaderLanguagePopoverComponent, selector: "ecl-site-header-language-popover", inputs: ["languageCode", "euLanguages", "nonEuLanguages", "euColumnsCount", "nonEuColumnsCount", "isHidden", "isPushRight", "isPushLeft", "isStack", "isFull", "rightPosition", "leftPosition", "languageArrowPosition"], outputs: ["languageClosed", "languageSelected"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }] }); }
|
|
793
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclSiteHeaderLanguageComponent, isStandalone: true, selector: "ecl-site-header-language", outputs: { languageClick: "languageClick", languageSelected: "languageSelected" }, host: { listeners: { "eclClickOutside": "onClickOutside()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "languagePopover", first: true, predicate: EclSiteHeaderLanguagePopoverComponent, descendants: true, isSignal: true }, { propertyName: "languageLinkElement", first: true, predicate: ["languageLink"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, 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"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i2.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i2$1.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclSiteHeaderLanguagePopoverComponent, selector: "ecl-site-header-language-popover", inputs: ["languageCode", "euLanguages", "nonEuLanguages", "euColumnsCount", "nonEuColumnsCount", "isHidden", "isPushRight", "isPushLeft", "isStack", "isFull", "rightPosition", "leftPosition", "languageArrowPosition"], outputs: ["languageClosed", "languageSelected"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }] }); }
|
|
781
794
|
}
|
|
782
795
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderLanguageComponent, decorators: [{
|
|
783
796
|
type: Component,
|
|
@@ -787,13 +800,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
787
800
|
outputs: ['eclClickOutside'],
|
|
788
801
|
},
|
|
789
802
|
], 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"] }]
|
|
790
|
-
}], propDecorators: { languagePopover: [{
|
|
791
|
-
type: ViewChild,
|
|
792
|
-
args: [EclSiteHeaderLanguagePopoverComponent]
|
|
793
|
-
}], languageLinkElement: [{
|
|
794
|
-
type: ViewChild,
|
|
795
|
-
args: ['languageLink', { read: ElementRef }]
|
|
796
|
-
}], languageClick: [{
|
|
803
|
+
}], propDecorators: { languagePopover: [{ type: i0.ViewChild, args: [i0.forwardRef(() => EclSiteHeaderLanguagePopoverComponent), { isSignal: true }] }], languageLinkElement: [{ type: i0.ViewChild, args: ['languageLink', { ...{ read: ElementRef }, isSignal: true }] }], languageClick: [{
|
|
797
804
|
type: Output
|
|
798
805
|
}], languageSelected: [{
|
|
799
806
|
type: Output
|
|
@@ -817,6 +824,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
|
|
|
817
824
|
super();
|
|
818
825
|
this.isLoggedIn = input(false, { ...(ngDevMode ? { debugName: "isLoggedIn" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
819
826
|
this.class = 'ecl-site-header__login-container';
|
|
827
|
+
this.loginLinkElement = viewChild('loginLink', { ...(ngDevMode ? { debugName: "loginLinkElement" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
820
828
|
this.login = output();
|
|
821
829
|
this.loginBoxToggle = new EventEmitter();
|
|
822
830
|
/**
|
|
@@ -890,7 +898,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
|
|
|
890
898
|
calculateLoginArrowPosition(parentHeaderRight) {
|
|
891
899
|
const vw = this.document.documentElement.clientWidth;
|
|
892
900
|
const arrowSize = '0.5rem';
|
|
893
|
-
const loginLink = this.loginLinkElement?.nativeElement.getBoundingClientRect();
|
|
901
|
+
const loginLink = this.loginLinkElement()?.nativeElement.getBoundingClientRect();
|
|
894
902
|
const arrowPosition = parentHeaderRight - loginLink?.right + loginLink?.width / 2;
|
|
895
903
|
if (parentHeaderRight === undefined) {
|
|
896
904
|
return;
|
|
@@ -903,7 +911,7 @@ class EclSiteHeaderLoginComponent extends ECLBaseDirective {
|
|
|
903
911
|
}
|
|
904
912
|
}
|
|
905
913
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
906
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclSiteHeaderLoginComponent, isStandalone: true, selector: "ecl-site-header-login", inputs: { isLoggedIn: { classPropertyName: "isLoggedIn", publicName: "isLoggedIn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { login: "login", loginBoxToggle: "loginBoxToggle" }, host: { listeners: { "eclClickOutside": "onClickOutsideMegaMenu()" }, properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "loginLinkElement", first: true, predicate: ["loginLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i1.ECLBaseDirective }, { directive: i1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, 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 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"], dependencies: [{ 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" }] }); }
|
|
914
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclSiteHeaderLoginComponent, isStandalone: true, selector: "ecl-site-header-login", inputs: { isLoggedIn: { classPropertyName: "isLoggedIn", publicName: "isLoggedIn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { login: "login", loginBoxToggle: "loginBoxToggle" }, host: { listeners: { "eclClickOutside": "onClickOutsideMegaMenu()" }, properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "loginLinkElement", first: true, predicate: ["loginLink"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i1.ECLBaseDirective }, { directive: i1.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, 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 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"], dependencies: [{ 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" }] }); }
|
|
907
915
|
}
|
|
908
916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderLoginComponent, decorators: [{
|
|
909
917
|
type: Component,
|
|
@@ -913,17 +921,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
913
921
|
},
|
|
914
922
|
{
|
|
915
923
|
directive: ECLClickOutsideDirective,
|
|
916
|
-
// eslint-disable-next-line @angular-eslint/no-outputs-metadata-property
|
|
917
924
|
outputs: ['eclClickOutside'],
|
|
918
925
|
},
|
|
919
926
|
], 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 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"] }]
|
|
920
927
|
}], ctorParameters: () => [], propDecorators: { isLoggedIn: [{ type: i0.Input, args: [{ isSignal: true, alias: "isLoggedIn", required: false }] }], class: [{
|
|
921
928
|
type: HostBinding,
|
|
922
929
|
args: ['class']
|
|
923
|
-
}], loginLinkElement: [{
|
|
924
|
-
type: ViewChild,
|
|
925
|
-
args: ['loginLink', { read: ElementRef }]
|
|
926
|
-
}], login: [{ type: i0.Output, args: ["login"] }], loginBoxToggle: [{
|
|
930
|
+
}], loginLinkElement: [{ type: i0.ViewChild, args: ['loginLink', { ...{ read: ElementRef }, isSignal: true }] }], login: [{ type: i0.Output, args: ["login"] }], loginBoxToggle: [{
|
|
927
931
|
type: Output
|
|
928
932
|
}], onClickOutsideMegaMenu: [{
|
|
929
933
|
type: HostListener,
|
|
@@ -1091,6 +1095,10 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
|
|
|
1091
1095
|
...(ngDevMode ? [{ debugName: "searchInputPlaceholder" }] : /* istanbul ignore next */ []));
|
|
1092
1096
|
this.searchButtonLabel = input(undefined, /* @ts-ignore */
|
|
1093
1097
|
...(ngDevMode ? [{ debugName: "searchButtonLabel" }] : /* istanbul ignore next */ []));
|
|
1098
|
+
/**
|
|
1099
|
+
* The search link element from the view, i.e. the search button.
|
|
1100
|
+
*/
|
|
1101
|
+
this.searchLinkElement = viewChild('searchLink', { ...(ngDevMode ? { debugName: "searchLinkElement" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
1094
1102
|
this.searchEvent = output();
|
|
1095
1103
|
this.searchToggle = new EventEmitter();
|
|
1096
1104
|
this.isSearchBoxActive = false;
|
|
@@ -1169,7 +1177,7 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
|
|
|
1169
1177
|
});
|
|
1170
1178
|
}
|
|
1171
1179
|
calculateSearchFormArrowPosition(parentHeaderRight) {
|
|
1172
|
-
const searchLink = this.searchLinkElement.nativeElement.getBoundingClientRect();
|
|
1180
|
+
const searchLink = this.searchLinkElement().nativeElement.getBoundingClientRect();
|
|
1173
1181
|
const viewportWidth = this.document.documentElement.clientWidth;
|
|
1174
1182
|
const arrowPosition = viewportWidth - searchLink.right + searchLink.width / 2;
|
|
1175
1183
|
const arrowSize = '0.5rem';
|
|
@@ -1179,7 +1187,7 @@ class EclSiteHeaderSearchComponent extends ECLBaseDirective {
|
|
|
1179
1187
|
}
|
|
1180
1188
|
}
|
|
1181
1189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderSearchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
1182
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
1190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", 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: { properties: { "class": "this.class", "attr.role": "this.role" } }, providers: [ECL_SITE_HEADER_SEARCH_VALUE_ACCESSOR], viewQueries: [{ propertyName: "searchLinkElement", first: true, predicate: ["searchLink"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, 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 [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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$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" }] }); }
|
|
1183
1191
|
}
|
|
1184
1192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderSearchComponent, decorators: [{
|
|
1185
1193
|
type: Component,
|
|
@@ -1192,10 +1200,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1192
1200
|
args: ['attr.role']
|
|
1193
1201
|
}], searchInputText: [{
|
|
1194
1202
|
type: Input
|
|
1195
|
-
}], searchInputPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchInputPlaceholder", required: false }] }], searchButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchButtonLabel", required: false }] }], searchLinkElement: [{
|
|
1196
|
-
type: ViewChild,
|
|
1197
|
-
args: ['searchLink', { read: ElementRef }]
|
|
1198
|
-
}], searchEvent: [{ type: i0.Output, args: ["searchEvent"] }], searchToggle: [{
|
|
1203
|
+
}], searchInputPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchInputPlaceholder", required: false }] }], searchButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchButtonLabel", required: false }] }], searchLinkElement: [{ type: i0.ViewChild, args: ['searchLink', { ...{ read: ElementRef }, isSignal: true }] }], searchEvent: [{ type: i0.Output, args: ["searchEvent"] }], searchToggle: [{
|
|
1199
1204
|
type: Output
|
|
1200
1205
|
}] } });
|
|
1201
1206
|
|
|
@@ -1213,8 +1218,8 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1213
1218
|
return [
|
|
1214
1219
|
super.getCssClasses('ecl-site-header'),
|
|
1215
1220
|
`ecl-site-header-with-logo-${this.logoSize()}`,
|
|
1216
|
-
this.eclMenuComponent ? 'ecl-site-header--has-menu' : '',
|
|
1217
|
-
this.eclMegaMenuComponent ? 'ecl-site-header--has-mega-menu' : '',
|
|
1221
|
+
this.eclMenuComponent() ? 'ecl-site-header--has-menu' : '',
|
|
1222
|
+
this.eclMegaMenuComponent() ? 'ecl-site-header--has-mega-menu' : '',
|
|
1218
1223
|
this.isEclMegaMenuOpen ? 'ecl-site-header--open-menu' : '',
|
|
1219
1224
|
this.isEclMegaMenuStart ? 'ecl-site-header--open-menu-start' : '',
|
|
1220
1225
|
this.isRtl ? 'ecl-site-header--rtl' : '',
|
|
@@ -1239,6 +1244,28 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1239
1244
|
this.isSiteNameMobileOnly = input(false, { ...(ngDevMode ? { debugName: "isSiteNameMobileOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
1240
1245
|
this.logoClick = output();
|
|
1241
1246
|
this.languageClick = output();
|
|
1247
|
+
this.topContainerElement = viewChild('topContainer', /* @ts-ignore */
|
|
1248
|
+
...(ngDevMode ? [{ debugName: "topContainerElement" }] : /* istanbul ignore next */ []));
|
|
1249
|
+
this.siteHeaderHeader = viewChild('siteHeaderHeader', /* @ts-ignore */
|
|
1250
|
+
...(ngDevMode ? [{ debugName: "siteHeaderHeader" }] : /* istanbul ignore next */ []));
|
|
1251
|
+
this.bannerHeader = viewChild('bannerHeader', /* @ts-ignore */
|
|
1252
|
+
...(ngDevMode ? [{ debugName: "bannerHeader" }] : /* istanbul ignore next */ []));
|
|
1253
|
+
this.eclLoginComponent = contentChild(EclSiteHeaderLoginComponent, /* @ts-ignore */
|
|
1254
|
+
...(ngDevMode ? [{ debugName: "eclLoginComponent" }] : /* istanbul ignore next */ []));
|
|
1255
|
+
this.eclMenuComponent = contentChild(EclMenuComponent, /* @ts-ignore */
|
|
1256
|
+
...(ngDevMode ? [{ debugName: "eclMenuComponent" }] : /* istanbul ignore next */ []));
|
|
1257
|
+
this.eclMegaMenuComponent = contentChild(EclMegaMenuComponent, /* @ts-ignore */
|
|
1258
|
+
...(ngDevMode ? [{ debugName: "eclMegaMenuComponent" }] : /* istanbul ignore next */ []));
|
|
1259
|
+
this.eclSearchComponent = contentChild(EclSiteHeaderSearchComponent, /* @ts-ignore */
|
|
1260
|
+
...(ngDevMode ? [{ debugName: "eclSearchComponent" }] : /* istanbul ignore next */ []));
|
|
1261
|
+
this.eclLanguageComponent = contentChild(EclSiteHeaderLanguageComponent, /* @ts-ignore */
|
|
1262
|
+
...(ngDevMode ? [{ debugName: "eclLanguageComponent" }] : /* istanbul ignore next */ []));
|
|
1263
|
+
this.eclNotificationComponent = contentChild(EclSiteHeaderNotificationComponent, /* @ts-ignore */
|
|
1264
|
+
...(ngDevMode ? [{ debugName: "eclNotificationComponent" }] : /* istanbul ignore next */ []));
|
|
1265
|
+
this.eclHeaderLink = contentChild(forwardRef(() => EclSiteHeaderLinkDirective), /* @ts-ignore */
|
|
1266
|
+
...(ngDevMode ? [{ debugName: "eclHeaderLink" }] : /* istanbul ignore next */ []));
|
|
1267
|
+
this.eclHeaderImage = contentChild(forwardRef(() => EclSiteHeaderImageDirective), /* @ts-ignore */
|
|
1268
|
+
...(ngDevMode ? [{ debugName: "eclHeaderImage" }] : /* istanbul ignore next */ []));
|
|
1242
1269
|
this.destroy$ = new Subject();
|
|
1243
1270
|
this.isEclMegaMenuOpen = false;
|
|
1244
1271
|
this.isEclMegaMenuStart = false;
|
|
@@ -1259,7 +1286,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1259
1286
|
setTimeout(() => {
|
|
1260
1287
|
this.sendResizeEventToChildComponents();
|
|
1261
1288
|
}, this.TIMEOUT_INTERVAL);
|
|
1262
|
-
}).observe(this.topContainerElement.nativeElement);
|
|
1289
|
+
}).observe(this.topContainerElement().nativeElement);
|
|
1263
1290
|
});
|
|
1264
1291
|
}
|
|
1265
1292
|
/**
|
|
@@ -1270,33 +1297,38 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1270
1297
|
return;
|
|
1271
1298
|
this.handleRtlChangeState();
|
|
1272
1299
|
this.handleLanguageChangeState();
|
|
1273
|
-
|
|
1274
|
-
|
|
1300
|
+
const eclHeaderImage = this.eclHeaderImage();
|
|
1301
|
+
if (eclHeaderImage) {
|
|
1302
|
+
eclHeaderImage.logoSize = this.logoSize();
|
|
1275
1303
|
}
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1304
|
+
const eclLoginComponent = this.eclLoginComponent();
|
|
1305
|
+
const eclSearchComponent = this.eclSearchComponent();
|
|
1306
|
+
if (eclLoginComponent && eclSearchComponent) {
|
|
1307
|
+
eclLoginComponent.loginBoxToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
1308
|
+
this.eclSearchComponent().isSearchBoxActive = false;
|
|
1279
1309
|
this.sendResizeEventToChildComponents();
|
|
1280
1310
|
});
|
|
1281
|
-
|
|
1282
|
-
this.eclLoginComponent.isLoginBoxActive = false;
|
|
1311
|
+
eclSearchComponent.searchToggle.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
1312
|
+
this.eclLoginComponent().isLoginBoxActive = false;
|
|
1283
1313
|
this.sendResizeEventToChildComponents();
|
|
1284
1314
|
});
|
|
1285
1315
|
}
|
|
1286
|
-
|
|
1287
|
-
|
|
1316
|
+
const eclLanguageComponent = this.eclLanguageComponent();
|
|
1317
|
+
if (eclLanguageComponent) {
|
|
1318
|
+
eclLanguageComponent.languageClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
1288
1319
|
this.languageClick.emit(new EclSiteHeaderLanguageClickEvent());
|
|
1289
1320
|
this.sendResizeEventToChildComponents();
|
|
1290
1321
|
});
|
|
1291
|
-
|
|
1322
|
+
eclLanguageComponent.languageSelected.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
1292
1323
|
this.languageCode = evt.language?.code;
|
|
1293
1324
|
});
|
|
1294
1325
|
}
|
|
1295
|
-
if (
|
|
1296
|
-
this.languageCode =
|
|
1326
|
+
if (eclLanguageComponent) {
|
|
1327
|
+
this.languageCode = eclLanguageComponent?.languageCode;
|
|
1297
1328
|
}
|
|
1298
|
-
|
|
1299
|
-
|
|
1329
|
+
const eclMenuComponent = this.eclMenuComponent();
|
|
1330
|
+
if (eclMenuComponent) {
|
|
1331
|
+
outputToObservable(eclMenuComponent.openHamburgerMenu).pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
1300
1332
|
this.positionMenu();
|
|
1301
1333
|
});
|
|
1302
1334
|
}
|
|
@@ -1320,7 +1352,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1320
1352
|
}
|
|
1321
1353
|
}
|
|
1322
1354
|
hasCustomLink() {
|
|
1323
|
-
return !!this.eclHeaderLink;
|
|
1355
|
+
return !!this.eclHeaderLink();
|
|
1324
1356
|
}
|
|
1325
1357
|
handleRtlChangeState() {
|
|
1326
1358
|
this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {
|
|
@@ -1332,8 +1364,9 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1332
1364
|
* via the 'eclAreaDataService'.
|
|
1333
1365
|
*/
|
|
1334
1366
|
sendResizeEventToChildComponents() {
|
|
1335
|
-
|
|
1336
|
-
|
|
1367
|
+
const topContainerElement = this.topContainerElement();
|
|
1368
|
+
if (topContainerElement.nativeElement.getBoundingClientRect().width !== undefined) {
|
|
1369
|
+
const topContainerRect = topContainerElement.nativeElement.getBoundingClientRect();
|
|
1337
1370
|
const siteHeaderAreaChangeEvent = new EclAreaChangeEvent(topContainerRect.width, topContainerRect.left, topContainerRect.right);
|
|
1338
1371
|
this.eclAreaDataService.publishEvent(siteHeaderAreaChangeEvent);
|
|
1339
1372
|
}
|
|
@@ -1346,7 +1379,7 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1346
1379
|
}
|
|
1347
1380
|
if (isExpanded) {
|
|
1348
1381
|
const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;
|
|
1349
|
-
this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);
|
|
1382
|
+
this.eclMegaMenuComponent().positionMenuOverlay(bottomSpaceY);
|
|
1350
1383
|
}
|
|
1351
1384
|
});
|
|
1352
1385
|
this.eclHeaderMenuComunicationService.isObjectExpanded$.pipe(takeUntil(this.destroy$)).subscribe(isExpanded => {
|
|
@@ -1362,32 +1395,36 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1362
1395
|
this.isEclMegaMenuOpen = isExpanded;
|
|
1363
1396
|
if (isExpanded) {
|
|
1364
1397
|
const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;
|
|
1365
|
-
this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);
|
|
1398
|
+
this.eclMegaMenuComponent().positionMenuOverlay(bottomSpaceY);
|
|
1366
1399
|
}
|
|
1367
1400
|
}
|
|
1368
1401
|
});
|
|
1369
1402
|
}
|
|
1370
1403
|
onMegaMenuItemExpandMobile() {
|
|
1371
1404
|
this.isEclMegaMenuStart = false;
|
|
1372
|
-
|
|
1373
|
-
|
|
1405
|
+
const eclNotificationComponent = this.eclNotificationComponent();
|
|
1406
|
+
if (eclNotificationComponent) {
|
|
1407
|
+
eclNotificationComponent.onHide();
|
|
1374
1408
|
}
|
|
1375
|
-
|
|
1376
|
-
|
|
1409
|
+
const bannerHeader = this.bannerHeader();
|
|
1410
|
+
if (bannerHeader) {
|
|
1411
|
+
bannerHeader.nativeElement.style.display = 'none';
|
|
1377
1412
|
}
|
|
1378
|
-
const bottomSpaceY = this.siteHeaderHeader.nativeElement.getBoundingClientRect().bottom;
|
|
1379
|
-
this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);
|
|
1413
|
+
const bottomSpaceY = this.siteHeaderHeader().nativeElement.getBoundingClientRect().bottom;
|
|
1414
|
+
this.eclMegaMenuComponent().positionMenuOverlay(bottomSpaceY);
|
|
1380
1415
|
}
|
|
1381
1416
|
onMegaMenuItemCollapseMobile() {
|
|
1382
1417
|
this.isEclMegaMenuStart = true;
|
|
1383
|
-
|
|
1384
|
-
|
|
1418
|
+
const eclNotificationComponent = this.eclNotificationComponent();
|
|
1419
|
+
if (eclNotificationComponent) {
|
|
1420
|
+
eclNotificationComponent.onShow();
|
|
1385
1421
|
}
|
|
1386
|
-
|
|
1387
|
-
|
|
1422
|
+
const bannerHeader = this.bannerHeader();
|
|
1423
|
+
if (bannerHeader) {
|
|
1424
|
+
bannerHeader.nativeElement.style.display = '';
|
|
1388
1425
|
}
|
|
1389
1426
|
const bottomSpaceY = this.el.nativeElement.getBoundingClientRect().bottom;
|
|
1390
|
-
this.eclMegaMenuComponent.positionMenuOverlay(bottomSpaceY);
|
|
1427
|
+
this.eclMegaMenuComponent().positionMenuOverlay(bottomSpaceY);
|
|
1391
1428
|
}
|
|
1392
1429
|
observeBreakpointChanges() {
|
|
1393
1430
|
this.cdkBreakpointObserver
|
|
@@ -1398,19 +1435,20 @@ class EclSiteHeaderComponent extends ECLBaseDirective {
|
|
|
1398
1435
|
});
|
|
1399
1436
|
}
|
|
1400
1437
|
positionMenu() {
|
|
1401
|
-
const bottomSpaceY = this.siteHeaderHeader.nativeElement.getBoundingClientRect().bottom;
|
|
1402
|
-
this.eclMenuComponent.positionMenuOverlay(bottomSpaceY);
|
|
1438
|
+
const bottomSpaceY = this.siteHeaderHeader().nativeElement.getBoundingClientRect().bottom;
|
|
1439
|
+
this.eclMenuComponent().positionMenuOverlay(bottomSpaceY);
|
|
1403
1440
|
}
|
|
1404
1441
|
handleLanguageChangeState() {
|
|
1405
1442
|
this.i18nService.getState().pipe(takeUntil(this.destroy$)).subscribe((lang) => {
|
|
1406
1443
|
this.languageCode = lang.activeLang;
|
|
1407
|
-
|
|
1408
|
-
|
|
1444
|
+
const eclLanguageComponent = this.eclLanguageComponent();
|
|
1445
|
+
if (eclLanguageComponent) {
|
|
1446
|
+
eclLanguageComponent.languageCode = lang.activeLang;
|
|
1409
1447
|
}
|
|
1410
1448
|
});
|
|
1411
1449
|
}
|
|
1412
1450
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1413
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", 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 }, { propertyName: "eclMenuComponent", first: true, predicate: EclMenuComponent, descendants: true }, { propertyName: "eclMegaMenuComponent", first: true, predicate: EclMegaMenuComponent, descendants: true }, { propertyName: "eclSearchComponent", first: true, predicate: EclSiteHeaderSearchComponent, descendants: true }, { propertyName: "eclLanguageComponent", first: true, predicate: EclSiteHeaderLanguageComponent, descendants: true }, { propertyName: "eclNotificationComponent", first: true, predicate: EclSiteHeaderNotificationComponent, descendants: true }, { propertyName: "eclHeaderLink", first: true, predicate: i0.forwardRef(() => EclSiteHeaderLinkDirective), descendants: true }, { propertyName: "eclHeaderImage", first: true, predicate: i0.forwardRef(() => EclSiteHeaderImageDirective), descendants: true }], viewQueries: [{ propertyName: "topContainerElement", first: true, predicate: ["topContainer"], descendants: true }, { propertyName: "siteHeaderHeader", first: true, predicate: ["siteHeaderHeader"], descendants: true }, { propertyName: "bannerHeader", first: true, predicate: ["bannerHeader"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-header__background\">\n <div class=\"ecl-site-header__header\" #siteHeaderHeader>\n <div class=\"ecl-site-header__container ecl-container\">\n <div #topContainer class=\"ecl-site-header__top\">\n @if(hasCustomLink()) {\n <ng-content select=\"[eclSiteHeaderLink]\"></ng-content>\n } @else {\n <a eclLink variant=\"standalone\" class=\"ecl-site-header__logo-link\"\n href=\"https://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" }] }); }
|
|
1451
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", 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" }] }); }
|
|
1414
1452
|
}
|
|
1415
1453
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclSiteHeaderComponent, decorators: [{
|
|
1416
1454
|
type: Component,
|
|
@@ -1422,40 +1460,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1422
1460
|
}], logoSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "logoSize", required: false }] }], isSiteNameMobileOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSiteNameMobileOnly", required: false }] }], cssClasses: [{
|
|
1423
1461
|
type: HostBinding,
|
|
1424
1462
|
args: ['class']
|
|
1425
|
-
}], logoClick: [{ type: i0.Output, args: ["logoClick"] }], languageClick: [{ type: i0.Output, args: ["languageClick"] }], topContainerElement: [{
|
|
1426
|
-
type: ViewChild,
|
|
1427
|
-
args: ['topContainer']
|
|
1428
|
-
}], siteHeaderHeader: [{
|
|
1429
|
-
type: ViewChild,
|
|
1430
|
-
args: ['siteHeaderHeader']
|
|
1431
|
-
}], bannerHeader: [{
|
|
1432
|
-
type: ViewChild,
|
|
1433
|
-
args: ['bannerHeader']
|
|
1434
|
-
}], eclLoginComponent: [{
|
|
1435
|
-
type: ContentChild,
|
|
1436
|
-
args: [EclSiteHeaderLoginComponent]
|
|
1437
|
-
}], eclMenuComponent: [{
|
|
1438
|
-
type: ContentChild,
|
|
1439
|
-
args: [EclMenuComponent]
|
|
1440
|
-
}], eclMegaMenuComponent: [{
|
|
1441
|
-
type: ContentChild,
|
|
1442
|
-
args: [EclMegaMenuComponent]
|
|
1443
|
-
}], eclSearchComponent: [{
|
|
1444
|
-
type: ContentChild,
|
|
1445
|
-
args: [EclSiteHeaderSearchComponent]
|
|
1446
|
-
}], eclLanguageComponent: [{
|
|
1447
|
-
type: ContentChild,
|
|
1448
|
-
args: [EclSiteHeaderLanguageComponent]
|
|
1449
|
-
}], eclNotificationComponent: [{
|
|
1450
|
-
type: ContentChild,
|
|
1451
|
-
args: [EclSiteHeaderNotificationComponent]
|
|
1452
|
-
}], eclHeaderLink: [{
|
|
1453
|
-
type: ContentChild,
|
|
1454
|
-
args: [forwardRef(() => EclSiteHeaderLinkDirective), { descendants: true }]
|
|
1455
|
-
}], eclHeaderImage: [{
|
|
1456
|
-
type: ContentChild,
|
|
1457
|
-
args: [forwardRef(() => EclSiteHeaderImageDirective), { descendants: true }]
|
|
1458
|
-
}] } });
|
|
1463
|
+
}], 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 }] }] } });
|
|
1459
1464
|
|
|
1460
1465
|
const EUI_ECL_SITE_HEADER = [
|
|
1461
1466
|
EclSiteHeaderComponent,
|