@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-navigation-list.mjs","sources":["../../components/ecl-navigation-list/ecl-navigation-list-item.component.ts","../../components/ecl-navigation-list/ecl-navigation-list-item.component.html","../../components/ecl-navigation-list/ecl-navigation-list-picture.directive.ts","../../components/ecl-navigation-list/ecl-navigation-list.component.ts","../../components/ecl-navigation-list/ecl-navigation-list.component.html","../../components/ecl-navigation-list/index.ts","../../components/ecl-navigation-list/eui-ecl-components-ecl-navigation-list.ts"],"sourcesContent":["import { AfterContentInit, Component, ContentChild, forwardRef, HostBinding, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclContentBlockComponent } from '@eui/ecl/components/ecl-content-block';\n\n/**\n * Component that represents one navigation list item, has title and image and/or list of links/secondary links.\n */\n@Component({\n selector: 'ecl-navigation-list-item',\n templateUrl: 'ecl-navigation-list-item.component.html',\n})\nexport class EclNavigationListItemComponent extends ECLBaseDirective implements AfterContentInit {\n\n /**\n * The role of the underlying HTML element is 'article', should not be changed.\n */\n @HostBinding('attr.role') role = 'article';\n /**\n * Different variants, that add styling for different type of displaing the picture, used in the list item.\n */\n readonly variant = input<'illustration' | 'image-as-illustration' | ''>('');\n @HostBinding('class')\n get cssClasses(): string {\n const variant = this.variant();\n return [\n super.getCssClasses('ecl-navigation-list__item'),\n this.hasBorder ? '' : 'ecl-navigation-list__item--no-border',\n variant !== '' ? `ecl-navigation-list__item--${variant}` : '',\n ].join(' ').trim();\n }\n\n @ContentChild(forwardRef(() => EclContentBlockComponent)) eclContentBlock: EclContentBlockComponent;\n\n hasBorder = true;\n\n ngAfterContentInit(): void {\n // Adds specific class to the conten-block content child, if it exists. \n if (this.eclContentBlock) {\n this.eclContentBlock.class = 'ecl-navigation-list__content-block';\n }\n }\n}\n","<ng-content></ng-content>\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive adds specific class to the picture element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'picture[eclNavigationListPicture]',\n})\nexport class EclNavigationListPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-navigation-list__picture')].join(' ').trim();\n }\n}\n\n/**\n * This directive adds specific class to the image element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'img[eclNavigationListImage]',\n})\nexport class EclNavigationListImageDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-navigation-list__image')].join(' ').trim();\n }\n}\n","import { AfterContentInit, Component, ContentChildren, HostBinding, QueryList, booleanAttribute, forwardRef, numberAttribute, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclNavigationListItemComponent } from './ecl-navigation-list-item.component';\n\n/**\n * Navigation lists provide users with a quick way to scan through items and access the information they are looking for.\n * It can offer a quick description of the parent page and/or display child pages that belong to it.\n */\n@Component({\n selector: 'ecl-navigation-list',\n templateUrl: 'ecl-navigation-list.component.html',\n})\nexport class EclNavigationListComponent extends ECLBaseDirective implements AfterContentInit {\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-navigation-list'), this.columns() > 1 ? `ecl-navigation-list--col-${this.columns()}` : ''].join(' ').trim();\n }\n\n /**\n * Property that describes how many columns the navigation list has. Default value is 2.\n */\n readonly columns = input(2, { transform: numberAttribute });\n /**\n * Property that describes if each item will have a border. Default is 'true'.\n */\n readonly hasBorders = input(true, { transform: booleanAttribute });\n\n /**\n * The list of navigation list items.\n */\n @ContentChildren(forwardRef(() => EclNavigationListItemComponent)) listItems: QueryList<EclNavigationListItemComponent>;\n\n ngAfterContentInit(): void {\n // Propagate 'hasBorders' property to navigation list items.\n setTimeout(() => {\n if (!this.hasBorders()) {\n this.listItems.forEach(item => item.hasBorder = false);\n }\n });\n }\n}\n","<ng-content></ng-content>\n","import { EclNavigationListItemComponent } from './ecl-navigation-list-item.component';\nimport { EclNavigationListImageDirective, EclNavigationListPictureDirective } from './ecl-navigation-list-picture.directive';\nimport { EclNavigationListComponent } from './ecl-navigation-list.component';\n\nexport * from './ecl-navigation-list.component';\nexport * from './ecl-navigation-list-item.component';\nexport * from './ecl-navigation-list-picture.directive';\n\nexport const EUI_ECL_NAVIGATION_LIST = [\n EclNavigationListComponent,\n EclNavigationListItemComponent,\n EclNavigationListImageDirective,\n EclNavigationListPictureDirective,\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-navigation-list.mjs","sources":["../../components/ecl-navigation-list/ecl-navigation-list-item.component.ts","../../components/ecl-navigation-list/ecl-navigation-list-item.component.html","../../components/ecl-navigation-list/ecl-navigation-list-picture.directive.ts","../../components/ecl-navigation-list/ecl-navigation-list.component.ts","../../components/ecl-navigation-list/ecl-navigation-list.component.html","../../components/ecl-navigation-list/index.ts","../../components/ecl-navigation-list/eui-ecl-components-ecl-navigation-list.ts"],"sourcesContent":["import { AfterContentInit, Component, forwardRef, HostBinding, input, contentChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclContentBlockComponent } from '@eui/ecl/components/ecl-content-block';\n\n/**\n * Component that represents one navigation list item, has title and image and/or list of links/secondary links.\n */\n@Component({\n selector: 'ecl-navigation-list-item',\n templateUrl: 'ecl-navigation-list-item.component.html',\n})\nexport class EclNavigationListItemComponent extends ECLBaseDirective implements AfterContentInit {\n\n /**\n * The role of the underlying HTML element is 'article', should not be changed.\n */\n @HostBinding('attr.role') role = 'article';\n /**\n * Different variants, that add styling for different type of displaing the picture, used in the list item.\n */\n readonly variant = input<'illustration' | 'image-as-illustration' | ''>('');\n @HostBinding('class')\n get cssClasses(): string {\n const variant = this.variant();\n return [\n super.getCssClasses('ecl-navigation-list__item'),\n this.hasBorder ? '' : 'ecl-navigation-list__item--no-border',\n variant !== '' ? `ecl-navigation-list__item--${variant}` : '',\n ].join(' ').trim();\n }\n\n readonly eclContentBlock = contentChild(forwardRef(() => EclContentBlockComponent));\n\n hasBorder = true;\n\n ngAfterContentInit(): void {\n // Adds specific class to the conten-block content child, if it exists. \n const eclContentBlock = this.eclContentBlock();\n if (eclContentBlock) {\n eclContentBlock.class = 'ecl-navigation-list__content-block';\n }\n }\n}\n","<ng-content></ng-content>\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * This directive adds specific class to the picture element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'picture[eclNavigationListPicture]',\n})\nexport class EclNavigationListPictureDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-navigation-list__picture')].join(' ').trim();\n }\n}\n\n/**\n * This directive adds specific class to the image element, used in 'ecl-navigation-list-item'.\n */\n@Directive({\n selector: 'img[eclNavigationListImage]',\n})\nexport class EclNavigationListImageDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-navigation-list__image')].join(' ').trim();\n }\n}\n","import { AfterContentInit, Component, HostBinding, booleanAttribute, forwardRef, numberAttribute, input, contentChildren } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclNavigationListItemComponent } from './ecl-navigation-list-item.component';\n\n/**\n * Navigation lists provide users with a quick way to scan through items and access the information they are looking for.\n * It can offer a quick description of the parent page and/or display child pages that belong to it.\n */\n@Component({\n selector: 'ecl-navigation-list',\n templateUrl: 'ecl-navigation-list.component.html',\n})\nexport class EclNavigationListComponent extends ECLBaseDirective implements AfterContentInit {\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-navigation-list'), this.columns() > 1 ? `ecl-navigation-list--col-${this.columns()}` : ''].join(' ').trim();\n }\n\n /**\n * Property that describes how many columns the navigation list has. Default value is 2.\n */\n readonly columns = input(2, { transform: numberAttribute });\n /**\n * Property that describes if each item will have a border. Default is 'true'.\n */\n readonly hasBorders = input(true, { transform: booleanAttribute });\n\n /**\n * The list of navigation list items.\n */\n readonly listItems = contentChildren(forwardRef(() => EclNavigationListItemComponent));\n\n ngAfterContentInit(): void {\n // Propagate 'hasBorders' property to navigation list items.\n setTimeout(() => {\n if (!this.hasBorders()) {\n this.listItems().forEach(item => item.hasBorder = false);\n }\n });\n }\n}\n","<ng-content></ng-content>\n","import { EclNavigationListItemComponent } from './ecl-navigation-list-item.component';\nimport { EclNavigationListImageDirective, EclNavigationListPictureDirective } from './ecl-navigation-list-picture.directive';\nimport { EclNavigationListComponent } from './ecl-navigation-list.component';\n\nexport * from './ecl-navigation-list.component';\nexport * from './ecl-navigation-list-item.component';\nexport * from './ecl-navigation-list-picture.directive';\n\nexport const EUI_ECL_NAVIGATION_LIST = [\n EclNavigationListComponent,\n EclNavigationListItemComponent,\n EclNavigationListImageDirective,\n EclNavigationListPictureDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAIA;;AAEG;AAKG,MAAO,8BAA+B,SAAQ,gBAAgB,CAAA;AAJpE,IAAA,WAAA,GAAA;;AAMI;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,SAAS;AAC1C;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAgD,EAAE;oFAAC;QAWlE,IAAA,CAAA,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,wBAAwB,CAAC;4FAAC;QAEnF,IAAA,CAAA,SAAS,GAAG,IAAI;AASnB,IAAA;AArBG,IAAA,IACI,UAAU,GAAA;AACV,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,OAAO;AACH,YAAA,KAAK,CAAC,aAAa,CAAC,2BAA2B,CAAC;YAChD,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,sCAAsC;YAC5D,OAAO,KAAK,EAAE,GAAG,CAAA,2BAAA,EAA8B,OAAO,CAAA,CAAE,GAAG,EAAE;AAChE,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;IAMA,kBAAkB,GAAA;;AAEd,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;QAC9C,IAAI,eAAe,EAAE;AACjB,YAAA,eAAe,CAAC,KAAK,GAAG,oCAAoC;QAChE;IACJ;8GA9BS,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAoBkB,wBAAwB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BrF,6BACA,EAAA,CAAA,CAAA;;2FDUa,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAJ1C,SAAS;+BACI,0BAA0B,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAQnC,WAAW;uBAAC,WAAW;;sBAKvB,WAAW;uBAAC,OAAO;AAUoB,aAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,wBAAwB,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AE5BtF;;AAEG;AAIG,MAAO,iCAAkC,SAAQ,gBAAgB,CAAA;AACnE,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,0CAA0C,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC7F;8GAJS,iCAAiC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjC,iCAAiC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAH7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mCAAmC;AAChD,iBAAA;;sBAEI,WAAW;uBAAC,OAAO;;AAMxB;;AAEG;AAIG,MAAO,+BAAgC,SAAQ,gBAAgB,CAAA;AACjE,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC/E;8GAJS,+BAA+B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAH3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AAC1C,iBAAA;;sBAEI,WAAW;uBAAC,OAAO;;;ACnBxB;;;AAGG;AAKG,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAJhE,IAAA,WAAA,GAAA;;AAWI;;AAEG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,CAAC,+EAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAC3D;;AAEG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAElE;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,8BAA8B,CAAC;sFAAC;AAUzF,IAAA;AA3BG,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAA,yBAAA,EAA4B,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAChJ;IAgBA,kBAAkB,GAAA;;QAEd,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;AACpB,gBAAA,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAC5D;AACJ,QAAA,CAAC,CAAC;IACN;8GA5BS,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAmBmB,8BAA8B,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BxF,6BACA,EAAA,CAAA,CAAA;;2FDWa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACI,qBAAqB,EAAA,QAAA,EAAA,6BAAA,EAAA;;sBAK9B,WAAW;uBAAC,OAAO;AAiBiB,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,8BAA8B,CAAC,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEvBlF,MAAM,uBAAuB,GAAG;IACnC,0BAA0B;IAC1B,8BAA8B;IAC9B,+BAA+B;IAC/B,iCAAiC;;;ACZrC;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef, EventEmitter, HostBinding, Output,
|
|
2
|
+
import { inject, ElementRef, contentChild, EventEmitter, HostBinding, Output, Component, input, booleanAttribute, output, contentChildren, viewChild, Renderer2, ChangeDetectorRef, DOCUMENT, afterNextRender, Directive } from '@angular/core';
|
|
3
3
|
import { Subject, fromEvent, takeUntil, auditTime } from 'rxjs';
|
|
4
4
|
import { ECLBaseDirective, EclBaseEvent } from '@eui/ecl/core';
|
|
5
5
|
import { EclLinkDirective } from '@eui/ecl/components/ecl-link';
|
|
@@ -13,6 +13,11 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
|
13
13
|
constructor() {
|
|
14
14
|
super(...arguments);
|
|
15
15
|
this.el = inject(ElementRef);
|
|
16
|
+
/**
|
|
17
|
+
* Optional projected `ecl-link` element within the news ticker item.
|
|
18
|
+
*/
|
|
19
|
+
this.eclLink = contentChild(EclLinkDirective, /* @ts-ignore */
|
|
20
|
+
...(ngDevMode ? [{ debugName: "eclLink" }] : /* istanbul ignore next */ []));
|
|
16
21
|
/**
|
|
17
22
|
* Emitted when the internal link receives focus (used to cancel autoplay).
|
|
18
23
|
*/
|
|
@@ -38,7 +43,7 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
|
38
43
|
}
|
|
39
44
|
set isCurrent(value) {
|
|
40
45
|
this._isCurrent = value;
|
|
41
|
-
if (this.eclLink) {
|
|
46
|
+
if (this.eclLink()) {
|
|
42
47
|
this.setLinkTabindex();
|
|
43
48
|
}
|
|
44
49
|
}
|
|
@@ -58,11 +63,12 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
|
58
63
|
* Lifecycle hook that sets up the internal link class and focus listener.
|
|
59
64
|
*/
|
|
60
65
|
ngAfterContentInit() {
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
const eclLink = this.eclLink();
|
|
67
|
+
if (eclLink) {
|
|
68
|
+
eclLink.class = 'ecl-news-ticker__slide-text';
|
|
63
69
|
}
|
|
64
|
-
if (
|
|
65
|
-
fromEvent(
|
|
70
|
+
if (eclLink) {
|
|
71
|
+
fromEvent(eclLink.el.nativeElement, 'focus')
|
|
66
72
|
.pipe(takeUntil(this.destroy$))
|
|
67
73
|
.subscribe(() => {
|
|
68
74
|
this.itemFocused.emit();
|
|
@@ -78,22 +84,19 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
|
78
84
|
}
|
|
79
85
|
setLinkTabindex() {
|
|
80
86
|
if (this._isCurrent) {
|
|
81
|
-
this.eclLink.tabindex = null;
|
|
87
|
+
this.eclLink().tabindex = null;
|
|
82
88
|
}
|
|
83
89
|
else {
|
|
84
|
-
this.eclLink.tabindex = -1;
|
|
90
|
+
this.eclLink().tabindex = -1;
|
|
85
91
|
}
|
|
86
92
|
}
|
|
87
93
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNewsTickerItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: EclNewsTickerItemComponent, isStandalone: true, selector: "ecl-news-ticker-item", outputs: { itemFocused: "itemFocused" }, host: { properties: { "class": "this.cssClasses", "attr.role": "this.role", "attr.aria-hidden": "this.isAriahidden", "attr.inert": "this.isInert" } }, queries: [{ propertyName: "eclLink", first: true, predicate: EclLinkDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
|
|
89
95
|
}
|
|
90
96
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNewsTickerItemComponent, decorators: [{
|
|
91
97
|
type: Component,
|
|
92
98
|
args: [{ selector: 'ecl-news-ticker-item', template: "<ng-content></ng-content>\n" }]
|
|
93
|
-
}], propDecorators: { eclLink: [{
|
|
94
|
-
type: ContentChild,
|
|
95
|
-
args: [EclLinkDirective]
|
|
96
|
-
}], itemFocused: [{
|
|
99
|
+
}], propDecorators: { eclLink: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclLinkDirective), { isSignal: true }] }], itemFocused: [{
|
|
97
100
|
type: Output
|
|
98
101
|
}], cssClasses: [{
|
|
99
102
|
type: HostBinding,
|
|
@@ -132,6 +135,36 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
132
135
|
* The payload is an instance of `EclNewsTickerItemEvent`.
|
|
133
136
|
*/
|
|
134
137
|
this.itemSwitch = output();
|
|
138
|
+
/**
|
|
139
|
+
* Query list of all `EclNewsTickerItemComponent` children projected into this component.
|
|
140
|
+
*/
|
|
141
|
+
this.newsTickerItems = contentChildren(EclNewsTickerItemComponent, /* @ts-ignore */
|
|
142
|
+
...(ngDevMode ? [{ debugName: "newsTickerItems" }] : /* istanbul ignore next */ []));
|
|
143
|
+
/**
|
|
144
|
+
* Reference to the hidden first item used for looping.
|
|
145
|
+
*/
|
|
146
|
+
this.firstHiddenItem = viewChild('firstHiddenItem', /* @ts-ignore */
|
|
147
|
+
...(ngDevMode ? [{ debugName: "firstHiddenItem" }] : /* istanbul ignore next */ []));
|
|
148
|
+
/**
|
|
149
|
+
* Reference to the hidden last item used for looping.
|
|
150
|
+
*/
|
|
151
|
+
this.lastHiddenItem = viewChild('lastHiddenItem', /* @ts-ignore */
|
|
152
|
+
...(ngDevMode ? [{ debugName: "lastHiddenItem" }] : /* istanbul ignore next */ []));
|
|
153
|
+
/**
|
|
154
|
+
* Reference to the container element that holds the slides.
|
|
155
|
+
*/
|
|
156
|
+
this.slidesContainer = viewChild('slidesContainer', /* @ts-ignore */
|
|
157
|
+
...(ngDevMode ? [{ debugName: "slidesContainer" }] : /* istanbul ignore next */ []));
|
|
158
|
+
/**
|
|
159
|
+
* Reference to the play button used to start autoplay.
|
|
160
|
+
*/
|
|
161
|
+
this.playBtn = viewChild('playBtn', /* @ts-ignore */
|
|
162
|
+
...(ngDevMode ? [{ debugName: "playBtn" }] : /* istanbul ignore next */ []));
|
|
163
|
+
/**
|
|
164
|
+
* Reference to the pause button used to stop autoplay.
|
|
165
|
+
*/
|
|
166
|
+
this.pauseBtn = viewChild('pauseBtn', /* @ts-ignore */
|
|
167
|
+
...(ngDevMode ? [{ debugName: "pauseBtn" }] : /* istanbul ignore next */ []));
|
|
135
168
|
this.itemIndex = 1;
|
|
136
169
|
this.playing = false;
|
|
137
170
|
this.slidesTransform = '';
|
|
@@ -147,7 +180,7 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
147
180
|
setTimeout(() => {
|
|
148
181
|
this.initContainer();
|
|
149
182
|
}, this.INIT_DELAY);
|
|
150
|
-
this.newsTickerItems.forEach((item) => {
|
|
183
|
+
this.newsTickerItems().forEach((item) => {
|
|
151
184
|
item.itemFocused.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
152
185
|
this.cancelAutoplay();
|
|
153
186
|
});
|
|
@@ -171,13 +204,13 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
171
204
|
* Returns the number of ticker items.
|
|
172
205
|
*/
|
|
173
206
|
get itemsCount() {
|
|
174
|
-
return this.newsTickerItems.length;
|
|
207
|
+
return this.newsTickerItems().length;
|
|
175
208
|
}
|
|
176
209
|
/**
|
|
177
210
|
* Indicates whether navigation controls should be shown.
|
|
178
211
|
*/
|
|
179
212
|
get isShowControls() {
|
|
180
|
-
return this.newsTickerItems.length > 1;
|
|
213
|
+
return this.newsTickerItems().length > 1;
|
|
181
214
|
}
|
|
182
215
|
/**
|
|
183
216
|
* Lifecycle hook that clears intervals and subscriptions.
|
|
@@ -283,7 +316,7 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
283
316
|
evt.preventDefault();
|
|
284
317
|
this.startAutoplay();
|
|
285
318
|
this.cd.detectChanges();
|
|
286
|
-
this.pauseBtn.el.nativeElement.focus();
|
|
319
|
+
this.pauseBtn().el.nativeElement.focus();
|
|
287
320
|
}
|
|
288
321
|
/**
|
|
289
322
|
* Handles focus event on the "Pause" button.
|
|
@@ -293,7 +326,7 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
293
326
|
evt.preventDefault();
|
|
294
327
|
this.cancelAutoplay();
|
|
295
328
|
this.cd.detectChanges();
|
|
296
|
-
this.playBtn.el.nativeElement.focus();
|
|
329
|
+
this.playBtn().el.nativeElement.focus();
|
|
297
330
|
}
|
|
298
331
|
/**
|
|
299
332
|
* Handles window resize and recalculates the layout.
|
|
@@ -318,33 +351,34 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
318
351
|
}
|
|
319
352
|
}
|
|
320
353
|
initContainer() {
|
|
321
|
-
|
|
354
|
+
const newsTickerItems = this.newsTickerItems();
|
|
355
|
+
if (newsTickerItems.length === 1) {
|
|
322
356
|
this.resizeTicker();
|
|
323
|
-
this.moveSlides(this.getFirstItem(
|
|
357
|
+
this.moveSlides(this.getFirstItem(Array.from(newsTickerItems)), false);
|
|
324
358
|
return;
|
|
325
359
|
}
|
|
326
|
-
this.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();
|
|
327
|
-
this.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();
|
|
328
|
-
this.unsubscribeListener = this.renderer2.listen(this.slidesContainer.nativeElement, 'transitionend', () => this.checkIndex());
|
|
360
|
+
this.firstHiddenItem().el.nativeElement.innerHTML = this.getLastContentChild();
|
|
361
|
+
this.lastHiddenItem().el.nativeElement.innerHTML = this.getFirstContentChild();
|
|
362
|
+
this.unsubscribeListener = this.renderer2.listen(this.slidesContainer().nativeElement, 'transitionend', () => this.checkIndex());
|
|
329
363
|
this.resizeTicker();
|
|
330
|
-
this.moveSlides(this.getFirstItem(
|
|
364
|
+
this.moveSlides(this.getFirstItem(Array.from(newsTickerItems)), false);
|
|
331
365
|
if (this.isAutoplay()) {
|
|
332
366
|
this.startAutoplay();
|
|
333
367
|
}
|
|
334
368
|
}
|
|
335
369
|
checkIndex() {
|
|
336
370
|
if (this.itemIndex === 1) {
|
|
337
|
-
const item = this.getFirstItem(this.newsTickerItems
|
|
371
|
+
const item = this.getFirstItem(Array.from(this.newsTickerItems()));
|
|
338
372
|
this.moveSlides(item, false);
|
|
339
373
|
}
|
|
340
374
|
else if (this.itemIndex === this.itemsCount) {
|
|
341
|
-
const item = this.getLastItem(this.newsTickerItems
|
|
375
|
+
const item = this.getLastItem(Array.from(this.newsTickerItems()));
|
|
342
376
|
this.moveSlides(item, false);
|
|
343
377
|
}
|
|
344
378
|
}
|
|
345
379
|
resizeTicker() {
|
|
346
380
|
let highestSlide = 0;
|
|
347
|
-
this.newsTickerItems.forEach((slide) => {
|
|
381
|
+
this.newsTickerItems().forEach((slide) => {
|
|
348
382
|
const slideHeight = slide.el.nativeElement.offsetHeight;
|
|
349
383
|
highestSlide = highestSlide < slideHeight ? slideHeight : highestSlide;
|
|
350
384
|
});
|
|
@@ -365,16 +399,16 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
365
399
|
return items[items.length - 1];
|
|
366
400
|
}
|
|
367
401
|
getLastContentChild() {
|
|
368
|
-
return this.newsTickerItems.length > 0 ? this.newsTickerItems.
|
|
402
|
+
return this.newsTickerItems().length > 0 ? this.newsTickerItems().at(this.itemsCount - 1).el.nativeElement.innerHTML : '';
|
|
369
403
|
}
|
|
370
404
|
getFirstContentChild() {
|
|
371
|
-
return this.newsTickerItems.length > 0 ? this.newsTickerItems.
|
|
405
|
+
return this.newsTickerItems().length > 0 ? this.newsTickerItems().at(0).el.nativeElement.innerHTML : '';
|
|
372
406
|
}
|
|
373
407
|
getAllItemsArray() {
|
|
374
|
-
return [...[this.firstHiddenItem], ...this.newsTickerItems
|
|
408
|
+
return [...[this.firstHiddenItem()], ...this.newsTickerItems(), ...[this.lastHiddenItem()]];
|
|
375
409
|
}
|
|
376
410
|
setCurrentSlide(currentItem) {
|
|
377
|
-
this.newsTickerItems.forEach((item) => {
|
|
411
|
+
this.newsTickerItems().forEach((item) => {
|
|
378
412
|
item.isCurrent = false;
|
|
379
413
|
if (item === currentItem) {
|
|
380
414
|
item.isCurrent = true;
|
|
@@ -382,7 +416,7 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
382
416
|
});
|
|
383
417
|
}
|
|
384
418
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNewsTickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
385
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclNewsTickerComponent, isStandalone: true, selector: "ecl-news-ticker", inputs: { isAutoplay: { classPropertyName: "isAutoplay", publicName: "isAutoplay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSwitch: "itemSwitch" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "newsTickerItems", predicate: EclNewsTickerItemComponent }], viewQueries: [{ propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true }, { propertyName: "playBtn", first: true, predicate: ["playBtn"], descendants: true }, { propertyName: "pauseBtn", first: true, predicate: ["pauseBtn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-news-ticker__container\">\n <div class=\"ecl-news-ticker__content\" [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\" [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\" (mouseover)=\"onNewsTickerItemMouseOver()\"\n (mouseout)=\"onNewsTickerItemMouseOut()\" #slidesContainer>\n @if(isShowControls) {\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n }\n <ng-content></ng-content>\n @if(isShowControls) {\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n }\n </ul>\n </div>\n</div>\n\n@if(isShowControls) {\n<div class=\"ecl-news-ticker__controls\">\n <div class=\"ecl-news-ticker__actions\">\n <button eclButton class=\"ecl-news-ticker__prev\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onPrevious()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.PREV-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-270\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #playBtn eclButton class=\"ecl-news-ticker__play\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"playing\"\n (click)=\"startAutoplay()\" (keydown.enter)=\"onPlayBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon isInverted icon=\"play-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton class=\"ecl-news-ticker__pause\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"!playing\"\n (click)=\"cancelAutoplay()\" (keydown.enter)=\"onPauseBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PAUSE' | translate }}\n </span>\n <ecl-icon isInverted icon=\"pause-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button eclButton class=\"ecl-news-ticker__next\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onNext()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.NEXT-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-90\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n </div>\n <div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n </div>\n</div>\n}", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item", outputs: ["itemFocused"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
419
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclNewsTickerComponent, isStandalone: true, selector: "ecl-news-ticker", inputs: { isAutoplay: { classPropertyName: "isAutoplay", publicName: "isAutoplay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSwitch: "itemSwitch" }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "newsTickerItems", predicate: EclNewsTickerItemComponent, isSignal: true }], viewQueries: [{ propertyName: "firstHiddenItem", first: true, predicate: ["firstHiddenItem"], descendants: true, isSignal: true }, { propertyName: "lastHiddenItem", first: true, predicate: ["lastHiddenItem"], descendants: true, isSignal: true }, { propertyName: "slidesContainer", first: true, predicate: ["slidesContainer"], descendants: true, isSignal: true }, { propertyName: "playBtn", first: true, predicate: ["playBtn"], descendants: true, isSignal: true }, { propertyName: "pauseBtn", first: true, predicate: ["pauseBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-news-ticker__container\">\n <div class=\"ecl-news-ticker__content\" [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\" [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\" (mouseover)=\"onNewsTickerItemMouseOver()\"\n (mouseout)=\"onNewsTickerItemMouseOut()\" #slidesContainer>\n @if(isShowControls) {\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n }\n <ng-content></ng-content>\n @if(isShowControls) {\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n }\n </ul>\n </div>\n</div>\n\n@if(isShowControls) {\n<div class=\"ecl-news-ticker__controls\">\n <div class=\"ecl-news-ticker__actions\">\n <button eclButton class=\"ecl-news-ticker__prev\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onPrevious()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.PREV-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-270\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #playBtn eclButton class=\"ecl-news-ticker__play\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"playing\"\n (click)=\"startAutoplay()\" (keydown.enter)=\"onPlayBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon isInverted icon=\"play-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton class=\"ecl-news-ticker__pause\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"!playing\"\n (click)=\"cancelAutoplay()\" (keydown.enter)=\"onPauseBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PAUSE' | translate }}\n </span>\n <ecl-icon isInverted icon=\"pause-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button eclButton class=\"ecl-news-ticker__next\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onNext()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.NEXT-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-90\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n </div>\n <div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n </div>\n</div>\n}", dependencies: [{ kind: "component", type: i1.EclButtonComponent, selector: "button[eclButton], button[ecl-button], a[eclButton]", inputs: ["isIconOnly", "variant", "eclStyle", "size", "containerStyleClass"] }, { kind: "directive", type: i1.EclButtonLabelDirective, selector: "[eclButtonLabel]" }, { kind: "component", type: i2.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "component", type: EclNewsTickerItemComponent, selector: "ecl-news-ticker-item", outputs: ["itemFocused"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
386
420
|
}
|
|
387
421
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclNewsTickerComponent, decorators: [{
|
|
388
422
|
type: Component,
|
|
@@ -392,25 +426,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
392
426
|
EclNewsTickerItemComponent,
|
|
393
427
|
TranslatePipe,
|
|
394
428
|
], template: "<div class=\"ecl-news-ticker__container\">\n <div class=\"ecl-news-ticker__content\" [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\" [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\" (mouseover)=\"onNewsTickerItemMouseOver()\"\n (mouseout)=\"onNewsTickerItemMouseOut()\" #slidesContainer>\n @if(isShowControls) {\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n }\n <ng-content></ng-content>\n @if(isShowControls) {\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n }\n </ul>\n </div>\n</div>\n\n@if(isShowControls) {\n<div class=\"ecl-news-ticker__controls\">\n <div class=\"ecl-news-ticker__actions\">\n <button eclButton class=\"ecl-news-ticker__prev\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onPrevious()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.PREV-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-270\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #playBtn eclButton class=\"ecl-news-ticker__play\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"playing\"\n (click)=\"startAutoplay()\" (keydown.enter)=\"onPlayBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon isInverted icon=\"play-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton class=\"ecl-news-ticker__pause\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"!playing\"\n (click)=\"cancelAutoplay()\" (keydown.enter)=\"onPauseBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PAUSE' | translate }}\n </span>\n <ecl-icon isInverted icon=\"pause-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button eclButton class=\"ecl-news-ticker__next\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onNext()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.NEXT-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-90\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n </div>\n <div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n </div>\n</div>\n}" }]
|
|
395
|
-
}], ctorParameters: () => [], propDecorators: { isAutoplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAutoplay", required: false }] }], itemSwitch: [{ type: i0.Output, args: ["itemSwitch"] }], newsTickerItems: [{
|
|
396
|
-
type: ContentChildren,
|
|
397
|
-
args: [EclNewsTickerItemComponent]
|
|
398
|
-
}], firstHiddenItem: [{
|
|
399
|
-
type: ViewChild,
|
|
400
|
-
args: ['firstHiddenItem']
|
|
401
|
-
}], lastHiddenItem: [{
|
|
402
|
-
type: ViewChild,
|
|
403
|
-
args: ['lastHiddenItem']
|
|
404
|
-
}], slidesContainer: [{
|
|
405
|
-
type: ViewChild,
|
|
406
|
-
args: ['slidesContainer']
|
|
407
|
-
}], playBtn: [{
|
|
408
|
-
type: ViewChild,
|
|
409
|
-
args: ['playBtn']
|
|
410
|
-
}], pauseBtn: [{
|
|
411
|
-
type: ViewChild,
|
|
412
|
-
args: ['pauseBtn']
|
|
413
|
-
}], cssClasses: [{
|
|
429
|
+
}], ctorParameters: () => [], propDecorators: { isAutoplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAutoplay", required: false }] }], itemSwitch: [{ type: i0.Output, args: ["itemSwitch"] }], newsTickerItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => EclNewsTickerItemComponent), { isSignal: true }] }], firstHiddenItem: [{ type: i0.ViewChild, args: ['firstHiddenItem', { isSignal: true }] }], lastHiddenItem: [{ type: i0.ViewChild, args: ['lastHiddenItem', { isSignal: true }] }], slidesContainer: [{ type: i0.ViewChild, args: ['slidesContainer', { isSignal: true }] }], playBtn: [{ type: i0.ViewChild, args: ['playBtn', { isSignal: true }] }], pauseBtn: [{ type: i0.ViewChild, args: ['pauseBtn', { isSignal: true }] }], cssClasses: [{
|
|
414
430
|
type: HostBinding,
|
|
415
431
|
args: ['class']
|
|
416
432
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-news-ticker.mjs","sources":["../../components/ecl-news-ticker/ecl-news-ticker-item.component.ts","../../components/ecl-news-ticker/ecl-news-ticker-item.component.html","../../components/ecl-news-ticker/events/ecl-news-ticker-item.event.ts","../../components/ecl-news-ticker/ecl-news-ticker.component.ts","../../components/ecl-news-ticker/ecl-news-ticker.component.html","../../components/ecl-news-ticker/ecl-news-ticker-icon.directive.ts","../../components/ecl-news-ticker/index.ts","../../components/ecl-news-ticker/eui-ecl-components-ecl-news-ticker.ts"],"sourcesContent":["import { AfterContentInit, Component, ContentChild, ElementRef, EventEmitter, HostBinding, OnDestroy, Output, inject, Renderer2 } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n\n@Component({\n\tselector: 'ecl-news-ticker-item',\n\ttemplateUrl: './ecl-news-ticker-item.component.html',\n})\nexport class EclNewsTickerItemComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n\tel = inject(ElementRef);\n\n\t/**\n\t * Optional projected `ecl-link` element within the news ticker item.\n\t */\n\t@ContentChild(EclLinkDirective) eclLink: EclLinkDirective;\n\n\t/**\n\t * Emitted when the internal link receives focus (used to cancel autoplay).\n\t */\n\t@Output() itemFocused = new EventEmitter<null>();\n\n\t/**\n\t * HostBinding to set the component’s CSS classes.\n\t */\n\t@HostBinding('class')\n\tget cssClasses(): string {\n\t\treturn [super.getCssClasses('ecl-news-ticker__slide')].join(' ').trim();\n\t}\n\n\t/**\n\t * Declares ARIA role as list item for accessibility.\n\t */\n\t@HostBinding('attr.role') role = 'listitem';\n\n\t/**\n\t * Whether this slide is currently visible.\n\t */\n\tget isCurrent(): boolean {\n\t\treturn this._isCurrent;\n\t}\n\tset isCurrent(value: boolean) {\n\t\tthis._isCurrent = value;\n\t\tif (this.eclLink) {\n\t\t\tthis.setLinkTabindex();\n\t\t}\n\t}\n\tprivate _isCurrent = false;\n\n\t/**\n\t * Sets `aria-hidden` based on current slide visibility.\n\t */\n\t@HostBinding('attr.aria-hidden')\n\tget isAriahidden(): boolean {\n\t\treturn !this.isCurrent || undefined;\n\t}\n\n\t/**\n\t * Sets `inert` attribute when the item is not current (prevents interaction).\n\t */\n\t@HostBinding('attr.inert')\n\tget isInert(): boolean {\n\t\treturn !this.isCurrent || undefined;\n\t}\n\n\tprivate destroy$: Subject<boolean> = new Subject<boolean>();\n\n\t/**\n\t * Lifecycle hook that sets up the internal link class and focus listener.\n\t */\n\tngAfterContentInit(): void {\n\t\tif (this.eclLink) {\n\t\t\tthis.eclLink.class = 'ecl-news-ticker__slide-text';\n\t\t}\n\n\t\tif (this.eclLink) {\n\t\t\tfromEvent(this.eclLink.el.nativeElement, 'focus')\n\t\t\t\t.pipe(takeUntil(this.destroy$))\n\t\t\t\t.subscribe(() => {\n\t\t\t\t\tthis.itemFocused.emit();\n\t\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Cleanup on destroy: unsubscribe from observables.\n\t */\n\tngOnDestroy(): void {\n\t\tthis.destroy$.next(true);\n\t\tthis.destroy$.unsubscribe();\n\t}\n\n\tprivate setLinkTabindex(): void {\n\t\tif (this._isCurrent) {\n\t\t\tthis.eclLink.tabindex = null;\n\t\t} else {\n\t\t\tthis.eclLink.tabindex = -1;\n\t\t}\n\t}\n}\n","<ng-content></ng-content>\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclNewsTickerItemEvent extends EclBaseEvent {\n constructor(public itemIndex: number) {\n super();\n }\n}","import { ChangeDetectorRef, Component, ContentChildren, DOCUMENT, ElementRef, HostBinding, HostListener, OnDestroy, QueryList, Renderer2, ViewChild, afterNextRender, booleanAttribute, inject, output, input } from '@angular/core';\nimport { auditTime, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { EclNewsTickerItemComponent } from './ecl-news-ticker-item.component';\nimport { EclNewsTickerItemEvent } from './events/ecl-news-ticker-item.event';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n@Component({\n\tselector: 'ecl-news-ticker',\n\ttemplateUrl: './ecl-news-ticker.component.html',\n\t imports: [\n\t\t...EUI_ECL_BUTTON,\n ...EUI_ECL_ICON,\n\t\tEclNewsTickerItemComponent,\n\t\tTranslatePipe,\n\t],\n})\nexport class EclNewsTickerComponent extends ECLBaseDirective implements OnDestroy {\n\t/**\n\t * Enables or disables automatic cycling through ticker items.\n\t * Defaults to `true`.\n\t */\n\treadonly isAutoplay = input(true, { transform: booleanAttribute });\n\n\t/**\n\t * Emits when the visible news ticker item changes.\n\t * The payload is an instance of `EclNewsTickerItemEvent`.\n\t */\n\treadonly itemSwitch = output<EclNewsTickerItemEvent>();\n\n\t/**\n\t * Query list of all `EclNewsTickerItemComponent` children projected into this component.\n\t */\n\t@ContentChildren(EclNewsTickerItemComponent) newsTickerItems: QueryList<EclNewsTickerItemComponent>;\n\n\t/**\n\t * Reference to the hidden first item used for looping.\n\t */\n\t@ViewChild('firstHiddenItem') firstHiddenItem: EclNewsTickerItemComponent;\n\n\t/**\n\t * Reference to the hidden last item used for looping.\n\t */\n\t@ViewChild('lastHiddenItem') lastHiddenItem: EclNewsTickerItemComponent;\n\n\t/**\n\t * Reference to the container element that holds the slides.\n\t */\n\t@ViewChild('slidesContainer') slidesContainer: ElementRef;\n\n\t/**\n\t * Reference to the play button used to start autoplay.\n\t */\n\t@ViewChild('playBtn') playBtn: EclButtonComponent;\n\n\t/**\n\t * Reference to the pause button used to stop autoplay.\n\t */\n\t@ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\n\n\t@HostBinding('class')\n\tget cssClasses(): string {\n\t\treturn [super.getCssClasses('ecl-news-ticker')].join(' ').trim();\n\t}\n\n\titemIndex = 1;\n\tplaying = false;\n\tslidesTransform = '';\n\ttransitionDuration: number;\n\tprivate intervalId: any;\n\tprivate PLAY_INTERVAL = 5000;\n\tprivate INIT_DELAY = 300;\n\tprivate _contentHeight: number;\n\tprivate pausePlay = false;\n\tprivate unsubscribeListener: () => void;\n\tprivate destroy$: Subject<boolean> = new Subject<boolean>();\n private renderer2 = inject(Renderer2);\n private cd = inject(ChangeDetectorRef);\n\tprivate readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n\tconstructor() {\n\t\tsuper();\n\t\tafterNextRender(() => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.initContainer();\n\t\t\t}, this.INIT_DELAY);\n\t\t\tthis.newsTickerItems.forEach((item) => {\n\t\t\t\titem.itemFocused.pipe(takeUntil(this.destroy$)).subscribe(() => {\n\t\t\t\t\tthis.cancelAutoplay();\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.observeResizeWindow();\n\t\t});\n\t}\n\n\t/**\n\t * Initializes the autoplay state based on the input configuration.\n\t */\n\tngOnInit(): void {\n\t\tthis.playing = this.isAutoplay();\n\t}\n\n\t/**\n\t * Returns the height of the currently visible ticker item.\n\t */\n\tget contentHeight(): number {\n\t\treturn this._contentHeight;\n\t}\n\n\t/**\n\t * Returns the number of ticker items.\n\t */\n\tget itemsCount(): number {\n\t\treturn this.newsTickerItems.length;\n\t}\n\n\t/**\n\t * Indicates whether navigation controls should be shown.\n\t */\n\tget isShowControls(): boolean {\n\t\treturn this.newsTickerItems.length > 1;\n\t}\n\n\t/**\n\t * Lifecycle hook that clears intervals and subscriptions.\n\t */\n\tngOnDestroy(): void {\n\t\tif (this.intervalId) {\n\t\t\tclearInterval(this.intervalId);\n\t\t}\n\t\tif (this.unsubscribeListener) {\n\t\t\tthis.unsubscribeListener();\n\t\t}\n\t\tthis.destroy$.next(true);\n\t\tthis.destroy$.unsubscribe();\n\t}\n\n\t/**\n\t * Handles \"previous\" button click.\n\t * Navigates to the previous slide and stops autoplay.\n\t */\n\tonPrevious(): void {\n\t\tthis.cancelAutoplay();\n\t\tthis.previousSlide();\n\t}\n\n\t/**\n\t * Moves to the previous slide and emits `itemSwitch` event.\n\t */\n\tpreviousSlide(): void {\n\t\tthis.itemIndex = this.getPrevIndex();\n\t\tif (this.itemIndex === this.itemsCount) {\n\t\t\tthis.moveSlides(this.getFirstItem(this.getAllItemsArray()), true);\n\t\t} else {\n\t\t\tthis.moveSlides(this.getCurrentItem(), true);\n\t\t}\n\t\tthis.itemSwitch.emit(new EclNewsTickerItemEvent(this.itemIndex));\n\t}\n\n\t/**\n\t * Handles \"next\" button click.\n\t * Navigates to the next slide and stops autoplay.\n\t */\n\tonNext(): void {\n\t\tthis.cancelAutoplay();\n\t\tthis.nextSlide();\n\t}\n\n\t/**\n\t * Moves to the next slide and emits `itemSwitch` event.\n\t */\n\tnextSlide(): void {\n\t\tthis.itemIndex = this.getNextIndex();\n\t\tif (this.itemIndex === 1) {\n\t\t\tthis.moveSlides(this.getLastItem(this.getAllItemsArray()), true);\n\t\t} else {\n\t\t\tthis.moveSlides(this.getCurrentItem(), true);\n\t\t}\n\t\tthis.itemSwitch.emit(new EclNewsTickerItemEvent(this.itemIndex));\n\t}\n\n\t/**\n\t * Starts automatic cycling of the ticker items.\n\t */\n\tstartAutoplay(): void {\n\t\tif (!this.playing) {\n\t\t\tthis.playing = true;\n\t\t}\n\t\tif (this.intervalId) {\n\t\t\tclearInterval(this.intervalId);\n\t\t}\n\t\tthis.intervalId = setInterval(() => this.nextSlide(), this.PLAY_INTERVAL);\n\t}\n\n\t/**\n\t * Cancels the automatic cycling of the ticker items.\n\t */\n\tcancelAutoplay(): void {\n\t\tif (this.intervalId) {\n\t\t\tclearInterval(this.intervalId);\n\t\t}\n\t\tthis.playing = false;\n\t}\n\n\t/**\n\t * Handles mouse over event on a ticker item.\n\t * Temporarily pauses autoplay.\n\t */\n\tonNewsTickerItemMouseOver(): void {\n\t\tif (this.playing) {\n\t\t\tthis.pausePlay = true;\n\t\t\tthis.cancelAutoplay();\n\t\t}\n\t}\n\n\t/**\n\t * Handles mouse out event from a ticker item.\n\t * Resumes autoplay if it was paused due to hover.\n\t */\n\tonNewsTickerItemMouseOut(): void {\n\t\tif (this.pausePlay) {\n\t\t\tthis.pausePlay = false;\n\t\t\tthis.startAutoplay();\n\t\t}\n\t}\n\n\t/**\n\t * Handles focus event on the \"Play\" button.\n\t * Starts autoplay and shifts focus to the \"Pause\" button.\n\t */\n\tonPlayBtnEnter(evt: Event): void {\n\t\tevt.preventDefault();\n\t\tthis.startAutoplay();\n\t\tthis.cd.detectChanges();\n\t\tthis.pauseBtn.el.nativeElement.focus();\n\t}\n\n\t/**\n\t * Handles focus event on the \"Pause\" button.\n\t * Stops autoplay and shifts focus to the \"Play\" button.\n\t */\n\tonPauseBtnEnter(evt: Event): void {\n\t\tevt.preventDefault();\n\t\tthis.cancelAutoplay();\n\t\tthis.cd.detectChanges();\n\t\tthis.playBtn.el.nativeElement.focus();\n\t}\n\n\t/**\n\t * Handles window resize and recalculates the layout.\n\t */\n\tprivate observeResizeWindow(): void {\n\t\tfromEvent(this.window, 'resize').pipe(\n\t\t\tauditTime(50),\n\t\t\ttakeUntil(this.destroy$)).subscribe(() => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.resizeTicker();\n\t\t\t\t\tthis.moveSlides(this.getCurrentItem(), false);\n\t\t\t\t});\n\t\t\t});\n\n\t}\n\n\tprivate moveSlides(item: EclNewsTickerItemComponent, withTransition: boolean): void {\n\t\tif (item) {\n\t\t\tconst newOffset = item.el.nativeElement.offsetTop;\n\t\t\tconst newHeight = Math.floor(item.el.nativeElement.getBoundingClientRect().height,\n );\n\t\t\tthis._contentHeight = newHeight;\n\t\t\tthis.transitionDuration = withTransition ? 0.4 : 0;\n\t\t\tthis.slidesTransform = `translate3d(0px, -${newOffset}px, 0px)`;\n\t\t\tthis.cd.detectChanges();\n\t\t\tthis.setCurrentSlide(item);\n\t\t}\n\t}\n\n\tprivate initContainer(): void {\n\t\tif (this.newsTickerItems.length === 1) {\n\t\t\tthis.resizeTicker();\n\t\t\tthis.moveSlides(this.getFirstItem(this.newsTickerItems.toArray()), false);\n\t\t\treturn;\n\t\t}\n\t\tthis.firstHiddenItem.el.nativeElement.innerHTML = this.getLastContentChild();\n\t\tthis.lastHiddenItem.el.nativeElement.innerHTML = this.getFirstContentChild();\n\t\tthis.unsubscribeListener = this.renderer2.listen(this.slidesContainer.nativeElement, 'transitionend', () => this.checkIndex());\n\t\tthis.resizeTicker();\n\t\tthis.moveSlides(this.getFirstItem(this.newsTickerItems.toArray()), false);\n\t\tif (this.isAutoplay()) {\n\t\t\tthis.startAutoplay();\n\t\t}\n\t}\n\n\tprivate checkIndex(): void {\n\t\tif (this.itemIndex === 1) {\n\t\t\tconst item = this.getFirstItem(this.newsTickerItems.toArray());\n\t\t\tthis.moveSlides(item, false);\n\t\t} else if (this.itemIndex === this.itemsCount) {\n\t\t\tconst item = this.getLastItem(this.newsTickerItems.toArray());\n\t\t\tthis.moveSlides(item, false);\n\t\t}\n\t}\n\n\tprivate resizeTicker(): void {\n\t\tlet highestSlide = 0;\n\t\tthis.newsTickerItems.forEach((slide) => {\n\t\t\tconst slideHeight = slide.el.nativeElement.offsetHeight;\n\t\t\thighestSlide = highestSlide < slideHeight ? slideHeight : highestSlide;\n\t\t});\n\t}\n\n\tprivate getNextIndex(): number {\n\t\treturn this.itemIndex === this.itemsCount ? 1 : ++this.itemIndex;\n\t}\n\n\tprivate getCurrentItem(): EclNewsTickerItemComponent {\n\t\treturn this.getAllItemsArray()[this.itemIndex];\n\t}\n\n\tprivate getPrevIndex(): number {\n\t\treturn this.itemIndex === 1 ? this.itemsCount : --this.itemIndex;\n\t}\n\n\tprivate getFirstItem(items: Array<EclNewsTickerItemComponent>): EclNewsTickerItemComponent {\n\t\treturn items.length > 0 ? items[0] : null;\n\t}\n\n\tprivate getLastItem(items: Array<EclNewsTickerItemComponent>): EclNewsTickerItemComponent {\n\t\treturn items[items.length - 1];\n\t}\n\n\tprivate getLastContentChild(): string {\n\t\treturn this.newsTickerItems.length > 0 ? this.newsTickerItems.get(this.itemsCount - 1).el.nativeElement.innerHTML : '';\n\t}\n\n\tprivate getFirstContentChild(): string {\n\t\treturn this.newsTickerItems.length > 0 ? this.newsTickerItems.get(0).el.nativeElement.innerHTML : '';\n\t}\n\n\tprivate getAllItemsArray(): EclNewsTickerItemComponent[] {\n\t\treturn [...[this.firstHiddenItem], ...this.newsTickerItems.toArray(), ...[this.lastHiddenItem]];\n\t}\n\n\tprivate setCurrentSlide(currentItem: EclNewsTickerItemComponent): void {\n\t\tthis.newsTickerItems.forEach((item) => {\n\t\t\titem.isCurrent = false;\n\t\t\tif (item === currentItem) {\n\t\t\t\titem.isCurrent = true;\n\t\t\t}\n\t\t});\n\t}\n}\n","<div class=\"ecl-news-ticker__container\">\n <div class=\"ecl-news-ticker__content\" [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\" [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\" (mouseover)=\"onNewsTickerItemMouseOver()\"\n (mouseout)=\"onNewsTickerItemMouseOut()\" #slidesContainer>\n @if(isShowControls) {\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n }\n <ng-content></ng-content>\n @if(isShowControls) {\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n }\n </ul>\n </div>\n</div>\n\n@if(isShowControls) {\n<div class=\"ecl-news-ticker__controls\">\n <div class=\"ecl-news-ticker__actions\">\n <button eclButton class=\"ecl-news-ticker__prev\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onPrevious()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.PREV-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-270\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #playBtn eclButton class=\"ecl-news-ticker__play\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"playing\"\n (click)=\"startAutoplay()\" (keydown.enter)=\"onPlayBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon isInverted icon=\"play-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton class=\"ecl-news-ticker__pause\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"!playing\"\n (click)=\"cancelAutoplay()\" (keydown.enter)=\"onPauseBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PAUSE' | translate }}\n </span>\n <ecl-icon isInverted icon=\"pause-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button eclButton class=\"ecl-news-ticker__next\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onNext()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.NEXT-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-90\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n </div>\n <div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n </div>\n</div>\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to mark and style the icon inside a news ticker item.\n */\n@Directive({\n\tselector: '[eclNewsTickerIcon]',\n})\nexport class EclNewsTickerIconDirective extends ECLBaseDirective {\n\t/**\n\t * Adds the `ecl-news-ticker__icon` class to the host element.\n\t */\n\t@HostBinding('class.ecl-news-ticker__icon') hasClass = true;\n}\n","import { EclNewsTickerComponent } from './ecl-news-ticker.component';\nimport { EclNewsTickerItemComponent } from './ecl-news-ticker-item.component';\nimport { EclNewsTickerIconDirective } from './ecl-news-ticker-icon.directive';\n\nexport * from './ecl-news-ticker.component';\nexport * from './ecl-news-ticker-item.component';\nexport * from './ecl-news-ticker-icon.directive';\nexport * from './events/ecl-news-ticker-item.event';\n\nexport const EUI_ECL_NEWS_TICKER = [\n EclNewsTickerComponent,\n EclNewsTickerItemComponent,\n EclNewsTickerIconDirective,\n] as const;\n","/**\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-news-ticker.mjs","sources":["../../components/ecl-news-ticker/ecl-news-ticker-item.component.ts","../../components/ecl-news-ticker/ecl-news-ticker-item.component.html","../../components/ecl-news-ticker/events/ecl-news-ticker-item.event.ts","../../components/ecl-news-ticker/ecl-news-ticker.component.ts","../../components/ecl-news-ticker/ecl-news-ticker.component.html","../../components/ecl-news-ticker/ecl-news-ticker-icon.directive.ts","../../components/ecl-news-ticker/index.ts","../../components/ecl-news-ticker/eui-ecl-components-ecl-news-ticker.ts"],"sourcesContent":["import { AfterContentInit, Component, ElementRef, EventEmitter, HostBinding, OnDestroy, Output, inject, Renderer2, contentChild } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n\n@Component({\n selector: 'ecl-news-ticker-item',\n templateUrl: './ecl-news-ticker-item.component.html',\n})\nexport class EclNewsTickerItemComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n /**\n\t * Optional projected `ecl-link` element within the news ticker item.\n\t */\n readonly eclLink = contentChild(EclLinkDirective);\n\n /**\n\t * Emitted when the internal link receives focus (used to cancel autoplay).\n\t */\n @Output() itemFocused = new EventEmitter<null>();\n\n /**\n\t * HostBinding to set the component’s CSS classes.\n\t */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-news-ticker__slide')].join(' ').trim();\n }\n\n /**\n\t * Declares ARIA role as list item for accessibility.\n\t */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n\t * Whether this slide is currently visible.\n\t */\n get isCurrent(): boolean {\n return this._isCurrent;\n }\n set isCurrent(value: boolean) {\n this._isCurrent = value;\n if (this.eclLink()) {\n this.setLinkTabindex();\n }\n }\n private _isCurrent = false;\n\n /**\n\t * Sets `aria-hidden` based on current slide visibility.\n\t */\n @HostBinding('attr.aria-hidden')\n get isAriahidden(): boolean {\n return !this.isCurrent || undefined;\n }\n\n /**\n\t * Sets `inert` attribute when the item is not current (prevents interaction).\n\t */\n @HostBinding('attr.inert')\n get isInert(): boolean {\n return !this.isCurrent || undefined;\n }\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n /**\n\t * Lifecycle hook that sets up the internal link class and focus listener.\n\t */\n ngAfterContentInit(): void {\n const eclLink = this.eclLink();\n if (eclLink) {\n eclLink.class = 'ecl-news-ticker__slide-text';\n }\n\n if (eclLink) {\n fromEvent(eclLink.el.nativeElement, 'focus')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.itemFocused.emit();\n });\n }\n }\n\n /**\n\t * Cleanup on destroy: unsubscribe from observables.\n\t */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n private setLinkTabindex(): void {\n if (this._isCurrent) {\n this.eclLink().tabindex = null;\n } else {\n this.eclLink().tabindex = -1;\n }\n }\n}\n","<ng-content></ng-content>\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclNewsTickerItemEvent extends EclBaseEvent {\n constructor(public itemIndex: number) {\n super();\n }\n}","import { ChangeDetectorRef, Component, DOCUMENT, ElementRef, HostBinding, HostListener, OnDestroy, Renderer2, afterNextRender, booleanAttribute, inject, output, input, contentChildren, viewChild, OnInit } from '@angular/core';\nimport { auditTime, fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\nimport { EclNewsTickerItemComponent } from './ecl-news-ticker-item.component';\nimport { EclNewsTickerItemEvent } from './events/ecl-news-ticker-item.event';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\n@Component({\n selector: 'ecl-news-ticker',\n templateUrl: './ecl-news-ticker.component.html',\n imports: [\n ...EUI_ECL_BUTTON,\n ...EUI_ECL_ICON,\n EclNewsTickerItemComponent,\n TranslatePipe,\n ],\n})\nexport class EclNewsTickerComponent extends ECLBaseDirective implements OnDestroy, OnInit {\n /**\n\t * Enables or disables automatic cycling through ticker items.\n\t * Defaults to `true`.\n\t */\n readonly isAutoplay = input(true, { transform: booleanAttribute });\n\n /**\n\t * Emits when the visible news ticker item changes.\n\t * The payload is an instance of `EclNewsTickerItemEvent`.\n\t */\n readonly itemSwitch = output<EclNewsTickerItemEvent>();\n\n /**\n\t * Query list of all `EclNewsTickerItemComponent` children projected into this component.\n\t */\n readonly newsTickerItems = contentChildren(EclNewsTickerItemComponent);\n\n /**\n\t * Reference to the hidden first item used for looping.\n\t */\n readonly firstHiddenItem = viewChild<EclNewsTickerItemComponent>('firstHiddenItem');\n\n /**\n\t * Reference to the hidden last item used for looping.\n\t */\n readonly lastHiddenItem = viewChild<EclNewsTickerItemComponent>('lastHiddenItem');\n\n /**\n\t * Reference to the container element that holds the slides.\n\t */\n readonly slidesContainer = viewChild<ElementRef>('slidesContainer');\n\n /**\n\t * Reference to the play button used to start autoplay.\n\t */\n readonly playBtn = viewChild<EclButtonComponent>('playBtn');\n\n /**\n\t * Reference to the pause button used to stop autoplay.\n\t */\n readonly pauseBtn = viewChild<EclButtonComponent>('pauseBtn');\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-news-ticker')].join(' ').trim();\n }\n\n itemIndex = 1;\n playing = false;\n slidesTransform = '';\n transitionDuration: number;\n private intervalId: any;\n private PLAY_INTERVAL = 5000;\n private INIT_DELAY = 300;\n private _contentHeight: number;\n private pausePlay = false;\n private unsubscribeListener: () => void;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private renderer2 = inject(Renderer2);\n private cd = inject(ChangeDetectorRef);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n constructor() {\n super();\n afterNextRender(() => {\n setTimeout(() => {\n this.initContainer();\n }, this.INIT_DELAY);\n this.newsTickerItems().forEach((item) => {\n item.itemFocused.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.cancelAutoplay();\n });\n });\n this.observeResizeWindow();\n });\n }\n\n /**\n\t * Initializes the autoplay state based on the input configuration.\n\t */\n ngOnInit(): void {\n this.playing = this.isAutoplay();\n }\n\n /**\n\t * Returns the height of the currently visible ticker item.\n\t */\n get contentHeight(): number {\n return this._contentHeight;\n }\n\n /**\n\t * Returns the number of ticker items.\n\t */\n get itemsCount(): number {\n return this.newsTickerItems().length;\n }\n\n /**\n\t * Indicates whether navigation controls should be shown.\n\t */\n get isShowControls(): boolean {\n return this.newsTickerItems().length > 1;\n }\n\n /**\n\t * Lifecycle hook that clears intervals and subscriptions.\n\t */\n ngOnDestroy(): void {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n if (this.unsubscribeListener) {\n this.unsubscribeListener();\n }\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n\t * Handles \"previous\" button click.\n\t * Navigates to the previous slide and stops autoplay.\n\t */\n onPrevious(): void {\n this.cancelAutoplay();\n this.previousSlide();\n }\n\n /**\n\t * Moves to the previous slide and emits `itemSwitch` event.\n\t */\n previousSlide(): void {\n this.itemIndex = this.getPrevIndex();\n if (this.itemIndex === this.itemsCount) {\n this.moveSlides(this.getFirstItem(this.getAllItemsArray()), true);\n } else {\n this.moveSlides(this.getCurrentItem(), true);\n }\n this.itemSwitch.emit(new EclNewsTickerItemEvent(this.itemIndex));\n }\n\n /**\n\t * Handles \"next\" button click.\n\t * Navigates to the next slide and stops autoplay.\n\t */\n onNext(): void {\n this.cancelAutoplay();\n this.nextSlide();\n }\n\n /**\n\t * Moves to the next slide and emits `itemSwitch` event.\n\t */\n nextSlide(): void {\n this.itemIndex = this.getNextIndex();\n if (this.itemIndex === 1) {\n this.moveSlides(this.getLastItem(this.getAllItemsArray()), true);\n } else {\n this.moveSlides(this.getCurrentItem(), true);\n }\n this.itemSwitch.emit(new EclNewsTickerItemEvent(this.itemIndex));\n }\n\n /**\n\t * Starts automatic cycling of the ticker items.\n\t */\n startAutoplay(): void {\n if (!this.playing) {\n this.playing = true;\n }\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n this.intervalId = setInterval(() => this.nextSlide(), this.PLAY_INTERVAL);\n }\n\n /**\n\t * Cancels the automatic cycling of the ticker items.\n\t */\n cancelAutoplay(): void {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n this.playing = false;\n }\n\n /**\n\t * Handles mouse over event on a ticker item.\n\t * Temporarily pauses autoplay.\n\t */\n onNewsTickerItemMouseOver(): void {\n if (this.playing) {\n this.pausePlay = true;\n this.cancelAutoplay();\n }\n }\n\n /**\n\t * Handles mouse out event from a ticker item.\n\t * Resumes autoplay if it was paused due to hover.\n\t */\n onNewsTickerItemMouseOut(): void {\n if (this.pausePlay) {\n this.pausePlay = false;\n this.startAutoplay();\n }\n }\n\n /**\n\t * Handles focus event on the \"Play\" button.\n\t * Starts autoplay and shifts focus to the \"Pause\" button.\n\t */\n onPlayBtnEnter(evt: Event): void {\n evt.preventDefault();\n this.startAutoplay();\n this.cd.detectChanges();\n this.pauseBtn().el.nativeElement.focus();\n }\n\n /**\n\t * Handles focus event on the \"Pause\" button.\n\t * Stops autoplay and shifts focus to the \"Play\" button.\n\t */\n onPauseBtnEnter(evt: Event): void {\n evt.preventDefault();\n this.cancelAutoplay();\n this.cd.detectChanges();\n this.playBtn().el.nativeElement.focus();\n }\n\n /**\n\t * Handles window resize and recalculates the layout.\n\t */\n private observeResizeWindow(): void {\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n setTimeout(() => {\n this.resizeTicker();\n this.moveSlides(this.getCurrentItem(), false);\n });\n });\n\n }\n\n private moveSlides(item: EclNewsTickerItemComponent, withTransition: boolean): void {\n if (item) {\n const newOffset = item.el.nativeElement.offsetTop;\n const newHeight = Math.floor(item.el.nativeElement.getBoundingClientRect().height,\n );\n this._contentHeight = newHeight;\n this.transitionDuration = withTransition ? 0.4 : 0;\n this.slidesTransform = `translate3d(0px, -${newOffset}px, 0px)`;\n this.cd.detectChanges();\n this.setCurrentSlide(item);\n }\n }\n\n private initContainer(): void {\n const newsTickerItems = this.newsTickerItems();\n if (newsTickerItems.length === 1) {\n this.resizeTicker();\n this.moveSlides(this.getFirstItem(Array.from(newsTickerItems)), false);\n return;\n }\n this.firstHiddenItem().el.nativeElement.innerHTML = this.getLastContentChild();\n this.lastHiddenItem().el.nativeElement.innerHTML = this.getFirstContentChild();\n this.unsubscribeListener = this.renderer2.listen(this.slidesContainer().nativeElement, 'transitionend', () => this.checkIndex());\n this.resizeTicker();\n this.moveSlides(this.getFirstItem(Array.from(newsTickerItems)), false);\n if (this.isAutoplay()) {\n this.startAutoplay();\n }\n }\n\n private checkIndex(): void {\n if (this.itemIndex === 1) {\n const item = this.getFirstItem(Array.from(this.newsTickerItems()));\n this.moveSlides(item, false);\n } else if (this.itemIndex === this.itemsCount) {\n const item = this.getLastItem(Array.from(this.newsTickerItems()));\n this.moveSlides(item, false);\n }\n }\n\n private resizeTicker(): void {\n let highestSlide = 0;\n this.newsTickerItems().forEach((slide) => {\n const slideHeight = slide.el.nativeElement.offsetHeight;\n highestSlide = highestSlide < slideHeight ? slideHeight : highestSlide;\n });\n }\n\n private getNextIndex(): number {\n return this.itemIndex === this.itemsCount ? 1 : ++this.itemIndex;\n }\n\n private getCurrentItem(): EclNewsTickerItemComponent {\n return this.getAllItemsArray()[this.itemIndex];\n }\n\n private getPrevIndex(): number {\n return this.itemIndex === 1 ? this.itemsCount : --this.itemIndex;\n }\n\n private getFirstItem(items: EclNewsTickerItemComponent[]): EclNewsTickerItemComponent {\n return items.length > 0 ? items[0] : null;\n }\n\n private getLastItem(items: EclNewsTickerItemComponent[]): EclNewsTickerItemComponent {\n return items[items.length - 1];\n }\n\n private getLastContentChild(): string {\n return this.newsTickerItems().length > 0 ? this.newsTickerItems().at(this.itemsCount - 1).el.nativeElement.innerHTML : '';\n }\n\n private getFirstContentChild(): string {\n return this.newsTickerItems().length > 0 ? this.newsTickerItems().at(0).el.nativeElement.innerHTML : '';\n }\n\n private getAllItemsArray(): EclNewsTickerItemComponent[] {\n return [...[this.firstHiddenItem()], ...this.newsTickerItems(), ...[this.lastHiddenItem()]];\n }\n\n private setCurrentSlide(currentItem: EclNewsTickerItemComponent): void {\n this.newsTickerItems().forEach((item) => {\n item.isCurrent = false;\n if (item === currentItem) {\n item.isCurrent = true;\n }\n });\n }\n}\n","<div class=\"ecl-news-ticker__container\">\n <div class=\"ecl-news-ticker__content\" [style.height.px]=\"contentHeight\">\n <ul class=\"ecl-news-ticker__slides\" [style.transition-duration.s]=\"transitionDuration\"\n [style.transform]=\"slidesTransform\" (mouseover)=\"onNewsTickerItemMouseOver()\"\n (mouseout)=\"onNewsTickerItemMouseOut()\" #slidesContainer>\n @if(isShowControls) {\n <ecl-news-ticker-item #firstHiddenItem></ecl-news-ticker-item>\n }\n <ng-content></ng-content>\n @if(isShowControls) {\n <ecl-news-ticker-item #lastHiddenItem></ecl-news-ticker-item>\n }\n </ul>\n </div>\n</div>\n\n@if(isShowControls) {\n<div class=\"ecl-news-ticker__controls\">\n <div class=\"ecl-news-ticker__actions\">\n <button eclButton class=\"ecl-news-ticker__prev\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onPrevious()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.PREV-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-270\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #playBtn eclButton class=\"ecl-news-ticker__play\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"playing\"\n (click)=\"startAutoplay()\" (keydown.enter)=\"onPlayBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.AUTO-PLAY' | translate }}\n </span>\n <ecl-icon isInverted icon=\"play-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button #pauseBtn eclButton class=\"ecl-news-ticker__pause\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly [class.ecl-u-d-none]=\"!playing\"\n (click)=\"cancelAutoplay()\" (keydown.enter)=\"onPauseBtnEnter($event)\">\n <span class=\"ecl-u-sr-only\">\n {{ 'ecl.news-ticker.PAUSE' | translate }}\n </span>\n <ecl-icon isInverted icon=\"pause-outline\" size=\"l\" class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n <button eclButton class=\"ecl-news-ticker__next\" variant=\"tertiary\" eclStyle=\"neutral\" isIconOnly (click)=\"onNext()\">\n <span eclButtonLabel>\n {{ 'ecl.news-ticker.NEXT-ITEM' | translate }}\n </span>\n <ecl-icon isInverted icon=\"corner-arrow\" size=\"l\" transform=\"rotate-90\"\n class=\"ecl-news-ticker__icon-default\"></ecl-icon>\n </button>\n </div>\n <div class=\"ecl-news-ticker__counter\">\n <span class=\"ecl-news-ticker__counter--current\"> {{ itemIndex }}</span>\n {{ 'ecl.common.OF' | translate }}\n <span class=\"ecl-news-ticker__counter--max\">{{ itemsCount }}</span>\n </div>\n</div>\n}","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive to mark and style the icon inside a news ticker item.\n */\n@Directive({\n selector: '[eclNewsTickerIcon]',\n})\nexport class EclNewsTickerIconDirective extends ECLBaseDirective {\n /**\n\t * Adds the `ecl-news-ticker__icon` class to the host element.\n\t */\n @HostBinding('class.ecl-news-ticker__icon') hasClass = true;\n}\n","import { EclNewsTickerComponent } from './ecl-news-ticker.component';\nimport { EclNewsTickerItemComponent } from './ecl-news-ticker-item.component';\nimport { EclNewsTickerIconDirective } from './ecl-news-ticker-icon.directive';\n\nexport * from './ecl-news-ticker.component';\nexport * from './ecl-news-ticker-item.component';\nexport * from './ecl-news-ticker-icon.directive';\nexport * from './events/ecl-news-ticker-item.event';\n\nexport const EUI_ECL_NEWS_TICKER = [\n EclNewsTickerComponent,\n EclNewsTickerItemComponent,\n EclNewsTickerIconDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AASM,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAJhE,IAAA,WAAA,GAAA;;AAKI,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAEvB;;AAEA;QACS,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,gBAAgB;oFAAC;AAEjD;;AAEA;AACU,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAQ;AAUhD;;AAEA;QAC0B,IAAA,CAAA,IAAI,GAAG,UAAU;QAcnC,IAAA,CAAA,UAAU,GAAG,KAAK;AAkBlB,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;AAmC9D,IAAA;AA9EG;;AAEA;AACA,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC3E;AAOA;;AAEA;AACA,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU;IAC1B;IACA,IAAI,SAAS,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,eAAe,EAAE;QAC1B;IACJ;AAGA;;AAEA;AACA,IAAA,IACI,YAAY,GAAA;AACZ,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS;IACvC;AAEA;;AAEA;AACA,IAAA,IACI,OAAO,GAAA;AACP,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS;IACvC;AAIA;;AAEA;IACA,kBAAkB,GAAA;AACd,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,CAAC,KAAK,GAAG,6BAA6B;QACjD;QAEA,IAAI,OAAO,EAAE;YACT,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO;AACtC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC7B,SAAS,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAC3B,YAAA,CAAC,CAAC;QACV;IACJ;AAEA;;AAEA;IACA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,GAAG,IAAI;QAClC;aAAO;YACH,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChC;IACJ;8GA1FS,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMH,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECfpD,6BACA,EAAA,CAAA,CAAA;;2FDQa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,6BAAA,EAAA;4FASA,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA;sBAK/C;;sBAKA,WAAW;uBAAC,OAAO;;sBAQnB,WAAW;uBAAC,WAAW;;sBAmBvB,WAAW;uBAAC,kBAAkB;;sBAQ9B,WAAW;uBAAC,YAAY;;;AE1DvB,MAAO,sBAAuB,SAAQ,YAAY,CAAA;AACpD,IAAA,WAAA,CAAmB,SAAiB,EAAA;AAChC,QAAA,KAAK,EAAE;QADQ,IAAA,CAAA,SAAS,GAAT,SAAS;IAE5B;AACH;;ACcK,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AA2CxD,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACpE;AAkBA,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAhEX;;;AAGA;QACS,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,IAAI,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAElE;;;AAGA;QACS,IAAA,CAAA,UAAU,GAAG,MAAM,EAA0B;AAEtD;;AAEA;QACS,IAAA,CAAA,eAAe,GAAG,eAAe,CAAC,0BAA0B;4FAAC;AAEtE;;AAEA;QACS,IAAA,CAAA,eAAe,GAAG,SAAS,CAA6B,iBAAiB;4FAAC;AAEnF;;AAEA;QACS,IAAA,CAAA,cAAc,GAAG,SAAS,CAA6B,gBAAgB;2FAAC;AAEjF;;AAEA;QACS,IAAA,CAAA,eAAe,GAAG,SAAS,CAAa,iBAAiB;4FAAC;AAEnE;;AAEA;QACS,IAAA,CAAA,OAAO,GAAG,SAAS,CAAqB,SAAS;oFAAC;AAE3D;;AAEA;QACS,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAqB,UAAU;qFAAC;QAO7D,IAAA,CAAA,SAAS,GAAG,CAAC;QACb,IAAA,CAAA,OAAO,GAAG,KAAK;QACf,IAAA,CAAA,eAAe,GAAG,EAAE;QAGZ,IAAA,CAAA,aAAa,GAAG,IAAI;QACpB,IAAA,CAAA,UAAU,GAAG,GAAG;QAEhB,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;AACnD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACrB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAW,QAAQ,CAAC;QACrC,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;QAIhD,eAAe,CAAC,MAAK;YACjB,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,aAAa,EAAE;AACxB,YAAA,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;YACnB,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACpC,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;oBAC3D,IAAI,CAAC,cAAc,EAAE;AACzB,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE;AAC9B,QAAA,CAAC,CAAC;IACN;AAEA;;AAEA;IACA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;IACpC;AAEA;;AAEA;AACA,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc;IAC9B;AAEA;;AAEA;AACA,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM;IACxC;AAEA;;AAEA;AACA,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC;IAC5C;AAEA;;AAEA;IACA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC;AACA,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE;QAC9B;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;AAEA;;;AAGA;IACA,UAAU,GAAA;QACN,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,aAAa,EAAE;IACxB;AAEA;;AAEA;IACA,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;QACpC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;AACpC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,CAAC;QACrE;aAAO;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE;AAEA;;;AAGA;IACA,MAAM,GAAA;QACF,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,SAAS,EAAE;IACpB;AAEA;;AAEA;IACA,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE;AACpC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,CAAC;QACpE;aAAO;YACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpE;AAEA;;AAEA;IACA,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACvB;AACA,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC;AACA,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC;IAC7E;AAEA;;AAEA;IACA,cAAc,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAClC;AACA,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;IACxB;AAEA;;;AAGA;IACA,yBAAyB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACrB,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;AAEA;;;AAGA;IACA,wBAAwB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACtB,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;AAEA;;;AAGA;AACA,IAAA,cAAc,CAAC,GAAU,EAAA;QACrB,GAAG,CAAC,cAAc,EAAE;QACpB,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;QACvB,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC5C;AAEA;;;AAGA;AACA,IAAA,eAAe,CAAC,GAAU,EAAA;QACtB,GAAG,CAAC,cAAc,EAAE;QACpB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IAC3C;AAEA;;AAEA;IACQ,mBAAmB,GAAA;QACvB,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,CACjC,SAAS,CAAC,EAAE,CAAC,EACb,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACzC,UAAU,CAAC,MAAK;gBACZ,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC;AACjD,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IAEN;IAEQ,UAAU,CAAC,IAAgC,EAAE,cAAuB,EAAA;QACxE,IAAI,IAAI,EAAE;YACN,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS;AACjD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAChF;AACD,YAAA,IAAI,CAAC,cAAc,GAAG,SAAS;AAC/B,YAAA,IAAI,CAAC,kBAAkB,GAAG,cAAc,GAAG,GAAG,GAAG,CAAC;AAClD,YAAA,IAAI,CAAC,eAAe,GAAG,CAAA,kBAAA,EAAqB,SAAS,UAAU;AAC/D,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAC9B;IACJ;IAEQ,aAAa,GAAA;AACjB,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,QAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC;YACtE;QACJ;AACA,QAAA,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC9E,QAAA,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,EAAE;QAC9E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAChI,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC;AACtE,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE;QACxB;IACJ;IAEQ,UAAU,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;QAChC;aAAO,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;AAC3C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;QAChC;IACJ;IAEQ,YAAY,GAAA;QAChB,IAAI,YAAY,GAAG,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACrC,MAAM,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY;AACvD,YAAA,YAAY,GAAG,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY;AAC1E,QAAA,CAAC,CAAC;IACN;IAEQ,YAAY,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS;IACpE;IAEQ,cAAc,GAAA;QAClB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IAClD;IAEQ,YAAY,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,SAAS,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,CAAC,SAAS;IACpE;AAEQ,IAAA,YAAY,CAAC,KAAmC,EAAA;AACpD,QAAA,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;IAC7C;AAEQ,IAAA,WAAW,CAAC,KAAmC,EAAA;QACnD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC;IAEQ,mBAAmB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE;IAC7H;IAEQ,oBAAoB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE;IAC3G;IAEQ,gBAAgB,GAAA;QACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/F;AAEQ,IAAA,eAAe,CAAC,WAAuC,EAAA;QAC3D,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACpC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;YACzB;AACJ,QAAA,CAAC,CAAC;IACN;8GA9US,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2VAgBY,0BAA0B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpCzE,w7FAsDC,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDtCO,0BAA0B,sFAC1B,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGR,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAElB;AACL,wBAAA,GAAG,cAAc;AACjB,wBAAA,GAAG,YAAY;wBACf,0BAA0B;wBAC1B,aAAa;AAChB,qBAAA,EAAA,QAAA,EAAA,w7FAAA,EAAA;8RAkB0C,0BAA0B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAKJ,iBAAiB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAKlB,gBAAgB,yEAK/B,iBAAiB,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAKjB,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAKR,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA;sBAE3D,WAAW;uBAAC,OAAO;;;AE5DxB;;AAEG;AAIG,MAAO,0BAA2B,SAAQ,gBAAgB,CAAA;AAHhE,IAAA,WAAA,GAAA;;AAII;;AAEA;QAC4C,IAAA,CAAA,QAAQ,GAAG,IAAI;AAC9D,IAAA;8GALY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAClC,iBAAA;;sBAKI,WAAW;uBAAC,6BAA6B;;;ACJvC,MAAM,mBAAmB,GAAG;IAC/B,sBAAsB;IACtB,0BAA0B;IAC1B,0BAA0B;;;ACZ9B;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { HostBinding, Directive, input, Component, signal, viewChild, computed, afterNextRender, contentChild, booleanAttribute
|
|
2
|
+
import { HostBinding, Directive, input, Component, signal, viewChild, computed, afterNextRender, contentChild, booleanAttribute } from '@angular/core';
|
|
3
3
|
import { ECLBaseDirective } from '@eui/ecl/core';
|
|
4
4
|
import { NgTemplateOutlet } from '@angular/common';
|
|
5
5
|
import * as i1 from '@eui/ecl/components/ecl-button';
|
|
@@ -542,6 +542,16 @@ class EclPageHeaderComponent extends ECLBaseDirective {
|
|
|
542
542
|
}
|
|
543
543
|
constructor() {
|
|
544
544
|
super();
|
|
545
|
+
/**
|
|
546
|
+
* Reference to the ECL breadcrumb inside the header.
|
|
547
|
+
*/
|
|
548
|
+
this.eclBreadcrumbComponent = contentChild(EclBreadcrumbComponent, /* @ts-ignore */
|
|
549
|
+
...(ngDevMode ? [{ debugName: "eclBreadcrumbComponent" }] : /* istanbul ignore next */ []));
|
|
550
|
+
/**
|
|
551
|
+
* Reference to the background picture directive, if present.
|
|
552
|
+
*/
|
|
553
|
+
this.eclBackgroundPicture = contentChild(EclPageHeaderBackgroundPictureDirective, /* @ts-ignore */
|
|
554
|
+
...(ngDevMode ? [{ debugName: "eclBackgroundPicture" }] : /* istanbul ignore next */ []));
|
|
545
555
|
// colorMode = input<string | null>(null);
|
|
546
556
|
this.hasBackground = input(false, { ...(ngDevMode ? { debugName: "hasBackground" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
547
557
|
this.descriptionPosition = input('top', /* @ts-ignore */
|
|
@@ -555,18 +565,19 @@ class EclPageHeaderComponent extends ECLBaseDirective {
|
|
|
555
565
|
* Adds CSS class to the breadcrumb after content initialization.
|
|
556
566
|
*/
|
|
557
567
|
ngAfterContentInit() {
|
|
558
|
-
|
|
559
|
-
|
|
568
|
+
const eclBreadcrumbComponent = this.eclBreadcrumbComponent();
|
|
569
|
+
if (eclBreadcrumbComponent) {
|
|
570
|
+
eclBreadcrumbComponent.class = this.BREADCRUMB_CLASS;
|
|
560
571
|
}
|
|
561
572
|
}
|
|
562
573
|
/**
|
|
563
574
|
* True if a background picture exists.
|
|
564
575
|
*/
|
|
565
576
|
get hasPicture() {
|
|
566
|
-
return !!this.eclBackgroundPicture;
|
|
577
|
+
return !!this.eclBackgroundPicture();
|
|
567
578
|
}
|
|
568
579
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclPageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
569
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclPageHeaderComponent, isStandalone: true, selector: "ecl-page-header", inputs: { hasBackground: { classPropertyName: "hasBackground", publicName: "hasBackground", isSignal: true, isRequired: false, transformFunction: null }, descriptionPosition: { classPropertyName: "descriptionPosition", publicName: "descriptionPosition", isSignal: true, isRequired: false, transformFunction: null }, picturePosition: { classPropertyName: "picturePosition", publicName: "picturePosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclBreadcrumbComponent", first: true, predicate: EclBreadcrumbComponent, descendants: true }, { propertyName: "eclBackgroundPicture", first: true, predicate: EclPageHeaderBackgroundPictureDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[eclPageHeaderExpandable]\"></ng-content>\n@if(hasPicture){\n<div class=\"ecl-page-header__background-container\">\n <ng-content select=\"[eclPageHeaderBackgroundPicture]\"></ng-content>\n</div>\n}\n\n<div class=\"ecl-container\">\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
580
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: EclPageHeaderComponent, isStandalone: true, selector: "ecl-page-header", inputs: { hasBackground: { classPropertyName: "hasBackground", publicName: "hasBackground", isSignal: true, isRequired: false, transformFunction: null }, descriptionPosition: { classPropertyName: "descriptionPosition", publicName: "descriptionPosition", isSignal: true, isRequired: false, transformFunction: null }, picturePosition: { classPropertyName: "picturePosition", publicName: "picturePosition", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, queries: [{ propertyName: "eclBreadcrumbComponent", first: true, predicate: EclBreadcrumbComponent, descendants: true, isSignal: true }, { propertyName: "eclBackgroundPicture", first: true, predicate: EclPageHeaderBackgroundPictureDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"[eclPageHeaderExpandable]\"></ng-content>\n@if(hasPicture){\n<div class=\"ecl-page-header__background-container\">\n <ng-content select=\"[eclPageHeaderBackgroundPicture]\"></ng-content>\n</div>\n}\n\n<div class=\"ecl-container\">\n <ng-container *ngTemplateOutlet=\"content\"> </ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
570
581
|
}
|
|
571
582
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EclPageHeaderComponent, decorators: [{
|
|
572
583
|
type: Component,
|
|
@@ -574,13 +585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
574
585
|
}], ctorParameters: () => [], propDecorators: { cssClasses: [{
|
|
575
586
|
type: HostBinding,
|
|
576
587
|
args: ['class']
|
|
577
|
-
}], eclBreadcrumbComponent: [{
|
|
578
|
-
type: ContentChild,
|
|
579
|
-
args: [EclBreadcrumbComponent]
|
|
580
|
-
}], eclBackgroundPicture: [{
|
|
581
|
-
type: ContentChild,
|
|
582
|
-
args: [EclPageHeaderBackgroundPictureDirective]
|
|
583
|
-
}], hasBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBackground", required: false }] }], descriptionPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptionPosition", required: false }] }], picturePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "picturePosition", required: false }] }] } });
|
|
588
|
+
}], eclBreadcrumbComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclBreadcrumbComponent), { isSignal: true }] }], eclBackgroundPicture: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EclPageHeaderBackgroundPictureDirective), { isSignal: true }] }], hasBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBackground", required: false }] }], descriptionPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "descriptionPosition", required: false }] }], picturePosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "picturePosition", required: false }] }] } });
|
|
584
589
|
|
|
585
590
|
const EUI_ECL_PAGE_HEADER = [
|
|
586
591
|
EclPageHeaderComponent,
|