@eui/ecl 22.0.0-alpha.45 → 22.0.0-alpha.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/changelog.html +38 -0
- package/docs/components/EclMenuItemComponent.html +203 -161
- package/docs/components/EclMenuMegaItemComponent.html +3 -3
- package/docs/interfaces/EclMenuItem.html +4 -4
- package/docs/js/search/search_index.js +2 -2
- package/docs/json/documentation.json +152 -124
- package/docs/llms.txt +13 -7
- package/docs/properties.html +1 -1
- package/fesm2022/eui-ecl-components-ecl-accordion.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-add-to-calendar.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-animated-numbers.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-app.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-banner.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-blockquote.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-button.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-carousel.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-checkbox.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-content-item.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-date-picker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-expandable.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-fact-figures.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-featured.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-feedback-message.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-file.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-group.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-form-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-help-block.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-highlight-box.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-highlighted-search.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-layout-wrapper.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-menu.mjs +67 -49
- package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-multiselect.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-navigation-list.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-news-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-notification.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-information.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-page-summary.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-popover.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-quiz.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-radio.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-range.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-search-form.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-select.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-slogan-ticker.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-splash-page.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-spotlight.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-sticky-container.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-table.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tag.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-area.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-input.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-text-media.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-timeline.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-tooltip.mjs.map +1 -1
- package/fesm2022/eui-ecl-core.mjs.map +1 -1
- package/fesm2022/eui-ecl-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eui-ecl-components-ecl-accordion.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-add-to-calendar.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-animated-numbers.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-app.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-banner.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-blockquote.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-breadcrumb.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-button.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-carousel.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-checkbox.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-content-item.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-date-picker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-expandable.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-fact-figures.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-featured.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-feedback-message.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-file.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-group.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-form-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-gallery.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-help-block.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-highlight-box.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-highlighted-search.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-icon.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-layout-wrapper.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-menu.d.ts +16 -11
- package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-multiselect.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-navigation-list.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-news-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-notification.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-information.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-page-summary.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-pagination.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-popover.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-quiz.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-radio.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-range.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-rating-field.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-search-form.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-select.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-footer.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-slogan-ticker.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-splash-page.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-spotlight.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-sticky-container.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-story-card.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-table.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tabs.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tag.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-area.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-input.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-text-media.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-timeline.d.ts.map +1 -1
- package/types/eui-ecl-components-ecl-tooltip.d.ts.map +1 -1
- package/types/eui-ecl-core.d.ts.map +1 -1
- package/types/eui-ecl-shared.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-gallery.mjs","sources":["../../components/ecl-gallery/events/ecl-gallery.event.ts","../../components/ecl-gallery/events/ecl-gallery-item.event.ts","../../components/ecl-gallery/events/ecl-gallery-item-click.event.ts","../../components/ecl-gallery/events/ecl-gallery-toggle-items.event.ts","../../components/ecl-gallery/ecl-gallery-footer.component.ts","../../components/ecl-gallery/ecl-gallery-footer.component.html","../../components/ecl-gallery/ecl-gallery-media.directive.ts","../../components/ecl-gallery/ecl-gallery-item.component.ts","../../components/ecl-gallery/ecl-gallery-item.component.html","../../components/ecl-gallery/ecl-gallery.component.ts","../../components/ecl-gallery/ecl-gallery.component.html","../../components/ecl-gallery/index.ts","../../components/ecl-gallery/eui-ecl-components-ecl-gallery.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryShowEvent extends EclBaseEvent {}\nexport class EclGalleryHideEvent extends EclBaseEvent {}\nexport class EclGalleryFullScreenEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\nexport class EclGalleryShareEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryItemEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryItemClickEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryToggleItemsEvent extends EclBaseEvent {\n\tconstructor(public expandAll: boolean) {\n\t\tsuper();\n\t}\n}","import { Component, OnInit, input, output, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EclGalleryToggleItemsEvent } from './events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Manages styling and functionality for gallery footer.\n */\n@Component({\n selector: 'ecl-gallery-footer',\n templateUrl: './ecl-gallery-footer.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON],\n host: {\n 'class': 'ecl-gallery__footer',\n },\n})\nexport class EclGalleryFooterComponent implements OnInit {\n readonly infoId = input<string>(undefined);\n /**\n * Event, that is emitted when items are expanded/collapsed.\n */\n readonly toggleItems = output<EclGalleryToggleItemsEvent>();\n\n /**\n * Total number of gallery items (set by the parent gallery).\n */\n readonly itemsCount = signal<number>(undefined);\n\n /**\n * Whether the toggle button should be displayed (set by the parent gallery).\n */\n readonly isShowToggleBtn = signal(false);\n\n /**\n * The resolved info id. Falls back to a generated UUID when no infoId input is provided.\n */\n protected readonly resolvedInfoId = signal<string>(undefined);\n\n /**\n * Whether the hidden items are currently expanded.\n */\n protected readonly isExpanded = signal(false);\n\n ngOnInit(): void {\n this.resolvedInfoId.set(this.infoId() ?? crypto.randomUUID());\n }\n\n protected onToggle(): void {\n this.isExpanded.set(!this.isExpanded());\n this.toggleItems.emit(new EclGalleryToggleItemsEvent(this.isExpanded()));\n }\n}\n","<div class=\"ecl-gallery__info\">\n <div class=\"ecl-gallery__info-total\" [id]=\"infoId()\">\n <strong>{{ itemsCount() }}</strong>{{ 'ecl.gallery.MEDIA-FILES-COUNT' | translate }}\n </div>\n @if(isShowToggleBtn()) {\n @if(!isExpanded()) {\n <button [attr.aria-describedby]=\"resolvedInfoId()\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </button>\n } @else {\n <button [attr.aria-describedby]=\"resolvedInfoId()\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.common.COLLAPSE' | translate }}\n </button>\n }\n }\n</div>\n<hr class=\"ecl-gallery__footer-divider\" />\n<div class=\"ecl-gallery__footer-link\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectorRef, Directive, ElementRef, OnInit, afterNextRender, booleanAttribute, computed, inject, input, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\nexport class EclGalleryMediaSource {\n src?: string;\n type?: string;\n}\n\nexport class EclGalleryMediaTrack {\n src?: string;\n kind?: string;\n srcLang?: string;\n label?: string;\n}\n\nexport class EclGalleryPictureSource {\n srcset? : string;\n media? : string;\n}\n\nexport class EclGalleryPictureImage {\n src? : string;\n alt? : string;\n loading?: string;\n}\n\n/**\n * Manages image/video for the thumbnail in the gallery. Adding some styling and functionality.\n */\n@Directive({\n selector: '[eclGalleryMedia], [eclGalleryImage]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-video]': 'isVideo()',\n },\n})\nexport class EclGalleryMediaDirective extends ECLBaseDirective implements OnInit {\n /**\n * To be used when there is no thimbnail added. Instead the 'poster' attribute in the <video> element is used\n */\n readonly poster = input<string>(undefined);\n /**\n * When this is true, on mousehover the image will be zoomed.\n */\n readonly hasZoom = input(false, { transform: booleanAttribute });\n sources: EclGalleryMediaSource[] = [];\n tracks: EclGalleryMediaTrack[] = [];\n\n protected readonly isVideo = signal(false);\n\n /**\n * Applies the ECL classes for the component.\n */\n protected readonly cssClasses = computed<string>(() =>\n [\n super.getCssClasses('ecl-gallery__image'),\n this.hasZoom() && this.isVideo() ? 'ecl-video--zoom' : '',\n ].join(' ').trim());\n\n private el = inject(ElementRef);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryMediaChildren();\n });\n }\n\n ngOnInit(): void {\n this.checkIsVideo();\n }\n\n private checkIsVideo(): void {\n const selector = this.el.nativeElement.tagName;\n this.isVideo.set(selector === 'VIDEO');\n }\n\n private createGalleryMediaChildren(): void {\n if (!this.getHostElement().hasChildNodes) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLInputElement) => {\n if (el.nodeName === 'SOURCE') {\n const mediaSource = new EclGalleryMediaSource();\n mediaSource.src = el.getAttribute('src');\n mediaSource.type = el.getAttribute('type');\n this.sources.push(mediaSource);\n } else if (el.nodeName === 'TRACK') {\n const mediaTrack = new EclGalleryMediaTrack();\n mediaTrack.src = el.getAttribute('src');\n mediaTrack.kind = el.getAttribute('kind');\n mediaTrack.srcLang = el.getAttribute('srcLang');\n mediaTrack.label = el.getAttribute('label');\n this.tracks.push(mediaTrack);\n }\n });\n }\n\n private getHostElement(): HTMLInputElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Adds styling and functionality for gallery picture component.\n */\n@Directive({\n selector: 'picture[eclGalleryPicture]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclGalleryPictureDirective extends ECLBaseDirective {\n sources: EclGalleryPictureSource[] = [];\n img: EclGalleryPictureImage ={};\n\n // TODO: to be removed in v19. Thumbnail should be added by user.\n protected readonly isThumbnail = signal(false);\n\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-picture'), this.isThumbnail() ? 'ecl-gallery__thumbnail': 'ecl-gallery__picture'].join(' ').trim());\n\n private el = inject(ElementRef);\n private cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryPictureChildren();\n });\n }\n\n private createGalleryPictureChildren(): void {\n if (!this.getHostElement().hasChildNodes()) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLSourceElement | HTMLImageElement) => {\n if (el.nodeName === 'SOURCE') {\n const pictureSource = new EclGalleryPictureSource();\n pictureSource.srcset = el.getAttribute('srcset');\n pictureSource.media = el.getAttribute('media');\n this.sources.push(pictureSource);\n } else if (el.nodeName === 'IMG') {\n const imageSource = new EclGalleryPictureImage();\n imageSource.src = el.getAttribute('src');\n imageSource.alt = el.getAttribute('alt');\n imageSource.loading = el.getAttribute('loading');\n this.img.src = imageSource.src;\n this.img.alt = imageSource.alt;\n this.img.loading = imageSource.loading;\n\n }\n this.cd.detectChanges();\n });\n }\n\n private getHostElement(): HTMLElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Applies classes for the gallery thumbnail.\n */\n@Directive({\n selector: 'picture[eclGalleryThumbnail]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-picture--zoom]': 'hasZoom()',\n },\n})\nexport class EclGalleryThumbnailDirective extends ECLBaseDirective {\n readonly hasZoom = input(false, { transform: booleanAttribute });\n\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-picture ecl-gallery__thumbnail'));\n}\n","import { Component, ElementRef, OnInit, Renderer2, booleanAttribute, computed, inject, input, output, signal, contentChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryItemClickEvent } from './events';\nimport { EclGalleryItem } from './models/ecl-gallery-item.model';\n\n/**\n * Wrapper component for gallery item's elements.\n */\n@Component({\n selector: 'ecl-gallery-item',\n templateUrl: './ecl-gallery-item.component.html',\n imports: [...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n '[attr.role]': 'role',\n '(click)': 'onItemClick($event)',\n },\n})\nexport class EclGalleryItemComponent extends ECLBaseDirective implements EclGalleryItem, OnInit {\n /**\n * Can this item be shared, i.e. show/hide share button.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n readonly mediaType = input<'image' | 'video' | 'externalVideo'>('image');\n /**\n * The source link to the image/video, that will be shown in the original size (when open image/video in overlay or in orginal size).\n */\n readonly src = input<string>(undefined);\n readonly meta = input<string>(undefined);\n readonly description = input<string>(undefined);\n /**\n * Embeded audio description.\n */\n readonly srVideoAudioDescription = input<string>(undefined);\n readonly icon = input<string>(undefined);\n readonly title = input<string>(undefined);\n readonly itemId = input<string>(undefined);\n readonly ariaLabel = input<string | null>(null);\n readonly itemClick = output<EclGalleryItemClickEvent>();\n readonly mediaChild = contentChild(EclGalleryMediaDirective);\n readonly galleryPicture = contentChild(EclGalleryPictureDirective);\n\n /**\n * The resolved id of the item. Falls back to a generated UUID when no itemId input is provided.\n */\n readonly resolvedItemId = signal<string>(undefined);\n\n /**\n * Whether the item is currently hidden in the gallery (controlled by the parent gallery).\n */\n readonly isHidden = signal(false);\n\n /**\n * Whether the item is displayed without an overlay (controlled by the parent gallery).\n */\n readonly isNoOverlay = signal(false);\n\n /**\n * Creates id for the title\n */\n readonly titleId = computed<string>(() => `${this.resolvedItemId()}-title`);\n\n /**\n * The role attribute of the item is 'listitem', should not be changed.\n */\n protected role = 'listitem';\n\n /**\n * Binds specific classes for the item. Some depend on some of the properties of the component.\n */\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-gallery__item'), this.isHidden() ? 'ecl-gallery__item--hidden' : ''].join(' ').trim());\n\n private externalVideoUrl: SafeResourceUrl;\n private domSanitizer = inject(DomSanitizer);\n private renderer = inject(Renderer2);\n private el = inject(ElementRef);\n\n ngOnInit(): void {\n if (this.isExternalVideo) {\n const iframeUrl = new URL(this.src());\n if (iframeUrl.host.includes('youtube')) {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(iframeUrl.toString());\n } else {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(this.src());\n }\n }\n\n this.resolvedItemId.set(this.itemId() ?? crypto.randomUUID());\n }\n\n get isImage(): boolean {\n return this.mediaType() === 'image';\n }\n\n get isVideo(): boolean {\n return this.mediaType() === 'video';\n }\n\n get isExternalVideo(): boolean {\n return this.mediaType() === 'externalVideo';\n }\n\n get isOpenInFullScreenPossible(): boolean {\n return this.mediaType() !== 'externalVideo';\n }\n\n getDownloadLink(): string {\n return this.src();\n }\n\n getUrlExternalVideo(): SafeResourceUrl {\n return this.externalVideoUrl;\n }\n\n onFocus(): void {\n this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();\n }\n\n protected onItemClick(evt: MouseEvent): void {\n this.itemClick.emit(new EclGalleryItemClickEvent());\n evt.preventDefault();\n }\n}\n","<a [href]=\"src()\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay()\" [id]=\"resolvedItemId()\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" iconSet=\"phosphor\" icon=\"arrows-out-simple\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" iconSet=\"phosphor-fill\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title()) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId()\">{{title()}}</span>\n }\n @if(description()) {\n <span class=\"ecl-gallery__caption\">{{ description() }}</span>\n }\n @if(icon()) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon()\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta() }}\n </span>\n </figcaption>\n </figure>\n</a>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, DOCUMENT, ElementRef, OnDestroy, PLATFORM_ID, booleanAttribute, computed, inject, numberAttribute, output, input, signal, contentChildren, contentChild, viewChild } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject, delay, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport { EclGalleryFullScreenEvent, EclGalleryHideEvent, EclGalleryItemEvent, EclGalleryShareEvent, EclGalleryShowEvent } from './events';\n\n/**\n * This component represents a collection of images or videos and allows a user to browse them.\n * Adds functionality and styling, according to the ECL standards.\n */\n@Component({\n selector: 'ecl-gallery',\n templateUrl: './ecl-gallery.component.html',\n imports: [TranslatePipe, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses()',\n '[attr.role]': 'role',\n '(document:keydown.escape)': 'onEscapeKeydownHandler()',\n },\n})\nexport class EclGalleryComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy, AfterViewInit {\n readonly isOpenInFullScreenPossible = input(true, { transform: booleanAttribute });\n /**\n * If the items in the gallery can be shared. I.e. if the link for sharing will be present for each item.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n /**\n * If set to true, the gallery will have 100 view width.\n */\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * If set to true, no overlay will be displayed when user clicks on an image.\n */\n readonly isNoOverlay = input(false, { transform: booleanAttribute });\n /**\n * If set to false, no title will be displayed when user hover on a gallery item.\n */\n readonly isShowTitleOnHover = input(true, { transform: booleanAttribute });\n /**\n * Number of gallery items to be displayed by default. The rest can be displayed with the 'View all' button.\n */\n readonly maxVisibleItems = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * If set to true, a specific class will be applied, so the gallery thumbnails are displayed as a grid, all with same size.\n */\n readonly isGrid = input(false, { transform: booleanAttribute });\n\n readonly columns = input<2 | 3 | 4 | number, unknown>(3, { transform: numberAttribute });\n /**\n * This property can be used with 'isGrid' property set to true. By default gridTemplate is 0 and all the thimbnails have same size.\n * If another template value is set, some additional formatting is applied and the thumbnails will have different sizes.\n */\n readonly gridTemplate = input<'0' | '1' | '2' | '3' | '4' | string>('0');\n /**\n * The ratio that will be applied to the gallery thumbnails.\n */\n readonly ratio = input<'3-1' | '3-2' | string>('3-2');\n\n /**\n * Emits event when user clicks on an item to expand it.\n */\n readonly show = output<EclGalleryShowEvent>();\n /**\n * Emits event when an expanded item is closed.\n */\n readonly hide = output<EclGalleryHideEvent>();\n /**\n * Emits event when an item is opened in full screen.\n */\n readonly openFullScreen = output<EclGalleryFullScreenEvent>();\n /**\n * Emits event when an item is shared.\n */\n readonly share = output<EclGalleryShareEvent>();\n /**\n * Emits event when user is browsing items, opened in an overlay.\n */\n readonly itemSwitch = output<EclGalleryItemEvent>();\n\n protected readonly galleryItems = contentChildren(EclGalleryItemComponent);\n protected readonly galleryFooter = contentChild(EclGalleryFooterComponent);\n protected readonly overlayChild = viewChild<ElementRef>('overlay');\n protected readonly headerChild = viewChild<ElementRef>('header');\n protected readonly footerChild = viewChild<ElementRef>('footer');\n\n /**\n * The default role of the component is 'region' and should not be changed.\n */\n protected role = 'region';\n\n /**\n * Applies specific clases to the component, related to the component properties values.\n */\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-gallery'),\n this.isFullWidth() ? 'ecl-gallery--full-width' : '',\n this.isGrid() ? 'ecl-gallery--grid' : '',\n this.isGrid() && this.gridTemplate() === '0' ? `ecl-gallery--col-${this.columns()}` : '',\n this.isGrid() ? `ecl-gallery--template-${this.gridTemplate()}`: '',\n this.isGrid() ? `ecl-gallery--ratio-${this.ratio()}`: '',\n !this.isShowTitleOnHover() ? 'ecl-gallery--no-hover' : '',\n this.isNoOverlay() ? 'ecl-gallery--no-overlay' : '',\n ].join(' ').trim());\n\n protected isDialogVisible = false;\n protected isMobile = false;\n protected itemsCount: number;\n protected itemIndex: number;\n protected item: EclGalleryItemComponent;\n\n /**\n * The effective number of visible items. Initialized from the maxVisibleItems input and\n * adjusted internally depending on the current breakpoint.\n */\n private readonly effectiveMaxVisibleItems = signal<number>(undefined);\n private iframeWidth: number;\n private iframeHeight: number;\n private BREAKPOINT_CHANGES_TIMEOUT = 500;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private visibleItems: number;\n private MAX_VISIBLE_ITEMS_MOBILE = 3;\n private RESOLUTION_16_9_PROPOTION = 16 / 9;\n private RESOLUTION_4_3_PROPOTION = 4 / 3;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private platformId = inject(PLATFORM_ID);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n ngAfterViewInit(): void {\n // Manages the initial display of the gallery, the footer and the visible/hidden items.\n if (isPlatformBrowser(this.platformId) && this.window) {\n this.observeBreakpointChanges();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setIframeDimensions();\n });\n }\n }\n\n ngAfterContentInit(): void {\n this.itemsCount = this.galleryItems().length;\n this.effectiveMaxVisibleItems.set(this.maxVisibleItems() ? this.maxVisibleItems() : this.itemsCount);\n this.visibleItems = this.effectiveMaxVisibleItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.itemsCount.set(this.itemsCount);\n galleryFooter.isShowToggleBtn.set(this.hasHiddenGaleryItems());\n // Subscribe to 'toggleItems' event from gallery footer, to show or collapse items.\n outputToObservable(galleryFooter.toggleItems).pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n if (evt.expandAll) {\n this.showAllItems();\n } else {\n this.collapseItems();\n }\n });\n }\n\n if (!this.isNoOverlay()) {\n // For each item, subscribe to 'itemClick' event.\n this.galleryItems().forEach((item) => {\n outputToObservable(item.itemClick).pipe(takeUntil(this.destroy$)).subscribe((_) => {\n this.isDialogVisible = true;\n this.item = item;\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), item);\n this.show.emit(new EclGalleryShowEvent());\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => this.setIframeDimensions());\n }\n });\n });\n } else {\n this.galleryItems().forEach((item) => item.isNoOverlay.set(true));\n }\n\n if (this.hasHiddenGaleryItems()) {\n this.collapseItems();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the previous item. Event contains the new current item.\n * @param evt\n */\n protected onPrevious(evt: MouseEvent): void {\n this.item = this.findPreviousItem(Array.from(this.galleryItems()), this.item);\n\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the next item. Event contains the new current item.\n * @param evt\n */\n protected onNext(evt: MouseEvent): void {\n this.item = this.findNextItem(Array.from(this.galleryItems()), this.item);\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'hide' event, when closing item dialog.\n * @param evt\n */\n protected onClose(evt: MouseEvent): void {\n this.item = null;\n this.itemIndex = -1;\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n /**\n * On pressing 'esc' key - close the item dialog and emit 'hide' event.\n * @param event\n */\n protected onEscapeKeydownHandler(): void {\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n protected onFullScreenOpen(evt: MouseEvent): void {\n this.openFullScreen.emit(new EclGalleryFullScreenEvent(this.item));\n }\n\n protected onShare(evt: MouseEvent): void {\n this.share.emit(new EclGalleryShareEvent(this.item));\n evt.preventDefault();\n }\n\n protected canBeOpenInFullScreen(): boolean {\n return this.isOpenInFullScreenPossible() && this.item?.isOpenInFullScreenPossible;\n }\n\n protected canBeShared(): boolean {\n return this.isShareable() && this.item?.isShareable();\n }\n\n protected getIframeWidth(): number {\n return this.iframeWidth;\n }\n\n protected getIframeHeight(): number {\n return this.iframeHeight;\n }\n\n private setIframeDimensions(): void {\n const { width, height } = this.getCalculatedIframeDimensions();\n this.iframeWidth = width;\n this.iframeHeight = height;\n }\n\n private getCalculatedIframeDimensions(): { width: number; height: number } {\n let width = window.innerWidth;\n let height =\n this.overlayChild().nativeElement.clientHeight -\n this.headerChild().nativeElement.clientHeight -\n this.footerChild().nativeElement.clientHeight;\n if (width > height) {\n const scaledHeight = height * this.RESOLUTION_16_9_PROPOTION;\n if (scaledHeight > width) {\n width = width * 0.95;\n } else {\n width = scaledHeight;\n }\n } else {\n const scaledWith = width * this.RESOLUTION_4_3_PROPOTION;\n if (scaledWith > height) {\n height = height * 0.95;\n } else {\n height = scaledWith;\n }\n }\n return {\n width,\n height,\n };\n }\n\n private findItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n return items.findIndex((it) => it === item) + 1;\n }\n\n private findPreviousItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findPreviousItemIndex(items, item);\n return items[index];\n }\n\n private findNextItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findNextItemIndex(items, item);\n return items[index];\n }\n\n private findPreviousItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex === 0 ? items.length - 1 : currentIndex - 1;\n }\n\n private findNextItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex >= items.length - 1 ? 0 : currentIndex + 1;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet])\n .pipe(takeUntil(this.destroy$), delay(this.BREAKPOINT_CHANGES_TIMEOUT))\n .subscribe((result) => {\n this.isMobile = result.matches;\n if (this.isMobile) {\n this.manageItemsMobile();\n } else {\n this.manageItemsDesktop();\n }\n });\n }\n\n private manageItemsMobile(): void {\n this.effectiveMaxVisibleItems.set(this.MAX_VISIBLE_ITEMS_MOBILE);\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn.set(this.hasHiddenGaleryItems());\n }\n }\n\n private manageItemsDesktop(): void {\n this.effectiveMaxVisibleItems.set(this.visibleItems);\n this.getVisibleItems().forEach((elem) => this.showGaleryItem(elem));\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn.set(this.hasHiddenGaleryItems());\n }\n }\n\n private hasHiddenGaleryItems(): boolean {\n const maxVisibleItems = this.effectiveMaxVisibleItems();\n if (maxVisibleItems && this.itemsCount > 0 && maxVisibleItems < this.itemsCount) {\n return true;\n } else {\n return false;\n }\n }\n\n private collapseItems(): void {\n this.getHiddenItems().forEach((elem) => this.hideGaleryItem(elem));\n }\n\n private showAllItems(): void {\n const hiddenItems = this.getHiddenItems();\n hiddenItems.forEach((elem) => this.showGaleryItem(elem));\n setTimeout(() => hiddenItems[0].onFocus());\n }\n\n private hideGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden.set(true);\n }\n\n private showGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden.set(false);\n }\n\n private getHiddenItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt >= this.effectiveMaxVisibleItems());\n }\n private getVisibleItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt < this.effectiveMaxVisibleItems());\n }\n}\n","<ul class=\"ecl-gallery__list\">\n <ng-content></ng-content>\n</ul>\n\n<ng-content select=\"ecl-gallery-footer\"></ng-content>\n\n<dialog #overlay [attr.open]=\"isDialogVisible || null\" class=\"ecl-gallery__overlay\"\n [attr.aria-label]=\"'ecl.gallery.FULL-SIZE-DISPLAY' | translate\">\n <header #header class=\"ecl-gallery__close\">\n <button (click)=\"onClose($event)\" eclButton class=\"ecl-gallery__close-button\" isIconOnly variant=\"tertiary\" eclStyle=\"inverted\">\n <span eclButtonLabel>\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n </header>\n <section class=\"ecl-gallery__slider\">\n <div class=\"ecl-gallery__slider-media-container\">\n @if(item?.isExternalVideo) {\n <div class=\"ecl-gallery__slider-embed\">\n @if (item?.srVideoAudioDescription()) {\n <div class=\"ecl-gallery__slider-embed-audio\">{{item?.srVideoAudioDescription()}}</div>\n }\n <iframe [src]=\"item?.getUrlExternalVideo()\" [style.width.px]=\"getIframeWidth()\"\n [style.height.px]=\"getIframeHeight()\" [attr.title]=\"item.title() + ' - Video player'\" frameborder=\"0\">\n </iframe>\n </div>\n }\n @if(item?.isImage) {\n <picture class=\"ecl-picture ecl-gallery__picture ecl-gallery__slider-image\">\n @for(el of item.galleryPicture()?.sources; track el.srcset) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img [attr.alt]=\"item?.galleryPicture()?.img.alt || null\"\n [src]=\"item?.galleryPicture()?.img.src\"\n [attr.loading]=\"item?.galleryPicture()?.img.loading || null\" />\n </picture>\n }\n @if(item?.isVideo) {\n <video controls=\"controls\" class=\"ecl-gallery__slider-video\" [attr.aria-label]=\"item.title() + ' - Video player'\"\n [attr.poster]=\"item.mediaChild()?.poster()\" playsinline>\n @for (el of item.mediaChild()?.sources; track el.src) {\n <source [attr.src]=\"el.src\" [attr.type]=\"el.type\" />\n }\n @for (elem of item.mediaChild()?.tracks; track elem.src) {\n <track [attr.src]=\"elem.src\" [attr.kind]=\"elem.kind\" [attr.srcLang]=\"elem.srcLang\"\n [attr.label]=\"elem.label\" />\n }\n </video>\n }\n </div>\n </section>\n <footer #footer class=\"ecl-gallery__detail\">\n <div class=\"ecl-container\">\n <div class=\"ecl-gallery__detail-container\">\n <div class=\"ecl-gallery__pager\">\n <div class=\"ecl-gallery__detail-counter\">\n <span>{{ itemIndex }}</span> {{ 'ecl.common.OF' | translate }} <span>{{ itemsCount }}</span>\n </div>\n <div class=\"ecl-gallery__controls\">\n <button eclButton class=\"ecl-gallery__slider-previous\" variant=\"tertiary\" isIconOnly\n (click)=\"onPrevious($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>\n {{ 'ecl.common.PREVIOUS' | translate }}\n </span>\n </button>\n <button eclButton class=\"ecl-gallery__slider-next\" variant=\"tertiary\" isIconOnly\n (click)=\"onNext($event)\">\n <span eclButtonLabel>\n {{ 'ecl.common.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-actions\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-description\">\n @if(isMobile) {\n <div class=\"ecl-gallery__detail-actions-mobile\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n }\n @if(item?.title()) {\n <span class=\"ecl-gallery__title\" [id]=\"item?.resolvedItemId()\">{{ item?.title() }}</span>\n }\n @if(item?.description()) {\n <span class=\"ecl-gallery__caption\">{{ item?.description() }}</span>\n }\n @if(item?.meta()) {\n <span class=\"ecl-gallery__meta\">{{ item?.meta() }}</span>\n }\n </div>\n </div>\n </footer>\n</dialog>\n\n<ng-template #links>\n @if(canBeOpenInFullScreen()) {\n <a eclLink [attr.aria-describedby]=\"item?.titleId()\" variant=\"standalone\"\n class=\"ecl-gallery__download\" [href]=\"item?.getDownloadLink()\" target=\"_blank\"\n (click)=\"onFullScreenOpen($event)\" isInverted>\n <span eclLinkLabel>{{ 'ecl.gallery.VIEW-ORIGINAL' | translate }}</span>\n <ecl-icon icon=\"fullscreen\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n @if(canBeShared()) {\n <a [attr.aria-describedby]=\"item?.titleId()\" eclLink variant=\"standalone\" isInverted\n class=\"ecl-gallery__share\" href=\"\" (click)=\"onShare($event)\">\n <span eclLinkLabel>{{ 'ecl.common.SHARE' | translate }}</span>\n <ecl-icon icon=\"share\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n</ng-template>","import { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryComponent } from './ecl-gallery.component';\n\nexport * from './ecl-gallery.component';\nexport * from './ecl-gallery-item.component';\nexport * from './ecl-gallery-footer.component';\nexport * from './ecl-gallery-media.directive';\nexport * from './events/index';\nexport * from './models/ecl-gallery-item.model';\n\nexport const EUI_ECL_GALLERY = [\n EclGalleryComponent,\n EclGalleryFooterComponent,\n EclGalleryItemComponent,\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-gallery.mjs","sources":["../../components/ecl-gallery/events/ecl-gallery.event.ts","../../components/ecl-gallery/events/ecl-gallery-item.event.ts","../../components/ecl-gallery/events/ecl-gallery-item-click.event.ts","../../components/ecl-gallery/events/ecl-gallery-toggle-items.event.ts","../../components/ecl-gallery/ecl-gallery-footer.component.ts","../../components/ecl-gallery/ecl-gallery-footer.component.html","../../components/ecl-gallery/ecl-gallery-media.directive.ts","../../components/ecl-gallery/ecl-gallery-item.component.ts","../../components/ecl-gallery/ecl-gallery-item.component.html","../../components/ecl-gallery/ecl-gallery.component.ts","../../components/ecl-gallery/ecl-gallery.component.html","../../components/ecl-gallery/index.ts","../../components/ecl-gallery/eui-ecl-components-ecl-gallery.ts"],"sourcesContent":["import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryShowEvent extends EclBaseEvent {}\nexport class EclGalleryHideEvent extends EclBaseEvent {}\nexport class EclGalleryFullScreenEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\nexport class EclGalleryShareEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\nimport { EclGalleryItem } from '../models/ecl-gallery-item.model';\n\nexport class EclGalleryItemEvent extends EclBaseEvent {\n\tconstructor(public galleryItem: EclGalleryItem) {\n\t\tsuper();\n\t}\n}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryItemClickEvent extends EclBaseEvent {}","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclGalleryToggleItemsEvent extends EclBaseEvent {\n\tconstructor(public expandAll: boolean) {\n\t\tsuper();\n\t}\n}","import { Component, OnInit, input, output, signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { EclGalleryToggleItemsEvent } from './events';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\n\n/**\n * Manages styling and functionality for gallery footer.\n */\n@Component({\n selector: 'ecl-gallery-footer',\n templateUrl: './ecl-gallery-footer.component.html',\n imports: [TranslatePipe, ...EUI_ECL_BUTTON],\n host: {\n 'class': 'ecl-gallery__footer',\n },\n})\nexport class EclGalleryFooterComponent implements OnInit {\n readonly infoId = input<string>(undefined);\n /**\n * Event, that is emitted when items are expanded/collapsed.\n */\n readonly toggleItems = output<EclGalleryToggleItemsEvent>();\n\n /**\n * Total number of gallery items (set by the parent gallery).\n */\n readonly itemsCount = signal<number>(undefined);\n\n /**\n * Whether the toggle button should be displayed (set by the parent gallery).\n */\n readonly isShowToggleBtn = signal(false);\n\n /**\n * The resolved info id. Falls back to a generated UUID when no infoId input is provided.\n */\n protected readonly resolvedInfoId = signal<string>(undefined);\n\n /**\n * Whether the hidden items are currently expanded.\n */\n protected readonly isExpanded = signal(false);\n\n ngOnInit(): void {\n this.resolvedInfoId.set(this.infoId() ?? crypto.randomUUID());\n }\n\n protected onToggle(): void {\n this.isExpanded.set(!this.isExpanded());\n this.toggleItems.emit(new EclGalleryToggleItemsEvent(this.isExpanded()));\n }\n}\n","<div class=\"ecl-gallery__info\">\n <div class=\"ecl-gallery__info-total\" [id]=\"infoId()\">\n <strong>{{ itemsCount() }}</strong>{{ 'ecl.gallery.MEDIA-FILES-COUNT' | translate }}\n </div>\n @if(isShowToggleBtn()) {\n @if(!isExpanded()) {\n <button [attr.aria-describedby]=\"resolvedInfoId()\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.SHOW-MORE-ITEMS' | translate }}\n </button>\n } @else {\n <button [attr.aria-describedby]=\"resolvedInfoId()\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.common.COLLAPSE' | translate }}\n </button>\n }\n }\n</div>\n<hr class=\"ecl-gallery__footer-divider\" />\n<div class=\"ecl-gallery__footer-link\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectorRef, Directive, ElementRef, OnInit, afterNextRender, booleanAttribute, computed, inject, input, signal } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\nexport class EclGalleryMediaSource {\n src?: string;\n type?: string;\n}\n\nexport class EclGalleryMediaTrack {\n src?: string;\n kind?: string;\n srcLang?: string;\n label?: string;\n}\n\nexport class EclGalleryPictureSource {\n srcset? : string;\n media? : string;\n}\n\nexport class EclGalleryPictureImage {\n src? : string;\n alt? : string;\n loading?: string;\n}\n\n/**\n * Manages image/video for the thumbnail in the gallery. Adding some styling and functionality.\n */\n@Directive({\n selector: '[eclGalleryMedia], [eclGalleryImage]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-video]': 'isVideo()',\n },\n})\nexport class EclGalleryMediaDirective extends ECLBaseDirective implements OnInit {\n /**\n * To be used when there is no thimbnail added. Instead the 'poster' attribute in the <video> element is used\n */\n readonly poster = input<string>(undefined);\n /**\n * When this is true, on mousehover the image will be zoomed.\n */\n readonly hasZoom = input(false, { transform: booleanAttribute });\n sources: EclGalleryMediaSource[] = [];\n tracks: EclGalleryMediaTrack[] = [];\n\n protected readonly isVideo = signal(false);\n\n /**\n * Applies the ECL classes for the component.\n */\n protected readonly cssClasses = computed<string>(() =>\n [\n super.getCssClasses('ecl-gallery__image'),\n this.hasZoom() && this.isVideo() ? 'ecl-video--zoom' : '',\n ].join(' ').trim());\n\n private el = inject(ElementRef);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryMediaChildren();\n });\n }\n\n ngOnInit(): void {\n this.checkIsVideo();\n }\n\n private checkIsVideo(): void {\n const selector = this.el.nativeElement.tagName;\n this.isVideo.set(selector === 'VIDEO');\n }\n\n private createGalleryMediaChildren(): void {\n if (!this.getHostElement().hasChildNodes) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLInputElement) => {\n if (el.nodeName === 'SOURCE') {\n const mediaSource = new EclGalleryMediaSource();\n mediaSource.src = el.getAttribute('src');\n mediaSource.type = el.getAttribute('type');\n this.sources.push(mediaSource);\n } else if (el.nodeName === 'TRACK') {\n const mediaTrack = new EclGalleryMediaTrack();\n mediaTrack.src = el.getAttribute('src');\n mediaTrack.kind = el.getAttribute('kind');\n mediaTrack.srcLang = el.getAttribute('srcLang');\n mediaTrack.label = el.getAttribute('label');\n this.tracks.push(mediaTrack);\n }\n });\n }\n\n private getHostElement(): HTMLInputElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Adds styling and functionality for gallery picture component.\n */\n@Directive({\n selector: 'picture[eclGalleryPicture]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclGalleryPictureDirective extends ECLBaseDirective {\n sources: EclGalleryPictureSource[] = [];\n img: EclGalleryPictureImage ={};\n\n // TODO: to be removed in v19. Thumbnail should be added by user.\n protected readonly isThumbnail = signal(false);\n\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-picture'), this.isThumbnail() ? 'ecl-gallery__thumbnail': 'ecl-gallery__picture'].join(' ').trim());\n\n private el = inject(ElementRef);\n private cd = inject(ChangeDetectorRef);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.createGalleryPictureChildren();\n });\n }\n\n private createGalleryPictureChildren(): void {\n if (!this.getHostElement().hasChildNodes()) {\n return;\n }\n this.getHostElement().childNodes.forEach((el: HTMLSourceElement | HTMLImageElement) => {\n if (el.nodeName === 'SOURCE') {\n const pictureSource = new EclGalleryPictureSource();\n pictureSource.srcset = el.getAttribute('srcset');\n pictureSource.media = el.getAttribute('media');\n this.sources.push(pictureSource);\n } else if (el.nodeName === 'IMG') {\n const imageSource = new EclGalleryPictureImage();\n imageSource.src = el.getAttribute('src');\n imageSource.alt = el.getAttribute('alt');\n imageSource.loading = el.getAttribute('loading');\n this.img.src = imageSource.src;\n this.img.alt = imageSource.alt;\n this.img.loading = imageSource.loading;\n\n }\n this.cd.detectChanges();\n });\n }\n\n private getHostElement(): HTMLElement {\n return this.el.nativeElement;\n }\n}\n\n/**\n * Applies classes for the gallery thumbnail.\n */\n@Directive({\n selector: 'picture[eclGalleryThumbnail]',\n host: {\n '[class]': 'cssClasses()',\n '[class.ecl-picture--zoom]': 'hasZoom()',\n },\n})\nexport class EclGalleryThumbnailDirective extends ECLBaseDirective {\n readonly hasZoom = input(false, { transform: booleanAttribute });\n\n protected readonly cssClasses = computed<string>(() =>\n super.getCssClasses('ecl-picture ecl-gallery__thumbnail'));\n}\n","import { Component, ElementRef, OnInit, Renderer2, booleanAttribute, computed, inject, input, output, signal, contentChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryItemClickEvent } from './events';\nimport { EclGalleryItem } from './models/ecl-gallery-item.model';\n\n/**\n * Wrapper component for gallery item's elements.\n */\n@Component({\n selector: 'ecl-gallery-item',\n templateUrl: './ecl-gallery-item.component.html',\n imports: [...EUI_ECL_ICON],\n host: {\n '[class]': 'cssClasses()',\n '[attr.role]': 'role',\n '(click)': 'onItemClick($event)',\n },\n})\nexport class EclGalleryItemComponent extends ECLBaseDirective implements EclGalleryItem, OnInit {\n /**\n * Can this item be shared, i.e. show/hide share button.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n readonly mediaType = input<'image' | 'video' | 'externalVideo'>('image');\n /**\n * The source link to the image/video, that will be shown in the original size (when open image/video in overlay or in orginal size).\n */\n readonly src = input<string>(undefined);\n readonly meta = input<string>(undefined);\n readonly description = input<string>(undefined);\n /**\n * Embeded audio description.\n */\n readonly srVideoAudioDescription = input<string>(undefined);\n readonly icon = input<string>(undefined);\n readonly title = input<string>(undefined);\n readonly itemId = input<string>(undefined);\n readonly ariaLabel = input<string | null>(null);\n readonly itemClick = output<EclGalleryItemClickEvent>();\n readonly mediaChild = contentChild(EclGalleryMediaDirective);\n readonly galleryPicture = contentChild(EclGalleryPictureDirective);\n\n /**\n * The resolved id of the item. Falls back to a generated UUID when no itemId input is provided.\n */\n readonly resolvedItemId = signal<string>(undefined);\n\n /**\n * Whether the item is currently hidden in the gallery (controlled by the parent gallery).\n */\n readonly isHidden = signal(false);\n\n /**\n * Whether the item is displayed without an overlay (controlled by the parent gallery).\n */\n readonly isNoOverlay = signal(false);\n\n /**\n * Creates id for the title\n */\n readonly titleId = computed<string>(() => `${this.resolvedItemId()}-title`);\n\n /**\n * The role attribute of the item is 'listitem', should not be changed.\n */\n protected role = 'listitem';\n\n /**\n * Binds specific classes for the item. Some depend on some of the properties of the component.\n */\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-gallery__item'), this.isHidden() ? 'ecl-gallery__item--hidden' : ''].join(' ').trim());\n\n private externalVideoUrl: SafeResourceUrl;\n private domSanitizer = inject(DomSanitizer);\n private renderer = inject(Renderer2);\n private el = inject(ElementRef);\n\n ngOnInit(): void {\n if (this.isExternalVideo) {\n const iframeUrl = new URL(this.src());\n if (iframeUrl.host.includes('youtube')) {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(iframeUrl.toString());\n } else {\n this.externalVideoUrl = this.domSanitizer.bypassSecurityTrustResourceUrl(this.src());\n }\n }\n\n this.resolvedItemId.set(this.itemId() ?? crypto.randomUUID());\n }\n\n get isImage(): boolean {\n return this.mediaType() === 'image';\n }\n\n get isVideo(): boolean {\n return this.mediaType() === 'video';\n }\n\n get isExternalVideo(): boolean {\n return this.mediaType() === 'externalVideo';\n }\n\n get isOpenInFullScreenPossible(): boolean {\n return this.mediaType() !== 'externalVideo';\n }\n\n getDownloadLink(): string {\n return this.src();\n }\n\n getUrlExternalVideo(): SafeResourceUrl {\n return this.externalVideoUrl;\n }\n\n onFocus(): void {\n this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();\n }\n\n protected onItemClick(evt: MouseEvent): void {\n this.itemClick.emit(new EclGalleryItemClickEvent());\n evt.preventDefault();\n }\n}\n","<a [href]=\"src()\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay()\" [id]=\"resolvedItemId()\"\n [attr.aria-label]=\"ariaLabel()\">\n <figure class=\"ecl-gallery__image-container\">\n <div class=\"ecl-gallery__icon-zoom-wrapper\">\n <ecl-icon class=\"ecl-gallery__icon-zoom\" iconSet=\"phosphor\" icon=\"arrows-out-simple\" size=\"s\"></ecl-icon>\n </div>\n @if(mediaType() !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon\" iconSet=\"phosphor-fill\" icon=\"play\" size=\"s\"></ecl-icon>\n </div>\n } \n <ng-content select=\"[eclGalleryPicture], [eclGalleryThumbnail], [eclGalleryMedia], [eclGalleryImage]\"></ng-content>\n <figcaption class=\"ecl-gallery__description\">\n @if(title()) {\n <span class=\"ecl-gallery__title\" [id]=\"titleId()\">{{title()}}</span>\n }\n @if(description()) {\n <span class=\"ecl-gallery__caption\">{{ description() }}</span>\n }\n @if(icon()) {\n <ecl-icon class=\"ecl-gallery__description-icon\" [icon]=\"icon()\"></ecl-icon>\n }\n <span class=\"ecl-gallery__meta\">\n {{ meta() }}\n </span>\n </figcaption>\n </figure>\n</a>\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\nimport { AfterContentInit, AfterViewInit, Component, DOCUMENT, ElementRef, OnDestroy, PLATFORM_ID, booleanAttribute, computed, inject, numberAttribute, output, input, signal, contentChildren, contentChild, viewChild } from '@angular/core';\nimport { outputToObservable } from '@angular/core/rxjs-interop';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject, delay, fromEvent } from 'rxjs';\nimport { auditTime, takeUntil } from 'rxjs/operators';\nimport { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport { EclGalleryFullScreenEvent, EclGalleryHideEvent, EclGalleryItemEvent, EclGalleryShareEvent, EclGalleryShowEvent } from './events';\n\n/**\n * This component represents a collection of images or videos and allows a user to browse them.\n * Adds functionality and styling, according to the ECL standards.\n */\n@Component({\n selector: 'ecl-gallery',\n templateUrl: './ecl-gallery.component.html',\n imports: [TranslatePipe, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n host: {\n '[class]': 'cssClasses()',\n '[attr.role]': 'role',\n '(document:keydown.escape)': 'onEscapeKeydownHandler()',\n },\n})\nexport class EclGalleryComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy, AfterViewInit {\n readonly isOpenInFullScreenPossible = input(true, { transform: booleanAttribute });\n /**\n * If the items in the gallery can be shared. I.e. if the link for sharing will be present for each item.\n */\n readonly isShareable = input(true, { transform: booleanAttribute });\n /**\n * If set to true, the gallery will have 100 view width.\n */\n readonly isFullWidth = input(false, { transform: booleanAttribute });\n /**\n * If set to true, no overlay will be displayed when user clicks on an image.\n */\n readonly isNoOverlay = input(false, { transform: booleanAttribute });\n /**\n * If set to false, no title will be displayed when user hover on a gallery item.\n */\n readonly isShowTitleOnHover = input(true, { transform: booleanAttribute });\n /**\n * Number of gallery items to be displayed by default. The rest can be displayed with the 'View all' button.\n */\n readonly maxVisibleItems = input<number, unknown>(undefined, { transform: numberAttribute });\n /**\n * If set to true, a specific class will be applied, so the gallery thumbnails are displayed as a grid, all with same size.\n */\n readonly isGrid = input(false, { transform: booleanAttribute });\n\n readonly columns = input<2 | 3 | 4 | number, unknown>(3, { transform: numberAttribute });\n /**\n * This property can be used with 'isGrid' property set to true. By default gridTemplate is 0 and all the thimbnails have same size.\n * If another template value is set, some additional formatting is applied and the thumbnails will have different sizes.\n */\n readonly gridTemplate = input<'0' | '1' | '2' | '3' | '4' | string>('0');\n /**\n * The ratio that will be applied to the gallery thumbnails.\n */\n readonly ratio = input<'3-1' | '3-2' | string>('3-2');\n\n /**\n * Emits event when user clicks on an item to expand it.\n */\n readonly show = output<EclGalleryShowEvent>();\n /**\n * Emits event when an expanded item is closed.\n */\n readonly hide = output<EclGalleryHideEvent>();\n /**\n * Emits event when an item is opened in full screen.\n */\n readonly openFullScreen = output<EclGalleryFullScreenEvent>();\n /**\n * Emits event when an item is shared.\n */\n readonly share = output<EclGalleryShareEvent>();\n /**\n * Emits event when user is browsing items, opened in an overlay.\n */\n readonly itemSwitch = output<EclGalleryItemEvent>();\n\n protected readonly galleryItems = contentChildren(EclGalleryItemComponent);\n protected readonly galleryFooter = contentChild(EclGalleryFooterComponent);\n protected readonly overlayChild = viewChild<ElementRef>('overlay');\n protected readonly headerChild = viewChild<ElementRef>('header');\n protected readonly footerChild = viewChild<ElementRef>('footer');\n\n /**\n * The default role of the component is 'region' and should not be changed.\n */\n protected role = 'region';\n\n /**\n * Applies specific clases to the component, related to the component properties values.\n */\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-gallery'),\n this.isFullWidth() ? 'ecl-gallery--full-width' : '',\n this.isGrid() ? 'ecl-gallery--grid' : '',\n this.isGrid() && this.gridTemplate() === '0' ? `ecl-gallery--col-${this.columns()}` : '',\n this.isGrid() ? `ecl-gallery--template-${this.gridTemplate()}`: '',\n this.isGrid() ? `ecl-gallery--ratio-${this.ratio()}`: '',\n !this.isShowTitleOnHover() ? 'ecl-gallery--no-hover' : '',\n this.isNoOverlay() ? 'ecl-gallery--no-overlay' : '',\n ].join(' ').trim());\n\n protected isDialogVisible = false;\n protected isMobile = false;\n protected itemsCount: number;\n protected itemIndex: number;\n protected item: EclGalleryItemComponent;\n\n /**\n * The effective number of visible items. Initialized from the maxVisibleItems input and\n * adjusted internally depending on the current breakpoint.\n */\n private readonly effectiveMaxVisibleItems = signal<number>(undefined);\n private iframeWidth: number;\n private iframeHeight: number;\n private BREAKPOINT_CHANGES_TIMEOUT = 500;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private visibleItems: number;\n private MAX_VISIBLE_ITEMS_MOBILE = 3;\n private RESOLUTION_16_9_PROPOTION = 16 / 9;\n private RESOLUTION_4_3_PROPOTION = 4 / 3;\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private platformId = inject(PLATFORM_ID);\n private readonly document = inject<Document>(DOCUMENT);\n private readonly window = this.document.defaultView; // Window | null\n\n ngAfterViewInit(): void {\n // Manages the initial display of the gallery, the footer and the visible/hidden items.\n if (isPlatformBrowser(this.platformId) && this.window) {\n this.observeBreakpointChanges();\n fromEvent(this.window, 'resize').pipe(\n auditTime(50),\n takeUntil(this.destroy$)).subscribe(() => {\n this.setIframeDimensions();\n });\n }\n }\n\n ngAfterContentInit(): void {\n this.itemsCount = this.galleryItems().length;\n this.effectiveMaxVisibleItems.set(this.maxVisibleItems() ? this.maxVisibleItems() : this.itemsCount);\n this.visibleItems = this.effectiveMaxVisibleItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.itemsCount.set(this.itemsCount);\n galleryFooter.isShowToggleBtn.set(this.hasHiddenGaleryItems());\n // Subscribe to 'toggleItems' event from gallery footer, to show or collapse items.\n outputToObservable(galleryFooter.toggleItems).pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n if (evt.expandAll) {\n this.showAllItems();\n } else {\n this.collapseItems();\n }\n });\n }\n\n if (!this.isNoOverlay()) {\n // For each item, subscribe to 'itemClick' event.\n this.galleryItems().forEach((item) => {\n outputToObservable(item.itemClick).pipe(takeUntil(this.destroy$)).subscribe((_) => {\n this.isDialogVisible = true;\n this.item = item;\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), item);\n this.show.emit(new EclGalleryShowEvent());\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => this.setIframeDimensions());\n }\n });\n });\n } else {\n this.galleryItems().forEach((item) => item.isNoOverlay.set(true));\n }\n\n if (this.hasHiddenGaleryItems()) {\n this.collapseItems();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the previous item. Event contains the new current item.\n * @param evt\n */\n protected onPrevious(evt: MouseEvent): void {\n this.item = this.findPreviousItem(Array.from(this.galleryItems()), this.item);\n\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'itemSwitch' event, when switching to the next item. Event contains the new current item.\n * @param evt\n */\n protected onNext(evt: MouseEvent): void {\n this.item = this.findNextItem(Array.from(this.galleryItems()), this.item);\n this.itemIndex = this.findItemIndex(Array.from(this.galleryItems()), this.item);\n\n this.itemSwitch.emit(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'hide' event, when closing item dialog.\n * @param evt\n */\n protected onClose(evt: MouseEvent): void {\n this.item = null;\n this.itemIndex = -1;\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n /**\n * On pressing 'esc' key - close the item dialog and emit 'hide' event.\n * @param event\n */\n protected onEscapeKeydownHandler(): void {\n this.isDialogVisible = false;\n this.hide.emit(new EclGalleryHideEvent());\n }\n\n protected onFullScreenOpen(evt: MouseEvent): void {\n this.openFullScreen.emit(new EclGalleryFullScreenEvent(this.item));\n }\n\n protected onShare(evt: MouseEvent): void {\n this.share.emit(new EclGalleryShareEvent(this.item));\n evt.preventDefault();\n }\n\n protected canBeOpenInFullScreen(): boolean {\n return this.isOpenInFullScreenPossible() && this.item?.isOpenInFullScreenPossible;\n }\n\n protected canBeShared(): boolean {\n return this.isShareable() && this.item?.isShareable();\n }\n\n protected getIframeWidth(): number {\n return this.iframeWidth;\n }\n\n protected getIframeHeight(): number {\n return this.iframeHeight;\n }\n\n private setIframeDimensions(): void {\n const { width, height } = this.getCalculatedIframeDimensions();\n this.iframeWidth = width;\n this.iframeHeight = height;\n }\n\n private getCalculatedIframeDimensions(): { width: number; height: number } {\n let width = window.innerWidth;\n let height =\n this.overlayChild().nativeElement.clientHeight -\n this.headerChild().nativeElement.clientHeight -\n this.footerChild().nativeElement.clientHeight;\n if (width > height) {\n const scaledHeight = height * this.RESOLUTION_16_9_PROPOTION;\n if (scaledHeight > width) {\n width = width * 0.95;\n } else {\n width = scaledHeight;\n }\n } else {\n const scaledWith = width * this.RESOLUTION_4_3_PROPOTION;\n if (scaledWith > height) {\n height = height * 0.95;\n } else {\n height = scaledWith;\n }\n }\n return {\n width,\n height,\n };\n }\n\n private findItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n return items.findIndex((it) => it === item) + 1;\n }\n\n private findPreviousItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findPreviousItemIndex(items, item);\n return items[index];\n }\n\n private findNextItem(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findNextItemIndex(items, item);\n return items[index];\n }\n\n private findPreviousItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex === 0 ? items.length - 1 : currentIndex - 1;\n }\n\n private findNextItemIndex(items: EclGalleryItemComponent[], item: EclGalleryItemComponent): number {\n const currentIndex = items.findIndex((it) => it === item);\n return currentIndex >= items.length - 1 ? 0 : currentIndex + 1;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet])\n .pipe(takeUntil(this.destroy$), delay(this.BREAKPOINT_CHANGES_TIMEOUT))\n .subscribe((result) => {\n this.isMobile = result.matches;\n if (this.isMobile) {\n this.manageItemsMobile();\n } else {\n this.manageItemsDesktop();\n }\n });\n }\n\n private manageItemsMobile(): void {\n this.effectiveMaxVisibleItems.set(this.MAX_VISIBLE_ITEMS_MOBILE);\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn.set(this.hasHiddenGaleryItems());\n }\n }\n\n private manageItemsDesktop(): void {\n this.effectiveMaxVisibleItems.set(this.visibleItems);\n this.getVisibleItems().forEach((elem) => this.showGaleryItem(elem));\n this.collapseItems();\n const galleryFooter = this.galleryFooter();\n if (galleryFooter) {\n galleryFooter.isShowToggleBtn.set(this.hasHiddenGaleryItems());\n }\n }\n\n private hasHiddenGaleryItems(): boolean {\n const maxVisibleItems = this.effectiveMaxVisibleItems();\n if (maxVisibleItems && this.itemsCount > 0 && maxVisibleItems < this.itemsCount) {\n return true;\n } else {\n return false;\n }\n }\n\n private collapseItems(): void {\n this.getHiddenItems().forEach((elem) => this.hideGaleryItem(elem));\n }\n\n private showAllItems(): void {\n const hiddenItems = this.getHiddenItems();\n hiddenItems.forEach((elem) => this.showGaleryItem(elem));\n setTimeout(() => hiddenItems[0].onFocus());\n }\n\n private hideGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden.set(true);\n }\n\n private showGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden.set(false);\n }\n\n private getHiddenItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt >= this.effectiveMaxVisibleItems());\n }\n private getVisibleItems(): EclGalleryItemComponent[] {\n return this.galleryItems().filter((item, cnt) => cnt < this.effectiveMaxVisibleItems());\n }\n}\n","<ul class=\"ecl-gallery__list\">\n <ng-content></ng-content>\n</ul>\n\n<ng-content select=\"ecl-gallery-footer\"></ng-content>\n\n<dialog #overlay [attr.open]=\"isDialogVisible || null\" class=\"ecl-gallery__overlay\"\n [attr.aria-label]=\"'ecl.gallery.FULL-SIZE-DISPLAY' | translate\">\n <header #header class=\"ecl-gallery__close\">\n <button (click)=\"onClose($event)\" eclButton class=\"ecl-gallery__close-button\" isIconOnly variant=\"tertiary\" eclStyle=\"inverted\">\n <span eclButtonLabel>\n {{ 'ecl.common.CLOSE' | translate }}\n </span>\n <ecl-icon icon=\"close\" size=\"m\"></ecl-icon>\n </button>\n </header>\n <section class=\"ecl-gallery__slider\">\n <div class=\"ecl-gallery__slider-media-container\">\n @if(item?.isExternalVideo) {\n <div class=\"ecl-gallery__slider-embed\">\n @if (item?.srVideoAudioDescription()) {\n <div class=\"ecl-gallery__slider-embed-audio\">{{item?.srVideoAudioDescription()}}</div>\n }\n <iframe [src]=\"item?.getUrlExternalVideo()\" [style.width.px]=\"getIframeWidth()\"\n [style.height.px]=\"getIframeHeight()\" [attr.title]=\"item.title() + ' - Video player'\" frameborder=\"0\">\n </iframe>\n </div>\n }\n @if(item?.isImage) {\n <picture class=\"ecl-picture ecl-gallery__picture ecl-gallery__slider-image\">\n @for(el of item.galleryPicture()?.sources; track el.srcset) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img [attr.alt]=\"item?.galleryPicture()?.img.alt || null\"\n [src]=\"item?.galleryPicture()?.img.src\"\n [attr.loading]=\"item?.galleryPicture()?.img.loading || null\" />\n </picture>\n }\n @if(item?.isVideo) {\n <video controls=\"controls\" class=\"ecl-gallery__slider-video\" [attr.aria-label]=\"item.title() + ' - Video player'\"\n [attr.poster]=\"item.mediaChild()?.poster()\" playsinline>\n @for (el of item.mediaChild()?.sources; track el.src) {\n <source [attr.src]=\"el.src\" [attr.type]=\"el.type\" />\n }\n @for (elem of item.mediaChild()?.tracks; track elem.src) {\n <track [attr.src]=\"elem.src\" [attr.kind]=\"elem.kind\" [attr.srcLang]=\"elem.srcLang\"\n [attr.label]=\"elem.label\" />\n }\n </video>\n }\n </div>\n </section>\n <footer #footer class=\"ecl-gallery__detail\">\n <div class=\"ecl-container\">\n <div class=\"ecl-gallery__detail-container\">\n <div class=\"ecl-gallery__pager\">\n <div class=\"ecl-gallery__detail-counter\">\n <span>{{ itemIndex }}</span> {{ 'ecl.common.OF' | translate }} <span>{{ itemsCount }}</span>\n </div>\n <div class=\"ecl-gallery__controls\">\n <button eclButton class=\"ecl-gallery__slider-previous\" variant=\"tertiary\" isIconOnly\n (click)=\"onPrevious($event)\">\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-270\"></ecl-icon>\n <span eclButtonLabel>\n {{ 'ecl.common.PREVIOUS' | translate }}\n </span>\n </button>\n <button eclButton class=\"ecl-gallery__slider-next\" variant=\"tertiary\" isIconOnly\n (click)=\"onNext($event)\">\n <span eclButtonLabel>\n {{ 'ecl.common.NEXT' | translate }}\n </span>\n <ecl-icon icon=\"corner-arrow\" size=\"m\" transform=\"rotate-90\"></ecl-icon>\n </button>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-actions\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n </div>\n <div class=\"ecl-gallery__detail-description\">\n @if(isMobile) {\n <div class=\"ecl-gallery__detail-actions-mobile\">\n <ng-container *ngTemplateOutlet=\"links\"></ng-container>\n </div>\n }\n @if(item?.title()) {\n <span class=\"ecl-gallery__title\" [id]=\"item?.resolvedItemId()\">{{ item?.title() }}</span>\n }\n @if(item?.description()) {\n <span class=\"ecl-gallery__caption\">{{ item?.description() }}</span>\n }\n @if(item?.meta()) {\n <span class=\"ecl-gallery__meta\">{{ item?.meta() }}</span>\n }\n </div>\n </div>\n </footer>\n</dialog>\n\n<ng-template #links>\n @if(canBeOpenInFullScreen()) {\n <a eclLink [attr.aria-describedby]=\"item?.titleId()\" variant=\"standalone\"\n class=\"ecl-gallery__download\" [href]=\"item?.getDownloadLink()\" target=\"_blank\"\n (click)=\"onFullScreenOpen($event)\" isInverted>\n <span eclLinkLabel>{{ 'ecl.gallery.VIEW-ORIGINAL' | translate }}</span>\n <ecl-icon icon=\"fullscreen\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n @if(canBeShared()) {\n <a [attr.aria-describedby]=\"item?.titleId()\" eclLink variant=\"standalone\" isInverted\n class=\"ecl-gallery__share\" href=\"\" (click)=\"onShare($event)\">\n <span eclLinkLabel>{{ 'ecl.common.SHARE' | translate }}</span>\n <ecl-icon icon=\"share\" size=\"fluid\" focusable=\"false\"></ecl-icon>\n </a>\n }\n</ng-template>","import { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryComponent } from './ecl-gallery.component';\n\nexport * from './ecl-gallery.component';\nexport * from './ecl-gallery-item.component';\nexport * from './ecl-gallery-footer.component';\nexport * from './ecl-gallery-media.directive';\nexport * from './events/index';\nexport * from './models/ecl-gallery-item.model';\n\nexport const EUI_ECL_GALLERY = [\n EclGalleryComponent,\n EclGalleryFooterComponent,\n EclGalleryItemComponent,\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-help-block.mjs","sources":["../../components/ecl-help-block/ecl-help-block.directive.ts","../../components/ecl-help-block/index.ts","../../components/ecl-help-block/eui-ecl-components-ecl-help-block.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for rendering a help block element following the ECL design system.\n * \n * This directive allows conditional styling for disabled state.\n */\n@Directive({\n selector: '[eclHelpBlock]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclHelpBlockDirective extends ECLBaseDirective {\n /**\n * Indicates whether the help block is in a disabled state.\n * When true, the `ecl-help-block--disabled` class is added.\n */\n readonly isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * Applies ECL base class and optional modifier to the host element.\n * Returns a space-separated list of CSS classes.\n */\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-help-block'), this.isDisabled() ? 'ecl-help-block--disabled' : ''].join(' ').trim());\n}\n","import { EclHelpBlockDirective } from './ecl-help-block.directive';\n\nexport * from './ecl-help-block.directive';\n\nexport const EUI_ECL_HELP_BLOCK = [\n EclHelpBlockDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AAOG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAN3D,IAAA,WAAA,GAAA;;AAOI;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEnE;;;AAGG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAS,MAC7C,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,0BAA0B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;uFAAC;AACrH,IAAA;8GAbY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,cAAc;AAC5B,qBAAA;AACJ,iBAAA;;;ACTM,MAAM,kBAAkB,GAAG;IAC9B,qBAAqB;;;ACLzB;;AAEG
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-help-block.mjs","sources":["../../components/ecl-help-block/ecl-help-block.directive.ts","../../components/ecl-help-block/index.ts","../../components/ecl-help-block/eui-ecl-components-ecl-help-block.ts"],"sourcesContent":["import { Directive, booleanAttribute, computed, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for rendering a help block element following the ECL design system.\n * \n * This directive allows conditional styling for disabled state.\n */\n@Directive({\n selector: '[eclHelpBlock]',\n host: {\n '[class]': 'cssClasses()',\n },\n})\nexport class EclHelpBlockDirective extends ECLBaseDirective {\n /**\n * Indicates whether the help block is in a disabled state.\n * When true, the `ecl-help-block--disabled` class is added.\n */\n readonly isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * Applies ECL base class and optional modifier to the host element.\n * Returns a space-separated list of CSS classes.\n */\n protected readonly cssClasses = computed<string>(() =>\n [super.getCssClasses('ecl-help-block'), this.isDisabled() ? 'ecl-help-block--disabled' : ''].join(' ').trim());\n}\n","import { EclHelpBlockDirective } from './ecl-help-block.directive';\n\nexport * from './ecl-help-block.directive';\n\nexport const EUI_ECL_HELP_BLOCK = [\n EclHelpBlockDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;AAIG;AAOG,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AAN3D,IAAA,WAAA,GAAA;;AAOI;;;AAGG;QACM,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEnE;;;AAGG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAS,MAC7C,CAAC,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,GAAG,0BAA0B,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;uFAAC;AACrH,IAAA;8GAbY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,cAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,cAAc;AAC5B,qBAAA;AACJ,iBAAA;;;ACTM,MAAM,kBAAkB,GAAG;IAC9B,qBAAqB;;;ACLzB;;AAEG;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-highlight-box.mjs","sources":["../../components/ecl-highlight-box/ecl-highlight-box-title.directive.ts","../../components/ecl-highlight-box/ecl-highlight-box.component.ts","../../components/ecl-highlight-box/ecl-highlight-box.component.html","../../components/ecl-highlight-box/index.ts","../../components/ecl-highlight-box/eui-ecl-components-ecl-highlight-box.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive for the highlight box title.\n * Applies the `ecl-highlight-box__title` class to the host element.\n */\n@Directive({\n selector: '[eclHighlightBoxTitle]',\n host: {\n class: 'ecl-highlight-box__title',\n },\n})\nexport class EclHighlightBoxTitleDirective {}\n\n/**\n * Directive for the highlight box description.\n * Applies the `ecl-highlight-box__description` class to the host element.\n */\n@Directive({\n selector: '[eclHighlightBoxDescription]',\n host: {\n class: 'ecl-highlight-box__description',\n },\n})\nexport class EclHighlightBoxDescriptionDirective {}\n\n/**\n * Directive for the highlight box icon.\n * Applies the `ecl-highlight-box__icon` class to the host element.\n */\n@Directive({\n selector: 'ecl-icon[eclHighlightBoxIcon]',\n host: {\n class: 'ecl-highlight-box__icon',\n },\n})\nexport class EclHighlightBoxIconDirective {}\n\n/**\n * Directive for the highlight box link.\n * Applies the `ecl-highlight-box__link` class to the host element.\n */\n@Directive({\n selector: 'a[eclHighlightBoxLink]',\n host: {\n class: 'ecl-highlight-box__link',\n },\n})\nexport class EclHighlightBoxLinkDirective {}\n","import { Component } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * ECL Highlight Box component.\n * Displays a prominent content block with an icon, title, description, and optional link.\n * Uses content projection to compose the box from directive-decorated elements.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'article[eclHighlightBox]',\n templateUrl: './ecl-highlight-box.component.html',\n host: {\n class: 'ecl-highlight-box',\n },\n})\nexport class EclHighlightBoxComponent extends ECLBaseDirective {}\n","<header class=\"ecl-highlight-box__header\">\n <div class=\"ecl-highlight-box__icon-wrapper\">\n <ng-content select=\"[eclHighlightBoxIcon]\"></ng-content>\n </div>\n <ng-content select=\"[eclHighlightBoxTitle]\"></ng-content>\n</header>\n<div class=\"ecl-highlight-box__body\">\n <ng-content select=\"[eclHighlightBoxDescription]\"></ng-content>\n <ng-content select=\"[eclHighlightBoxLink]\"></ng-content>\n</div>\n","import {\n EclHighlightBoxTitleDirective,\n EclHighlightBoxDescriptionDirective,\n EclHighlightBoxIconDirective,\n EclHighlightBoxLinkDirective,\n} from './ecl-highlight-box-title.directive';\nimport { EclHighlightBoxComponent } from './ecl-highlight-box.component';\n\nexport * from './ecl-highlight-box.component';\nexport * from './ecl-highlight-box-title.directive';\n\nexport const EUI_ECL_HIGHLIGHT_BOX = [\n EclHighlightBoxComponent,\n EclHighlightBoxTitleDirective,\n EclHighlightBoxDescriptionDirective,\n EclHighlightBoxIconDirective,\n EclHighlightBoxLinkDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-highlight-box.mjs","sources":["../../components/ecl-highlight-box/ecl-highlight-box-title.directive.ts","../../components/ecl-highlight-box/ecl-highlight-box.component.ts","../../components/ecl-highlight-box/ecl-highlight-box.component.html","../../components/ecl-highlight-box/index.ts","../../components/ecl-highlight-box/eui-ecl-components-ecl-highlight-box.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/**\n * Directive for the highlight box title.\n * Applies the `ecl-highlight-box__title` class to the host element.\n */\n@Directive({\n selector: '[eclHighlightBoxTitle]',\n host: {\n class: 'ecl-highlight-box__title',\n },\n})\nexport class EclHighlightBoxTitleDirective {}\n\n/**\n * Directive for the highlight box description.\n * Applies the `ecl-highlight-box__description` class to the host element.\n */\n@Directive({\n selector: '[eclHighlightBoxDescription]',\n host: {\n class: 'ecl-highlight-box__description',\n },\n})\nexport class EclHighlightBoxDescriptionDirective {}\n\n/**\n * Directive for the highlight box icon.\n * Applies the `ecl-highlight-box__icon` class to the host element.\n */\n@Directive({\n selector: 'ecl-icon[eclHighlightBoxIcon]',\n host: {\n class: 'ecl-highlight-box__icon',\n },\n})\nexport class EclHighlightBoxIconDirective {}\n\n/**\n * Directive for the highlight box link.\n * Applies the `ecl-highlight-box__link` class to the host element.\n */\n@Directive({\n selector: 'a[eclHighlightBoxLink]',\n host: {\n class: 'ecl-highlight-box__link',\n },\n})\nexport class EclHighlightBoxLinkDirective {}\n","import { Component } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * ECL Highlight Box component.\n * Displays a prominent content block with an icon, title, description, and optional link.\n * Uses content projection to compose the box from directive-decorated elements.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'article[eclHighlightBox]',\n templateUrl: './ecl-highlight-box.component.html',\n host: {\n class: 'ecl-highlight-box',\n },\n})\nexport class EclHighlightBoxComponent extends ECLBaseDirective {}\n","<header class=\"ecl-highlight-box__header\">\n <div class=\"ecl-highlight-box__icon-wrapper\">\n <ng-content select=\"[eclHighlightBoxIcon]\"></ng-content>\n </div>\n <ng-content select=\"[eclHighlightBoxTitle]\"></ng-content>\n</header>\n<div class=\"ecl-highlight-box__body\">\n <ng-content select=\"[eclHighlightBoxDescription]\"></ng-content>\n <ng-content select=\"[eclHighlightBoxLink]\"></ng-content>\n</div>\n","import {\n EclHighlightBoxTitleDirective,\n EclHighlightBoxDescriptionDirective,\n EclHighlightBoxIconDirective,\n EclHighlightBoxLinkDirective,\n} from './ecl-highlight-box-title.directive';\nimport { EclHighlightBoxComponent } from './ecl-highlight-box.component';\n\nexport * from './ecl-highlight-box.component';\nexport * from './ecl-highlight-box-title.directive';\n\nexport const EUI_ECL_HIGHLIGHT_BOX = [\n EclHighlightBoxComponent,\n EclHighlightBoxTitleDirective,\n EclHighlightBoxDescriptionDirective,\n EclHighlightBoxIconDirective,\n EclHighlightBoxLinkDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-highlighted-search.mjs","sources":["../../components/ecl-highlighted-search/ecl-highlighted-search-suggestions.directive.ts","../../components/ecl-highlighted-search/events/ecl-highlighted-search.event.ts","../../components/ecl-highlighted-search/ecl-highlighted-search.component.ts","../../components/ecl-highlighted-search/ecl-highlighted-search.component.html","../../components/ecl-highlighted-search/index.ts","../../components/ecl-highlighted-search/eui-ecl-components-ecl-highlighted-search.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n/**\n * Marker directive for the suggestions content projection slot.\n * Applies the `ecl-highlighted-search__suggestion-list` class to the host element.\n * The parent `ecl-highlighted-search` component uses this to locate\n * the projected element and set `aria-labelledby`.\n */\n@Directive({\n selector: '[eclHighlightedSearchSuggestions]',\n host: {\n 'class': 'ecl-highlighted-search__suggestion-list',\n },\n})\nexport class EclHighlightedSearchSuggestionsDirective {\n private readonly el = inject(ElementRef);\n\n /** Sets the aria-labelledby attribute on the host element. */\n setAriaLabelledBy(id: string): void {\n this.el.nativeElement.setAttribute('aria-labelledby', id);\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclHighlightedSearchEvent extends EclBaseEvent {\n constructor(public keyword: string) {\n super();\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n contentChild,\n forwardRef,\n input,\n output,\n Provider,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_FORM_GROUP } from '@eui/ecl/components/ecl-form-group';\nimport { EUI_ECL_TEXT_INPUT } from '@eui/ecl/components/ecl-text-input';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclHighlightedSearchSuggestionsDirective } from './ecl-highlighted-search-suggestions.directive';\nimport { EclHighlightedSearchEvent } from './events/ecl-highlighted-search.event';\n\nconst ECL_HIGHLIGHTED_SEARCH_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclHighlightedSearchComponent),\n multi: true,\n};\n\n/**\n * Highlighted search component based on ECL design system.\n * Renders a prominent search banner with title, description, search form,\n * and an optional suggestion area via content projection.\n *\n * Implements ControlValueAccessor for use with ngModel and reactive forms.\n *\n * @example\n * ```html\n * <ecl-highlighted-search\n * eclTitle=\"Find your next role\"\n * description=\"Discover job opportunities in the EU institutions\"\n * helperText=\"Enter the job you're looking for\"\n * placeholder=\"Enter a search keyword\"\n * suggestionLabel=\"Or explore:\"\n * searchButtonLabel=\"Search\"\n * (searchEvent)=\"onSearch($event)\">\n *\n * <ul eclTagSet eclHighlightedSearchSuggestions>\n * <li eclTagSetItem><a href=\"/traineeships\" eclTag>Traineeships</a></li>\n * <li eclTagSetItem><a href=\"/it\" eclTag>IT & Digital</a></li>\n * <li eclTagSetItem><a href=\"/policy\" eclTag>Policy & Law</a></li>\n * </ul>\n *\n * </ecl-highlighted-search>\n * ```\n */\n@Component({\n selector: 'ecl-highlighted-search',\n templateUrl: './ecl-highlighted-search.component.html',\n imports: [\n FormsModule,\n ...EUI_ECL_BUTTON,\n ...EUI_ECL_FORM_GROUP,\n ...EUI_ECL_TEXT_INPUT,\n ...EUI_ECL_ICON,\n ],\n providers: [ECL_HIGHLIGHTED_SEARCH_VALUE_ACCESSOR],\n host: {\n 'class': 'ecl-highlighted-search',\n 'style': 'display: block',\n },\n})\nexport class EclHighlightedSearchComponent extends ECLBaseDirective implements ControlValueAccessor {\n\n /** Subtitle text displayed below the title. */\n description = input<string>('');\n\n /** The heading text displayed above the search form. */\n eclTitle = input<string>('');\n\n /** Helper text displayed below the search input. */\n helperText = input<string>('');\n\n /** Placeholder text for the search input field. */\n placeholder = input<string>('');\n\n /** Label text for the search button. Defaults to \"Search\". */\n searchButtonLabel = input<string>('Search');\n\n /** Emitted when the user submits the search form. */\n searchEvent = output<EclHighlightedSearchEvent>();\n\n /** Label for the suggestion section (e.g. \"Or explore:\"). */\n suggestionLabel = input<string>('');\n\n /** ID for the helper text element. */\n protected helperId = computed(() => `ehs-${this.instanceId()}-helper`);\n\n /** ID for the search input element. */\n protected inputId = computed(() => `ehs-${this.instanceId()}-input`);\n\n /** Internal search text model. */\n protected searchText = signal('');\n\n /** ID for the suggestion label element. */\n protected suggestionLabelId = computed(() => `ehs-${this.instanceId()}-suggestion-label`);\n\n /** ID for the title element, used for aria-describedby on the form. */\n protected titleId = computed(() => `ehs-${this.instanceId()}-title`);\n\n /** Unique instance ID for generating element IDs. */\n private readonly instanceId = signal(crypto.randomUUID());\n\n private onChange: (value: string) => void = () => {};\n\n private onTouched: () => void = () => {};\n\n /** Reference to the projected suggestions content for aria wiring. */\n private suggestionsContent = contentChild(EclHighlightedSearchSuggestionsDirective);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.wireAriaOnSuggestions();\n });\n }\n\n writeValue(value: string): void {\n this.searchText.set(value ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** Handle Enter key on input for search submission. */\n protected onEnterKeyDown(event: Event): void {\n event.preventDefault();\n this.searchEvent.emit(new EclHighlightedSearchEvent(this.searchText()));\n }\n\n /** Called when the input model changes. Propagates to CVA. */\n protected onModelChange(value: string): void {\n this.searchText.set(value);\n this.onChange(value);\n }\n\n /** Handle form submission. */\n protected onSubmit(event: Event): void {\n event.preventDefault();\n this.onTouched();\n this.searchEvent.emit(new EclHighlightedSearchEvent(this.searchText()));\n }\n\n /**\n * Programmatically sets aria-labelledby on the projected suggestions element\n * so the consumer doesn't need to wire IDs manually.\n */\n private wireAriaOnSuggestions(): void {\n const directive = this.suggestionsContent();\n if (directive) {\n directive.setAriaLabelledBy(this.suggestionLabelId());\n }\n }\n}\n","<div class=\"ecl-highlighted-search__content\">\n <div class=\"ecl-highlighted-search__title\" [id]=\"titleId()\">{{ eclTitle() }}</div>\n\n @if (description()) {\n <div class=\"ecl-highlighted-search__description ecl-content-color\">{{ description() }}</div>\n }\n\n <form class=\"ecl-highlighted-search__form\" role=\"search\" [attr.aria-describedby]=\"titleId()\" (submit)=\"onSubmit($event)\">\n <div class=\"ecl-highlighted-search__form-content\">\n <ecl-icon iconSet=\"phosphor\" icon=\"magnifying-glass\" size=\"m\"\n class=\"ecl-highlighted-search__form-icon\"></ecl-icon>\n\n <div eclFormGroup class=\"ecl-highlighted-search__form-group\">\n <label [for]=\"inputId()\" [id]=\"inputId() + '-label'\"\n class=\"ecl-form-label ecl-form-label--hidden\">{{ placeholder() }}</label>\n <input [id]=\"inputId()\"\n eclTextInput\n type=\"search\"\n eclSize=\"l\"\n [placeholder]=\"placeholder()\"\n [attr.aria-describedby]=\"helperId()\"\n class=\"ecl-highlighted-search__form-input\"\n [ngModel]=\"searchText()\"\n (ngModelChange)=\"onModelChange($event)\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n name=\"highlighted-search-input\" />\n </div>\n\n <button eclButton\n variant=\"primary\"\n size=\"m\"\n eclStyle=\"highlight\"\n type=\"submit\"\n class=\"ecl-highlighted-search__form-button\">\n <span eclButtonLabel>{{ searchButtonLabel() }}</span>\n </button>\n </div>\n\n @if (helperText()) {\n <div class=\"ecl-highlighted-search__form-helper\" [id]=\"helperId()\">{{ helperText() }}</div>\n }\n </form>\n\n @if (suggestionLabel()) {\n <div class=\"ecl-highlighted-search__suggestion\">\n <span class=\"ecl-highlighted-search__suggestion-label\" [id]=\"suggestionLabelId()\">{{ suggestionLabel() }}</span>\n <ng-content select=\"[eclHighlightedSearchSuggestions]\"></ng-content>\n </div>\n }\n</div>\n","import { EclHighlightedSearchComponent } from './ecl-highlighted-search.component';\nimport { EclHighlightedSearchSuggestionsDirective } from './ecl-highlighted-search-suggestions.directive';\n\nexport * from './ecl-highlighted-search.component';\nexport * from './ecl-highlighted-search-suggestions.directive';\nexport * from './events/ecl-highlighted-search.event';\n\nexport const EUI_ECL_HIGHLIGHTED_SEARCH = [\n EclHighlightedSearchComponent,\n EclHighlightedSearchSuggestionsDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-highlighted-search.mjs","sources":["../../components/ecl-highlighted-search/ecl-highlighted-search-suggestions.directive.ts","../../components/ecl-highlighted-search/events/ecl-highlighted-search.event.ts","../../components/ecl-highlighted-search/ecl-highlighted-search.component.ts","../../components/ecl-highlighted-search/ecl-highlighted-search.component.html","../../components/ecl-highlighted-search/index.ts","../../components/ecl-highlighted-search/eui-ecl-components-ecl-highlighted-search.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n/**\n * Marker directive for the suggestions content projection slot.\n * Applies the `ecl-highlighted-search__suggestion-list` class to the host element.\n * The parent `ecl-highlighted-search` component uses this to locate\n * the projected element and set `aria-labelledby`.\n */\n@Directive({\n selector: '[eclHighlightedSearchSuggestions]',\n host: {\n 'class': 'ecl-highlighted-search__suggestion-list',\n },\n})\nexport class EclHighlightedSearchSuggestionsDirective {\n private readonly el = inject(ElementRef);\n\n /** Sets the aria-labelledby attribute on the host element. */\n setAriaLabelledBy(id: string): void {\n this.el.nativeElement.setAttribute('aria-labelledby', id);\n }\n}\n","import { EclBaseEvent } from '@eui/ecl/core';\n\nexport class EclHighlightedSearchEvent extends EclBaseEvent {\n constructor(public keyword: string) {\n super();\n }\n}\n","import {\n afterNextRender,\n Component,\n computed,\n contentChild,\n forwardRef,\n input,\n output,\n Provider,\n signal,\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EUI_ECL_BUTTON } from '@eui/ecl/components/ecl-button';\nimport { EUI_ECL_FORM_GROUP } from '@eui/ecl/components/ecl-form-group';\nimport { EUI_ECL_TEXT_INPUT } from '@eui/ecl/components/ecl-text-input';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EclHighlightedSearchSuggestionsDirective } from './ecl-highlighted-search-suggestions.directive';\nimport { EclHighlightedSearchEvent } from './events/ecl-highlighted-search.event';\n\nconst ECL_HIGHLIGHTED_SEARCH_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EclHighlightedSearchComponent),\n multi: true,\n};\n\n/**\n * Highlighted search component based on ECL design system.\n * Renders a prominent search banner with title, description, search form,\n * and an optional suggestion area via content projection.\n *\n * Implements ControlValueAccessor for use with ngModel and reactive forms.\n *\n * @example\n * ```html\n * <ecl-highlighted-search\n * eclTitle=\"Find your next role\"\n * description=\"Discover job opportunities in the EU institutions\"\n * helperText=\"Enter the job you're looking for\"\n * placeholder=\"Enter a search keyword\"\n * suggestionLabel=\"Or explore:\"\n * searchButtonLabel=\"Search\"\n * (searchEvent)=\"onSearch($event)\">\n *\n * <ul eclTagSet eclHighlightedSearchSuggestions>\n * <li eclTagSetItem><a href=\"/traineeships\" eclTag>Traineeships</a></li>\n * <li eclTagSetItem><a href=\"/it\" eclTag>IT & Digital</a></li>\n * <li eclTagSetItem><a href=\"/policy\" eclTag>Policy & Law</a></li>\n * </ul>\n *\n * </ecl-highlighted-search>\n * ```\n */\n@Component({\n selector: 'ecl-highlighted-search',\n templateUrl: './ecl-highlighted-search.component.html',\n imports: [\n FormsModule,\n ...EUI_ECL_BUTTON,\n ...EUI_ECL_FORM_GROUP,\n ...EUI_ECL_TEXT_INPUT,\n ...EUI_ECL_ICON,\n ],\n providers: [ECL_HIGHLIGHTED_SEARCH_VALUE_ACCESSOR],\n host: {\n 'class': 'ecl-highlighted-search',\n 'style': 'display: block',\n },\n})\nexport class EclHighlightedSearchComponent extends ECLBaseDirective implements ControlValueAccessor {\n\n /** Subtitle text displayed below the title. */\n description = input<string>('');\n\n /** The heading text displayed above the search form. */\n eclTitle = input<string>('');\n\n /** Helper text displayed below the search input. */\n helperText = input<string>('');\n\n /** Placeholder text for the search input field. */\n placeholder = input<string>('');\n\n /** Label text for the search button. Defaults to \"Search\". */\n searchButtonLabel = input<string>('Search');\n\n /** Emitted when the user submits the search form. */\n searchEvent = output<EclHighlightedSearchEvent>();\n\n /** Label for the suggestion section (e.g. \"Or explore:\"). */\n suggestionLabel = input<string>('');\n\n /** ID for the helper text element. */\n protected helperId = computed(() => `ehs-${this.instanceId()}-helper`);\n\n /** ID for the search input element. */\n protected inputId = computed(() => `ehs-${this.instanceId()}-input`);\n\n /** Internal search text model. */\n protected searchText = signal('');\n\n /** ID for the suggestion label element. */\n protected suggestionLabelId = computed(() => `ehs-${this.instanceId()}-suggestion-label`);\n\n /** ID for the title element, used for aria-describedby on the form. */\n protected titleId = computed(() => `ehs-${this.instanceId()}-title`);\n\n /** Unique instance ID for generating element IDs. */\n private readonly instanceId = signal(crypto.randomUUID());\n\n private onChange: (value: string) => void = () => {};\n\n private onTouched: () => void = () => {};\n\n /** Reference to the projected suggestions content for aria wiring. */\n private suggestionsContent = contentChild(EclHighlightedSearchSuggestionsDirective);\n\n constructor() {\n super();\n afterNextRender(() => {\n this.wireAriaOnSuggestions();\n });\n }\n\n writeValue(value: string): void {\n this.searchText.set(value ?? '');\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** Handle Enter key on input for search submission. */\n protected onEnterKeyDown(event: Event): void {\n event.preventDefault();\n this.searchEvent.emit(new EclHighlightedSearchEvent(this.searchText()));\n }\n\n /** Called when the input model changes. Propagates to CVA. */\n protected onModelChange(value: string): void {\n this.searchText.set(value);\n this.onChange(value);\n }\n\n /** Handle form submission. */\n protected onSubmit(event: Event): void {\n event.preventDefault();\n this.onTouched();\n this.searchEvent.emit(new EclHighlightedSearchEvent(this.searchText()));\n }\n\n /**\n * Programmatically sets aria-labelledby on the projected suggestions element\n * so the consumer doesn't need to wire IDs manually.\n */\n private wireAriaOnSuggestions(): void {\n const directive = this.suggestionsContent();\n if (directive) {\n directive.setAriaLabelledBy(this.suggestionLabelId());\n }\n }\n}\n","<div class=\"ecl-highlighted-search__content\">\n <div class=\"ecl-highlighted-search__title\" [id]=\"titleId()\">{{ eclTitle() }}</div>\n\n @if (description()) {\n <div class=\"ecl-highlighted-search__description ecl-content-color\">{{ description() }}</div>\n }\n\n <form class=\"ecl-highlighted-search__form\" role=\"search\" [attr.aria-describedby]=\"titleId()\" (submit)=\"onSubmit($event)\">\n <div class=\"ecl-highlighted-search__form-content\">\n <ecl-icon iconSet=\"phosphor\" icon=\"magnifying-glass\" size=\"m\"\n class=\"ecl-highlighted-search__form-icon\"></ecl-icon>\n\n <div eclFormGroup class=\"ecl-highlighted-search__form-group\">\n <label [for]=\"inputId()\" [id]=\"inputId() + '-label'\"\n class=\"ecl-form-label ecl-form-label--hidden\">{{ placeholder() }}</label>\n <input [id]=\"inputId()\"\n eclTextInput\n type=\"search\"\n eclSize=\"l\"\n [placeholder]=\"placeholder()\"\n [attr.aria-describedby]=\"helperId()\"\n class=\"ecl-highlighted-search__form-input\"\n [ngModel]=\"searchText()\"\n (ngModelChange)=\"onModelChange($event)\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n name=\"highlighted-search-input\" />\n </div>\n\n <button eclButton\n variant=\"primary\"\n size=\"m\"\n eclStyle=\"highlight\"\n type=\"submit\"\n class=\"ecl-highlighted-search__form-button\">\n <span eclButtonLabel>{{ searchButtonLabel() }}</span>\n </button>\n </div>\n\n @if (helperText()) {\n <div class=\"ecl-highlighted-search__form-helper\" [id]=\"helperId()\">{{ helperText() }}</div>\n }\n </form>\n\n @if (suggestionLabel()) {\n <div class=\"ecl-highlighted-search__suggestion\">\n <span class=\"ecl-highlighted-search__suggestion-label\" [id]=\"suggestionLabelId()\">{{ suggestionLabel() }}</span>\n <ng-content select=\"[eclHighlightedSearchSuggestions]\"></ng-content>\n </div>\n }\n</div>\n","import { EclHighlightedSearchComponent } from './ecl-highlighted-search.component';\nimport { EclHighlightedSearchSuggestionsDirective } from './ecl-highlighted-search-suggestions.directive';\n\nexport * from './ecl-highlighted-search.component';\nexport * from './ecl-highlighted-search-suggestions.directive';\nexport * from './events/ecl-highlighted-search.event';\n\nexport const EUI_ECL_HIGHLIGHTED_SEARCH = [\n EclHighlightedSearchComponent,\n EclHighlightedSearchSuggestionsDirective,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eui-ecl-components-ecl-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n SimpleChanges,\n viewChild,\n} from '@angular/core';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\n\n/**\n * Available icon sets supported by {@link EclIconComponent}.\n */\nexport type EclIconSet =\n | 'default'\n | 'social'\n | 'social-media'\n | 'social-media-color'\n | 'flag'\n | 'flag-non-members'\n | 'phosphor'\n | 'phosphor-fill';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [NgClass],\n providers: [EclThemeService],\n host: {\n '[class.ecl-icon--flip-horizontal]': 'isFlipHorizontal()',\n '[class.ecl-u-bg-grey]': 'isColorInverted',\n },\n})\nexport class EclIconComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `social-media-color`, `flag`,\n * `flag-non-members`, `phosphor`, `phosphor-fill`.\n * Defaults to `'default'`.\n */\n iconSet = input<EclIconSet>('default');\n\n /**\n * Name of the icon to render from the selected set.\n */\n icon = input<string>();\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n size = input<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string>('xs');\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n color = input<'inverted' | 'primary' | null>(null);\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n transform = input<string>();\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n readonly ariaLabelledby = input<string>(undefined);\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n readonly role = input<string>(undefined);\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n readonly title = input<string>(undefined);\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n readonly ariaHidden = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n readonly focusable = input(false, { transform: booleanAttribute });\n\n /**\n * Resolved role: uses the explicit `role` input if provided,\n * otherwise defaults to `'img'` when a `title` is set.\n */\n readonly effectiveRole = computed<string | undefined>(() => {\n const explicit = this.role();\n if (explicit !== undefined) return explicit;\n return this.title() !== undefined ? 'img' : undefined;\n });\n\n /**\n * Resolved aria-hidden: uses the explicit `ariaHidden` input if provided,\n * otherwise hides the icon unless a `title` is set.\n */\n readonly effectiveAriaHidden = computed<boolean>(() => {\n const explicit = this.ariaHidden();\n if (explicit !== undefined) return explicit;\n return this.title() === undefined;\n });\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n readonly isFlipHorizontal = input(false, { transform: booleanAttribute });\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n get isColorInverted(): boolean {\n return this.color() === 'inverted';\n }\n\n readonly svgEl = viewChild<ElementRef>('svg');\n\n iconUrl = signal<string>('');\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Extra classes added programmatically by parent components\n * (button, link, etc.)\n */\n readonly extraClasses = signal<string>('');\n\n /**\n * Real classes currently present on <ecl-icon>.\n * To support [class.foo] / [ngClass].\n */\n readonly hostClasses = signal<string>('');\n\n readonly svgClasses = computed<Record<string, boolean>>(() => {\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size()}`]: !!this.size(),\n [`ecl-icon--${this.transform()}`]: !!this.transform(),\n [`ecl-icon--${this.color()}`]: !!this.color(),\n ...this.toClassRecord(this.hostClasses()),\n ...this.toClassRecord(this.extraClasses()),\n };\n });\n\n private classObserver?: MutationObserver;\n\n constructor() {\n afterNextRender(() => {\n this.detachHostAndPromoteSvg();\n this.syncHostClassesFromDom();\n this.observeHostClassChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n }\n\n ngOnDestroy(): void {\n this.classObserver?.disconnect();\n if (!isPlatformBrowser(this.platformId)) return;\n\n try {\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n const parent = svgNative?.parentElement;\n if (svgNative && parent) parent.removeChild(svgNative);\n } catch {\n /* ignore */\n }\n }\n\n addExtraClass(className: string): void {\n const classes = new Set([\n ...this.tokenize(this.extraClasses()),\n ...this.tokenize(className),\n ]);\n this.extraClasses.set(Array.from(classes).join(' '));\n }\n\n removeExtraClass(className: string): void {\n const classes = this.tokenize(this.extraClasses()).filter((c) => c !== className);\n this.extraClasses.set(classes.join(' '));\n }\n\n setExtraClasses(classes: string): void {\n this.extraClasses.set(classes ?? '');\n }\n\n private syncHostClassesFromDom(): void {\n const host = this.el.nativeElement;\n this.hostClasses.set(host.className || '');\n }\n\n private observeHostClassChanges(): void {\n const host = this.el.nativeElement;\n\n this.classObserver = new MutationObserver(() => {\n this.hostClasses.set(host.className || '');\n });\n\n this.classObserver.observe(host, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private toClassRecord(classes?: string | null): Record<string, boolean> {\n return Object.fromEntries(\n this.tokenize(classes).map(c => [c, true])\n );\n }\n\n private tokenize(classes: string | null | undefined): string[] {\n return (classes ?? '')\n .split(/\\s+/)\n .filter(Boolean);\n }\n\n private detachHostAndPromoteSvg(): void {\n const hostEl = this.el.nativeElement as HTMLElement | null;\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n if (!hostEl || !svgNative) return;\n\n const hostParentEl = hostEl.parentElement;\n if (!hostParentEl) return;\n\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(svgNative);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n\n private initiateIconUrl(): void {\n switch (this.iconSet()) {\n case 'default':\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n break;\n case 'social': // TODO: Remove this in the next version.\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media-color':\n this.iconUrl.set(`assets/images/ecl/networks-color/sprite.svg#${this.icon()}`);\n break;\n case 'flag':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag.svg#${this.icon()}`);\n break;\n case 'flag-non-members':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);\n break;\n case 'phosphor':\n this.iconUrl.set(`assets/icons/sprites/regular.svg#${this.icon()}`);\n break;\n case 'phosphor-fill':\n this.iconUrl.set(`assets/icons/sprites/fill.svg#${this.icon()}`);\n break;\n default:\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"svgClasses()\"\n [attr.aria-hidden]=\"effectiveAriaHidden()\"\n [attr.aria-labelledby]=\"ariaLabelledby() || null\"\n [attr.role]=\"effectiveRole() || null\"\n [attr.focusable]=\"focusable()\">\n @if (title()) {\n <title>{{title()}}</title>\n }\n <use [attr.href]=\"iconUrl()\"></use>\n <ng-content></ng-content>\n</svg>\n","import { EclIconComponent } from './ecl-icon.component';\n\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-icon.mjs","sources":["../../components/ecl-icon/ecl-icon.component.ts","../../components/ecl-icon/ecl-icon.component.html","../../components/ecl-icon/index.ts","../../components/ecl-icon/eui-ecl-components-ecl-icon.ts"],"sourcesContent":["import { isPlatformBrowser, NgClass } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n signal,\n SimpleChanges,\n viewChild,\n} from '@angular/core';\nimport { ECLBaseDirective, EclThemeService } from '@eui/ecl/core';\n\n/**\n * Available icon sets supported by {@link EclIconComponent}.\n */\nexport type EclIconSet =\n | 'default'\n | 'social'\n | 'social-media'\n | 'social-media-color'\n | 'flag'\n | 'flag-non-members'\n | 'phosphor'\n | 'phosphor-fill';\n\n/**\n * ECL icon component – renders SVG icons from various sets depending on current theme.\n * Integrates with ECL theming and supports accessibility options.\n */\n@Component({\n selector: 'ecl-icon',\n templateUrl: './ecl-icon.component.html',\n hostDirectives: [\n {\n directive: ECLBaseDirective,\n },\n ],\n imports: [NgClass],\n providers: [EclThemeService],\n host: {\n '[class.ecl-icon--flip-horizontal]': 'isFlipHorizontal()',\n '[class.ecl-u-bg-grey]': 'isColorInverted',\n },\n})\nexport class EclIconComponent implements OnInit, OnChanges, OnDestroy {\n /**\n * Defines the icon set to use.\n * Available sets: `default`, `social`, `social-media`, `social-media-color`, `flag`,\n * `flag-non-members`, `phosphor`, `phosphor-fill`.\n * Defaults to `'default'`.\n */\n iconSet = input<EclIconSet>('default');\n\n /**\n * Name of the icon to render from the selected set.\n */\n icon = input<string>();\n\n /**\n * Size of the icon.\n * Supported values: `'2xs'`, `'xs'`, `'s'`, `'m'`, `'l'`, `'xl'`, `'2xl'`, `'fluid'`.\n * Defaults to `'xs'`.\n */\n size = input<'2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | 'fluid' | string>('xs');\n\n /**\n * Applies color styling to the icon.\n * Use `'inverted'` for icons on dark backgrounds, or `'primary'` for emphasis.\n */\n color = input<'inverted' | 'primary' | null>(null);\n\n /**\n * Adds a transformation modifier to the icon (e.g., rotation).\n */\n transform = input<string>();\n\n /**\n * ID reference for an external element that labels this icon for screen readers.\n */\n readonly ariaLabelledby = input<string>(undefined);\n\n /**\n * ARIA role of the icon. If a `title` is provided and no role is defined, defaults to `'img'`.\n */\n readonly role = input<string>(undefined);\n\n /**\n * Title used for accessibility. Also affects `aria-hidden` and `role`.\n */\n readonly title = input<string>(undefined);\n\n /**\n * Determines whether the icon should be hidden from assistive technologies.\n * Defaults to `true` unless a title is provided.\n */\n readonly ariaHidden = input<boolean, unknown>(undefined, { transform: booleanAttribute });\n\n /**\n * Controls whether the icon is focusable via keyboard.\n * Defaults to `false`.\n */\n readonly focusable = input(false, { transform: booleanAttribute });\n\n /**\n * Resolved role: uses the explicit `role` input if provided,\n * otherwise defaults to `'img'` when a `title` is set.\n */\n readonly effectiveRole = computed<string | undefined>(() => {\n const explicit = this.role();\n if (explicit !== undefined) return explicit;\n return this.title() !== undefined ? 'img' : undefined;\n });\n\n /**\n * Resolved aria-hidden: uses the explicit `ariaHidden` input if provided,\n * otherwise hides the icon unless a `title` is set.\n */\n readonly effectiveAriaHidden = computed<boolean>(() => {\n const explicit = this.ariaHidden();\n if (explicit !== undefined) return explicit;\n return this.title() === undefined;\n });\n\n /**\n * Flips the icon horizontally if set to `true`.\n */\n readonly isFlipHorizontal = input(false, { transform: booleanAttribute });\n\n /**\n * Adds a dark background utility class if the color is set to `'inverted'`.\n */\n get isColorInverted(): boolean {\n return this.color() === 'inverted';\n }\n\n readonly svgEl = viewChild<ElementRef>('svg');\n\n iconUrl = signal<string>('');\n baseDirective = inject(ECLBaseDirective);\n el = inject(ElementRef);\n private renderer = inject(Renderer2);\n private platformId = inject(PLATFORM_ID);\n\n /**\n * Extra classes added programmatically by parent components\n * (button, link, etc.)\n */\n readonly extraClasses = signal<string>('');\n\n /**\n * Real classes currently present on <ecl-icon>.\n * To support [class.foo] / [ngClass].\n */\n readonly hostClasses = signal<string>('');\n\n readonly svgClasses = computed<Record<string, boolean>>(() => {\n return {\n [this.baseDirective.getCssClasses('ecl-icon')]: true,\n [`ecl-icon--${this.size()}`]: !!this.size(),\n [`ecl-icon--${this.transform()}`]: !!this.transform(),\n [`ecl-icon--${this.color()}`]: !!this.color(),\n ...this.toClassRecord(this.hostClasses()),\n ...this.toClassRecord(this.extraClasses()),\n };\n });\n\n private classObserver?: MutationObserver;\n\n constructor() {\n afterNextRender(() => {\n this.detachHostAndPromoteSvg();\n this.syncHostClassesFromDom();\n this.observeHostClassChanges();\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['icon']) {\n this.initiateIconUrl();\n }\n }\n\n ngOnInit(): void {\n this.initiateIconUrl();\n }\n\n ngOnDestroy(): void {\n this.classObserver?.disconnect();\n if (!isPlatformBrowser(this.platformId)) return;\n\n try {\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n const parent = svgNative?.parentElement;\n if (svgNative && parent) parent.removeChild(svgNative);\n } catch {\n /* ignore */\n }\n }\n\n addExtraClass(className: string): void {\n const classes = new Set([\n ...this.tokenize(this.extraClasses()),\n ...this.tokenize(className),\n ]);\n this.extraClasses.set(Array.from(classes).join(' '));\n }\n\n removeExtraClass(className: string): void {\n const classes = this.tokenize(this.extraClasses()).filter((c) => c !== className);\n this.extraClasses.set(classes.join(' '));\n }\n\n setExtraClasses(classes: string): void {\n this.extraClasses.set(classes ?? '');\n }\n\n private syncHostClassesFromDom(): void {\n const host = this.el.nativeElement;\n this.hostClasses.set(host.className || '');\n }\n\n private observeHostClassChanges(): void {\n const host = this.el.nativeElement;\n\n this.classObserver = new MutationObserver(() => {\n this.hostClasses.set(host.className || '');\n });\n\n this.classObserver.observe(host, {\n attributes: true,\n attributeFilter: ['class'],\n });\n }\n\n private toClassRecord(classes?: string | null): Record<string, boolean> {\n return Object.fromEntries(\n this.tokenize(classes).map(c => [c, true])\n );\n }\n\n private tokenize(classes: string | null | undefined): string[] {\n return (classes ?? '')\n .split(/\\s+/)\n .filter(Boolean);\n }\n\n private detachHostAndPromoteSvg(): void {\n const hostEl = this.el.nativeElement as HTMLElement | null;\n const svgNative = this.svgEl()?.nativeElement as SVGElement | null;\n if (!hostEl || !svgNative) return;\n\n const hostParentEl = hostEl.parentElement;\n if (!hostParentEl) return;\n\n // add the svg and remove the parent from the DOM\n this.renderer.setStyle(hostEl, 'visibility', 'hidden');\n hostEl.after(svgNative);\n this.renderer.removeChild(hostParentEl, hostEl);\n }\n\n private initiateIconUrl(): void {\n switch (this.iconSet()) {\n case 'default':\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n break;\n case 'social': // TODO: Remove this in the next version.\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media':\n this.iconUrl.set(`assets/images/ecl/networks/sprite.svg#${this.icon()}`);\n break;\n case 'social-media-color':\n this.iconUrl.set(`assets/images/ecl/networks-color/sprite.svg#${this.icon()}`);\n break;\n case 'flag':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag.svg#${this.icon()}`);\n break;\n case 'flag-non-members':\n this.iconUrl.set(`assets/images/ecl/icons-flag/sprites/icons-flag-non-members.svg#${this.icon()}`);\n break;\n case 'phosphor':\n this.iconUrl.set(`assets/icons/sprites/regular.svg#${this.icon()}`);\n break;\n case 'phosphor-fill':\n this.iconUrl.set(`assets/icons/sprites/fill.svg#${this.icon()}`);\n break;\n default:\n this.iconUrl.set(`assets/images/ecl/icons/sprite.svg#${this.icon()}`);\n }\n }\n}\n","<svg\n #svg\n [ngClass]=\"svgClasses()\"\n [attr.aria-hidden]=\"effectiveAriaHidden()\"\n [attr.aria-labelledby]=\"ariaLabelledby() || null\"\n [attr.role]=\"effectiveRole() || null\"\n [attr.focusable]=\"focusable()\">\n @if (title()) {\n <title>{{title()}}</title>\n }\n <use [attr.href]=\"iconUrl()\"></use>\n <ng-content></ng-content>\n</svg>\n","import { EclIconComponent } from './ecl-icon.component';\n\nexport * from './ecl-icon.component';\n\nexport const EUI_ECL_ICON = [\n EclIconComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|