@eui/ecl 21.0.0-next.20 → 21.0.0-next.22

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 (37) hide show
  1. package/docs/changelog.html +66 -0
  2. package/docs/components/EclSiteFooterComponent.html +13 -0
  3. package/docs/components/EclSocialMediaFollowItemComponent.html +20 -1
  4. package/docs/directives/EclLinkDirective.html +132 -12
  5. package/docs/js/search/search_index.js +2 -2
  6. package/docs/properties.html +1 -1
  7. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +1 -1
  8. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +1 -1
  10. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  11. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +1 -1
  12. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  13. package/fesm2022/eui-ecl-components-ecl-link.mjs +32 -11
  14. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  15. package/fesm2022/eui-ecl-components-ecl-list.mjs +1 -1
  16. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  17. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +2 -2
  18. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  19. package/fesm2022/eui-ecl-components-ecl-menu.mjs +1 -1
  20. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  21. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +1 -1
  22. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  23. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +17 -10
  24. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  25. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +2 -2
  26. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  27. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +4 -2
  28. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  29. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +1 -1
  30. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/types/eui-ecl-components-ecl-link.d.ts +15 -3
  33. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  34. package/types/eui-ecl-components-ecl-site-footer.d.ts +1 -0
  35. package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
  36. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +5 -1
  37. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-pagination.mjs","sources":["../../components/ecl-pagination/ecl-pagination-item.component.ts","../../components/ecl-pagination/ecl-pagination-item.component.html","../../components/ecl-pagination/ecl-pagination-list.directive.ts","../../components/ecl-pagination/events/ecl-pagination.event.ts","../../components/ecl-pagination/ecl-pagination.component.ts","../../components/ecl-pagination/ecl-pagination.component.html","../../components/ecl-pagination/index.ts","../../components/ecl-pagination/eui-ecl-components-ecl-pagination.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, booleanAttribute, inject } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * Event emitted when a pagination item is clicked.\n */\nexport class EclPaginationItemClickEvent extends EclBaseEvent {}\n\n@Component({\n selector: 'li[eclPaginationItem]',\n templateUrl: './ecl-pagination-item.component.html',\n imports: [RouterLink, RouterLinkWithHref, TranslateModule, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclPaginationItemComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-pagination__item'),\n this.isCurrent ? 'ecl-pagination__item--current' : '',\n this.isNext ? 'ecl-pagination__item--next' : '',\n this.isPrevious ? 'ecl-pagination__item--previous' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets the `role` attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Text content of the pagination item.\n */\n @Input() label: string;\n\n /**\n * Value for the `aria-label` attribute used for accessibility.\n */\n @Input() ariaLabel: string;\n\n /**\n * Total number of pages displayed by the pagination component.\n */\n @Input() pagesCount: string;\n\n /**\n * Adds the `ecl-pagination__item--current` class when true.\n */\n @Input({ transform: booleanAttribute }) isCurrent: boolean;\n\n /**\n * Adds the `ecl-pagination__item--next` class when true.\n */\n @Input({ transform: booleanAttribute }) isNext: boolean;\n\n /**\n * Adds the `ecl-pagination__item--previous` class when true.\n */\n @Input({ transform: booleanAttribute }) isPrevious: boolean;\n\n /**\n * Adds the `ecl-pagination__item--truncation` class when true.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-pagination__item--truncation') isTruncated = false;\n\n /**\n * Router navigation link for Angular routing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters for the router link.\n */\n @Input() queryParams: Params | null = null;\n\n /**\n * Determines how query parameters are handled during navigation.\n */\n @Input() queryParamsHandling: QueryParamsHandling = null;\n\n /**\n * Href link for navigation.\n */\n @Input() href: string = null;\n\n /**\n * Emits when the pagination item is clicked.\n */\n @Output() pageClick = new EventEmitter<EclPaginationItemClickEvent>();\n\n get anchorRole(): string | null {\n return !this.href && !this.routerLink ? 'button' : null;\n }\n\n /**\n * Adds relevant classes to the host element.\n */\n constructor() {\n super();\n const el = this.el;\n\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {\n console.warn('\"ecl-pagination-item\" selector is deprecated; use \"li[eclPaginationItem]\" instead.');\n }\n }\n\n /**\n * Returns true if this item is an icon-only element (previous or next page).\n */\n get isIconOnly(): boolean {\n return this.isPrevOrNextVisible();\n }\n\n /**\n * Handles the click event and emits the `pageClick` output.\n * Prevents event propagation if no href is defined.\n *\n * @param evt Event object from the DOM click event.\n */\n onPageClick(evt: Event): void {\n this.pageClick.next(new EclPaginationItemClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * Returns the i18n translation key for the ARIA label.\n */\n geti18nPageAriaLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.GO-TO-NEXT-PAGE';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.GO-TO-PREV-PAGE';\n } else {\n key = 'ecl.pagination.GO-TO-PAGE';\n }\n return key;\n }\n\n /**\n * Returns the i18n translation key for the visible label.\n */\n geti18nPageLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.NEXT';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.PREVIOUS';\n }\n return key;\n }\n\n /**\n * Returns true if the item is either previous or next.\n */\n isPrevOrNextVisible(): boolean {\n return this.isPrevious || this.isNext;\n }\n}\n","@if (!isCurrent && !isTruncated) {\n@if(routerLink){\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.role]=\"anchorRole\"\n [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n\n@if (!routerLink) {\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.href]=\"href\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\" [attr.role]=\"anchorRole\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n}\n\n@else if (isTruncated) {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n}\n@else {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n\n<span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n @if(pagesCount) {\n {{ 'ecl.common.OF' | translate}} {{pagesCount}}\n }\n</span>\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply ECL styles to the pagination list element.\n * Adds the `ecl-pagination__list` class to the host element.\n */\n@Directive({\n selector: '[eclPaginationList]',\n})\nexport class EclPaginationListDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-pagination__list` class to the host element.\n */\n @HostBinding('class.ecl-pagination__list') hasClass = true;\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted by EclPaginationComponent when the page changes.\n * Contains information about the current page and visible item range.\n */\nexport class EclPaginationEvent extends EclBaseEvent {\n /**\n * Current page number after the change.\n */\n constructor(\n public readonly page: number,\n\n /**\n * Index of the first item shown on the current page.\n */\n public readonly showingFrom: number,\n\n /**\n * Index of the last item shown on the current page.\n */\n public readonly showingTo: number,\n ) {\n super();\n }\n}\n","import { Component, ContentChild, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, numberAttribute } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DefaultConfig, EuiPagination } from '@eui/base';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPaginationEvent } from './events/ecl-pagination.event';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationItemComponent } from './ecl-pagination-item.component';\n\n/**\n * Component rendering the ECL pagination.\n * Supports manual and automatic modes.\n * Emits page change events and manages pagination logic.\n */\n@Component({\n selector: 'ecl-pagination',\n templateUrl: './ecl-pagination.component.html',\n imports: [NgTemplateOutlet, EclPaginationItemComponent],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclPaginationComponent extends ECLBaseDirective implements OnInit, OnChanges {\n /**\n * Defines the pagination mode.\n * - `manual` - component waits for external events to change pages.\n * - `auto` - component manages the pages automatically based on inputs.\n */\n @Input() mode: 'manual' | 'auto' = 'manual';\n\n /**\n * Total number of items in the list.\n */\n @Input({ transform: numberAttribute }) totalItems: number = DefaultConfig.totalItems;\n\n /**\n * Number of items displayed on a single page.\n */\n @Input({ transform: numberAttribute }) pageSize: number = DefaultConfig.pageSize;\n\n /**\n * Currently selected page number.\n */\n @Input({ transform: numberAttribute }) currentPage: number = DefaultConfig.currentPage;\n\n /**\n * Number of pagination links visible around the current page.\n */\n @Input({ transform: numberAttribute }) pageWindowSize: number = DefaultConfig.pageWindowSize;\n\n /**\n * Emits a pagination event each time the page changes.\n */\n @Output() page = new EventEmitter<EclPaginationEvent>();\n\n /**\n * Adds the `ecl-pagination` class to the host element.\n */\n @HostBinding('class.ecl-pagination') cmpClass = true;\n\n /**\n * Sets the ARIA role to indicate navigation.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * Reference to the pagination list directive inside the component's content.\n */\n @ContentChild(EclPaginationListDirective) eclPaginationList: EclPaginationListDirective;\n\n /**\n * Internal pagination model storing pagination data and logic.\n */\n public model = EuiPagination.create();\n\n /**\n * Lifecycle hook that runs once after component initialization.\n * In automatic mode, triggers an initial page event.\n */\n ngOnInit(): void {\n if (this.isModeAuto()) {\n setTimeout(() => {\n this.firePageEvent();\n });\n }\n }\n\n /**\n * Lifecycle hook called on input changes.\n * Re-creates the pagination model in automatic mode.\n */\n ngOnChanges(): void {\n if (this.isModeAuto()) {\n this.model = EuiPagination.create({\n totalItems: this.totalItems,\n pageSize: this.pageSize,\n currentPage: this.currentPage,\n pageWindowSize: this.pageWindowSize,\n });\n }\n }\n\n /**\n * Returns true if the pagination list exists in the template.\n */\n get hasList(): boolean {\n return !!this.eclPaginationList;\n }\n \n /**\n * Navigates to the previous page and emits a page change event.\n */\n onPreviousPage(): void {\n this.model.goToPreviousPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to the next page and emits a page change event.\n */\n onNextPage(): void {\n this.model.goToNextPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to a specific page and emits a page change event.\n *\n * @param page The page number to navigate to.\n */\n onPage(page: number): void {\n this.model.goToPage(page);\n this.firePageEvent();\n }\n\n /**\n * Checks if the component is in automatic mode.\n */\n isModeAuto(): boolean {\n return this.mode === 'auto';\n }\n\n /**\n * Emits the page change event with the current pagination state.\n */\n private firePageEvent(): void {\n const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());\n\n this.page.next(evt);\n }\n}\n","@if(!hasList) {\n <ul class=\"ecl-pagination__list\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ul>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n \n <ng-template #content>\n @if (isModeAuto()){\n @if(model.hasPreviousPage()){\n <li eclPaginationItem [isPrevious]=\"true\" (pageClick)=\"onPreviousPage()\"> </li>\n }\n @for (page of model.getPages(); track page) {\n <li eclPaginationItem\n [label]=\"page.toString()\"\n [isCurrent]=\"model.getCurrentPage() === page\"\n (pageClick)=\"onPage(page)\"\n [pagesCount]=\"model.getPagesCount().toString()\">\n </li>\n }\n \n @if(model.hasNextPage()){\n <li eclPaginationItem [isNext]=\"true\" (pageClick)=\"onNextPage()\"> </li>\n }\n }\n \n @if(!isModeAuto()) {\n <ng-content></ng-content>\n }\n </ng-template>","import { EclPaginationItemComponent } from './ecl-pagination-item.component';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationComponent } from './ecl-pagination.component';\n\nexport * from './ecl-pagination.component';\nexport * from './ecl-pagination-item.component';\nexport * from './events/ecl-pagination.event';\nexport * from './ecl-pagination-list.directive';\n\nexport const EUI_ECL_PAGINATION = [\n EclPaginationComponent, EclPaginationItemComponent, EclPaginationListDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-pagination.mjs","sources":["../../components/ecl-pagination/ecl-pagination-item.component.ts","../../components/ecl-pagination/ecl-pagination-item.component.html","../../components/ecl-pagination/ecl-pagination-list.directive.ts","../../components/ecl-pagination/events/ecl-pagination.event.ts","../../components/ecl-pagination/ecl-pagination.component.ts","../../components/ecl-pagination/ecl-pagination.component.html","../../components/ecl-pagination/index.ts","../../components/ecl-pagination/eui-ecl-components-ecl-pagination.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation, booleanAttribute, inject } from '@angular/core';\nimport { Params, QueryParamsHandling, RouterLink, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\n/**\n * Event emitted when a pagination item is clicked.\n */\nexport class EclPaginationItemClickEvent extends EclBaseEvent {}\n\n@Component({\n selector: 'li[eclPaginationItem]',\n templateUrl: './ecl-pagination-item.component.html',\n imports: [RouterLink, RouterLinkWithHref, TranslateModule, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EclPaginationItemComponent extends ECLBaseDirective {\n el = inject(ElementRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-pagination__item'),\n this.isCurrent ? 'ecl-pagination__item--current' : '',\n this.isNext ? 'ecl-pagination__item--next' : '',\n this.isPrevious ? 'ecl-pagination__item--previous' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Sets the `role` attribute for accessibility.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * Text content of the pagination item.\n */\n @Input() label: string;\n\n /**\n * Value for the `aria-label` attribute used for accessibility.\n */\n @Input() ariaLabel: string;\n\n /**\n * Total number of pages displayed by the pagination component.\n */\n @Input() pagesCount: string;\n\n /**\n * Adds the `ecl-pagination__item--current` class when true.\n */\n @Input({ transform: booleanAttribute }) isCurrent: boolean;\n\n /**\n * Adds the `ecl-pagination__item--next` class when true.\n */\n @Input({ transform: booleanAttribute }) isNext: boolean;\n\n /**\n * Adds the `ecl-pagination__item--previous` class when true.\n */\n @Input({ transform: booleanAttribute }) isPrevious: boolean;\n\n /**\n * Adds the `ecl-pagination__item--truncation` class when true.\n */\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-pagination__item--truncation') isTruncated = false;\n\n /**\n * Router navigation link for Angular routing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() routerLink: string | any[] = null;\n\n /**\n * Query parameters for the router link.\n */\n @Input() queryParams: Params | null = null;\n\n /**\n * Determines how query parameters are handled during navigation.\n */\n @Input() queryParamsHandling: QueryParamsHandling = null;\n\n /**\n * Href link for navigation.\n */\n @Input() href: string = null;\n\n /**\n * Emits when the pagination item is clicked.\n */\n @Output() pageClick = new EventEmitter<EclPaginationItemClickEvent>();\n\n get anchorRole(): string | null {\n return !this.href && !this.routerLink ? 'button' : null;\n }\n\n /**\n * Adds relevant classes to the host element.\n */\n constructor() {\n super();\n const el = this.el;\n\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-pagination-item') {\n console.warn('\"ecl-pagination-item\" selector is deprecated; use \"li[eclPaginationItem]\" instead.');\n }\n }\n\n /**\n * Returns true if this item is an icon-only element (previous or next page).\n */\n get isIconOnly(): boolean {\n return this.isPrevOrNextVisible();\n }\n\n /**\n * Handles the click event and emits the `pageClick` output.\n * Prevents event propagation if no href is defined.\n *\n * @param evt Event object from the DOM click event.\n */\n onPageClick(evt: Event): void {\n this.pageClick.next(new EclPaginationItemClickEvent());\n if (!this.href) {\n evt.stopPropagation();\n }\n }\n\n /**\n * Returns the i18n translation key for the ARIA label.\n */\n geti18nPageAriaLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.GO-TO-NEXT-PAGE';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.GO-TO-PREV-PAGE';\n } else {\n key = 'ecl.pagination.GO-TO-PAGE';\n }\n return key;\n }\n\n /**\n * Returns the i18n translation key for the visible label.\n */\n geti18nPageLabelKey(): string {\n let key = '';\n\n if (this.isNext) {\n key = 'ecl.pagination.NEXT';\n } else if (this.isPrevious) {\n key = 'ecl.pagination.PREVIOUS';\n }\n return key;\n }\n\n /**\n * Returns true if the item is either previous or next.\n */\n isPrevOrNextVisible(): boolean {\n return this.isPrevious || this.isNext;\n }\n}\n","@if (!isCurrent && !isTruncated) {\n@if(routerLink){\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.role]=\"anchorRole\"\n [routerLink]=\"routerLink\" [queryParams]=\"queryParams\" [queryParamsHandling]=\"queryParamsHandling\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n\n@if (!routerLink) {\n<a eclLink [isIconOnly]=\"isIconOnly\" (keydown.enter)=\"onPageClick($event)\" (click)=\"onPageClick($event)\" variant=\"standalone\"\n attr.aria-label=\"{{ ariaLabel || geti18nPageAriaLabelKey() | translate: { pageNumber: label } }}\" [attr.href]=\"href\"\n class=\"ecl-pagination__link eui-ecl-u-cursor-pointer\" tabindex=\"{{tabindex ? tabindex : 0}}\" [attr.role]=\"anchorRole\">\n @if (isPrevious) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-270\"></ecl-icon>\n }\n <span eclLinkLabel>{{ label || geti18nPageLabelKey() | translate }}</span>\n @if (isNext) {\n <ecl-icon icon=\"corner-arrow\" size=\"xs\" transform=\"rotate-90\"></ecl-icon>\n }\n</a>\n}\n}\n\n@else if (isTruncated) {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n}\n@else {\n<span class=\"ecl-pagination__text ecl-pagination__text--summary\" aria-current=\"true\">\n {{ label }}\n</span>\n\n<span class=\"ecl-pagination__text ecl-pagination__text--full\" aria-current=\"true\">\n {{ 'ecl.pagination.PAGE' | translate: { pageNumber: label } }}\n @if(pagesCount) {\n {{ 'ecl.common.OF' | translate}} {{pagesCount}}\n }\n</span>\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to apply ECL styles to the pagination list element.\n * Adds the `ecl-pagination__list` class to the host element.\n */\n@Directive({\n selector: '[eclPaginationList]',\n})\nexport class EclPaginationListDirective extends ECLBaseDirective {\n /**\n * Adds the `ecl-pagination__list` class to the host element.\n */\n @HostBinding('class.ecl-pagination__list') hasClass = true;\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\n/**\n * Event emitted by EclPaginationComponent when the page changes.\n * Contains information about the current page and visible item range.\n */\nexport class EclPaginationEvent extends EclBaseEvent {\n /**\n * Current page number after the change.\n */\n constructor(\n public readonly page: number,\n\n /**\n * Index of the first item shown on the current page.\n */\n public readonly showingFrom: number,\n\n /**\n * Index of the last item shown on the current page.\n */\n public readonly showingTo: number,\n ) {\n super();\n }\n}\n","import { Component, ContentChild, EventEmitter, HostBinding, Input, OnChanges, OnInit, Output, numberAttribute } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DefaultConfig, EuiPagination } from '@eui/base';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclPaginationEvent } from './events/ecl-pagination.event';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationItemComponent } from './ecl-pagination-item.component';\n\n/**\n * Component rendering the ECL pagination.\n * Supports manual and automatic modes.\n * Emits page change events and manages pagination logic.\n */\n@Component({\n selector: 'ecl-pagination',\n templateUrl: './ecl-pagination.component.html',\n imports: [NgTemplateOutlet, EclPaginationItemComponent],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclPaginationComponent extends ECLBaseDirective implements OnInit, OnChanges {\n /**\n * Defines the pagination mode.\n * - `manual` - component waits for external events to change pages.\n * - `auto` - component manages the pages automatically based on inputs.\n */\n @Input() mode: 'manual' | 'auto' = 'manual';\n\n /**\n * Total number of items in the list.\n */\n @Input({ transform: numberAttribute }) totalItems: number = DefaultConfig.totalItems;\n\n /**\n * Number of items displayed on a single page.\n */\n @Input({ transform: numberAttribute }) pageSize: number = DefaultConfig.pageSize;\n\n /**\n * Currently selected page number.\n */\n @Input({ transform: numberAttribute }) currentPage: number = DefaultConfig.currentPage;\n\n /**\n * Number of pagination links visible around the current page.\n */\n @Input({ transform: numberAttribute }) pageWindowSize: number = DefaultConfig.pageWindowSize;\n\n /**\n * Emits a pagination event each time the page changes.\n */\n @Output() page = new EventEmitter<EclPaginationEvent>();\n\n /**\n * Adds the `ecl-pagination` class to the host element.\n */\n @HostBinding('class.ecl-pagination') cmpClass = true;\n\n /**\n * Sets the ARIA role to indicate navigation.\n */\n @HostBinding('attr.role') role = 'navigation';\n\n /**\n * Reference to the pagination list directive inside the component's content.\n */\n @ContentChild(EclPaginationListDirective) eclPaginationList: EclPaginationListDirective;\n\n /**\n * Internal pagination model storing pagination data and logic.\n */\n public model = EuiPagination.create();\n\n /**\n * Lifecycle hook that runs once after component initialization.\n * In automatic mode, triggers an initial page event.\n */\n ngOnInit(): void {\n if (this.isModeAuto()) {\n setTimeout(() => {\n this.firePageEvent();\n });\n }\n }\n\n /**\n * Lifecycle hook called on input changes.\n * Re-creates the pagination model in automatic mode.\n */\n ngOnChanges(): void {\n if (this.isModeAuto()) {\n this.model = EuiPagination.create({\n totalItems: this.totalItems,\n pageSize: this.pageSize,\n currentPage: this.currentPage,\n pageWindowSize: this.pageWindowSize,\n });\n }\n }\n\n /**\n * Returns true if the pagination list exists in the template.\n */\n get hasList(): boolean {\n return !!this.eclPaginationList;\n }\n \n /**\n * Navigates to the previous page and emits a page change event.\n */\n onPreviousPage(): void {\n this.model.goToPreviousPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to the next page and emits a page change event.\n */\n onNextPage(): void {\n this.model.goToNextPage();\n this.firePageEvent();\n }\n\n /**\n * Navigates to a specific page and emits a page change event.\n *\n * @param page The page number to navigate to.\n */\n onPage(page: number): void {\n this.model.goToPage(page);\n this.firePageEvent();\n }\n\n /**\n * Checks if the component is in automatic mode.\n */\n isModeAuto(): boolean {\n return this.mode === 'auto';\n }\n\n /**\n * Emits the page change event with the current pagination state.\n */\n private firePageEvent(): void {\n const evt = new EclPaginationEvent(this.model.getCurrentPage(), this.model.getShowingFrom(), this.model.getShowingTo());\n\n this.page.next(evt);\n }\n}\n","@if(!hasList) {\n <ul class=\"ecl-pagination__list\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ul>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n \n <ng-template #content>\n @if (isModeAuto()){\n @if(model.hasPreviousPage()){\n <li eclPaginationItem [isPrevious]=\"true\" (pageClick)=\"onPreviousPage()\"> </li>\n }\n @for (page of model.getPages(); track page) {\n <li eclPaginationItem\n [label]=\"page.toString()\"\n [isCurrent]=\"model.getCurrentPage() === page\"\n (pageClick)=\"onPage(page)\"\n [pagesCount]=\"model.getPagesCount().toString()\">\n </li>\n }\n \n @if(model.hasNextPage()){\n <li eclPaginationItem [isNext]=\"true\" (pageClick)=\"onNextPage()\"> </li>\n }\n }\n \n @if(!isModeAuto()) {\n <ng-content></ng-content>\n }\n </ng-template>","import { EclPaginationItemComponent } from './ecl-pagination-item.component';\nimport { EclPaginationListDirective } from './ecl-pagination-list.directive';\nimport { EclPaginationComponent } from './ecl-pagination.component';\n\nexport * from './ecl-pagination.component';\nexport * from './ecl-pagination-item.component';\nexport * from './events/ecl-pagination.event';\nexport * from './ecl-pagination-list.directive';\n\nexport const EUI_ECL_PAGINATION = [\n EclPaginationComponent, EclPaginationItemComponent, EclPaginationListDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, booleanAttribute, Input, ViewEncapsulation, Component, input, contentChildren, inject } from '@angular/core';
2
+ import { HostBinding, Directive, booleanAttribute, Input, ViewEncapsulation, Component, input, contentChildren, inject, ElementRef } from '@angular/core';
3
3
  import * as i1 from '@eui/ecl/components/ecl-link';
4
4
  import { EUI_ECL_LINK, EclLinkDirective } from '@eui/ecl/components/ecl-link';
5
5
  import * as i2 from '@eui/ecl/components/ecl-social-media-follow';
@@ -163,7 +163,7 @@ class EclSiteFooterRowCommonComponent extends ECLBaseDirective {
163
163
  return logoLanguageCode(this.languageCode);
164
164
  }
165
165
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterRowCommonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclSiteFooterRowCommonComponent, isStandalone: true, selector: "div[eclSiteFooterRowCommon]", inputs: { languageCode: "languageCode", isCore: "isCore" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-footer__section ecl-site-footer__section--common\">\n @if (!isCore) {\n <a href=\"https://commission.europa.eu/index_{{languageCode}}\"\n class=\"ecl-link ecl-link--standalone ecl-link--inverted ecl-site-footer__logo-link\">\n <picture class=\"ecl-picture ecl-site-footer__picture\"><img class=\"ecl-site-footer__logo-image\"\n src=\"assets/images/ecl/ec/logo/negative/logo-ec--{{logoLanguageCode}}.svg\" alt=\"European Commission\">\n </picture>\n </a>\n <div class=\"ecl-site-footer__extra-links-container\">\n <ecl-social-media-follow description=\"{{'ecl.footer.FOLLOW-EUROPEAN-COMMISSION' | translate}}\"\n class=\"ecl-social-media-follow--description_inline ecl-site-footer__social-media\">\n <ecl-social-media-follow-item icon=\"facebook\" href=\"https://www.facebook.com/EuropeanCommission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"instagram\" href=\"https://www.instagram.com/europeancommission/\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"twitter\" href=\"https://x.com/EU_Commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"linkedin\" href=\"https://www.linkedin.com/company/european-commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"chain\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{languageCode}}\"\n isInverted></ecl-social-media-follow-item>\n </ecl-social-media-follow>\n <ul eclSiteFooterList isInline>\n <li eclSiteFooterListItem><a\n href=\"https://commission.europa.eu/about-european-commission/contact_{{languageCode}}\"\n class=\"ecl-link ecl-link--standalone ecl-link--inverted ecl-site-footer__link\">{{ 'ecl.footer.CONTACT' | translate }}</a></li>\n </ul>\n </div>\n } @else {\n <ecl-social-media-follow description=\"{{'ecl.footer.FOLLOW-EUROPEAN-COMMISSION' | translate}}\"\n class=\"ecl-social-media-follow--description_inline ecl-site-footer__social-media\">\n <ecl-social-media-follow-item icon=\"facebook\" href=\"https://www.facebook.com/EuropeanCommission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"instagram\" href=\"https://www.instagram.com/europeancommission/\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"twitter\" href=\"https://x.com/EU_Commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"linkedin\" href=\"https://www.linkedin.com/company/european-commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"chain\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{languageCode}}\"\n isInverted></ecl-social-media-follow-item>\n </ecl-social-media-follow>\n }\n <ul eclSiteFooterList isInline>\n <li eclSiteFooterListItem><a\n href=\"https://commission.europa.eu/legal-notice/vulnerability-disclosure-policy_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.REPORT-IT-VULNERABILITY' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/languages-our-websites_{{languageCode}}\" eclLink\n isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.LANGUAGES' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/cookies_{{languageCode}}\" eclLink isInverted\n variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.COOKIES' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/privacy-policy_{{languageCode}}\" eclLink\n isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.PRIVACY-POLICY' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/legal-notice_{{languageCode}}\" eclLink\n isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.LEGAL-NOTICE' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/accessibility-statement_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.ACCESSIBILITY' | translate }}</a></li>\n </ul>\n</div>", styles: [".ecl-link--inverted svg.ecl-social-media-follow__icon{fill:#000;filter:invert(1)}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }, { kind: "component", type: i2.EclSocialMediaFollowComponent, selector: "ecl-social-media-follow", inputs: ["description", "isVertical", "horizontalAlignment"] }, { kind: "component", type: i2.EclSocialMediaFollowItemComponent, selector: "ecl-social-media-follow-item", inputs: ["isInverted", "icon", "iconSet", "href", "routerLink", "target", "size"], outputs: ["itemClick"] }, { kind: "directive", type: EclSiteFooterListItemDirective, selector: "[eclSiteFooterListItem]" }, { kind: "directive", type: EclSiteFooterLinkDirective, selector: "[eclSiteFooterLink]" }, { kind: "directive", type: EclSiteFooterListDirective, selector: "[eclSiteFooterList]", inputs: ["isInline"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
166
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclSiteFooterRowCommonComponent, isStandalone: true, selector: "div[eclSiteFooterRowCommon]", inputs: { languageCode: "languageCode", isCore: "isCore" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-site-footer__section ecl-site-footer__section--common\">\n @if (!isCore) {\n <a href=\"https://commission.europa.eu/index_{{languageCode}}\"\n class=\"ecl-link ecl-link--standalone ecl-link--inverted ecl-site-footer__logo-link\">\n <picture class=\"ecl-picture ecl-site-footer__picture\"><img class=\"ecl-site-footer__logo-image\"\n src=\"assets/images/ecl/ec/logo/negative/logo-ec--{{logoLanguageCode}}.svg\" alt=\"European Commission\">\n </picture>\n </a>\n <div class=\"ecl-site-footer__extra-links-container\">\n <ecl-social-media-follow description=\"{{'ecl.footer.FOLLOW-EUROPEAN-COMMISSION' | translate}}\"\n class=\"ecl-social-media-follow--description_inline ecl-site-footer__social-media\">\n <ecl-social-media-follow-item icon=\"facebook\" href=\"https://www.facebook.com/EuropeanCommission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"instagram\" href=\"https://www.instagram.com/europeancommission/\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"twitter\" href=\"https://x.com/EU_Commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"linkedin\" href=\"https://www.linkedin.com/company/european-commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"chain\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{languageCode}}\"\n isInverted></ecl-social-media-follow-item>\n </ecl-social-media-follow>\n <ul eclSiteFooterList isInline>\n <li eclSiteFooterListItem><a\n href=\"https://commission.europa.eu/about-european-commission/contact_{{languageCode}}\"\n class=\"ecl-link ecl-link--standalone ecl-link--inverted ecl-site-footer__link\">{{ 'ecl.footer.CONTACT' | translate }}</a></li>\n </ul>\n </div>\n } @else {\n <ecl-social-media-follow description=\"{{'ecl.footer.FOLLOW-EUROPEAN-COMMISSION' | translate}}\"\n class=\"ecl-social-media-follow--description_inline ecl-site-footer__social-media\">\n <ecl-social-media-follow-item icon=\"facebook\" href=\"https://www.facebook.com/EuropeanCommission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"instagram\" href=\"https://www.instagram.com/europeancommission/\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"twitter\" href=\"https://x.com/EU_Commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"linkedin\" href=\"https://www.linkedin.com/company/european-commission\"\n isInverted></ecl-social-media-follow-item>\n <ecl-social-media-follow-item icon=\"chain\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{languageCode}}\"\n isInverted></ecl-social-media-follow-item>\n </ecl-social-media-follow>\n }\n <ul eclSiteFooterList isInline>\n <li eclSiteFooterListItem><a\n href=\"https://commission.europa.eu/legal-notice/vulnerability-disclosure-policy_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.REPORT-IT-VULNERABILITY' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/languages-our-websites_{{languageCode}}\" eclLink\n isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.LANGUAGES' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/cookies_{{languageCode}}\" eclLink isInverted\n variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.COOKIES' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/privacy-policy_{{languageCode}}\" eclLink\n isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.PRIVACY-POLICY' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/legal-notice_{{languageCode}}\" eclLink\n isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.LEGAL-NOTICE' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/accessibility-statement_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.ACCESSIBILITY' | translate }}</a></li>\n </ul>\n</div>", styles: [".ecl-link--inverted svg.ecl-social-media-follow__icon{fill:#000;filter:invert(1)}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }, { kind: "component", type: i2.EclSocialMediaFollowComponent, selector: "ecl-social-media-follow", inputs: ["description", "isVertical", "horizontalAlignment"] }, { kind: "component", type: i2.EclSocialMediaFollowItemComponent, selector: "ecl-social-media-follow-item", inputs: ["isInverted", "icon", "iconSet", "href", "routerLink", "target", "size", "extraAttributes"], outputs: ["itemClick"] }, { kind: "directive", type: EclSiteFooterListItemDirective, selector: "[eclSiteFooterListItem]" }, { kind: "directive", type: EclSiteFooterLinkDirective, selector: "[eclSiteFooterLink]" }, { kind: "directive", type: EclSiteFooterListDirective, selector: "[eclSiteFooterList]", inputs: ["isInline"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
167
167
  }
168
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterRowCommonComponent, decorators: [{
169
169
  type: Component,
@@ -186,7 +186,7 @@ class EclSiteFooterCoreComponent extends ECLBaseDirective {
186
186
  return [super.getCssClasses('ecl-site-footer__section ecl-site-footer__section--core')].join(' ').trim();
187
187
  }
188
188
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterCoreComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
189
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: EclSiteFooterCoreComponent, isStandalone: true, selector: "div[eclSiteFooterCore]", inputs: { languageCode: "languageCode" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ul class=\"ecl-site-footer__list\">\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/about-european-commission_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.ABOUT-US' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/about-european-commission/contact_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.CONTACT-US' |translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"/example#lxsav\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.PRIORITIES' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"/example#w8i44\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Topics</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/funding-tenders_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Funding and tenders</a>\n </li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/jobs-european-commission_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Jobs</a></li>\n <li eclSiteFooterListItem><a href=\"https://ec.europa.eu/commission/presscorner/home/{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Press corner</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/events_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Events</a></li>\n</ul>", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }, { kind: "directive", type: EclSiteFooterListItemDirective, selector: "[eclSiteFooterListItem]" }, { kind: "directive", type: EclSiteFooterLinkDirective, selector: "[eclSiteFooterLink]" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
189
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0", type: EclSiteFooterCoreComponent, isStandalone: true, selector: "div[eclSiteFooterCore]", inputs: { languageCode: "languageCode" }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: "<ul class=\"ecl-site-footer__list\">\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/about-european-commission_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.ABOUT-US' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/about-european-commission/contact_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.CONTACT-US' |translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"/example#lxsav\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>{{ 'ecl.footer.PRIORITIES' | translate }}</a></li>\n <li eclSiteFooterListItem><a href=\"/example#w8i44\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Topics</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/funding-tenders_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Funding and tenders</a>\n </li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/jobs-european-commission_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Jobs</a></li>\n <li eclSiteFooterListItem><a href=\"https://ec.europa.eu/commission/presscorner/home/{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Press corner</a></li>\n <li eclSiteFooterListItem><a href=\"https://commission.europa.eu/events_{{languageCode}}\"\n eclLink isInverted variant=\"standalone\" eclSiteFooterLink>Events</a></li>\n</ul>", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }, { kind: "directive", type: EclSiteFooterListItemDirective, selector: "[eclSiteFooterListItem]" }, { kind: "directive", type: EclSiteFooterLinkDirective, selector: "[eclSiteFooterLink]" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
190
190
  }
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterCoreComponent, decorators: [{
192
192
  type: Component,
@@ -339,7 +339,7 @@ class EclSiteFooterFixedContentEUComponent extends ECLBaseDirective {
339
339
  }
340
340
  }
341
341
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterFixedContentEUComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
342
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclSiteFooterFixedContentEUComponent, isStandalone: true, selector: "ecl-site-footer-fixed-content-eu", inputs: { isCore: ["isCore", "isCore", booleanAttribute], languageCode: "languageCode", ecLogoLanguageCode: "ecLogoLanguageCode", content: "content" }, usesInheritance: true, ngImport: i0, template: "@if(isCore){\n <div eclSiteFooterRow>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <a\n eclLink\n href=\"https://european-union.europa.eu/index_{{ ecLogoLanguageCode }}\"\n variant=\"standalone\"\n eclSiteFooterLogoLink\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <picture eclSiteFooterPicture [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n media=\"(min-width: 996px)\" />\n <img\n eclSiteFooterLogoImage\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n alt=\"European Union logo\" />\n </picture>\n </a>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.CONTACT-EU' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.STRATEGY' | translate\"\n variant=\"standalone\"\n href=\"tel:0080067891011\">\n {{ 'ecl.footer.CALL-US' | translate }} 00 800 6 7 8 9 10 11\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/call-us_{{ languageCode }}\">\n {{ 'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.WRITE-TO-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/write-us_{{ languageCode }}\">\n {{ 'ecl.footer.WRITE-TO-US' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.MEET-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/meet-us_{{ languageCode }}\">\n {{ 'ecl.footer.MEET-US' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.SOCIAL-MEDIA' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{ languageCode }}\">\n {{ 'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.LEGAL' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LANGUAGES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/languages-our-websites_{{ languageCode }}\">\n {{ 'ecl.footer.LANGUAGES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.PRIVACY-POLICY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/privacy-policy_{{ languageCode }}\">\n {{ 'ecl.footer.PRIVACY-POLICY' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LEGAL-NOTICE' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/legal-notice_{{ languageCode }}\">\n {{ 'ecl.footer.LEGAL-NOTICE' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.COOKIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/cookies_{{ languageCode }}\">\n {{ 'ecl.footer.COOKIES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.ACCESSIBILITY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/web-accessibility-policy_{{ languageCode }}\">\n {{ 'ecl.footer.ACCESSIBILITY' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.EU-INSTITUTIONS-AND-BODIES' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/institutions-law-budget/institutions-and-bodies/search-all-eu-institutions-and-bodies_{{\n languageCode }}\">\n {{ 'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n}\n@if(!isCore){\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <div eclSiteFooterRow>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <a\n eclLink\n href=\"https://european-union.europa.eu/index_{{ ecLogoLanguageCode }}\"\n variant=\"standalone\"\n class=\"ecl-site-footer__logo-link\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <picture eclSiteFooterPicture [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n media=\"(min-width: 996px)\" />\n <img\n eclSiteFooterLogoImage\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n alt=\"European Union logo\" />\n </picture>\n </a>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a href=\"https://european-union.europa.eu/index_{{ ecLogoLanguageCode }}\" eclLink variant=\"standalone\" class=\"ecl-site-footer__link\">\n {{ 'ecl.footer.DISCOVER-MORE-ON' | translate }} europa.eu</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.CONTACT-EU' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.STRATEGY' | translate\"\n variant=\"standalone\"\n href=\"tel:0080067891011\">\n {{ 'ecl.footer.CALL-US' | translate }} 00 800 6 7 8 9 10 11\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/call-us_{{ languageCode }}\">\n {{ 'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.WRITE-TO-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/write-us_{{ languageCode }}\">\n {{ 'ecl.footer.WRITE-TO-US' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.MEET-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/meet-us_{{ languageCode }}\">\n {{ 'ecl.footer.MEET-US' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.SOCIAL-MEDIA' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{ languageCode }}\">\n {{ 'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.LEGAL' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LANGUAGES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/languages-our-websites_{{ languageCode }}\">\n {{ 'ecl.footer.LANGUAGES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.PRIVACY-POLICY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/privacy-policy_{{ languageCode }}\">\n {{ 'ecl.footer.PRIVACY-POLICY' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LEGAL-NOTICE' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/legal-notice_{{ languageCode }}\">\n {{ 'ecl.footer.LEGAL-NOTICE' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.COOKIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/cookies_{{ languageCode }}\">\n {{ 'ecl.footer.COOKIES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.ACCESSIBILITY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/web-accessibility-policy_{{ languageCode }}\">\n {{ 'ecl.footer.ACCESSIBILITY' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.EU-INSTITUTIONS-AND-BODIES' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/institutions-law-budget/institutions-and-bodies/search-all-eu-institutions-and-bodies_{{ languageCode }}\">\n {{ 'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }, { kind: "directive", type: EclSiteFooterRowDirective, selector: "[eclSiteFooterRow]" }, { kind: "directive", type: EclSiteFooterColumnDirective, selector: "[eclSiteFooterColumn]" }, { kind: "directive", type: EclSiteFooterSectionDirective, selector: "[eclSiteFooterSection]", inputs: ["variant"] }, { kind: "directive", type: EclSiteFooterPictureDirective, selector: "picture[eclSiteFooterPicture]" }, { kind: "directive", type: EclSiteFooterLogoImageDirective, selector: "img[eclSiteFooterLogoImage]" }, { kind: "directive", type: EclSiteFooterListDirective, selector: "[eclSiteFooterList]", inputs: ["isInline"] }, { kind: "directive", type: EclSiteFooterListItemDirective, selector: "[eclSiteFooterListItem]" }, { kind: "directive", type: EclSiteFooterLinkDirective, selector: "[eclSiteFooterLink]" }, { kind: "directive", type: EclSiteFooterTitleDirective, selector: "[eclSiteFooterTitle]", inputs: ["isSeparator"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
342
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclSiteFooterFixedContentEUComponent, isStandalone: true, selector: "ecl-site-footer-fixed-content-eu", inputs: { isCore: ["isCore", "isCore", booleanAttribute], languageCode: "languageCode", ecLogoLanguageCode: "ecLogoLanguageCode", content: "content" }, usesInheritance: true, ngImport: i0, template: "@if(isCore){\n <div eclSiteFooterRow>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <a\n eclLink\n href=\"https://european-union.europa.eu/index_{{ ecLogoLanguageCode }}\"\n variant=\"standalone\"\n eclSiteFooterLogoLink\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <picture eclSiteFooterPicture [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n media=\"(min-width: 996px)\" />\n <img\n eclSiteFooterLogoImage\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n alt=\"European Union logo\" />\n </picture>\n </a>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.CONTACT-EU' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.STRATEGY' | translate\"\n variant=\"standalone\"\n href=\"tel:0080067891011\">\n {{ 'ecl.footer.CALL-US' | translate }} 00 800 6 7 8 9 10 11\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/call-us_{{ languageCode }}\">\n {{ 'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.WRITE-TO-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/write-us_{{ languageCode }}\">\n {{ 'ecl.footer.WRITE-TO-US' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.MEET-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/meet-us_{{ languageCode }}\">\n {{ 'ecl.footer.MEET-US' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.SOCIAL-MEDIA' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{ languageCode }}\">\n {{ 'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.LEGAL' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LANGUAGES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/languages-our-websites_{{ languageCode }}\">\n {{ 'ecl.footer.LANGUAGES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.PRIVACY-POLICY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/privacy-policy_{{ languageCode }}\">\n {{ 'ecl.footer.PRIVACY-POLICY' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LEGAL-NOTICE' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/legal-notice_{{ languageCode }}\">\n {{ 'ecl.footer.LEGAL-NOTICE' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.COOKIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/cookies_{{ languageCode }}\">\n {{ 'ecl.footer.COOKIES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.ACCESSIBILITY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/web-accessibility-policy_{{ languageCode }}\">\n {{ 'ecl.footer.ACCESSIBILITY' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.EU-INSTITUTIONS-AND-BODIES' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/institutions-law-budget/institutions-and-bodies/search-all-eu-institutions-and-bodies_{{\n languageCode }}\">\n {{ 'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n}\n@if(!isCore){\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n\n <div eclSiteFooterRow>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <a\n eclLink\n href=\"https://european-union.europa.eu/index_{{ ecLogoLanguageCode }}\"\n variant=\"standalone\"\n class=\"ecl-site-footer__logo-link\"\n [attr.aria-label]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <picture eclSiteFooterPicture [attr.title]=\"'ecl.footer.EUROPEAN-UNION' | translate\">\n <source\n srcset=\"./assets/images/ecl/eu/logo/standard-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n media=\"(min-width: 996px)\" />\n <img\n eclSiteFooterLogoImage\n src=\"./assets/images/ecl/eu/logo/condensed-version/positive/logo-eu--{{ ecLogoLanguageCode }}.svg\"\n alt=\"European Union logo\" />\n </picture>\n </a>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a href=\"https://european-union.europa.eu/index_{{ ecLogoLanguageCode }}\" eclLink variant=\"standalone\" class=\"ecl-site-footer__link\">\n {{ 'ecl.footer.DISCOVER-MORE-ON' | translate }} europa.eu</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.CONTACT-EU' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.STRATEGY' | translate\"\n variant=\"standalone\"\n href=\"tel:0080067891011\">\n {{ 'ecl.footer.CALL-US' | translate }} 00 800 6 7 8 9 10 11\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/call-us_{{ languageCode }}\">\n {{ 'ecl.footer.USE-OTHER-TELEPHONE-OPTIONS' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.WRITE-TO-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/write-us_{{ languageCode }}\">\n {{ 'ecl.footer.WRITE-TO-US' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.MEET-US' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/meet-us_{{ languageCode }}\">\n {{ 'ecl.footer.MEET-US' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.SOCIAL-MEDIA' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/contact-eu/social-media-channels_{{ languageCode }}\">\n {{ 'ecl.footer.SEARCH-FOR-EU-SOCIAL-MEDIA' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n <div eclSiteFooterColumn>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.LEGAL' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LANGUAGES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/languages-our-websites_{{ languageCode }}\">\n {{ 'ecl.footer.LANGUAGES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.PRIVACY-POLICY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/privacy-policy_{{ languageCode }}\">\n {{ 'ecl.footer.PRIVACY-POLICY' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.LEGAL-NOTICE' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/legal-notice_{{ languageCode }}\">\n {{ 'ecl.footer.LEGAL-NOTICE' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.COOKIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/cookies_{{ languageCode }}\">\n {{ 'ecl.footer.COOKIES' | translate }}\n </a>\n </li>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.ACCESSIBILITY' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/web-accessibility-policy_{{ languageCode }}\">\n {{ 'ecl.footer.ACCESSIBILITY' | translate }}\n </a>\n </li>\n </ul>\n </div>\n <div eclSiteFooterSection>\n <div eclSiteFooterTitle isSeparator>\n {{ 'ecl.footer.EU-INSTITUTIONS-AND-BODIES' | translate }}\n </div>\n <ul eclSiteFooterList>\n <li eclSiteFooterListItem>\n <a\n eclLink\n eclSiteFooterLink\n [attr.aria-label]=\"'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate\"\n variant=\"standalone\"\n href=\"https://european-union.europa.eu/institutions-law-budget/institutions-and-bodies/search-all-eu-institutions-and-bodies_{{ languageCode }}\">\n {{ 'ecl.footer.SEARCH-EU-INSTITUTIONS-AND-BODIES' | translate }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["extraAttributes", "isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }, { kind: "directive", type: EclSiteFooterRowDirective, selector: "[eclSiteFooterRow]" }, { kind: "directive", type: EclSiteFooterColumnDirective, selector: "[eclSiteFooterColumn]" }, { kind: "directive", type: EclSiteFooterSectionDirective, selector: "[eclSiteFooterSection]", inputs: ["variant"] }, { kind: "directive", type: EclSiteFooterPictureDirective, selector: "picture[eclSiteFooterPicture]" }, { kind: "directive", type: EclSiteFooterLogoImageDirective, selector: "img[eclSiteFooterLogoImage]" }, { kind: "directive", type: EclSiteFooterListDirective, selector: "[eclSiteFooterList]", inputs: ["isInline"] }, { kind: "directive", type: EclSiteFooterListItemDirective, selector: "[eclSiteFooterListItem]" }, { kind: "directive", type: EclSiteFooterLinkDirective, selector: "[eclSiteFooterLink]" }, { kind: "directive", type: EclSiteFooterTitleDirective, selector: "[eclSiteFooterTitle]", inputs: ["isSeparator"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] }); }
343
343
  }
344
344
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterFixedContentEUComponent, decorators: [{
345
345
  type: Component,
@@ -499,8 +499,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
499
499
  * important sections within the EC ecosystem.
500
500
  */
501
501
  class EclSiteFooterComponent extends ECLBaseDirective {
502
+ get cssClasses() {
503
+ return [super.getCssClasses('ecl-site-footer'), this.isCore ? 'ecl-site-footer--split-columns' : ''].join(' ').trim();
504
+ }
502
505
  constructor() {
503
- super(...arguments);
506
+ super();
504
507
  this.i18nService = inject(I18nService);
505
508
  this.eclThemeService = inject(EclThemeService);
506
509
  /**
@@ -516,9 +519,13 @@ class EclSiteFooterComponent extends ECLBaseDirective {
516
519
  */
517
520
  this.role = 'contentinfo';
518
521
  this.destroy$ = new Subject();
519
- }
520
- get cssClasses() {
521
- return [super.getCssClasses('ecl-site-footer'), this.isCore ? 'ecl-site-footer--split-columns' : ''].join(' ').trim();
522
+ // Detect which selector was used
523
+ const host = inject((ElementRef)).nativeElement;
524
+ // If the element tag is the old one → warn
525
+ if (host.tagName.toLowerCase() === 'ecl-site-footer') {
526
+ console.warn('[DEPRECATION] <ecl-site-footer> is deprecated. ' +
527
+ 'Use <footer eclSiteFooter> instead.');
528
+ }
522
529
  }
523
530
  ngOnInit() {
524
531
  this.handleLanguageChangeState();
@@ -539,7 +546,7 @@ class EclSiteFooterComponent extends ECLBaseDirective {
539
546
  this.languageCode = lang.activeLang;
540
547
  });
541
548
  }
542
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
549
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
543
550
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: EclSiteFooterComponent, isStandalone: true, selector: "footer[eclSiteFooter], ecl-site-footer", inputs: { isCore: ["isCore", "isCore", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role" } }, usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[eclSiteFooterCoowner]\"></ng-content>\n<div class=\"ecl-site-footer__main\">\n <div class=\"ecl-container ecl-site-footer__container\">\n @if(eclThemeService.isEC$ | async) {\n @if (isCore) {\n <div class=\"ecl-site-footer__row ecl-site-footer__row--specific\">\n <div class=\"ecl-site-footer__section ecl-site-footer__section--site-info\"><a\n href=\"https://commission.europa.eu/index_{{languageCode}}\" eclLink isInverted variant=\"standalone\"\n eclSiteFooterLogoLink>\n <picture class=\"ecl-picture ecl-site-footer__picture\"><img class=\"ecl-site-footer__logo-image\"\n src=\"assets/images/ecl/ec/logo/negative/logo-ec--{{logoLanguageCode}}.svg\"\n alt=\"European Commission\"></picture>\n </a>\n <div class=\"ecl-site-footer__description\"><ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n <div eclSiteFooterCore [languageCode]=\"languageCode\"></div>\n </div>\n <div eclSiteFooterRowCommon [isCore]=\"isCore\" [languageCode]=\"languageCode\"></div>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <div eclSiteFooterRowCommon [isCore]=\"isCore\" [languageCode]=\"languageCode\"></div>\n }\n }\n @if(eclThemeService.isEU$ | async) {\n <ecl-site-footer-fixed-content-eu [isCore]=\"isCore\" [languageCode]=\"languageCode\"\n [ecLogoLanguageCode]=\"languageCode\" [content]=\"content\">\n </ecl-site-footer-fixed-content-eu>\n }\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>", styles: [".ecl-link--inverted svg.ecl-social-media-follow__icon{fill:#000;filter:invert(1)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EclSiteFooterRowCommonComponent, selector: "div[eclSiteFooterRowCommon]", inputs: ["languageCode", "isCore"] }, { kind: "component", type: EclSiteFooterFixedContentEUComponent, selector: "ecl-site-footer-fixed-content-eu", inputs: ["isCore", "languageCode", "ecLogoLanguageCode", "content"] }, { kind: "component", type: EclSiteFooterCoreComponent, selector: "div[eclSiteFooterCore]", inputs: ["languageCode"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
544
551
  }
545
552
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: EclSiteFooterComponent, decorators: [{
@@ -547,7 +554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
547
554
  args: [{ selector: 'footer[eclSiteFooter], ecl-site-footer', encapsulation: ViewEncapsulation.None, imports: [AsyncPipe, NgTemplateOutlet, EclSiteFooterRowCommonComponent, EclSiteFooterFixedContentEUComponent,
548
555
  EclSiteFooterCoreComponent,
549
556
  ], template: "<ng-content select=\"[eclSiteFooterCoowner]\"></ng-content>\n<div class=\"ecl-site-footer__main\">\n <div class=\"ecl-container ecl-site-footer__container\">\n @if(eclThemeService.isEC$ | async) {\n @if (isCore) {\n <div class=\"ecl-site-footer__row ecl-site-footer__row--specific\">\n <div class=\"ecl-site-footer__section ecl-site-footer__section--site-info\"><a\n href=\"https://commission.europa.eu/index_{{languageCode}}\" eclLink isInverted variant=\"standalone\"\n eclSiteFooterLogoLink>\n <picture class=\"ecl-picture ecl-site-footer__picture\"><img class=\"ecl-site-footer__logo-image\"\n src=\"assets/images/ecl/ec/logo/negative/logo-ec--{{logoLanguageCode}}.svg\"\n alt=\"European Commission\"></picture>\n </a>\n <div class=\"ecl-site-footer__description\"><ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n </div>\n <div eclSiteFooterCore [languageCode]=\"languageCode\"></div>\n </div>\n <div eclSiteFooterRowCommon [isCore]=\"isCore\" [languageCode]=\"languageCode\"></div>\n } @else {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <div eclSiteFooterRowCommon [isCore]=\"isCore\" [languageCode]=\"languageCode\"></div>\n }\n }\n @if(eclThemeService.isEU$ | async) {\n <ecl-site-footer-fixed-content-eu [isCore]=\"isCore\" [languageCode]=\"languageCode\"\n [ecLogoLanguageCode]=\"languageCode\" [content]=\"content\">\n </ecl-site-footer-fixed-content-eu>\n }\n\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n </div>\n</div>", styles: [".ecl-link--inverted svg.ecl-social-media-follow__icon{fill:#000;filter:invert(1)}\n"] }]
550
- }], propDecorators: { isCore: [{
557
+ }], ctorParameters: () => [], propDecorators: { isCore: [{
551
558
  type: Input,
552
559
  args: [{ transform: booleanAttribute }]
553
560
  }], cssClasses: [{