@eui/ecl 19.3.0-snapshot-1749041696283 → 19.3.0-snapshot-1749064223062
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/components/ecl-accordion/ecl-accordion-item.component.d.ts +24 -0
- package/components/ecl-accordion/ecl-accordion-item.component.d.ts.map +1 -1
- package/components/ecl-accordion/ecl-accordion.component.d.ts +19 -0
- package/components/ecl-accordion/ecl-accordion.component.d.ts.map +1 -1
- package/components/ecl-banner/ecl-banner-description.directive.d.ts +9 -0
- package/components/ecl-banner/ecl-banner-description.directive.d.ts.map +1 -1
- package/components/ecl-banner/ecl-banner-picture.directive.d.ts +11 -0
- package/components/ecl-banner/ecl-banner-picture.directive.d.ts.map +1 -1
- package/components/ecl-banner/ecl-banner-title.directive.d.ts +12 -0
- package/components/ecl-banner/ecl-banner-title.directive.d.ts.map +1 -1
- package/components/ecl-banner/ecl-banner-video.directive.d.ts +10 -0
- package/components/ecl-banner/ecl-banner-video.directive.d.ts.map +1 -1
- package/components/ecl-banner/ecl-banner.component.d.ts +66 -0
- package/components/ecl-banner/ecl-banner.component.d.ts.map +1 -1
- package/components/ecl-blockquote/ecl-blockquote-picture.directive.d.ts +14 -0
- package/components/ecl-blockquote/ecl-blockquote-picture.directive.d.ts.map +1 -1
- package/components/ecl-blockquote/ecl-blockquote.component.d.ts +29 -0
- package/components/ecl-blockquote/ecl-blockquote.component.d.ts.map +1 -1
- package/components/ecl-button/ecl-button-label.directive.d.ts +21 -0
- package/components/ecl-button/ecl-button-label.directive.d.ts.map +1 -1
- package/components/ecl-button/ecl-button.component.d.ts +43 -0
- package/components/ecl-button/ecl-button.component.d.ts.map +1 -1
- package/components/ecl-card/ecl-card-body.component.d.ts +7 -0
- package/components/ecl-card/ecl-card-body.component.d.ts.map +1 -1
- package/components/ecl-card/ecl-card-picture.directive.d.ts +17 -0
- package/components/ecl-card/ecl-card-picture.directive.d.ts.map +1 -1
- package/components/ecl-card/ecl-card.component.d.ts +27 -0
- package/components/ecl-card/ecl-card.component.d.ts.map +1 -1
- package/components/ecl-carousel/ecl-carousel-item.component.d.ts +42 -0
- package/components/ecl-carousel/ecl-carousel-item.component.d.ts.map +1 -1
- package/components/ecl-carousel/ecl-carousel.component.d.ts +224 -0
- package/components/ecl-carousel/ecl-carousel.component.d.ts.map +1 -1
- package/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.d.ts +14 -0
- package/components/ecl-category-filter/ecl-category-filter/ecl-category-filter.component.d.ts.map +1 -1
- package/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.d.ts +56 -0
- package/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-item.component.d.ts.map +1 -1
- package/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.d.ts +28 -0
- package/components/ecl-category-filter/ecl-category-filter-list/ecl-category-filter-list.component.d.ts.map +1 -1
- package/components/ecl-category-filter/events/ecl-category-filter-item-select.event.d.ts +7 -0
- package/components/ecl-category-filter/events/ecl-category-filter-item-select.event.d.ts.map +1 -1
- package/components/ecl-content-block/ecl-content-block-elements.directive.d.ts +106 -0
- package/components/ecl-content-block/ecl-content-block-elements.directive.d.ts.map +1 -1
- package/components/ecl-content-block/ecl-content-block.component.d.ts +8 -0
- package/components/ecl-content-block/ecl-content-block.component.d.ts.map +1 -1
- package/components/ecl-content-item/ecl-content-item-image.directive.d.ts +29 -0
- package/components/ecl-content-item/ecl-content-item-image.directive.d.ts.map +1 -1
- package/components/ecl-content-item/ecl-content-item.component.d.ts +40 -0
- package/components/ecl-content-item/ecl-content-item.component.d.ts.map +1 -1
- package/components/ecl-date-block/ecl-date-block.component.d.ts +36 -0
- package/components/ecl-date-block/ecl-date-block.component.d.ts.map +1 -1
- package/components/ecl-expandable/ecl-expandable.component.d.ts +34 -0
- package/components/ecl-expandable/ecl-expandable.component.d.ts.map +1 -1
- package/components/ecl-fact-figures/ecl-fact-figures-description.component.d.ts +7 -0
- package/components/ecl-fact-figures/ecl-fact-figures-description.component.d.ts.map +1 -1
- package/components/ecl-fact-figures/ecl-fact-figures-item.component.d.ts +15 -0
- package/components/ecl-fact-figures/ecl-fact-figures-item.component.d.ts.map +1 -1
- package/components/ecl-fact-figures/ecl-fact-figures-title.component.d.ts +6 -0
- package/components/ecl-fact-figures/ecl-fact-figures-title.component.d.ts.map +1 -1
- package/components/ecl-fact-figures/ecl-fact-figures-value.component.d.ts +6 -0
- package/components/ecl-fact-figures/ecl-fact-figures-value.component.d.ts.map +1 -1
- package/components/ecl-fact-figures/ecl-fact-figures-view-all.component.d.ts +15 -0
- package/components/ecl-fact-figures/ecl-fact-figures-view-all.component.d.ts.map +1 -1
- package/components/ecl-fact-figures/ecl-fact-figures.component.d.ts +23 -0
- package/components/ecl-fact-figures/ecl-fact-figures.component.d.ts.map +1 -1
- package/components/ecl-file/ecl-file-download.directive.d.ts +23 -0
- package/components/ecl-file/ecl-file-download.directive.d.ts.map +1 -1
- package/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts +36 -0
- package/components/ecl-file/ecl-file-item/ecl-file-item.component.d.ts.map +1 -1
- package/components/ecl-file/ecl-file-items/ecl-file-items.component.d.ts +29 -0
- package/components/ecl-file/ecl-file-items/ecl-file-items.component.d.ts.map +1 -1
- package/components/ecl-file/ecl-file-picture.directive.d.ts +23 -0
- package/components/ecl-file/ecl-file-picture.directive.d.ts.map +1 -1
- package/components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.d.ts +6 -0
- package/components/ecl-file/ecl-file-taxonomy/ecl-file-taxonomy.component.d.ts.map +1 -1
- package/components/ecl-file/ecl-file.component.d.ts +35 -0
- package/components/ecl-file/ecl-file.component.d.ts.map +1 -1
- package/components/ecl-icon/ecl-icon.component.d.ts +51 -0
- package/components/ecl-icon/ecl-icon.component.d.ts.map +1 -1
- package/components/ecl-label/ecl-label.directive.d.ts +20 -0
- package/components/ecl-label/ecl-label.directive.d.ts.map +1 -1
- package/components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.d.ts +35 -0
- package/components/ecl-list/ecl-description-list-definition/ecl-description-list-definition.component.d.ts.map +1 -1
- package/components/ecl-list/ecl-description-list-definition-item.directive.d.ts +22 -0
- package/components/ecl-list/ecl-description-list-definition-item.directive.d.ts.map +1 -1
- package/components/ecl-list/ecl-list.directive.d.ts +57 -0
- package/components/ecl-list/ecl-list.directive.d.ts.map +1 -1
- package/components/ecl-list-illustration/ecl-list-illustration-icon.directive.d.ts +8 -0
- package/components/ecl-list-illustration/ecl-list-illustration-icon.directive.d.ts.map +1 -1
- package/components/ecl-list-illustration/ecl-list-illustration-item.component.d.ts +23 -0
- package/components/ecl-list-illustration/ecl-list-illustration-item.component.d.ts.map +1 -1
- package/components/ecl-list-illustration/ecl-list-illustration-picture.directive.d.ts +23 -0
- package/components/ecl-list-illustration/ecl-list-illustration-picture.directive.d.ts.map +1 -1
- package/components/ecl-list-illustration/ecl-list-illustration.component.d.ts +26 -0
- package/components/ecl-list-illustration/ecl-list-illustration.component.d.ts.map +1 -1
- package/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.d.ts +8 -0
- package/components/ecl-loading-indicator/ecl-loading-indicator-label.directive.d.ts.map +1 -1
- package/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.d.ts +8 -0
- package/components/ecl-loading-indicator/ecl-loading-indicator-overlay.directive.d.ts.map +1 -1
- package/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts +39 -1
- package/components/ecl-loading-indicator/ecl-loading-indicator.component.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal-body-fixed.directive.d.ts +8 -0
- package/components/ecl-modal/ecl-modal-body-fixed.directive.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal-body.component.d.ts +11 -0
- package/components/ecl-modal/ecl-modal-body.component.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal-close.directive.d.ts +17 -0
- package/components/ecl-modal/ecl-modal-close.directive.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal-footer.component.d.ts +16 -0
- package/components/ecl-modal/ecl-modal-footer.component.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal-header.component.d.ts +41 -0
- package/components/ecl-modal/ecl-modal-header.component.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal-trigger.directive.d.ts +9 -0
- package/components/ecl-modal/ecl-modal-trigger.directive.d.ts.map +1 -1
- package/components/ecl-modal/ecl-modal.component.d.ts +68 -0
- package/components/ecl-modal/ecl-modal.component.d.ts.map +1 -1
- package/components/ecl-news-ticker/ecl-news-ticker-icon.directive.d.ts +6 -0
- package/components/ecl-news-ticker/ecl-news-ticker-icon.directive.d.ts.map +1 -1
- package/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts +27 -0
- package/components/ecl-news-ticker/ecl-news-ticker-item.component.d.ts.map +1 -1
- package/components/ecl-news-ticker/ecl-news-ticker.component.d.ts +77 -0
- package/components/ecl-news-ticker/ecl-news-ticker.component.d.ts.map +1 -1
- package/components/ecl-notification/ecl-notification-title.directive.d.ts +7 -0
- package/components/ecl-notification/ecl-notification-title.directive.d.ts.map +1 -1
- package/components/ecl-notification/ecl-notification.component.d.ts +42 -0
- package/components/ecl-notification/ecl-notification.component.d.ts.map +1 -1
- package/components/ecl-notification/events/ecl-notification-close.event.d.ts +5 -0
- package/components/ecl-notification/events/ecl-notification-close.event.d.ts.map +1 -1
- package/components/ecl-popover/ecl-popover-content.directive.d.ts +8 -0
- package/components/ecl-popover/ecl-popover-content.directive.d.ts.map +1 -1
- package/components/ecl-popover/ecl-popover-toggle.directive.d.ts +27 -0
- package/components/ecl-popover/ecl-popover-toggle.directive.d.ts.map +1 -1
- package/components/ecl-popover/ecl-popover.component.d.ts +46 -0
- package/components/ecl-popover/ecl-popover.component.d.ts.map +1 -1
- package/components/ecl-separator/ecl-separator.directive.d.ts +7 -0
- package/components/ecl-separator/ecl-separator.directive.d.ts.map +1 -1
- package/docs/classes/EclCategoryFilterItemSelectEvent.html +19 -0
- package/docs/classes/EclExpandableToggleEvent.html +8 -0
- package/docs/classes/EclNotificationCloseEvent.html +8 -0
- package/docs/components/EclAccordionComponent.html +25 -0
- package/docs/components/EclAccordionItemComponent.html +40 -0
- package/docs/components/EclBannerComponent.html +114 -0
- package/docs/components/EclBlockquoteComponent.html +50 -0
- package/docs/components/EclButtonComponent.html +87 -0
- package/docs/components/EclCardBodyComponent.html +25 -0
- package/docs/components/EclCardComponent.html +55 -0
- package/docs/components/EclCarouselComponent.html +179 -1
- package/docs/components/EclCarouselItemComponent.html +132 -0
- package/docs/components/EclCategoryFilterComponent.html +39 -0
- package/docs/components/EclCategoryFilterItemComponent.html +160 -0
- package/docs/components/EclCategoryFilterListComponent.html +84 -0
- package/docs/components/EclContentBlockComponent.html +27 -0
- package/docs/components/EclContentItemComponent.html +75 -0
- package/docs/components/EclDateBlockComponent.html +78 -0
- package/docs/components/EclDescriptionListDefinitionComponent.html +61 -0
- package/docs/components/EclExpandableComponent.html +59 -4
- package/docs/components/EclFactFiguresComponent.html +63 -4
- package/docs/components/EclFactFiguresDescriptionComponent.html +29 -4
- package/docs/components/EclFactFiguresItemComponent.html +32 -0
- package/docs/components/EclFactFiguresTitleComponent.html +28 -4
- package/docs/components/EclFactFiguresValueComponent.html +28 -4
- package/docs/components/EclFactFiguresViewAllComponent.html +36 -4
- package/docs/components/EclFileComponent.html +85 -0
- package/docs/components/EclFileItemComponent.html +88 -0
- package/docs/components/EclFileItemsComponent.html +55 -0
- package/docs/components/EclFileTaxonomyComponent.html +24 -0
- package/docs/components/EclIconComponent.html +101 -0
- package/docs/components/EclListIllustrationComponent.html +77 -0
- package/docs/components/EclListIllustrationItemComponent.html +66 -0
- package/docs/components/EclLoadingIndicatorComponent.html +75 -0
- package/docs/components/EclModalBodyComponent.html +31 -0
- package/docs/components/EclModalComponent.html +118 -0
- package/docs/components/EclModalFooterComponent.html +31 -0
- package/docs/components/EclModalHeaderComponent.html +58 -0
- package/docs/components/EclNewsTickerComponent.html +118 -0
- package/docs/components/EclNewsTickerItemComponent.html +86 -0
- package/docs/components/EclNotificationComponent.html +117 -0
- package/docs/components/EclPopoverComponent.html +90 -0
- package/docs/dependencies.html +2 -2
- package/docs/directives/EclBannerDescriptionDirective.html +7 -0
- package/docs/directives/EclBannerDescriptionLinkDirective.html +7 -0
- package/docs/directives/EclBannerDescriptionTextDirective.html +7 -0
- package/docs/directives/EclBannerImageDirective.html +10 -0
- package/docs/directives/EclBannerPictureDirective.html +8 -0
- package/docs/directives/EclBannerTitleDirective.html +8 -0
- package/docs/directives/EclBannerTitleLinkDirective.html +8 -0
- package/docs/directives/EclBannerTitleTextDirective.html +8 -0
- package/docs/directives/EclBannerVideoDirective.html +22 -0
- package/docs/directives/EclBlockquoteImageDirective.html +25 -0
- package/docs/directives/EclBlockquotePictureDirective.html +25 -0
- package/docs/directives/EclButtonIconContainerDirective.html +20 -0
- package/docs/directives/EclButtonLabelDirective.html +25 -0
- package/docs/directives/EclCardImageDirective.html +25 -0
- package/docs/directives/EclCardPictureDirective.html +31 -0
- package/docs/directives/EclContentBlockDescriptionDirective.html +24 -0
- package/docs/directives/EclContentBlockLabelDirective.html +24 -0
- package/docs/directives/EclContentBlockLabelsDirective.html +24 -0
- package/docs/directives/EclContentBlockLinkDirective.html +24 -0
- package/docs/directives/EclContentBlockLinksContainerDirective.html +24 -0
- package/docs/directives/EclContentBlockLinksDirective.html +24 -0
- package/docs/directives/EclContentBlockListContainerDirective.html +24 -0
- package/docs/directives/EclContentBlockListDirective.html +24 -0
- package/docs/directives/EclContentBlockPrimaryMetaDirective.html +24 -0
- package/docs/directives/EclContentBlockPrimaryMetasDirective.html +24 -0
- package/docs/directives/EclContentBlockSecondaryMetaDirective.html +24 -0
- package/docs/directives/EclContentBlockSecondaryMetaIconDirective.html +24 -0
- package/docs/directives/EclContentBlockSecondaryMetaLabelDirective.html +24 -0
- package/docs/directives/EclContentBlockSecondaryMetasDirective.html +24 -0
- package/docs/directives/EclContentBlockTagDirective.html +24 -0
- package/docs/directives/EclContentBlockTagsDirective.html +24 -0
- package/docs/directives/EclContentBlockTitleDirective.html +31 -0
- package/docs/directives/EclContentItemImageDirective.html +27 -0
- package/docs/directives/EclContentItemPictureDirective.html +46 -0
- package/docs/directives/EclDescriptionListDefinitionItemDirective.html +37 -0
- package/docs/directives/EclDescriptionListDefinitionListDirective.html +20 -0
- package/docs/directives/EclDescriptionListDirective.html +39 -0
- package/docs/directives/EclDescriptionListTermDirective.html +19 -0
- package/docs/directives/EclFileDownloadDirective.html +19 -0
- package/docs/directives/EclFileImageDirective.html +20 -0
- package/docs/directives/EclFilePictureDirective.html +25 -0
- package/docs/directives/EclFilePreviewDirective.html +32 -0
- package/docs/directives/EclFileTitleDirective.html +25 -0
- package/docs/directives/EclFileTranslationDownloadDirective.html +20 -0
- package/docs/directives/EclIndicatorDirective.html +20 -0
- package/docs/directives/EclLabelDirective.html +40 -0
- package/docs/directives/EclListIllustrationIconDirective.html +20 -0
- package/docs/directives/EclListIllustrationImageDirective.html +38 -0
- package/docs/directives/EclListIllustrationPictureDirective.html +25 -0
- package/docs/directives/EclLoadingIndicatorLabelDirective.html +20 -0
- package/docs/directives/EclLoadingIndicatorOverlayDirective.html +25 -0
- package/docs/directives/EclModalBodyFixedContentDirective.html +20 -0
- package/docs/directives/EclModalCloseDirective.html +35 -0
- package/docs/directives/EclModalTriggerDirective.html +22 -0
- package/docs/directives/EclNewsTickerIconDirective.html +19 -0
- package/docs/directives/EclNotificationTitleDirective.html +25 -0
- package/docs/directives/EclOrderedListDirective.html +19 -0
- package/docs/directives/EclOrderedListItemDirective.html +19 -0
- package/docs/directives/EclPopoverContentDirective.html +25 -0
- package/docs/directives/EclPopoverToggleDirective.html +62 -0
- package/docs/directives/EclSeparatorDirective.html +20 -0
- package/docs/directives/EclUnorderedListDirective.html +32 -0
- package/docs/directives/EclUnorderedListItemDirective.html +19 -0
- package/docs/js/search/search_index.js +2 -2
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs +39 -0
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs +108 -0
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs +39 -0
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-button.mjs +53 -0
- package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs +42 -0
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs +221 -0
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +85 -0
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-block.mjs +111 -0
- package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs +50 -0
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs +18 -0
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs +27 -0
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs +64 -0
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs +108 -3
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs +32 -0
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs +20 -0
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +80 -0
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs +102 -0
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +59 -5
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs +132 -0
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs +89 -0
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs +51 -0
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs +69 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-separator.mjs +7 -0
- package/fesm2022/eui-ecl-components-ecl-separator.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-modal.mjs","sources":["../../components/ecl-modal/ecl-modal-close.directive.ts","../../components/ecl-modal/events/ecl-modal-open.event.ts","../../components/ecl-modal/events/ecl-modal-close.event.ts","../../components/ecl-modal/ecl-modal-header.component.ts","../../components/ecl-modal/ecl-modal-header.component.html","../../components/ecl-modal/ecl-modal.component.ts","../../components/ecl-modal/ecl-modal.component.html","../../components/ecl-modal/ecl-modal-body.component.ts","../../components/ecl-modal/ecl-modal-body.component.html","../../components/ecl-modal/ecl-modal-footer.component.ts","../../components/ecl-modal/ecl-modal-footer.component.html","../../components/ecl-modal/ecl-modal-trigger.directive.ts","../../components/ecl-modal/ecl-modal-body-fixed.directive.ts","../../components/ecl-modal/ecl-modal.module.ts","../../components/ecl-modal/eui-ecl-components-ecl-modal.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclModalClose]',\n standalone: false,\n})\nexport class EclModalCloseDirective<T> extends ECLBaseDirective {\n @Input('eclModalClose') eclModalResult: T;\n @Input() eclModalRole: 'confirm' | 'cancel' | string;\n\n @Output() modalClose = new EventEmitter();\n\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.modalClose.next(null);\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nexport class EclModalOpenEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclModalResult } from '../models/ecl-modal-result.model';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalCloseEvent<T = any> extends EclBaseEvent {\n\tconstructor(public eclModalResult?: EclModalResult<T>) {\n\t\tsuper();\n\t}\n}","import { Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclModalCloseEvent } from './events';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalHeader]',\n templateUrl: './ecl-modal-header.component.html',\n standalone: false,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalHeaderComponent<T = any> extends ECLBaseDirective {\n @Input() variant: 'information' | 'success' | 'warning' | 'error' | string;\n @Output() modalClose = new EventEmitter<EclModalCloseEvent<T>>();\n @ViewChild('closeButton') closeButton: EclButtonComponent;\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__header')].join(' ').trim();\n }\n\n constructor(public eclThemeService: EclThemeService) {\n super();\n }\n\n onCloseClick(): void {\n this.modalClose.next(new EclModalCloseEvent());\n }\n\n getIcon(): 'information' | 'check-filled' | 'warning' | 'error' | null {\n if (this.variant === 'information') {\n return 'information';\n } else if (this.variant === 'success') {\n return 'check-filled';\n } else if (this.variant === 'warning') {\n return 'warning';\n } else if (this.variant === 'error') {\n return 'error';\n } else {\n return null;\n }\n }\n}\n","@if(getIcon()) {\n @if(variant === 'warning') {\n <span class=\"ecl-modal__icon-background\"></span>\n }\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\" [title]=\"variant\"></ecl-icon>\n}\n<div class=\"ecl-modal__header-content\">\n <ng-content></ng-content>\n</div>\n<button #closeButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-modal__close\" type=\"button\" (click)=\"onCloseClick()\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n</button>\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalResult } from './models/ecl-modal-result.model';\nimport { EclModalCloseEvent } from './events';\nimport { EclModalOpenEvent } from './events';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[eclModal]',\n templateUrl: './ecl-modal.component.html',\n standalone: false,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalComponent<T = any> extends ECLBaseDirective implements OnChanges, AfterContentInit, OnDestroy {\n @Input() variant: 'information' | 'success' | 'warning' | 'error' | string;\n @Input() size: 's' | 'm' | 'l' | 'full' | string = 'l';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() set isOpen(value: boolean | any) {\n this._isOpen = coerceBooleanProperty(value);\n }\n\n get isOpen(): boolean | null {\n return this._isOpen || null;\n }\n\n @Output() modalClose = new EventEmitter<EclModalCloseEvent<T>>();\n @Output() modalOpen = new EventEmitter<EclModalOpenEvent>();\n\n @ContentChild(forwardRef(() => EclModalHeaderComponent)) eclModalHeader: EclModalHeaderComponent<T>;\n @ContentChildren(forwardRef(() => EclModalCloseDirective), { descendants: true }) eclModalCloseComponents: QueryList<\n EclModalCloseDirective<T>>;\n\n private _isOpen = false;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n @HostBinding('attr.open')\n get isModalOpened(): boolean {\n return this.isOpen;\n }\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal'),\n this.variant ? `ecl-modal--${this.variant}` : '',\n `ecl-modal--${this.size}`,\n ].join(' ').trim();\n }\n\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.closeModal({ eclModalRole: 'cancel' });\n }\n\n ngOnChanges(): void {\n if (this.eclModalHeader) {\n this.eclModalHeader.variant = this.variant;\n }\n }\n\n ngAfterContentInit(): void {\n if (this.eclModalHeader) {\n this.eclModalHeader.variant = this.variant;\n this.eclModalHeader.modalClose.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.closeModal({ eclModalRole: 'cancel' });\n });\n }\n\n this.eclModalCloseComponents?.forEach((eclModalCloseCmp) => {\n eclModalCloseCmp.modalClose.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.closeModal({\n eclModalData: eclModalCloseCmp.eclModalResult,\n eclModalRole: eclModalCloseCmp.eclModalRole,\n });\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n openModal(): void {\n const event = new EclModalOpenEvent();\n this.modalOpen.next(event);\n\n if (!event.defaultPrevented) {\n this.isOpen = true;\n }\n setTimeout(() => this.eclModalHeader.closeButton.el.nativeElement.focus(), 100);\n }\n\n closeModal(result?: EclModalResult<T>): void {\n if (this.isOpen) {\n const event = new EclModalCloseEvent({\n eclModalData: result?.eclModalData,\n eclModalRole: result?.eclModalRole,\n });\n this.modalClose.next(event);\n\n if (!event.defaultPrevented) {\n this.isOpen = false;\n }\n }\n }\n}\n","<div class=\"ecl-modal__container\">\n <div class=\"ecl-modal__content ecl-container\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalBody]',\n templateUrl: './ecl-modal-body.component.html',\n standalone: false,\n})\nexport class EclModalBodyComponent extends ECLBaseDirective {\n\n @Input({ transform: booleanAttribute }) isScrollable = false;\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-modal__body'),\n this.isScrollable ? 'ecl-modal__body--has-scroll' : '',\n ].join(' ').trim();\n }\n}\n","@if (isScrollable) {\n<div class=\"ecl-modal__body-scroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { AfterContentInit, Component, ContentChildren, forwardRef, HostBinding, QueryList } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalFooter]',\n templateUrl: './ecl-modal-footer.component.html',\n standalone: false,\n})\nexport class EclModalFooterComponent extends ECLBaseDirective implements AfterContentInit {\n @ContentChildren(forwardRef(() => EclButtonComponent), { descendants: true }) buttonComponents: QueryList<EclButtonComponent>;\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__footer')].join(' ').trim();\n }\n\n ngAfterContentInit(): void {\n if (this.buttonComponents) {\n setTimeout(() => {\n this.buttonComponents.forEach((btn) => {\n btn.class = 'ecl-modal__button';\n });\n });\n }\n }\n}\n","<div class=\"ecl-modal__footer-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclModalTriggerFor]',\n standalone: false,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalTriggerDirective<T = any> extends ECLBaseDirective {\n @Input() eclModalTriggerFor: EclModalComponent<T>;\n\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.eclModalTriggerFor?.openModal();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclModalBodyFixedContent]',\n standalone: false,\n})\nexport class EclModalBodyFixedContentDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-modal__body-fixed') className = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { EclModalFooterComponent } from './ecl-modal-footer.component';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalTriggerDirective } from './ecl-modal-trigger.directive';\nimport { EclModalBodyFixedContentDirective } from './ecl-modal-body-fixed.directive';\nimport { A11yModule } from '@angular/cdk/a11y';\n\nconst COMPONENTS = [\n EclModalComponent,\n EclModalHeaderComponent,\n EclModalBodyComponent,\n EclModalBodyFixedContentDirective,\n EclModalFooterComponent,\n EclModalCloseDirective,\n EclModalTriggerDirective,\n];\n\n@NgModule({\n imports: [A11yModule, CommonModule, TranslateModule, EclIconModule, EclButtonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-modal.mjs","sources":["../../components/ecl-modal/ecl-modal-close.directive.ts","../../components/ecl-modal/events/ecl-modal-open.event.ts","../../components/ecl-modal/events/ecl-modal-close.event.ts","../../components/ecl-modal/ecl-modal-header.component.ts","../../components/ecl-modal/ecl-modal-header.component.html","../../components/ecl-modal/ecl-modal.component.ts","../../components/ecl-modal/ecl-modal.component.html","../../components/ecl-modal/ecl-modal-body.component.ts","../../components/ecl-modal/ecl-modal-body.component.html","../../components/ecl-modal/ecl-modal-footer.component.ts","../../components/ecl-modal/ecl-modal-footer.component.html","../../components/ecl-modal/ecl-modal-trigger.directive.ts","../../components/ecl-modal/ecl-modal-body-fixed.directive.ts","../../components/ecl-modal/ecl-modal.module.ts","../../components/ecl-modal/eui-ecl-components-ecl-modal.ts"],"sourcesContent":["import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive that allows an element to close the modal on click.\n *\n * Can emit a result and indicate the role (e.g., confirm, cancel).\n */\n@Directive({\n selector: '[eclModalClose]',\n standalone: false,\n})\nexport class EclModalCloseDirective<T> extends ECLBaseDirective {\n /**\n * Optional result value to emit when modal is closed.\n */\n @Input('eclModalClose') eclModalResult: T;\n\n /**\n * Optional role associated with the modal close action (e.g., confirm, cancel).\n */\n @Input() eclModalRole: 'confirm' | 'cancel' | string;\n\n /**\n * Event emitted when the element is clicked and the modal should be closed.\n */\n @Output() modalClose = new EventEmitter();\n\n /**\n * Handles click events and emits the `modalClose` event.\n */\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.modalClose.next(null);\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nexport class EclModalOpenEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclModalResult } from '../models/ecl-modal-result.model';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalCloseEvent<T = any> extends EclBaseEvent {\n\tconstructor(public eclModalResult?: EclModalResult<T>) {\n\t\tsuper();\n\t}\n}","import { Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclThemeService } from '@eui/ecl/core';\nimport { EclModalCloseEvent } from './events';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n/**\n * Header component used within the ECL Modal.\n *\n * Displays an icon depending on the modal variant, user-defined content,\n * and a close button that emits a close event.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalHeader]',\n templateUrl: './ecl-modal-header.component.html',\n standalone: false,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalHeaderComponent<T = any> extends ECLBaseDirective {\n /**\n * Defines the visual variant of the modal.\n *\n * Determines which icon is shown in the header.\n *\n * Possible values:\n * - `'information'`\n * - `'success'`\n * - `'warning'`\n * - `'error'`\n * - any other custom string (no icon will be shown)\n */\n @Input() variant: 'information' | 'success' | 'warning' | 'error' | string;\n\n /**\n * Event emitted when the close button is clicked.\n *\n * Emits an `EclModalCloseEvent` object.\n */\n @Output() modalClose = new EventEmitter<EclModalCloseEvent<T>>();\n\n /**\n * Applies the ECL CSS class for modal header container.\n */\n @ViewChild('closeButton') closeButton: EclButtonComponent;\n \n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__header')].join(' ').trim();\n }\n\n /**\n * Constructs the modal header component with injected theme service.\n *\n * @param eclThemeService The theme service used to determine current theme settings.\n */\n constructor(public eclThemeService: EclThemeService) {\n super();\n }\n\n /**\n * Handles the click event on the close button.\n *\n * Emits a `modalClose` event with no payload.\n */\n onCloseClick(): void {\n this.modalClose.next(new EclModalCloseEvent());\n }\n\n /**\n * Returns the name of the icon associated with the current variant.\n *\n * @returns The icon name, or `null` if no matching variant exists.\n */\n getIcon(): 'information' | 'check-filled' | 'warning' | 'error' | null {\n if (this.variant === 'information') {\n return 'information';\n } else if (this.variant === 'success') {\n return 'check-filled';\n } else if (this.variant === 'warning') {\n return 'warning';\n } else if (this.variant === 'error') {\n return 'error';\n } else {\n return null;\n }\n }\n}\n","@if(getIcon()) {\n @if(variant === 'warning') {\n <span class=\"ecl-modal__icon-background\"></span>\n }\n <ecl-icon [icon]=\"getIcon()\" size=\"l\" class=\"ecl-modal__icon\" [title]=\"variant\"></ecl-icon>\n}\n<div class=\"ecl-modal__header-content\">\n <ng-content></ng-content>\n</div>\n<button #closeButton eclButton variant=\"tertiary\" isIconOnly class=\"ecl-modal__close\" type=\"button\" (click)=\"onCloseClick()\">\n <span eclButtonLabel>{{ 'ecl.common.CLOSE' | translate }}</span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n</button>\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n forwardRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n} from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalResult } from './models/ecl-modal-result.model';\nimport { EclModalCloseEvent } from './events';\nimport { EclModalOpenEvent } from './events';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'dialog[eclModal]',\n templateUrl: './ecl-modal.component.html',\n standalone: false,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalComponent<T = any> extends ECLBaseDirective implements OnChanges, AfterContentInit, OnDestroy {\n /**\n * Defines the visual variant of the modal.\n * \n * Possible values: 'information', 'success', 'warning', 'error', or a custom string.\n */\n @Input() variant: 'information' | 'success' | 'warning' | 'error' | string;\n\n /**\n * Defines the size of the modal.\n * \n * Possible values:\n * - 's' – small\n * - 'm' – medium\n * - 'l' – large (default)\n * - 'full' – full width\n */\n @Input() size: 's' | 'm' | 'l' | 'full' | string = 'l';\n\n /**\n * Controls whether the modal is open.\n * \n * Can be set to any truthy value to open the modal.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input()\n set isOpen(value: boolean | any) {\n this._isOpen = coerceBooleanProperty(value);\n }\n\n /**\n * Returns the open state of the modal.\n */\n get isOpen(): boolean | null {\n return this._isOpen || null;\n }\n\n /**\n * Emits when the modal is closed.\n * \n * Carries an instance of `EclModalCloseEvent`.\n */\n @Output() modalClose = new EventEmitter<EclModalCloseEvent<T>>();\n\n /**\n * Emits when the modal is opened.\n * \n * Carries an instance of `EclModalOpenEvent`.\n */\n @Output() modalOpen = new EventEmitter<EclModalOpenEvent>();\n\n /**\n * Header component projected into the modal.\n */\n @ContentChild(forwardRef(() => EclModalHeaderComponent)) eclModalHeader: EclModalHeaderComponent<T>;\n\n /**\n * All close directives projected inside the modal.\n */\n @ContentChildren(forwardRef(() => EclModalCloseDirective), { descendants: true })\n eclModalCloseComponents: QueryList<EclModalCloseDirective<T>>;\n\n private _isOpen = false;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n /**\n * Binds the `open` attribute to the modal element.\n * \n * Used by the native `<dialog>` element.\n */\n @HostBinding('attr.open')\n get isModalOpened(): boolean {\n return this.isOpen;\n }\n\n /**\n * Applies base and variant CSS classes to the modal element.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal'),\n this.variant ? `ecl-modal--${this.variant}` : '',\n `ecl-modal--${this.size}`,\n ].join(' ').trim();\n }\n\n /**\n * Handles ESC key press to close the modal with `cancel` role.\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.closeModal({ eclModalRole: 'cancel' });\n }\n\n /**\n * Reacts to input changes and updates the modal header if available.\n */\n ngOnChanges(): void {\n if (this.eclModalHeader) {\n this.eclModalHeader.variant = this.variant;\n }\n }\n\n /**\n * Subscribes to close events from header and close directives after content is initialized.\n */\n ngAfterContentInit(): void {\n if (this.eclModalHeader) {\n this.eclModalHeader.variant = this.variant;\n this.eclModalHeader.modalClose.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.closeModal({ eclModalRole: 'cancel' });\n });\n }\n\n this.eclModalCloseComponents?.forEach((eclModalCloseCmp) => {\n eclModalCloseCmp.modalClose.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.closeModal({\n eclModalData: eclModalCloseCmp.eclModalResult,\n eclModalRole: eclModalCloseCmp.eclModalRole,\n });\n });\n });\n }\n\n /**\n * Cleans up subscriptions on component destruction.\n */\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Opens the modal and emits a `modalOpen` event.\n * \n * If the event is not prevented, the modal will be displayed.\n */\n openModal(): void {\n const event = new EclModalOpenEvent();\n this.modalOpen.next(event);\n\n if (!event.defaultPrevented) {\n this.isOpen = true;\n }\n setTimeout(() => this.eclModalHeader.closeButton.el.nativeElement.focus(), 100);\n }\n\n /**\n * Closes the modal and emits a `modalClose` event with optional result data.\n * \n * If the event is not prevented, the modal will be hidden.\n */\n closeModal(result?: EclModalResult<T>): void {\n if (this.isOpen) {\n const event = new EclModalCloseEvent({\n eclModalData: result?.eclModalData,\n eclModalRole: result?.eclModalRole,\n });\n this.modalClose.next(event);\n\n if (!event.defaultPrevented) {\n this.isOpen = false;\n }\n }\n }\n}\n","<div class=\"ecl-modal__container\">\n <div class=\"ecl-modal__content ecl-container\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, HostBinding, Input, booleanAttribute } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Body component used inside the ECL Modal.\n *\n * Optionally allows scrollable content inside the modal body.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalBody]',\n templateUrl: './ecl-modal-body.component.html',\n standalone: false,\n})\nexport class EclModalBodyComponent extends ECLBaseDirective {\n /**\n * When true, adds a modifier class to allow scrollable content inside the modal body.\n */\n @Input({ transform: booleanAttribute }) isScrollable = false;\n\n /**\n * Applies CSS classes for the modal body and scrollable modifier if enabled.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-modal__body'),\n this.isScrollable ? 'ecl-modal__body--has-scroll' : '',\n ].join(' ').trim();\n }\n}\n","@if (isScrollable) {\n<div class=\"ecl-modal__body-scroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<div class=\"ecl-modal__body-overflow\" aria-hidden=\"true\"></div>\n<ng-content select=\"[eclModalBodyFixedContent]\"></ng-content>\n} @else {\n<ng-container *ngTemplateOutlet=\"content\"></ng-container>\n}\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { AfterContentInit, Component, ContentChildren, forwardRef, HostBinding, QueryList } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclButtonComponent } from '@eui/ecl/components/ecl-button';\n\n/**\n * Footer component used within the ECL Modal.\n *\n * Automatically applies styling to buttons projected into the footer.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[eclModalFooter]',\n templateUrl: './ecl-modal-footer.component.html',\n standalone: false,\n})\nexport class EclModalFooterComponent extends ECLBaseDirective implements AfterContentInit {\n /**\n * Queries all button components projected into the footer.\n */\n @ContentChildren(forwardRef(() => EclButtonComponent), { descendants: true })\n buttonComponents: QueryList<EclButtonComponent>;\n\n /**\n * Applies the ECL CSS class for modal footer container.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-modal__footer')].join(' ').trim();\n }\n\n /**\n * Lifecycle hook that runs after content projection.\n *\n * Applies `ecl-modal__button` class to each projected button component.\n */\n ngAfterContentInit(): void {\n if (this.buttonComponents) {\n setTimeout(() => {\n this.buttonComponents.forEach((btn) => {\n btn.class = 'ecl-modal__button';\n });\n });\n }\n }\n}\n","<div class=\"ecl-modal__footer-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive used to trigger opening of a target ECL modal on click.\n */\n@Directive({\n selector: '[eclModalTriggerFor]',\n standalone: false,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class EclModalTriggerDirective<T = any> extends ECLBaseDirective {\n /**\n * Reference to the modal component that should be opened on click.\n */\n @Input() eclModalTriggerFor: EclModalComponent<T>;\n\n /**\n * Handles click event and opens the target modal.\n */\n @HostListener('click', ['$event'])\n onClick(evt: MouseEvent): void {\n this.eclModalTriggerFor?.openModal();\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for styling fixed content inside the modal body.\n *\n * Applies the appropriate CSS class to mark the element as fixed inside the modal body.\n */\n@Directive({\n selector: '[eclModalBodyFixedContent]',\n standalone: false,\n})\nexport class EclModalBodyFixedContentDirective extends ECLBaseDirective {\n /**\n * Applies the `ecl-modal__body-fixed` class to the host element.\n */\n @HostBinding('class.ecl-modal__body-fixed') className = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclModalComponent } from './ecl-modal.component';\nimport { EclModalHeaderComponent } from './ecl-modal-header.component';\nimport { EclModalBodyComponent } from './ecl-modal-body.component';\nimport { EclModalFooterComponent } from './ecl-modal-footer.component';\nimport { EclModalCloseDirective } from './ecl-modal-close.directive';\nimport { EclModalTriggerDirective } from './ecl-modal-trigger.directive';\nimport { EclModalBodyFixedContentDirective } from './ecl-modal-body-fixed.directive';\nimport { A11yModule } from '@angular/cdk/a11y';\n\nconst COMPONENTS = [\n EclModalComponent,\n EclModalHeaderComponent,\n EclModalBodyComponent,\n EclModalBodyFixedContentDirective,\n EclModalFooterComponent,\n EclModalCloseDirective,\n EclModalTriggerDirective,\n];\n\n@NgModule({\n imports: [A11yModule, CommonModule, TranslateModule, EclIconModule, EclButtonModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -12,9 +12,15 @@ import { Subject, fromEvent, takeUntil } from 'rxjs';
|
|
|
12
12
|
import { ECLBaseDirective, EclBaseEvent } from '@eui/ecl/core';
|
|
13
13
|
|
|
14
14
|
class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
15
|
+
/**
|
|
16
|
+
* HostBinding to set the component’s CSS classes.
|
|
17
|
+
*/
|
|
15
18
|
get cssClasses() {
|
|
16
19
|
return [super.getCssClasses('ecl-news-ticker__slide')].join(' ').trim();
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Whether this slide is currently visible.
|
|
23
|
+
*/
|
|
18
24
|
get isCurrent() {
|
|
19
25
|
return this._isCurrent;
|
|
20
26
|
}
|
|
@@ -24,20 +30,35 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
|
24
30
|
this.setLinkTabindex();
|
|
25
31
|
}
|
|
26
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Sets `aria-hidden` based on current slide visibility.
|
|
35
|
+
*/
|
|
27
36
|
get isAriahidden() {
|
|
28
37
|
return !this.isCurrent || undefined;
|
|
29
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Sets `inert` attribute when the item is not current (prevents interaction).
|
|
41
|
+
*/
|
|
30
42
|
get isInert() {
|
|
31
43
|
return !this.isCurrent || undefined;
|
|
32
44
|
}
|
|
33
45
|
constructor(el) {
|
|
34
46
|
super();
|
|
35
47
|
this.el = el;
|
|
48
|
+
/**
|
|
49
|
+
* Emitted when the internal link receives focus (used to cancel autoplay).
|
|
50
|
+
*/
|
|
36
51
|
this.itemFocused = new EventEmitter();
|
|
52
|
+
/**
|
|
53
|
+
* Declares ARIA role as list item for accessibility.
|
|
54
|
+
*/
|
|
37
55
|
this.role = 'listitem';
|
|
38
56
|
this._isCurrent = false;
|
|
39
57
|
this.destroy$ = new Subject();
|
|
40
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Lifecycle hook that sets up the internal link class and focus listener.
|
|
61
|
+
*/
|
|
41
62
|
ngAfterContentInit() {
|
|
42
63
|
if (this.eclLink) {
|
|
43
64
|
this.eclLink.class = 'ecl-news-ticker__slide-text';
|
|
@@ -50,6 +71,9 @@ class EclNewsTickerItemComponent extends ECLBaseDirective {
|
|
|
50
71
|
});
|
|
51
72
|
}
|
|
52
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Cleanup on destroy: unsubscribe from observables.
|
|
76
|
+
*/
|
|
53
77
|
ngOnDestroy() {
|
|
54
78
|
this.destroy$.next(true);
|
|
55
79
|
this.destroy$.unsubscribe();
|
|
@@ -102,7 +126,15 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
102
126
|
super();
|
|
103
127
|
this.renderer2 = renderer2;
|
|
104
128
|
this.cd = cd;
|
|
129
|
+
/**
|
|
130
|
+
* Enables or disables automatic cycling through ticker items.
|
|
131
|
+
* Defaults to `true`.
|
|
132
|
+
*/
|
|
105
133
|
this.isAutoplay = true;
|
|
134
|
+
/**
|
|
135
|
+
* Emits when the visible news ticker item changes.
|
|
136
|
+
* The payload is an instance of `EclNewsTickerItemEvent`.
|
|
137
|
+
*/
|
|
106
138
|
this.itemSwitch = new EventEmitter();
|
|
107
139
|
this.itemIndex = 1;
|
|
108
140
|
this.playing = false;
|
|
@@ -122,21 +154,36 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
122
154
|
});
|
|
123
155
|
});
|
|
124
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Returns the height of the currently visible ticker item.
|
|
159
|
+
*/
|
|
125
160
|
get contentHeight() {
|
|
126
161
|
return this._contentHeight;
|
|
127
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Returns the number of ticker items.
|
|
165
|
+
*/
|
|
128
166
|
get itemsCount() {
|
|
129
167
|
return this.newsTickerItems.length;
|
|
130
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Indicates whether navigation controls should be shown.
|
|
171
|
+
*/
|
|
131
172
|
get isShowControls() {
|
|
132
173
|
return this.newsTickerItems.length > 1;
|
|
133
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Handles window resize and recalculates the layout.
|
|
177
|
+
*/
|
|
134
178
|
onResize(event) {
|
|
135
179
|
setTimeout(() => {
|
|
136
180
|
this.resizeTicker();
|
|
137
181
|
this.moveSlides(this.getCurrentItem(), false);
|
|
138
182
|
});
|
|
139
183
|
}
|
|
184
|
+
/**
|
|
185
|
+
* Lifecycle hook that clears intervals and subscriptions.
|
|
186
|
+
*/
|
|
140
187
|
ngOnDestroy() {
|
|
141
188
|
if (this.intervalId) {
|
|
142
189
|
clearInterval(this.intervalId);
|
|
@@ -147,10 +194,17 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
147
194
|
this.destroy$.next(true);
|
|
148
195
|
this.destroy$.unsubscribe();
|
|
149
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Handles "previous" button click.
|
|
199
|
+
* Navigates to the previous slide and stops autoplay.
|
|
200
|
+
*/
|
|
150
201
|
onPrevious() {
|
|
151
202
|
this.cancelAutoplay();
|
|
152
203
|
this.previousSlide();
|
|
153
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Moves to the previous slide and emits `itemSwitch` event.
|
|
207
|
+
*/
|
|
154
208
|
previousSlide() {
|
|
155
209
|
this.itemIndex = this.getPrevIndex();
|
|
156
210
|
if (this.itemIndex === this.itemsCount) {
|
|
@@ -161,10 +215,17 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
161
215
|
}
|
|
162
216
|
this.itemSwitch.next(new EclNewsTickerItemEvent(this.itemIndex));
|
|
163
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Handles "next" button click.
|
|
220
|
+
* Navigates to the next slide and stops autoplay.
|
|
221
|
+
*/
|
|
164
222
|
onNext() {
|
|
165
223
|
this.cancelAutoplay();
|
|
166
224
|
this.nextSlide();
|
|
167
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Moves to the next slide and emits `itemSwitch` event.
|
|
228
|
+
*/
|
|
168
229
|
nextSlide() {
|
|
169
230
|
this.itemIndex = this.getNextIndex();
|
|
170
231
|
if (this.itemIndex === 1) {
|
|
@@ -175,34 +236,56 @@ class EclNewsTickerComponent extends ECLBaseDirective {
|
|
|
175
236
|
}
|
|
176
237
|
this.itemSwitch.next(new EclNewsTickerItemEvent(this.itemIndex));
|
|
177
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Starts automatic cycling of the ticker items.
|
|
241
|
+
*/
|
|
178
242
|
startAutoplay() {
|
|
179
243
|
this.playing = true;
|
|
180
244
|
this.intervalId = setInterval(() => this.nextSlide(), this.PLAY_INTERVAL);
|
|
181
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Cancels the automatic cycling of the ticker items.
|
|
248
|
+
*/
|
|
182
249
|
cancelAutoplay() {
|
|
183
250
|
if (this.intervalId) {
|
|
184
251
|
clearInterval(this.intervalId);
|
|
185
252
|
}
|
|
186
253
|
this.playing = false;
|
|
187
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Handles mouse over event on a ticker item.
|
|
257
|
+
* Temporarily pauses autoplay.
|
|
258
|
+
*/
|
|
188
259
|
onNewsTickerItemMouseOver() {
|
|
189
260
|
if (this.playing) {
|
|
190
261
|
this.pausePlay = true;
|
|
191
262
|
this.cancelAutoplay();
|
|
192
263
|
}
|
|
193
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Handles mouse out event from a ticker item.
|
|
267
|
+
* Resumes autoplay if it was paused due to hover.
|
|
268
|
+
*/
|
|
194
269
|
onNewsTickerItemMouseOut() {
|
|
195
270
|
if (this.pausePlay) {
|
|
196
271
|
this.pausePlay = false;
|
|
197
272
|
this.startAutoplay();
|
|
198
273
|
}
|
|
199
274
|
}
|
|
275
|
+
/**
|
|
276
|
+
* Handles focus event on the "Play" button.
|
|
277
|
+
* Starts autoplay and shifts focus to the "Pause" button.
|
|
278
|
+
*/
|
|
200
279
|
onPlayBtnEnter(evt) {
|
|
201
280
|
evt.preventDefault();
|
|
202
281
|
this.startAutoplay();
|
|
203
282
|
this.cd.detectChanges();
|
|
204
283
|
this.pauseBtn.el.nativeElement.focus();
|
|
205
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Handles focus event on the "Pause" button.
|
|
287
|
+
* Stops autoplay and shifts focus to the "Play" button.
|
|
288
|
+
*/
|
|
206
289
|
onPauseBtnEnter(evt) {
|
|
207
290
|
evt.preventDefault();
|
|
208
291
|
this.cancelAutoplay();
|
|
@@ -321,9 +404,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
|
|
|
321
404
|
args: ['window:resize', ['$event']]
|
|
322
405
|
}] } });
|
|
323
406
|
|
|
407
|
+
/**
|
|
408
|
+
* Directive to mark and style the icon inside a news ticker item.
|
|
409
|
+
*/
|
|
324
410
|
class EclNewsTickerIconDirective extends ECLBaseDirective {
|
|
325
411
|
constructor() {
|
|
326
412
|
super(...arguments);
|
|
413
|
+
/**
|
|
414
|
+
* Adds the `ecl-news-ticker__icon` class to the host element.
|
|
415
|
+
*/
|
|
327
416
|
this.hasClass = true;
|
|
328
417
|
}
|
|
329
418
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: EclNewsTickerIconDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -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/ecl-news-ticker.module.ts","../../components/ecl-news-ticker/eui-ecl-components-ecl-news-ticker.ts"],"sourcesContent":["import { AfterContentInit, Component, ContentChild, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n@Component({\n selector: 'ecl-news-ticker-item',\n templateUrl: './ecl-news-ticker-item.component.html',\n standalone: false,\n})\nexport class EclNewsTickerItemComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n @ContentChild(EclLinkDirective) eclLink: EclLinkDirective;\n @Output() itemFocused = new EventEmitter<null>();\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-news-ticker__slide')].join(' ').trim();\n }\n @HostBinding('attr.role') role = 'listitem';\n\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 @HostBinding('attr.aria-hidden')\n get isAriahidden(): boolean {\n return !this.isCurrent || undefined;\n }\n @HostBinding('attr.inert')\n get isInert(): boolean {\n return !this.isCurrent || undefined;\n }\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(public el: ElementRef) {\n super();\n }\n\n ngAfterContentInit(): void {\n if (this.eclLink) {\n this.eclLink.class = 'ecl-news-ticker__slide-text';\n }\n\n if (this.eclLink) {\n fromEvent(this.eclLink.el.nativeElement, 'focus')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.itemFocused.emit();\n });\n }\n }\n\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 {\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n QueryList,\n Renderer2,\n ViewChild,\n afterNextRender,\n booleanAttribute,\n} from '@angular/core';\nimport { 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';\n\n@Component({\n selector: 'ecl-news-ticker',\n templateUrl: './ecl-news-ticker.component.html',\n standalone: false,\n})\nexport class EclNewsTickerComponent extends ECLBaseDirective implements OnDestroy {\n @Input({ transform: booleanAttribute }) isAutoplay = true;\n @Output() itemSwitch = new EventEmitter<EclNewsTickerItemEvent>();\n @ContentChildren(EclNewsTickerItemComponent) newsTickerItems: QueryList<EclNewsTickerItemComponent>;\n @ViewChild('firstHiddenItem') firstHiddenItem: EclNewsTickerItemComponent;\n @ViewChild('lastHiddenItem') lastHiddenItem: EclNewsTickerItemComponent;\n @ViewChild('slidesContainer') slidesContainer: ElementRef;\n @ViewChild('playBtn') playBtn: EclButtonComponent;\n @ViewChild('pauseBtn') pauseBtn: EclButtonComponent;\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: number;\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\n constructor(private renderer2: Renderer2, private cd: ChangeDetectorRef) {\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 });\n }\n\n get contentHeight(): number {\n return this._contentHeight;\n }\n\n get itemsCount(): number {\n return this.newsTickerItems.length;\n }\n\n get isShowControls(): boolean {\n return this.newsTickerItems.length > 1;\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event): void {\n setTimeout(() => {\n this.resizeTicker();\n this.moveSlides(this.getCurrentItem(), false);\n });\n }\n\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 onPrevious(): void {\n this.cancelAutoplay();\n this.previousSlide();\n }\n\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.next(new EclNewsTickerItemEvent(this.itemIndex));\n }\n\n onNext(): void {\n this.cancelAutoplay();\n this.nextSlide();\n }\n\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.next(new EclNewsTickerItemEvent(this.itemIndex));\n }\n\n startAutoplay(): void {\n this.playing = true;\n this.intervalId = setInterval(() => this.nextSlide(), this.PLAY_INTERVAL);\n }\n\n cancelAutoplay(): void {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n this.playing = false;\n }\n\n onNewsTickerItemMouseOver(): void {\n if (this.playing) {\n this.pausePlay = true;\n this.cancelAutoplay();\n }\n }\n\n onNewsTickerItemMouseOut(): void {\n if (this.pausePlay) {\n this.pausePlay = false;\n this.startAutoplay();\n }\n }\n\n onPlayBtnEnter(evt: Event): void {\n evt.preventDefault();\n this.startAutoplay();\n this.cd.detectChanges();\n this.pauseBtn.el.nativeElement.focus();\n }\n\n onPauseBtnEnter(evt: Event): void {\n evt.preventDefault();\n this.cancelAutoplay();\n this.cd.detectChanges();\n this.playBtn.el.nativeElement.focus();\n }\n\n private moveSlides(item: EclNewsTickerItemComponent, withTransition: boolean): void {\n if (item) {\n const newOffset = item.el.nativeElement.offsetTop;\n const newHeight = item.el.nativeElement.offsetHeight;\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 if (this.newsTickerItems.length === 1) {\n this.resizeTicker();\n this.moveSlides(this.getFirstItem(this.newsTickerItems.toArray()), 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(this.newsTickerItems.toArray()), 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(this.newsTickerItems.toArray());\n this.moveSlides(item, false);\n } else if (this.itemIndex === this.itemsCount) {\n const item = this.getLastItem(this.newsTickerItems.toArray());\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: Array<EclNewsTickerItemComponent>): EclNewsTickerItemComponent {\n return items.length > 0 ? items[0] : null;\n }\n\n private getLastItem(items: Array<EclNewsTickerItemComponent>): EclNewsTickerItemComponent {\n return items[items.length - 1];\n }\n\n private getLastContentChild(): string {\n return this.newsTickerItems.length > 0 ? this.newsTickerItems.get(this.itemsCount - 1).el.nativeElement.innerHTML : '';\n }\n\n private getFirstContentChild(): string {\n return this.newsTickerItems.length > 0 ? this.newsTickerItems.get(0).el.nativeElement.innerHTML : '';\n }\n\n private getAllItemsArray(): EclNewsTickerItemComponent[] {\n return [...[this.firstHiddenItem], ...this.newsTickerItems.toArray(), ...[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\" 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\" 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\" 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\" 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@Directive({\n selector: '[eclNewsTickerIcon]',\n standalone: false,\n})\nexport class EclNewsTickerIconDirective extends ECLBaseDirective {\n @HostBinding('class.ecl-news-ticker__icon') hasClass = true;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclNewsTickerComponent } from './ecl-news-ticker.component';\nimport { EclNewsTickerItemComponent } from './ecl-news-ticker-item.component';\nimport { EclNewsTickerIconDirective } from './ecl-news-ticker-icon.directive';\n\nconst COMPONENTS = [EclNewsTickerComponent, EclNewsTickerItemComponent, EclNewsTickerIconDirective];\n@NgModule({\n imports: [CommonModule, TranslateModule, EclButtonModule, EclIconModule, EclLinkModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclNewsTickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.EclNewsTickerItemComponent"],"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/ecl-news-ticker.module.ts","../../components/ecl-news-ticker/eui-ecl-components-ecl-news-ticker.ts"],"sourcesContent":["import { AfterContentInit, Component, ContentChild, ElementRef, EventEmitter, HostBinding, OnDestroy, Output } 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\tstandalone: false,\n})\nexport class EclNewsTickerItemComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy {\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\tconstructor(public el: ElementRef) {\n\t\tsuper();\n\t}\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 {\n\tChangeDetectorRef,\n\tComponent,\n\tContentChildren,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tInput,\n\tOnDestroy,\n\tOutput,\n\tQueryList,\n\tRenderer2,\n\tViewChild,\n\tafterNextRender,\n\tbooleanAttribute,\n} from '@angular/core';\nimport { 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';\n\n@Component({\n\tselector: 'ecl-news-ticker',\n\ttemplateUrl: './ecl-news-ticker.component.html',\n\tstandalone: false,\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\t@Input({ transform: booleanAttribute }) isAutoplay = true;\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\t@Output() itemSwitch = new EventEmitter<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: number;\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\n\tconstructor(private renderer2: Renderer2, private cd: ChangeDetectorRef) {\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});\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 * Handles window resize and recalculates the layout.\n\t */\n\t@HostListener('window:resize', ['$event'])\n\tonResize(event): void {\n\t\tsetTimeout(() => {\n\t\t\tthis.resizeTicker();\n\t\t\tthis.moveSlides(this.getCurrentItem(), false);\n\t\t});\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.next(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.next(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\tthis.playing = true;\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\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 = item.el.nativeElement.offsetHeight;\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\" 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\" 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\" 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\" 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\tstandalone: false,\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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclButtonModule } from '@eui/ecl/components/ecl-button';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclNewsTickerComponent } from './ecl-news-ticker.component';\nimport { EclNewsTickerItemComponent } from './ecl-news-ticker-item.component';\nimport { EclNewsTickerIconDirective } from './ecl-news-ticker-icon.directive';\n\nconst COMPONENTS = [EclNewsTickerComponent, EclNewsTickerItemComponent, EclNewsTickerIconDirective];\n@NgModule({\n imports: [CommonModule, TranslateModule, EclButtonModule, EclIconModule, EclLinkModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n})\nexport class EclNewsTickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3.EclNewsTickerItemComponent"],"mappings":"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"}
|
|
@@ -12,6 +12,11 @@ import { EclSiteFooterModule } from '@eui/ecl/components/ecl-site-footer';
|
|
|
12
12
|
import * as i1 from '@eui/ecl/core';
|
|
13
13
|
import { EclBaseEvent, ECLBaseDirective } from '@eui/ecl/core';
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Event emitted when the notification is closed.
|
|
17
|
+
*
|
|
18
|
+
* Can be used to prevent default close behavior by calling `event.preventDefault()`.
|
|
19
|
+
*/
|
|
15
20
|
class EclNotificationCloseEvent extends EclBaseEvent {
|
|
16
21
|
}
|
|
17
22
|
|
|
@@ -19,11 +24,30 @@ class EclNotificationComponent extends ECLBaseDirective {
|
|
|
19
24
|
constructor(eclThemeService) {
|
|
20
25
|
super();
|
|
21
26
|
this.eclThemeService = eclThemeService;
|
|
27
|
+
/**
|
|
28
|
+
* Defines the visual style of the notification.
|
|
29
|
+
* Can be one of: 'info' | 'success' | 'warning' | 'error'.
|
|
30
|
+
* Default is 'info'.
|
|
31
|
+
*/
|
|
22
32
|
this.variant = 'info';
|
|
33
|
+
/**
|
|
34
|
+
* Controls the visibility of the notification.
|
|
35
|
+
* When false, the component is hidden using CSS utility class.
|
|
36
|
+
*/
|
|
23
37
|
this.isVisible = true;
|
|
38
|
+
/**
|
|
39
|
+
* Indicates whether the close button is displayed.
|
|
40
|
+
*/
|
|
24
41
|
this.isCloseable = true;
|
|
42
|
+
/**
|
|
43
|
+
* Emits an event when the close button is clicked.
|
|
44
|
+
* Consumers can call `preventDefault()` on the emitted event to prevent the notification from closing.
|
|
45
|
+
*/
|
|
25
46
|
// eslint-disable-next-line @angular-eslint/no-output-native
|
|
26
47
|
this.close = new EventEmitter();
|
|
48
|
+
/**
|
|
49
|
+
* The ARIA role for the component. Set to "alert" by default.
|
|
50
|
+
*/
|
|
27
51
|
this.role = 'alert';
|
|
28
52
|
this.variantTitleIconMapping = new Map([
|
|
29
53
|
['info', { title: 'information', icon: 'information' }],
|
|
@@ -32,21 +56,41 @@ class EclNotificationComponent extends ECLBaseDirective {
|
|
|
32
56
|
['error', { title: 'error', icon: 'error' }],
|
|
33
57
|
]);
|
|
34
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Applies the `ecl-u-d-none` utility class when the notification is not visible.
|
|
61
|
+
*/
|
|
35
62
|
get isHidden() {
|
|
36
63
|
return !this.isVisible;
|
|
37
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Computes the CSS classes applied to the host element, including the modifier for the current variant.
|
|
67
|
+
*/
|
|
38
68
|
get cssClasses() {
|
|
39
69
|
return [super.getCssClasses('ecl-notification'), this.variant ? `ecl-notification--${this.variant}` : ''].join(' ').trim();
|
|
40
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns the default title text based on the current variant.
|
|
73
|
+
*/
|
|
41
74
|
get title() {
|
|
42
75
|
return this.titleAndIconBaseOnVariant.title;
|
|
43
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns the icon name based on the current variant.
|
|
79
|
+
*/
|
|
44
80
|
get icon() {
|
|
45
81
|
return this.titleAndIconBaseOnVariant.icon;
|
|
46
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns a mapping of title and icon based on the current variant.
|
|
85
|
+
*/
|
|
47
86
|
get titleAndIconBaseOnVariant() {
|
|
48
87
|
return this.variantTitleIconMapping.get(this.variant) || { title: 'information', icon: 'information' };
|
|
49
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Handles the click event on the close button.
|
|
91
|
+
* Emits a `close` event with an instance of `EclNotificationCloseEvent`.
|
|
92
|
+
* If the event is not prevented, the notification is hidden.
|
|
93
|
+
*/
|
|
50
94
|
onCloseClick(evt) {
|
|
51
95
|
const event = new EclNotificationCloseEvent();
|
|
52
96
|
this.close.next(event);
|
|
@@ -83,7 +127,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
|
|
|
83
127
|
args: ['class']
|
|
84
128
|
}] } });
|
|
85
129
|
|
|
130
|
+
/**
|
|
131
|
+
* Directive applied to a notification title element.
|
|
132
|
+
* Adds the appropriate ECL class for styling the notification title.
|
|
133
|
+
*/
|
|
86
134
|
class EclNotificationTitleDirective extends ECLBaseDirective {
|
|
135
|
+
/**
|
|
136
|
+
* Host binding for applying the ECL notification title CSS class.
|
|
137
|
+
*/
|
|
87
138
|
get cssClasses() {
|
|
88
139
|
return [super.getCssClasses('ecl-notification__title')].join(' ').trim();
|
|
89
140
|
}
|