@eui/ecl 21.0.0-next.2 → 21.0.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/assets/i18n-ecl/bg.json +1 -2
  2. package/assets/i18n-ecl/cs.json +1 -2
  3. package/assets/i18n-ecl/da.json +1 -2
  4. package/assets/i18n-ecl/de.json +1 -2
  5. package/assets/i18n-ecl/el.json +1 -2
  6. package/assets/i18n-ecl/en.json +1 -2
  7. package/assets/i18n-ecl/es.json +1 -2
  8. package/assets/i18n-ecl/et.json +1 -2
  9. package/assets/i18n-ecl/fi.json +1 -2
  10. package/assets/i18n-ecl/fr.json +1 -2
  11. package/assets/i18n-ecl/ga.json +1 -2
  12. package/assets/i18n-ecl/hr.json +1 -2
  13. package/assets/i18n-ecl/hu.json +1 -2
  14. package/assets/i18n-ecl/it.json +1 -2
  15. package/assets/i18n-ecl/lt.json +1 -2
  16. package/assets/i18n-ecl/lv.json +1 -2
  17. package/assets/i18n-ecl/mt.json +1 -2
  18. package/assets/i18n-ecl/nl.json +1 -2
  19. package/assets/i18n-ecl/pl.json +1 -2
  20. package/assets/i18n-ecl/pt.json +1 -2
  21. package/assets/i18n-ecl/ro.json +1 -2
  22. package/assets/i18n-ecl/sk.json +1 -2
  23. package/assets/i18n-ecl/sl.json +1 -2
  24. package/assets/i18n-ecl/sv.json +1 -2
  25. package/docs/changelog.html +66 -0
  26. package/docs/components/EclAccordionComponent.html +2 -2
  27. package/docs/components/EclAccordionItemComponent.html +2 -2
  28. package/docs/components/EclAppComponent.html +2 -2
  29. package/docs/components/EclBannerComponent.html +2 -2
  30. package/docs/components/EclBlockquoteComponent.html +2 -2
  31. package/docs/components/EclBreadcrumbComponent.html +2 -2
  32. package/docs/components/EclBreadcrumbSegmentComponent.html +2 -2
  33. package/docs/components/EclButtonComponent.html +2 -2
  34. package/docs/components/EclCardBodyComponent.html +2 -2
  35. package/docs/components/EclCardComponent.html +2 -2
  36. package/docs/components/EclCarouselComponent.html +2 -2
  37. package/docs/components/EclCarouselItemComponent.html +2 -2
  38. package/docs/components/EclCategoryFilterComponent.html +2 -2
  39. package/docs/components/EclCategoryFilterItemComponent.html +2 -2
  40. package/docs/components/EclCategoryFilterListComponent.html +2 -2
  41. package/docs/components/EclCheckboxHelpComponent.html +2 -2
  42. package/docs/components/EclCheckboxLabelComponent.html +2 -2
  43. package/docs/components/EclContentBlockComponent.html +2 -2
  44. package/docs/components/EclContentItemComponent.html +2 -2
  45. package/docs/components/EclDateBlockComponent.html +2 -2
  46. package/docs/components/EclDescriptionListDefinitionComponent.html +3 -3
  47. package/docs/components/EclExpandableComponent.html +2 -2
  48. package/docs/components/EclFactFiguresComponent.html +2 -2
  49. package/docs/components/EclFactFiguresItemComponent.html +2 -2
  50. package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
  51. package/docs/components/EclFeaturedComponent.html +2 -2
  52. package/docs/components/EclFeaturedItemComponent.html +2 -2
  53. package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
  54. package/docs/components/EclFileComponent.html +2 -2
  55. package/docs/components/EclFileItemComponent.html +2 -2
  56. package/docs/components/EclFileItemsComponent.html +2 -2
  57. package/docs/components/EclFileTaxonomyComponent.html +2 -2
  58. package/docs/components/EclFormGroupComponent.html +2 -2
  59. package/docs/components/EclFormLabelComponent.html +2 -2
  60. package/docs/components/EclGalleryComponent.html +2 -2
  61. package/docs/components/EclGalleryFooterComponent.html +3 -3
  62. package/docs/components/EclGalleryItemComponent.html +2 -2
  63. package/docs/components/EclIconComponent.html +2 -2
  64. package/docs/components/EclInpageNavigationComponent.html +2 -2
  65. package/docs/components/EclInpageNavigationItemComponent.html +2 -2
  66. package/docs/components/EclListIllustrationComponent.html +2 -2
  67. package/docs/components/EclListIllustrationItemComponent.html +2 -2
  68. package/docs/components/EclLoadingIndicatorComponent.html +2 -2
  69. package/docs/components/EclMediaContainerComponent.html +2 -2
  70. package/docs/components/EclMegaMenuComponent.html +2 -2
  71. package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
  72. package/docs/components/EclMegaMenuInfoComponent.html +2 -2
  73. package/docs/components/EclMegaMenuItemComponent.html +2 -2
  74. package/docs/components/EclMegaMenuSubitemComponent.html +2 -2
  75. package/docs/components/EclMenuComponent.html +2 -2
  76. package/docs/components/EclMenuItemComponent.html +2 -2
  77. package/docs/components/EclMenuMegaComponent.html +2 -2
  78. package/docs/components/EclMenuMegaItemComponent.html +2 -2
  79. package/docs/components/EclModalBodyComponent.html +3 -3
  80. package/docs/components/EclModalComponent.html +64 -36
  81. package/docs/components/EclModalFooterComponent.html +2 -2
  82. package/docs/components/EclModalHeaderComponent.html +3 -3
  83. package/docs/components/EclMultiselectComponent.html +2 -2
  84. package/docs/components/EclMultiselectDropdownComponent.html +2 -2
  85. package/docs/components/EclMultiselectInputComponent.html +2 -2
  86. package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
  87. package/docs/components/EclMultiselectOptionComponent.html +2 -2
  88. package/docs/components/EclNavigationListComponent.html +2 -2
  89. package/docs/components/EclNavigationListItemComponent.html +2 -2
  90. package/docs/components/EclNewsTickerComponent.html +2 -2
  91. package/docs/components/EclNewsTickerItemComponent.html +2 -2
  92. package/docs/components/EclNotificationComponent.html +2 -2
  93. package/docs/components/EclPageHeaderComponent.html +3 -3
  94. package/docs/components/EclPageHeaderExpandableComponent.html +663 -0
  95. package/docs/components/EclPaginationComponent.html +2 -2
  96. package/docs/components/EclPaginationItemComponent.html +2 -2
  97. package/docs/components/EclPopoverComponent.html +2 -2
  98. package/docs/components/EclRadioHelpComponent.html +2 -2
  99. package/docs/components/EclRadioLabelComponent.html +2 -2
  100. package/docs/components/EclRangeBubbleComponent.html +2 -2
  101. package/docs/components/EclRangeValueComponent.html +2 -2
  102. package/docs/components/EclRatingFieldComponent.html +3 -3
  103. package/docs/components/EclSearchFormComponent.html +2 -2
  104. package/docs/components/EclSelectContainerComponent.html +2 -2
  105. package/docs/components/EclSiteFooterComponent.html +2 -2
  106. package/docs/components/EclSiteFooterCoreComponent.html +2 -2
  107. package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
  108. package/docs/components/EclSiteFooterRowCommonComponent.html +2 -2
  109. package/docs/components/EclSiteHeaderActionComponent.html +2 -2
  110. package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
  111. package/docs/components/EclSiteHeaderComponent.html +2 -2
  112. package/docs/components/EclSiteHeaderCustomActionComponent.html +2 -2
  113. package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
  114. package/docs/components/EclSiteHeaderLanguageComponent.html +2 -2
  115. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
  116. package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
  117. package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
  118. package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
  119. package/docs/components/EclSocialMediaFollowComponent.html +2 -2
  120. package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
  121. package/docs/components/EclSplashPageComponent.html +2 -2
  122. package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
  123. package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
  124. package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
  125. package/docs/components/EclSpotlightComponent.html +2 -2
  126. package/docs/components/EclSpotlightLinkComponent.html +2 -2
  127. package/docs/components/EclStickyContainerComponent.html +2 -2
  128. package/docs/components/EclTabComponent.html +2 -2
  129. package/docs/components/EclTabLabelComponent.html +2 -2
  130. package/docs/components/EclTabMoreComponent.html +2 -2
  131. package/docs/components/EclTableSortButtonComponent.html +2 -2
  132. package/docs/components/EclTabsComponent.html +2 -2
  133. package/docs/components/EclTagComponent.html +2 -2
  134. package/docs/components/EclTimelineComponent.html +2 -2
  135. package/docs/components/EclTimelineItemComponent.html +2 -2
  136. package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
  137. package/docs/directives/EclLinkDirective.html +58 -28
  138. package/docs/directives/EclPageHeaderExpandableHeaderDirective.html +519 -0
  139. package/docs/js/menu-wc.js +12 -6
  140. package/docs/js/menu-wc_es5.js +1 -1
  141. package/docs/js/search/search_index.js +2 -2
  142. package/docs/miscellaneous/variables.html +4 -0
  143. package/docs/overview.html +2 -2
  144. package/docs/properties.html +1 -1
  145. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +1 -1
  146. package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
  147. package/fesm2022/eui-ecl-components-ecl-gallery.mjs +3 -3
  148. package/fesm2022/eui-ecl-components-ecl-gallery.mjs.map +1 -1
  149. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +1 -1
  150. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  151. package/fesm2022/eui-ecl-components-ecl-link.mjs +19 -12
  152. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  153. package/fesm2022/eui-ecl-components-ecl-list.mjs +2 -2
  154. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  155. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +2 -2
  156. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  157. package/fesm2022/eui-ecl-components-ecl-menu.mjs +1 -1
  158. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  159. package/fesm2022/eui-ecl-components-ecl-modal.mjs +48 -47
  160. package/fesm2022/eui-ecl-components-ecl-modal.mjs.map +1 -1
  161. package/fesm2022/eui-ecl-components-ecl-page-header.mjs +75 -5
  162. package/fesm2022/eui-ecl-components-ecl-page-header.mjs.map +1 -1
  163. package/fesm2022/eui-ecl-components-ecl-pagination.mjs +1 -1
  164. package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
  165. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs +2 -2
  166. package/fesm2022/eui-ecl-components-ecl-rating-field.mjs.map +1 -1
  167. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +3 -3
  168. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  169. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +2 -2
  170. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  171. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +1 -1
  172. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  173. package/fesm2022/eui-ecl-components-ecl-tabs.mjs +1 -1
  174. package/fesm2022/eui-ecl-components-ecl-tabs.mjs.map +1 -1
  175. package/fesm2022/eui-ecl.mjs +2 -2
  176. package/fesm2022/eui-ecl.mjs.map +1 -1
  177. package/package.json +43 -43
  178. package/types/eui-ecl-components-ecl-link.d.ts +12 -9
  179. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  180. package/types/eui-ecl-components-ecl-modal.d.ts +26 -25
  181. package/types/eui-ecl-components-ecl-modal.d.ts.map +1 -1
  182. package/types/eui-ecl-components-ecl-page-header.d.ts +31 -4
  183. package/types/eui-ecl-components-ecl-page-header.d.ts.map +1 -1
  184. package/types/eui-ecl.d.ts +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/ecl-gallery.module.ts","../../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, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { TranslateModule } 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: [TranslateModule, ...EUI_ECL_BUTTON],\n})\nexport class EclGalleryFooterComponent implements OnInit {\n @HostBinding('class.ecl-gallery__footer') hasClass = true;\n @Input() infoId: string;\n /**\n * Event, that is emitted when items are expanded/collapsed.\n */\n @Output() toggleItems = new EventEmitter<EclGalleryToggleItemsEvent>();\n\n private _itemsCount: number;\n private _isExpanded = false;\n private _isShowToggleBtn = false;\n\n ngOnInit(): void {\n if (!this.infoId) {\n this.infoId = crypto.randomUUID();\n }\n }\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n set isExpanded(value: boolean) {\n this._isExpanded = value;\n }\n\n get itemsCount(): number {\n return this._itemsCount;\n }\n set itemsCount(value: number) {\n this._itemsCount = value;\n }\n\n get isShowToggleBtn(): boolean {\n return this._isShowToggleBtn;\n }\n set isShowToggleBtn(value: boolean) {\n this._isShowToggleBtn = value;\n }\n\n onToggle(): void {\n this._isExpanded = !this._isExpanded;\n this.toggleItems.next(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]=\"infoId\" eclButton variant=\"tertiary\" class=\"ecl-gallery__view-all\"\n (click)=\"onToggle()\">\n {{ 'ecl.gallery.VIEW-ALL' | translate }}\n </button>\n } @else {\n <button [attr.aria-describedby]=\"infoId\" 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>","import { ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnInit, afterNextRender, booleanAttribute, inject } 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})\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 @Input() poster: string;\n /**\n * When this is true, on mousehover the image will be zoomed.\n */\n @Input({ transform: booleanAttribute }) hasZoom = false;\n sources: Array<EclGalleryMediaSource> = [];\n tracks: Array<EclGalleryMediaTrack> = [];\n\n /**\n * Applies the ECL classes for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-gallery__image'),\n this.hasZoom && this.isVideo ? 'ecl-video--zoom' : '',\n ].join(' ').trim();\n }\n @HostBinding('class.ecl-video') isVideo = false;\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 = 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})\nexport class EclGalleryPictureDirective extends ECLBaseDirective {\n // TODO: to be removed in v19. Thumbnail should be added by user.\n isThumbnail = false;\n sources: Array<EclGalleryPictureSource> = [];\n img: EclGalleryPictureImage ={};\n private el = inject(ElementRef);\n private cd = inject(ChangeDetectorRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture'), this.isThumbnail ? 'ecl-gallery__thumbnail': 'ecl-gallery__picture'].join(' ').trim();\n }\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})\nexport class EclGalleryThumbnailDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-gallery__thumbnail')].join(' ').trim();\n }\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-picture--zoom') hasZoom = false;\n}\n","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, AfterContentInit, Output, Renderer2, booleanAttribute, inject } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclGalleryItem } from './models/ecl-gallery-item.model';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryItemClickEvent } from './events';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\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})\nexport class EclGalleryItemComponent extends ECLBaseDirective implements EclGalleryItem, OnInit, AfterContentInit {\n /**\n * Can this item be shared, i.e. show/hide share button.\n */\n @Input({ transform: booleanAttribute }) isShareable = true;\n @Input() mediaType: '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 @Input() src: string;\n @Input() meta: string;\n @Input() description: string;\n /**\n * Embeded audio description.\n */\n @Input() srVideoAudioDescription: string;\n @Input() icon: string;\n @Input() title: string;\n @Input() itemId: string;\n @Output() itemClick = new EventEmitter<EclGalleryItemClickEvent>();\n @ContentChild(EclGalleryMediaDirective) mediaChild: EclGalleryMediaDirective;\n @ContentChild(EclGalleryThumbnailDirective) galleryThumbnail: EclGalleryThumbnailDirective;\n @ContentChild(EclGalleryPictureDirective) galleryPicture: EclGalleryPictureDirective;\n\n /**\n * Binds specific classes for the item. Some depend on some of the properties of the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-gallery__item'), this._isHidden ? 'ecl-gallery__item--hidden' : ''].join(' ').trim();\n }\n /**\n * The role attribute of the item is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n private _isNoOverlay = false;\n private _isHidden = false;\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 if (!this.itemId) {\n this.itemId = crypto.randomUUID();\n }\n }\n\n // TODO: to be removed in v19. Thumbnail should be added by user.\n ngAfterContentInit(): void {\n if (this.galleryPicture && !this.galleryThumbnail && !this.isImage) {\n this.galleryPicture.isThumbnail = true;\n }\n }\n\n /**\n * Set if the item should be shown in the gallery by default.\n */\n set isHidden(value: boolean) {\n this._isHidden = value;\n }\n\n @HostListener('click', ['$event'])\n onItemClick(evt: MouseEvent): void {\n this.itemClick.next(new EclGalleryItemClickEvent());\n evt.preventDefault();\n }\n\n getDownloadLink(): string {\n return this.src;\n }\n\n getUrlExternalVideo(): SafeResourceUrl {\n return this.externalVideoUrl;\n }\n\n get isNoOverlay(): boolean {\n return this._isNoOverlay;\n }\n\n set isNoOverlay(value: boolean) {\n this._isNoOverlay = value;\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 /**\n * Creates id for the title\n */\n get titleId(): string {\n return `${this.itemId}-title`;\n }\n\n /**\n * If the thimbnail was added by user. If not -> we are adding it in the view.\n */\n get hasGalleryThumbnail(): boolean {\n return !this.galleryThumbnail && this.isImage;\n }\n\n onFocus(): void {\n this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();\n }\n}\n","<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\">\n <figure class=\"ecl-gallery__image-container\">\n @if(mediaType !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon ecl-icon--inverted\" icon=\"play-filled\" size=\"l\"></ecl-icon>\n </div>\n } \n @if(hasGalleryThumbnail) { <!-- TODO: to be removed in v21. Thumbnail should be added by user. -->\n <picture class=\"ecl-picture ecl-gallery__thumbnail\">\n @for(el of galleryPicture?.sources; track el.srcset ) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img class=\"ecl-gallery__image\"\n [attr.src]=\"galleryPicture?.img.src\"\n [attr.alt]=\"galleryPicture?.img.alt\" />\n </picture>\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>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { AfterContentInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, PLATFORM_ID, QueryList, ViewChild, booleanAttribute, numberAttribute, inject } from '@angular/core';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, delay } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport { EclGalleryItemEvent } from './events';\nimport { EclGalleryShareEvent } from './events';\nimport { EclGalleryFullScreenEvent } from './events';\nimport { EclGalleryHideEvent } from './events';\nimport { EclGalleryShowEvent } from './events';\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';\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: [TranslateModule, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclGalleryComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy, OnInit {\n @Input({ transform: booleanAttribute }) isOpenInFullScreenPossible = true;\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 @Input({ transform: booleanAttribute }) isShareable = true;\n /**\n * If set to true, the gallery will have 100 view width.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n /**\n * If set to true, no overlay will be displayed when user clicks on an image.\n */\n @Input({ transform: booleanAttribute }) isNoOverlay = false;\n /**\n * If set to false, no title will be displayed when user hover on a gallery item.\n */\n @Input({ transform: booleanAttribute }) isShowTitleOnHover = true;\n /**\n * Number of gallery items to be displayed by default. The rest can be displayed with the 'View all' button.\n */\n @Input({ transform: numberAttribute }) maxVisibleItems: number;\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 @Input({ transform: booleanAttribute }) isGrid = false;\n // TODO: not used, to be removed in v20.\n @Input({ transform: numberAttribute }) columns: 2 | 3 | 4 | number = 3;\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 @Input() gridTemplate: '0' | '1' | '2' | '3' | '4' | string = '0';\n /**\n * The ratio that will be applied to the gallery thumbnails.\n */\n @Input() ratio: '3-1' | '3-2' | string = '3-2';\n\n /**\n * Emits event when user clicks on an item to expand it.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() show = new EventEmitter<EclGalleryShowEvent>();\n /**\n * Emits event when an expanded item is closed.\n */\n @Output() hide = new EventEmitter<EclGalleryHideEvent>();\n /**\n * Emits event when an item is opened in full screen.\n */\n @Output() openFullScreen = new EventEmitter<EclGalleryFullScreenEvent>();\n /**\n * Emits event when an item is shared.\n */\n @Output() share = new EventEmitter<EclGalleryShareEvent>();\n /**\n * Emits event when user is browsing items, opened in an overlay.\n */\n @Output() itemSwitch = new EventEmitter<EclGalleryItemEvent>();\n @ContentChildren(EclGalleryItemComponent) galleryItems: QueryList<EclGalleryItemComponent>;\n @ContentChild(EclGalleryFooterComponent) galleryFooter: EclGalleryFooterComponent;\n @ViewChild('overlay') overlayChild: ElementRef;\n @ViewChild('header') headerChild: ElementRef;\n @ViewChild('footer') footerChild: ElementRef;\n\n /**\n * Applies specific clases to the component, related to the component properties values.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [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 ].join(' ').trim();\n }\n /**\n * The default role of the component is 'region' and should not be changed.\n */\n @HostBinding('attr.role') role = 'region';\n\n isDialogVisible = false;\n isMobile = false;\n itemsCount: number;\n itemIndex: number;\n item: EclGalleryItemComponent;\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\n ngOnInit(): void {\n // Manages the initial display of the gallery, the footer and the visible/hidden items.\n if (isPlatformBrowser(this.platformId)) {\n this.observeBreakpointChanges();\n }\n }\n\n ngAfterContentInit(): void {\n this.itemsCount = this.galleryItems.length;\n this.visibleItems = this.maxVisibleItems ? this.maxVisibleItems : this.itemsCount;\n if (this.galleryFooter) {\n this.galleryFooter.itemsCount = this.itemsCount;\n this.galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n // Subscribe to 'toggleItems' event from gallery footer, to show or collapse items.\n this.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 item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((_) => {\n this.isDialogVisible = true;\n this.item = item;\n this.itemIndex = this.findItemIndex(this.galleryItems.toArray(), item);\n this.show.next(new EclGalleryShowEvent());\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => this.setIframeDimensions());\n }\n });\n });\n } else {\n this.galleryItems.forEach((item) => (item.isNoOverlay = 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 onPrevious(evt: MouseEvent): void {\n this.item = this.findPreviousItem(this.galleryItems.toArray(), this.item);\n\n this.itemIndex = this.findItemIndex(this.galleryItems.toArray(), this.item);\n\n this.itemSwitch.next(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 onNext(evt: MouseEvent): void {\n this.item = this.findNextItem(this.galleryItems.toArray(), this.item);\n this.itemIndex = this.findItemIndex(this.galleryItems.toArray(), this.item);\n\n this.itemSwitch.next(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'hide' event, when closing item dialog.\n * @param evt\n */\n onClose(evt: MouseEvent): void {\n this.item = null;\n this.itemIndex = -1;\n this.isDialogVisible = false;\n this.hide.next(new EclGalleryHideEvent());\n }\n\n /**\n * On pressing 'esc' key - close the item dialog and emit 'hide' event.\n * @param event\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.isDialogVisible = false;\n this.hide.next(new EclGalleryHideEvent());\n }\n\n onFullScreenOpen(evt: MouseEvent): void {\n this.openFullScreen.next(new EclGalleryFullScreenEvent(this.item));\n }\n\n onShare(evt: MouseEvent): void {\n this.share.next(new EclGalleryShareEvent(this.item));\n evt.preventDefault();\n }\n\n canBeOpenInFullScreen(): boolean {\n return this.isOpenInFullScreenPossible && this.item?.isOpenInFullScreenPossible;\n }\n\n canBeShared(): boolean {\n return this.isShareable && this.item?.isShareable;\n }\n\n getIframeWidth(): number {\n return this.iframeWidth;\n }\n\n getIframeHeight(): number {\n return this.iframeHeight;\n }\n\n setIframeDimensions(): void {\n const { width, height } = this.getCalculatedIframeDimensions();\n this.iframeWidth = width;\n this.iframeHeight = height;\n }\n\n @HostListener('window:resize')\n iframeResize(): void {\n this.setIframeDimensions();\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: Array<EclGalleryItemComponent>, item: EclGalleryItemComponent): number {\n return items.findIndex((it) => it === item) + 1;\n }\n\n private findPreviousItem(items: Array<EclGalleryItemComponent>, item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findPreviousItemIndex(items, item);\n return items[index];\n }\n\n private findNextItem(items: Array<EclGalleryItemComponent>, item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findNextItemIndex(items, item);\n return items[index];\n }\n\n private findPreviousItemIndex(items: Array<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: Array<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.maxVisibleItems = this.MAX_VISIBLE_ITEMS_MOBILE;\n this.collapseItems();\n if (this.galleryFooter) {\n this.galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private manageItemsDesktop(): void {\n this.maxVisibleItems = this.visibleItems;\n this.getVisibleItems().forEach((elem) => this.showGaleryItem(elem));\n this.collapseItems();\n if (this.galleryFooter) {\n this.galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private hasHiddenGaleryItems(): boolean {\n if (this.maxVisibleItems && this.itemsCount > 0 && this.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 = true;\n }\n\n private showGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden = false;\n }\n\n private getHiddenItems(): EclGalleryItemComponent[] {\n return this.galleryItems.filter((item, cnt) => cnt >= this.maxVisibleItems);\n }\n private getVisibleItems(): EclGalleryItemComponent[] {\n return this.galleryItems.filter((item, cnt) => cnt < this.maxVisibleItems);\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?.itemId\">{{ 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 { NgModule } from '@angular/core';\nimport { 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\nconst COMPONENTS = [\n EclGalleryComponent,\n EclGalleryFooterComponent,\n EclGalleryItemComponent,\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n];\n\n/**\n * Module that provides the EclGalleryComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_GALLERY} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclGalleryModule {}\n","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.module';\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","i4"],"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/ecl-gallery.module.ts","../../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, EventEmitter, HostBinding, Input, OnInit, Output } from '@angular/core';\nimport { TranslateModule } 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: [TranslateModule, ...EUI_ECL_BUTTON],\n})\nexport class EclGalleryFooterComponent implements OnInit {\n @HostBinding('class.ecl-gallery__footer') hasClass = true;\n @Input() infoId: string;\n /**\n * Event, that is emitted when items are expanded/collapsed.\n */\n @Output() toggleItems = new EventEmitter<EclGalleryToggleItemsEvent>();\n\n private _itemsCount: number;\n private _isExpanded = false;\n private _isShowToggleBtn = false;\n\n ngOnInit(): void {\n if (!this.infoId) {\n this.infoId = crypto.randomUUID();\n }\n }\n get isExpanded(): boolean {\n return this._isExpanded;\n }\n set isExpanded(value: boolean) {\n this._isExpanded = value;\n }\n\n get itemsCount(): number {\n return this._itemsCount;\n }\n set itemsCount(value: number) {\n this._itemsCount = value;\n }\n\n get isShowToggleBtn(): boolean {\n return this._isShowToggleBtn;\n }\n set isShowToggleBtn(value: boolean) {\n this._isShowToggleBtn = value;\n }\n\n onToggle(): void {\n this._isExpanded = !this._isExpanded;\n this.toggleItems.next(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]=\"infoId\" 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]=\"infoId\" 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>","import { ChangeDetectorRef, Directive, ElementRef, HostBinding, Input, OnInit, afterNextRender, booleanAttribute, inject } 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})\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 @Input() poster: string;\n /**\n * When this is true, on mousehover the image will be zoomed.\n */\n @Input({ transform: booleanAttribute }) hasZoom = false;\n sources: Array<EclGalleryMediaSource> = [];\n tracks: Array<EclGalleryMediaTrack> = [];\n\n /**\n * Applies the ECL classes for the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n super.getCssClasses('ecl-gallery__image'),\n this.hasZoom && this.isVideo ? 'ecl-video--zoom' : '',\n ].join(' ').trim();\n }\n @HostBinding('class.ecl-video') isVideo = false;\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 = 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})\nexport class EclGalleryPictureDirective extends ECLBaseDirective {\n // TODO: to be removed in v19. Thumbnail should be added by user.\n isThumbnail = false;\n sources: Array<EclGalleryPictureSource> = [];\n img: EclGalleryPictureImage ={};\n private el = inject(ElementRef);\n private cd = inject(ChangeDetectorRef);\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture'), this.isThumbnail ? 'ecl-gallery__thumbnail': 'ecl-gallery__picture'].join(' ').trim();\n }\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})\nexport class EclGalleryThumbnailDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-picture ecl-gallery__thumbnail')].join(' ').trim();\n }\n @Input({ transform: booleanAttribute }) @HostBinding('class.ecl-picture--zoom') hasZoom = false;\n}\n","import { Component, ContentChild, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnInit, AfterContentInit, Output, Renderer2, booleanAttribute, inject } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclGalleryItem } from './models/ecl-gallery-item.model';\nimport {\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n} from './ecl-gallery-media.directive';\nimport { EclGalleryItemClickEvent } from './events';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\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})\nexport class EclGalleryItemComponent extends ECLBaseDirective implements EclGalleryItem, OnInit, AfterContentInit {\n /**\n * Can this item be shared, i.e. show/hide share button.\n */\n @Input({ transform: booleanAttribute }) isShareable = true;\n @Input() mediaType: '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 @Input() src: string;\n @Input() meta: string;\n @Input() description: string;\n /**\n * Embeded audio description.\n */\n @Input() srVideoAudioDescription: string;\n @Input() icon: string;\n @Input() title: string;\n @Input() itemId: string;\n @Output() itemClick = new EventEmitter<EclGalleryItemClickEvent>();\n @ContentChild(EclGalleryMediaDirective) mediaChild: EclGalleryMediaDirective;\n @ContentChild(EclGalleryThumbnailDirective) galleryThumbnail: EclGalleryThumbnailDirective;\n @ContentChild(EclGalleryPictureDirective) galleryPicture: EclGalleryPictureDirective;\n\n /**\n * Binds specific classes for the item. Some depend on some of the properties of the component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-gallery__item'), this._isHidden ? 'ecl-gallery__item--hidden' : ''].join(' ').trim();\n }\n /**\n * The role attribute of the item is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n private _isNoOverlay = false;\n private _isHidden = false;\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 if (!this.itemId) {\n this.itemId = crypto.randomUUID();\n }\n }\n\n // TODO: to be removed in v19. Thumbnail should be added by user.\n ngAfterContentInit(): void {\n if (this.galleryPicture && !this.galleryThumbnail && !this.isImage) {\n this.galleryPicture.isThumbnail = true;\n }\n }\n\n /**\n * Set if the item should be shown in the gallery by default.\n */\n set isHidden(value: boolean) {\n this._isHidden = value;\n }\n\n @HostListener('click', ['$event'])\n onItemClick(evt: MouseEvent): void {\n this.itemClick.next(new EclGalleryItemClickEvent());\n evt.preventDefault();\n }\n\n getDownloadLink(): string {\n return this.src;\n }\n\n getUrlExternalVideo(): SafeResourceUrl {\n return this.externalVideoUrl;\n }\n\n get isNoOverlay(): boolean {\n return this._isNoOverlay;\n }\n\n set isNoOverlay(value: boolean) {\n this._isNoOverlay = value;\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 /**\n * Creates id for the title\n */\n get titleId(): string {\n return `${this.itemId}-title`;\n }\n\n /**\n * If the thimbnail was added by user. If not -> we are adding it in the view.\n */\n get hasGalleryThumbnail(): boolean {\n return !this.galleryThumbnail && this.isImage;\n }\n\n onFocus(): void {\n this.renderer.selectRootElement(this.el.nativeElement.children[0], true).focus();\n }\n}\n","<a [href]=\"src\" class=\"ecl-gallery__item-link\" [class.ecl-gallery__item__link--frozen]=\"isNoOverlay\" [id]=\"itemId\">\n <figure class=\"ecl-gallery__image-container\">\n @if(mediaType !== 'image') {\n <div class=\"ecl-gallery__item-icon-wrapper\">\n <ecl-icon isInverted class=\"ecl-gallery__item-icon ecl-icon--inverted\" icon=\"play-filled\" size=\"l\"></ecl-icon>\n </div>\n } \n @if(hasGalleryThumbnail) { <!-- TODO: to be removed in v21. Thumbnail should be added by user. -->\n <picture class=\"ecl-picture ecl-gallery__thumbnail\">\n @for(el of galleryPicture?.sources; track el.srcset ) {\n <source [attr.srcset]=\"el.srcset\" [attr.media]=\" el.media\">\n }\n <img class=\"ecl-gallery__image\"\n [attr.src]=\"galleryPicture?.img.src\"\n [attr.alt]=\"galleryPicture?.img.alt\" />\n </picture>\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>","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { AfterContentInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, PLATFORM_ID, QueryList, ViewChild, booleanAttribute, numberAttribute, inject } from '@angular/core';\nimport { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { Subject, delay } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclGalleryFooterComponent } from './ecl-gallery-footer.component';\nimport { EclGalleryItemComponent } from './ecl-gallery-item.component';\nimport { EclGalleryItemEvent } from './events';\nimport { EclGalleryShareEvent } from './events';\nimport { EclGalleryFullScreenEvent } from './events';\nimport { EclGalleryHideEvent } from './events';\nimport { EclGalleryShowEvent } from './events';\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';\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: [TranslateModule, NgTemplateOutlet, ...EUI_ECL_BUTTON, ...EUI_ECL_ICON, ...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: block;\n }\n `,\n ],\n})\nexport class EclGalleryComponent extends ECLBaseDirective implements AfterContentInit, OnDestroy, OnInit {\n @Input({ transform: booleanAttribute }) isOpenInFullScreenPossible = true;\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 @Input({ transform: booleanAttribute }) isShareable = true;\n /**\n * If set to true, the gallery will have 100 view width.\n */\n @Input({ transform: booleanAttribute }) isFullWidth = false;\n /**\n * If set to true, no overlay will be displayed when user clicks on an image.\n */\n @Input({ transform: booleanAttribute }) isNoOverlay = false;\n /**\n * If set to false, no title will be displayed when user hover on a gallery item.\n */\n @Input({ transform: booleanAttribute }) isShowTitleOnHover = true;\n /**\n * Number of gallery items to be displayed by default. The rest can be displayed with the 'View all' button.\n */\n @Input({ transform: numberAttribute }) maxVisibleItems: number;\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 @Input({ transform: booleanAttribute }) isGrid = false;\n // TODO: not used, to be removed in v20.\n @Input({ transform: numberAttribute }) columns: 2 | 3 | 4 | number = 3;\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 @Input() gridTemplate: '0' | '1' | '2' | '3' | '4' | string = '0';\n /**\n * The ratio that will be applied to the gallery thumbnails.\n */\n @Input() ratio: '3-1' | '3-2' | string = '3-2';\n\n /**\n * Emits event when user clicks on an item to expand it.\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() show = new EventEmitter<EclGalleryShowEvent>();\n /**\n * Emits event when an expanded item is closed.\n */\n @Output() hide = new EventEmitter<EclGalleryHideEvent>();\n /**\n * Emits event when an item is opened in full screen.\n */\n @Output() openFullScreen = new EventEmitter<EclGalleryFullScreenEvent>();\n /**\n * Emits event when an item is shared.\n */\n @Output() share = new EventEmitter<EclGalleryShareEvent>();\n /**\n * Emits event when user is browsing items, opened in an overlay.\n */\n @Output() itemSwitch = new EventEmitter<EclGalleryItemEvent>();\n @ContentChildren(EclGalleryItemComponent) galleryItems: QueryList<EclGalleryItemComponent>;\n @ContentChild(EclGalleryFooterComponent) galleryFooter: EclGalleryFooterComponent;\n @ViewChild('overlay') overlayChild: ElementRef;\n @ViewChild('header') headerChild: ElementRef;\n @ViewChild('footer') footerChild: ElementRef;\n\n /**\n * Applies specific clases to the component, related to the component properties values.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [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 ].join(' ').trim();\n }\n /**\n * The default role of the component is 'region' and should not be changed.\n */\n @HostBinding('attr.role') role = 'region';\n\n isDialogVisible = false;\n isMobile = false;\n itemsCount: number;\n itemIndex: number;\n item: EclGalleryItemComponent;\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\n ngOnInit(): void {\n // Manages the initial display of the gallery, the footer and the visible/hidden items.\n if (isPlatformBrowser(this.platformId)) {\n this.observeBreakpointChanges();\n }\n }\n\n ngAfterContentInit(): void {\n this.itemsCount = this.galleryItems.length;\n this.visibleItems = this.maxVisibleItems ? this.maxVisibleItems : this.itemsCount;\n if (this.galleryFooter) {\n this.galleryFooter.itemsCount = this.itemsCount;\n this.galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n // Subscribe to 'toggleItems' event from gallery footer, to show or collapse items.\n this.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 item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((_) => {\n this.isDialogVisible = true;\n this.item = item;\n this.itemIndex = this.findItemIndex(this.galleryItems.toArray(), item);\n this.show.next(new EclGalleryShowEvent());\n if (isPlatformBrowser(this.platformId)) {\n setTimeout(() => this.setIframeDimensions());\n }\n });\n });\n } else {\n this.galleryItems.forEach((item) => (item.isNoOverlay = 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 onPrevious(evt: MouseEvent): void {\n this.item = this.findPreviousItem(this.galleryItems.toArray(), this.item);\n\n this.itemIndex = this.findItemIndex(this.galleryItems.toArray(), this.item);\n\n this.itemSwitch.next(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 onNext(evt: MouseEvent): void {\n this.item = this.findNextItem(this.galleryItems.toArray(), this.item);\n this.itemIndex = this.findItemIndex(this.galleryItems.toArray(), this.item);\n\n this.itemSwitch.next(new EclGalleryItemEvent(this.item));\n }\n\n /**\n * Emit 'hide' event, when closing item dialog.\n * @param evt\n */\n onClose(evt: MouseEvent): void {\n this.item = null;\n this.itemIndex = -1;\n this.isDialogVisible = false;\n this.hide.next(new EclGalleryHideEvent());\n }\n\n /**\n * On pressing 'esc' key - close the item dialog and emit 'hide' event.\n * @param event\n */\n @HostListener('document:keydown.escape')\n onEscapeKeydownHandler(): void {\n this.isDialogVisible = false;\n this.hide.next(new EclGalleryHideEvent());\n }\n\n onFullScreenOpen(evt: MouseEvent): void {\n this.openFullScreen.next(new EclGalleryFullScreenEvent(this.item));\n }\n\n onShare(evt: MouseEvent): void {\n this.share.next(new EclGalleryShareEvent(this.item));\n evt.preventDefault();\n }\n\n canBeOpenInFullScreen(): boolean {\n return this.isOpenInFullScreenPossible && this.item?.isOpenInFullScreenPossible;\n }\n\n canBeShared(): boolean {\n return this.isShareable && this.item?.isShareable;\n }\n\n getIframeWidth(): number {\n return this.iframeWidth;\n }\n\n getIframeHeight(): number {\n return this.iframeHeight;\n }\n\n setIframeDimensions(): void {\n const { width, height } = this.getCalculatedIframeDimensions();\n this.iframeWidth = width;\n this.iframeHeight = height;\n }\n\n @HostListener('window:resize')\n iframeResize(): void {\n this.setIframeDimensions();\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: Array<EclGalleryItemComponent>, item: EclGalleryItemComponent): number {\n return items.findIndex((it) => it === item) + 1;\n }\n\n private findPreviousItem(items: Array<EclGalleryItemComponent>, item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findPreviousItemIndex(items, item);\n return items[index];\n }\n\n private findNextItem(items: Array<EclGalleryItemComponent>, item: EclGalleryItemComponent): EclGalleryItemComponent {\n const index = this.findNextItemIndex(items, item);\n return items[index];\n }\n\n private findPreviousItemIndex(items: Array<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: Array<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.maxVisibleItems = this.MAX_VISIBLE_ITEMS_MOBILE;\n this.collapseItems();\n if (this.galleryFooter) {\n this.galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private manageItemsDesktop(): void {\n this.maxVisibleItems = this.visibleItems;\n this.getVisibleItems().forEach((elem) => this.showGaleryItem(elem));\n this.collapseItems();\n if (this.galleryFooter) {\n this.galleryFooter.isShowToggleBtn = this.hasHiddenGaleryItems();\n }\n }\n\n private hasHiddenGaleryItems(): boolean {\n if (this.maxVisibleItems && this.itemsCount > 0 && this.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 = true;\n }\n\n private showGaleryItem(item: EclGalleryItemComponent): void {\n item.isHidden = false;\n }\n\n private getHiddenItems(): EclGalleryItemComponent[] {\n return this.galleryItems.filter((item, cnt) => cnt >= this.maxVisibleItems);\n }\n private getVisibleItems(): EclGalleryItemComponent[] {\n return this.galleryItems.filter((item, cnt) => cnt < this.maxVisibleItems);\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?.itemId\">{{ 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 { NgModule } from '@angular/core';\nimport { 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\nconst COMPONENTS = [\n EclGalleryComponent,\n EclGalleryFooterComponent,\n EclGalleryItemComponent,\n EclGalleryMediaDirective,\n EclGalleryPictureDirective,\n EclGalleryThumbnailDirective,\n];\n\n/**\n * Module that provides the EclGalleryComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_GALLERY} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclGalleryModule {}\n","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.module';\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","i4"],"mappings":"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"}
@@ -89,7 +89,7 @@ class EclInpageNavigationItemComponent extends ECLBaseDirective {
89
89
  this.itemEnter.emit();
90
90
  }
91
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclInpageNavigationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-rc.2", type: EclInpageNavigationItemComponent, isStandalone: true, selector: "ecl-inpage-navigation-item, li[eclInpageNavigationItem]", inputs: { label: "label", sectionId: "sectionId", isActive: "isActive" }, outputs: { itemClick: "itemClick", itemArrowUp: "itemArrowUp", itemArrowDown: "itemArrowDown", itemTab: "itemTab", itemEnter: "itemEnter" }, host: { properties: { "class.ecl-inpage-navigation__item": "this.cmpClass", "attr.role": "this.role", "class.ecl-inpage-navigation__item--active": "this.isActive" } }, viewQueries: [{ propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\" (keydown.enter)=\"onEnter($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }] }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-rc.2", type: EclInpageNavigationItemComponent, isStandalone: true, selector: "ecl-inpage-navigation-item, li[eclInpageNavigationItem]", inputs: { label: "label", sectionId: "sectionId", isActive: "isActive" }, outputs: { itemClick: "itemClick", itemArrowUp: "itemArrowUp", itemArrowDown: "itemArrowDown", itemTab: "itemTab", itemEnter: "itemEnter" }, host: { properties: { "class.ecl-inpage-navigation__item": "this.cmpClass", "attr.role": "this.role", "class.ecl-inpage-navigation__item--active": "this.isActive" } }, viewQueries: [{ propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\" (keydown.enter)=\"onEnter($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isHighlight", "isNoVisited", "variant"] }] }); }
93
93
  }
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-rc.2", ngImport: i0, type: EclInpageNavigationItemComponent, decorators: [{
95
95
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-inpage-navigation.mjs","sources":["../../components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.html","../../components/ecl-inpage-navigation/services/ecl-inpage-navigation.service.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation-list.directive.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.html","../../components/ecl-inpage-navigation/ecl-inpage-navigation.module.ts","../../components/ecl-inpage-navigation/index.ts","../../components/ecl-inpage-navigation/eui-ecl-components-ecl-inpage-navigation.ts"],"sourcesContent":["import { Component, HostBinding, Input, Output, EventEmitter, ViewChild, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\nexport class EclInpageNavigationItemClickEvent extends EclBaseEvent {\n constructor(public sectionElementId: string) {\n super();\n }\n}\n/**\n * Represent a single navigation item. contains the link, that activates/scrolls to the new current paragraph of the page.\n */\n// TODO: ecl-inpage-navigation-item selector is deprecated and should be removed in v20\n@Component({\n selector: 'ecl-inpage-navigation-item, li[eclInpageNavigationItem]',\n templateUrl: './ecl-inpage-navigation-item.component.html',\n imports: [...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclInpageNavigationItemComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-inpage-navigation__item') cmpClass = true;\n /**\n * The role of the component is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * The label that is displayed in the items list.\n */\n @Input() label: string;\n @Input() sectionId: string;\n @Input() @HostBinding('class.ecl-inpage-navigation__item--active') isActive: boolean;\n\n /**\n * Emited when user clicks on the item.\n */\n @Output() itemClick = new EventEmitter<EclInpageNavigationItemClickEvent>();\n /**\n * Emitted when on keyboard navigation, user clicks the arrow-up.\n */\n @Output() itemArrowUp = new EventEmitter();\n /**\n * Emitted when on keyboard navigation, user clicks the arrow-down.\n */\n @Output() itemArrowDown = new EventEmitter();\n /**\n * Emitted when on keyboard navigation, user clicks the TAB.\n */\n @Output() itemTab = new EventEmitter<Event>();\n /**\n * Emitted when on keyboard navigation, user clicks the ENTER.\n */\n @Output() itemEnter = new EventEmitter();\n\n @ViewChild(EclLinkDirective) link: EclLinkDirective\n\n constructor() {\n const el = inject(ElementRef);\n\n super();\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-inpage-navigation-item') {\n console.warn('\"ecl-inpage-navigation-item\" selector is deprecated; use \"li[eclInpageNavigationItem]\" instead.');\n }\n }\n\n onItemClick(evt: MouseEvent): void {\n const event = new EclInpageNavigationItemClickEvent(this.sectionId);\n this.itemClick.next(event);\n\n evt.preventDefault();\n }\n\n /**\n * Returns page element/paragraph, that is associated with this item from the navigation list.\n */\n get sectionElement(): HTMLElement {\n return document.querySelector(`#${this.sectionId}`);\n }\n\n onArrowUp(evt: Event): void {\n evt.preventDefault();\n this.itemArrowUp.emit()\n }\n\n onArrowDown(evt: Event): void {\n evt.preventDefault();\n this.itemArrowDown.emit();\n }\n\n onTab(evt: Event): void {\n this.itemTab.emit(evt);\n }\n\n onFocus(): void{\n this.link.onFocus();\n }\n\n onEnter(evt: Event): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.itemEnter.emit();\n }\n}\n","<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\" (keydown.enter)=\"onEnter($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EclInpageNavigationService {\n\n\tpublic eclInpageNavigationExpanded$: Observable<boolean>;\n\tprivate eclInpageNavigationExpanded: Subject<boolean> = new Subject<boolean>();\n\n\tconstructor() {\n this.eclInpageNavigationExpanded$ = this.eclInpageNavigationExpanded.asObservable();\n\t}\n\n\t/**\n\t * When user clicks on arrow down button in mobile view.\n\t * @param isExpanded\n\t */\n eclInpageNavigationToggle(isExpanded: boolean): void {\n\t\tthis.eclInpageNavigationExpanded.next(isExpanded);\n\t}\n}\n","import { AfterContentInit, Directive, ElementRef, HostBinding, OnDestroy, inject } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\n\n/**\n * The parent list component, that contains navigation items links.\n */\n@Directive({\n selector: 'ul[eclInpageNavigationList]',\n\n})\nexport class EclInpageNavigationListDirective extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-inpage-navigation__list') hasClass = true;\n /**\n * If the dropdown is visible in mobile view.\n */\n @HostBinding('class.ecl-inpage-navigation__list--visible') isVisible = false;\n @HostBinding('style.max-height.px') maxHeight = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private eclInpageNavigationService = inject(EclInpageNavigationService);\n\n ngAfterContentInit(): void {\n this.eclInpageNavigationService.eclInpageNavigationExpanded$.pipe(takeUntil(this.destroy$)).subscribe((value: boolean) => {\n this.isVisible = value;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n","import { Component, ContentChild, ContentChildren, DoCheck, ElementRef, EventEmitter, Input, IterableDiffer, IterableDiffers, NgZone, OnDestroy, OnInit, Output, QueryList, ViewChild, afterNextRender, numberAttribute, inject } from '@angular/core';\nimport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclThemeService, EclRtlService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclStickyContainerModule } from '@eui/ecl/components/ecl-sticky-container';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport class EclInpageNavigationSectionEnterEvent extends EclBaseEvent {\n constructor(public sectionId: string) {\n super();\n }\n}\n\n/**\n * The in-page navigation is a vertical menu containing (anchored) links to H2-headings on long content pages.\n * It gives the user an overview of the page contents and has a fixed position (does not move while scrolling) at either the left\n * side of a page on desktop or top-bar on mobile. This component helps users scan of the page quickly contents and may potentially\n * reduce vertical scrolling, allowing users to easily jump straight to the segment of the page.\n */\n@Component({\n selector: 'ecl-inpage-navigation',\n templateUrl: './ecl-inpage-navigation.component.html',\n imports: [TranslateModule, NgTemplateOutlet, EclStickyContainerModule, ...EUI_ECL_ICON],\n styles: [\n `\n @media (min-width: 996px) {\n .ecl-inpage-navigation__list {\n display: block !important;\n }\n }\n `,\n ],\n})\nexport class EclInpageNavigationComponent extends ECLBaseDirective implements OnInit, OnDestroy, DoCheck {\n eclThemeService = inject(EclThemeService);\n\n @Input() eclTitle: string;\n /**\n * Used to calculate component's position.\n */\n @Input() marginTop: number;\n @Input() marginBottom: number;\n /**\n * Sets the offset from the top of the page (for example if there is a toolbar or header). Used to calculate scrolling behaviour.\n */\n @Input({ transform: numberAttribute }) offsetTop: number;\n @ViewChild('togglerButton') togglerButton: ElementRef<HTMLButtonElement>;\n @ViewChild('toggleWrapper') toggleWrapper: ElementRef<HTMLDivElement>;\n /**\n * @deprecated To be removed in v20. Not needed, replaced by 'eclNavigationList'\n */\n @ViewChild('listContainer') listContainer: ElementRef<HTMLUListElement>;\n @ViewChild('navTittle') navTittle: ElementRef<HTMLDivElement>;\n /**\n * This event will be emitted, when onscroll a new section becomes active.\n */\n @Output() sectionEnter = new EventEmitter<EclInpageNavigationSectionEnterEvent>();\n\n @ContentChildren(EclInpageNavigationItemComponent, { descendants: true }) eclNavigationLinkItems: QueryList<EclInpageNavigationItemComponent>;\n @ContentChild(EclInpageNavigationListDirective) eclNavigationList: EclInpageNavigationListDirective;\n\n /**\n * Used for the mobile view, where user can select a section from the dropdown.\n */\n isButtonExpanded = false;\n currentSectionElement: HTMLElement;\n public isRtl = false;\n public listMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclInpageNavigationItemComponent>;\n private isMobileBreakpoint = false;\n private MIN_DISTANCE_TOP = 10;\n private readonly ICON_SIZE_EC_THEME = '2xs';\n private readonly ICON_SIZE_EU_THEME = 's';\n private readonly TABLET_BREAKPOINT = 996;\n private intersectionObserver: IntersectionObserver;\n private eclRtlService = inject(EclRtlService);\n private differs = inject(IterableDiffers);\n private scrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private viewportRuler = inject(ViewportRuler);\n private eclInpageNavigationService = inject(EclInpageNavigationService);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n this.observeBreakpointChanges();\n\n this.intersectionObserver = new IntersectionObserver(()=> {\n this.setListHeight();\n });\n this.intersectionObserver.observe(this.togglerButton.nativeElement);\n\n this.viewportRuler.change(300).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(()=> {\n this.setListHeight();\n });\n });\n });\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n get hasNavigationList(): boolean {\n return !!this.eclNavigationList;\n }\n\n get currentNavigationLinkItem(): EclInpageNavigationItemComponent {\n return this.eclNavigationLinkItems.find((item) => item.sectionElement === this.currentSectionElement);\n }\n\n /**\n * the size of the arrow-down icon, used in mobile view. There are different sizes for EC and EU themes.\n */\n get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC_THEME;\n } else {\n return this.ICON_SIZE_EU_THEME;\n }\n }\n\n get hasActiveSection(): boolean {\n return !!this.currentSectionElement;\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclNavigationLinkItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.intersectionObserver.unobserve(this.togglerButton.nativeElement);\n }\n\n /**\n * On mobile view - handle the dropdown toggle.\n */\n onExpandButtonClick(): void {\n this.isButtonExpanded = !this.isButtonExpanded;\n this.eclInpageNavigationService.eclInpageNavigationToggle(this.isButtonExpanded);\n }\n\n /**\n * Dropdown keyboard navigation on mobile view.\n * @param evt\n */\n onExpandButtonKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case 'Tab':\n this.onExpandButtonTab(evt);\n break;\n case 'ArrowDown':\n this.onExpandButtonArrowDown(evt);\n break;\n default:\n break;\n }\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Set the height of the list with the navigation items in px. So in case the full list cannot be displayed, a scroll will appear.\n */\n private setListHeight(): void {\n if (!this.listContainer && !this.eclNavigationList) {\n return;\n }\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let topPosition = 0;\n if (viewportWidth < this.TABLET_BREAKPOINT) {\n const toggleWrapper = this.toggleWrapper.nativeElement;\n if (toggleWrapper) {\n topPosition = toggleWrapper.getBoundingClientRect().bottom +\n parseFloat(window.getComputedStyle(toggleWrapper).marginBottom);\n }\n } else if (this.eclTitle) {\n topPosition = this.navTittle.nativeElement.getBoundingClientRect().bottom;\n } else {\n if (this.listContainer) {\n topPosition = this.listContainer.nativeElement.getBoundingClientRect().top;\n } else if (this.eclNavigationList) {\n topPosition = this.eclNavigationList.el.nativeElement.getBoundingClientRect().top;\n }\n }\n\n const availableSpace = viewportHeight - topPosition;\n if (availableSpace > 0) {\n this.listMaxHeight = availableSpace;\n if (this.eclNavigationList) {\n this.eclNavigationList.maxHeight = this.listMaxHeight;\n }\n }\n }\n\n private onExpandButtonArrowDown(evt: Event): void {\n evt.preventDefault();\n this.isButtonExpanded = true;\n this.eclNavigationLinkItems.get(0).onFocus();\n }\n\n private onExpandButtonTab(evt: Event): void {\n if ((evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.eclNavigationLinkItems.get(this.eclNavigationLinkItems.length - 1).onFocus();\n }\n }\n\n private connectItemEvents(item: EclInpageNavigationItemComponent): void {\n item.itemArrowDown.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowDown(item);\n });\n\n item.itemArrowUp.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowUp(item);\n });\n\n item.itemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onItemTab(item, evt);\n });\n\n item.itemEnter.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemEnter(item);\n });\n\n item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.selectNavigationItem(item.sectionElement);\n if (item.sectionElement) {\n item.sectionElement.scrollIntoView();\n }\n this.isButtonExpanded = false;\n });\n }\n\n private onItemEnter(item: EclInpageNavigationItemComponent): void {\n this.selectNavigationItem(item.sectionElement);\n if (item.sectionElement) {\n item.sectionElement.scrollIntoView();\n if (item.sectionElement.tabIndex === -1) {\n item.sectionElement.tabIndex = 0;\n item.sectionElement.focus();\n item.sectionElement.tabIndex = -1;\n }\n }\n this.isButtonExpanded = false;\n }\n\n private onItemArrowDown(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== this.eclNavigationLinkItems.length - 1) {\n this.eclNavigationLinkItems.get(index + 1).onFocus();\n }\n }\n\n private onItemArrowUp(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== 0) {\n this.eclNavigationLinkItems.get(index - 1).onFocus();\n } else {\n if (this.isMobileBreakpoint && this.togglerButton) {\n this.isButtonExpanded = false;\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n\n private onItemTab(item: EclInpageNavigationItemComponent, evt: Event): void {\n if (this.isMobileBreakpoint) {\n if (!(evt as KeyboardEvent).shiftKey) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index === this.eclNavigationLinkItems.length - 1) {\n evt.preventDefault();\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n }\n\n private subscribeToCDKScrollEvent(): void {\n this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe((scrollable: CdkScrollable) => {\n this.zone.run(() => {\n const sectionElementIds = this.eclNavigationLinkItems.map((item) => item.sectionId);\n const sectionElements: Array<HTMLElement> = sectionElementIds.map((id) => document.querySelector(`#${id}`));\n this.handleNavigationLinksHighlight(sectionElements);\n this.setListHeight();\n });\n });\n }\n\n private selectNavigationItem(itemElement: HTMLElement): void {\n this.eclNavigationLinkItems.forEach((it) => {\n it.isActive = it.sectionElement === itemElement;\n });\n }\n\n private handleNavigationLinksHighlight(sectionElements: Array<HTMLElement>): void {\n const currentSectionElement: HTMLElement = this.findActiveSectionElement(sectionElements);\n if (currentSectionElement !== this.currentSectionElement) {\n this.currentSectionElement = currentSectionElement;\n this.selectNavigationItem(currentSectionElement);\n const sectionId = this.currentNavigationLinkItem ? this.currentNavigationLinkItem.sectionId : undefined;\n this.sectionEnter.next(new EclInpageNavigationSectionEnterEvent(sectionId));\n }\n }\n\n private findActiveSectionElement(sectionElements: Array<HTMLElement>): HTMLElement {\n let currentSection: HTMLElement;\n\n sectionElements.forEach((sectionElement) => {\n if (sectionElement && sectionElement.getBoundingClientRect().top <= this.MIN_DISTANCE_TOP + this.offsetTop) {\n currentSection = sectionElement;\n }\n });\n return currentSection;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n @if (!hasNavigationList) {\n <ul #listContainer id=\"ecl-inpage-navigation-default-list\" class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\" [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </ul>\n } @else {\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n }\n </div>\n </nav>\n</ecl-sticky-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationComponent } from './ecl-inpage-navigation.component';\n\nconst COMPONENTS = [EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective];\n/**\n * Module that provides the EclInpageNavigationComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_INPAGE_NAVIGATION} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclInpageNavigationModule {}\n","import { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationComponent } from './ecl-inpage-navigation.component';\n\nexport * from './ecl-inpage-navigation.module';\nexport * from './ecl-inpage-navigation.component';\nexport * from './ecl-inpage-navigation-item.component';\nexport * from './ecl-inpage-navigation-list.directive';\nexport * from './services/ecl-inpage-navigation.service';\n\nexport const EUI_ECL_INPAGE_NAVIGATION = [\n EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i1"],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-inpage-navigation.mjs","sources":["../../components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.html","../../components/ecl-inpage-navigation/services/ecl-inpage-navigation.service.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation-list.directive.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.html","../../components/ecl-inpage-navigation/ecl-inpage-navigation.module.ts","../../components/ecl-inpage-navigation/index.ts","../../components/ecl-inpage-navigation/eui-ecl-components-ecl-inpage-navigation.ts"],"sourcesContent":["import { Component, HostBinding, Input, Output, EventEmitter, ViewChild, ElementRef, inject } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclLinkDirective, EUI_ECL_LINK } from '@eui/ecl/components/ecl-link';\n\nexport class EclInpageNavigationItemClickEvent extends EclBaseEvent {\n constructor(public sectionElementId: string) {\n super();\n }\n}\n/**\n * Represent a single navigation item. contains the link, that activates/scrolls to the new current paragraph of the page.\n */\n// TODO: ecl-inpage-navigation-item selector is deprecated and should be removed in v20\n@Component({\n selector: 'ecl-inpage-navigation-item, li[eclInpageNavigationItem]',\n templateUrl: './ecl-inpage-navigation-item.component.html',\n imports: [...EUI_ECL_LINK],\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclInpageNavigationItemComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-inpage-navigation__item') cmpClass = true;\n /**\n * The role of the component is 'listitem', should not be changed.\n */\n @HostBinding('attr.role') role = 'listitem';\n\n /**\n * The label that is displayed in the items list.\n */\n @Input() label: string;\n @Input() sectionId: string;\n @Input() @HostBinding('class.ecl-inpage-navigation__item--active') isActive: boolean;\n\n /**\n * Emited when user clicks on the item.\n */\n @Output() itemClick = new EventEmitter<EclInpageNavigationItemClickEvent>();\n /**\n * Emitted when on keyboard navigation, user clicks the arrow-up.\n */\n @Output() itemArrowUp = new EventEmitter();\n /**\n * Emitted when on keyboard navigation, user clicks the arrow-down.\n */\n @Output() itemArrowDown = new EventEmitter();\n /**\n * Emitted when on keyboard navigation, user clicks the TAB.\n */\n @Output() itemTab = new EventEmitter<Event>();\n /**\n * Emitted when on keyboard navigation, user clicks the ENTER.\n */\n @Output() itemEnter = new EventEmitter();\n\n @ViewChild(EclLinkDirective) link: EclLinkDirective\n\n constructor() {\n const el = inject(ElementRef);\n\n super();\n if (el.nativeElement.tagName.toLowerCase() === 'ecl-inpage-navigation-item') {\n console.warn('\"ecl-inpage-navigation-item\" selector is deprecated; use \"li[eclInpageNavigationItem]\" instead.');\n }\n }\n\n onItemClick(evt: MouseEvent): void {\n const event = new EclInpageNavigationItemClickEvent(this.sectionId);\n this.itemClick.next(event);\n\n evt.preventDefault();\n }\n\n /**\n * Returns page element/paragraph, that is associated with this item from the navigation list.\n */\n get sectionElement(): HTMLElement {\n return document.querySelector(`#${this.sectionId}`);\n }\n\n onArrowUp(evt: Event): void {\n evt.preventDefault();\n this.itemArrowUp.emit()\n }\n\n onArrowDown(evt: Event): void {\n evt.preventDefault();\n this.itemArrowDown.emit();\n }\n\n onTab(evt: Event): void {\n this.itemTab.emit(evt);\n }\n\n onFocus(): void{\n this.link.onFocus();\n }\n\n onEnter(evt: Event): void {\n evt.preventDefault();\n evt.stopPropagation();\n this.itemEnter.emit();\n }\n}\n","<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\" (keydown.enter)=\"onEnter($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class EclInpageNavigationService {\n\n\tpublic eclInpageNavigationExpanded$: Observable<boolean>;\n\tprivate eclInpageNavigationExpanded: Subject<boolean> = new Subject<boolean>();\n\n\tconstructor() {\n this.eclInpageNavigationExpanded$ = this.eclInpageNavigationExpanded.asObservable();\n\t}\n\n\t/**\n\t * When user clicks on arrow down button in mobile view.\n\t * @param isExpanded\n\t */\n eclInpageNavigationToggle(isExpanded: boolean): void {\n\t\tthis.eclInpageNavigationExpanded.next(isExpanded);\n\t}\n}\n","import { AfterContentInit, Directive, ElementRef, HostBinding, OnDestroy, inject } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\n\n/**\n * The parent list component, that contains navigation items links.\n */\n@Directive({\n selector: 'ul[eclInpageNavigationList]',\n\n})\nexport class EclInpageNavigationListDirective extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n el = inject(ElementRef);\n\n @HostBinding('class.ecl-inpage-navigation__list') hasClass = true;\n /**\n * If the dropdown is visible in mobile view.\n */\n @HostBinding('class.ecl-inpage-navigation__list--visible') isVisible = false;\n @HostBinding('style.max-height.px') maxHeight = null;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private eclInpageNavigationService = inject(EclInpageNavigationService);\n\n ngAfterContentInit(): void {\n this.eclInpageNavigationService.eclInpageNavigationExpanded$.pipe(takeUntil(this.destroy$)).subscribe((value: boolean) => {\n this.isVisible = value;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n","import { Component, ContentChild, ContentChildren, DoCheck, ElementRef, EventEmitter, Input, IterableDiffer, IterableDiffers, NgZone, OnDestroy, OnInit, Output, QueryList, ViewChild, afterNextRender, numberAttribute, inject } from '@angular/core';\nimport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclThemeService, EclRtlService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclStickyContainerModule } from '@eui/ecl/components/ecl-sticky-container';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\n\nexport class EclInpageNavigationSectionEnterEvent extends EclBaseEvent {\n constructor(public sectionId: string) {\n super();\n }\n}\n\n/**\n * The in-page navigation is a vertical menu containing (anchored) links to H2-headings on long content pages.\n * It gives the user an overview of the page contents and has a fixed position (does not move while scrolling) at either the left\n * side of a page on desktop or top-bar on mobile. This component helps users scan of the page quickly contents and may potentially\n * reduce vertical scrolling, allowing users to easily jump straight to the segment of the page.\n */\n@Component({\n selector: 'ecl-inpage-navigation',\n templateUrl: './ecl-inpage-navigation.component.html',\n imports: [TranslateModule, NgTemplateOutlet, EclStickyContainerModule, ...EUI_ECL_ICON],\n styles: [\n `\n @media (min-width: 996px) {\n .ecl-inpage-navigation__list {\n display: block !important;\n }\n }\n `,\n ],\n})\nexport class EclInpageNavigationComponent extends ECLBaseDirective implements OnInit, OnDestroy, DoCheck {\n eclThemeService = inject(EclThemeService);\n\n @Input() eclTitle: string;\n /**\n * Used to calculate component's position.\n */\n @Input() marginTop: number;\n @Input() marginBottom: number;\n /**\n * Sets the offset from the top of the page (for example if there is a toolbar or header). Used to calculate scrolling behaviour.\n */\n @Input({ transform: numberAttribute }) offsetTop: number;\n @ViewChild('togglerButton') togglerButton: ElementRef<HTMLButtonElement>;\n @ViewChild('toggleWrapper') toggleWrapper: ElementRef<HTMLDivElement>;\n /**\n * @deprecated To be removed in v20. Not needed, replaced by 'eclNavigationList'\n */\n @ViewChild('listContainer') listContainer: ElementRef<HTMLUListElement>;\n @ViewChild('navTittle') navTittle: ElementRef<HTMLDivElement>;\n /**\n * This event will be emitted, when onscroll a new section becomes active.\n */\n @Output() sectionEnter = new EventEmitter<EclInpageNavigationSectionEnterEvent>();\n\n @ContentChildren(EclInpageNavigationItemComponent, { descendants: true }) eclNavigationLinkItems: QueryList<EclInpageNavigationItemComponent>;\n @ContentChild(EclInpageNavigationListDirective) eclNavigationList: EclInpageNavigationListDirective;\n\n /**\n * Used for the mobile view, where user can select a section from the dropdown.\n */\n isButtonExpanded = false;\n currentSectionElement: HTMLElement;\n public isRtl = false;\n public listMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclInpageNavigationItemComponent>;\n private isMobileBreakpoint = false;\n private MIN_DISTANCE_TOP = 10;\n private readonly ICON_SIZE_EC_THEME = '2xs';\n private readonly ICON_SIZE_EU_THEME = 's';\n private readonly TABLET_BREAKPOINT = 996;\n private intersectionObserver: IntersectionObserver;\n private eclRtlService = inject(EclRtlService);\n private differs = inject(IterableDiffers);\n private scrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private viewportRuler = inject(ViewportRuler);\n private eclInpageNavigationService = inject(EclInpageNavigationService);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n this.observeBreakpointChanges();\n\n this.intersectionObserver = new IntersectionObserver(()=> {\n this.setListHeight();\n });\n this.intersectionObserver.observe(this.togglerButton.nativeElement);\n\n this.viewportRuler.change(300).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(()=> {\n this.setListHeight();\n });\n });\n });\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n get hasNavigationList(): boolean {\n return !!this.eclNavigationList;\n }\n\n get currentNavigationLinkItem(): EclInpageNavigationItemComponent {\n return this.eclNavigationLinkItems.find((item) => item.sectionElement === this.currentSectionElement);\n }\n\n /**\n * the size of the arrow-down icon, used in mobile view. There are different sizes for EC and EU themes.\n */\n get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC_THEME;\n } else {\n return this.ICON_SIZE_EU_THEME;\n }\n }\n\n get hasActiveSection(): boolean {\n return !!this.currentSectionElement;\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclNavigationLinkItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.intersectionObserver.unobserve(this.togglerButton.nativeElement);\n }\n\n /**\n * On mobile view - handle the dropdown toggle.\n */\n onExpandButtonClick(): void {\n this.isButtonExpanded = !this.isButtonExpanded;\n this.eclInpageNavigationService.eclInpageNavigationToggle(this.isButtonExpanded);\n }\n\n /**\n * Dropdown keyboard navigation on mobile view.\n * @param evt\n */\n onExpandButtonKeydown(evt: Event): void {\n switch ((evt as KeyboardEvent).key) {\n case 'Tab':\n this.onExpandButtonTab(evt);\n break;\n case 'ArrowDown':\n this.onExpandButtonArrowDown(evt);\n break;\n default:\n break;\n }\n }\n\n private handleRtlChangeState(): void {\n this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {\n this.isRtl = rtlState;\n });\n }\n\n /**\n * Set the height of the list with the navigation items in px. So in case the full list cannot be displayed, a scroll will appear.\n */\n private setListHeight(): void {\n if (!this.listContainer && !this.eclNavigationList) {\n return;\n }\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let topPosition = 0;\n if (viewportWidth < this.TABLET_BREAKPOINT) {\n const toggleWrapper = this.toggleWrapper.nativeElement;\n if (toggleWrapper) {\n topPosition = toggleWrapper.getBoundingClientRect().bottom +\n parseFloat(window.getComputedStyle(toggleWrapper).marginBottom);\n }\n } else if (this.eclTitle) {\n topPosition = this.navTittle.nativeElement.getBoundingClientRect().bottom;\n } else {\n if (this.listContainer) {\n topPosition = this.listContainer.nativeElement.getBoundingClientRect().top;\n } else if (this.eclNavigationList) {\n topPosition = this.eclNavigationList.el.nativeElement.getBoundingClientRect().top;\n }\n }\n\n const availableSpace = viewportHeight - topPosition;\n if (availableSpace > 0) {\n this.listMaxHeight = availableSpace;\n if (this.eclNavigationList) {\n this.eclNavigationList.maxHeight = this.listMaxHeight;\n }\n }\n }\n\n private onExpandButtonArrowDown(evt: Event): void {\n evt.preventDefault();\n this.isButtonExpanded = true;\n this.eclNavigationLinkItems.get(0).onFocus();\n }\n\n private onExpandButtonTab(evt: Event): void {\n if ((evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.eclNavigationLinkItems.get(this.eclNavigationLinkItems.length - 1).onFocus();\n }\n }\n\n private connectItemEvents(item: EclInpageNavigationItemComponent): void {\n item.itemArrowDown.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowDown(item);\n });\n\n item.itemArrowUp.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowUp(item);\n });\n\n item.itemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onItemTab(item, evt);\n });\n\n item.itemEnter.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemEnter(item);\n });\n\n item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.selectNavigationItem(item.sectionElement);\n if (item.sectionElement) {\n item.sectionElement.scrollIntoView();\n }\n this.isButtonExpanded = false;\n });\n }\n\n private onItemEnter(item: EclInpageNavigationItemComponent): void {\n this.selectNavigationItem(item.sectionElement);\n if (item.sectionElement) {\n item.sectionElement.scrollIntoView();\n if (item.sectionElement.tabIndex === -1) {\n item.sectionElement.tabIndex = 0;\n item.sectionElement.focus();\n item.sectionElement.tabIndex = -1;\n }\n }\n this.isButtonExpanded = false;\n }\n\n private onItemArrowDown(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== this.eclNavigationLinkItems.length - 1) {\n this.eclNavigationLinkItems.get(index + 1).onFocus();\n }\n }\n\n private onItemArrowUp(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== 0) {\n this.eclNavigationLinkItems.get(index - 1).onFocus();\n } else {\n if (this.isMobileBreakpoint && this.togglerButton) {\n this.isButtonExpanded = false;\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n\n private onItemTab(item: EclInpageNavigationItemComponent, evt: Event): void {\n if (this.isMobileBreakpoint) {\n if (!(evt as KeyboardEvent).shiftKey) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index === this.eclNavigationLinkItems.length - 1) {\n evt.preventDefault();\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n }\n\n private subscribeToCDKScrollEvent(): void {\n this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe((scrollable: CdkScrollable) => {\n this.zone.run(() => {\n const sectionElementIds = this.eclNavigationLinkItems.map((item) => item.sectionId);\n const sectionElements: Array<HTMLElement> = sectionElementIds.map((id) => document.querySelector(`#${id}`));\n this.handleNavigationLinksHighlight(sectionElements);\n this.setListHeight();\n });\n });\n }\n\n private selectNavigationItem(itemElement: HTMLElement): void {\n this.eclNavigationLinkItems.forEach((it) => {\n it.isActive = it.sectionElement === itemElement;\n });\n }\n\n private handleNavigationLinksHighlight(sectionElements: Array<HTMLElement>): void {\n const currentSectionElement: HTMLElement = this.findActiveSectionElement(sectionElements);\n if (currentSectionElement !== this.currentSectionElement) {\n this.currentSectionElement = currentSectionElement;\n this.selectNavigationItem(currentSectionElement);\n const sectionId = this.currentNavigationLinkItem ? this.currentNavigationLinkItem.sectionId : undefined;\n this.sectionEnter.next(new EclInpageNavigationSectionEnterEvent(sectionId));\n }\n }\n\n private findActiveSectionElement(sectionElements: Array<HTMLElement>): HTMLElement {\n let currentSection: HTMLElement;\n\n sectionElements.forEach((sectionElement) => {\n if (sectionElement && sectionElement.getBoundingClientRect().top <= this.MIN_DISTANCE_TOP + this.offsetTop) {\n currentSection = sectionElement;\n }\n });\n return currentSection;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n @if (!hasNavigationList) {\n <ul #listContainer id=\"ecl-inpage-navigation-default-list\" class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\" [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </ul>\n } @else {\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n }\n </div>\n </nav>\n</ecl-sticky-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationComponent } from './ecl-inpage-navigation.component';\n\nconst COMPONENTS = [EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective];\n/**\n * Module that provides the EclInpageNavigationComponent and its dependencies.\n *\n * @deprecated Use {@link EUI_ECL_INPAGE_NAVIGATION} instead.\n */\n@NgModule({\n imports: [...COMPONENTS],\n exports: [...COMPONENTS],\n})\nexport class EclInpageNavigationModule {}\n","import { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationComponent } from './ecl-inpage-navigation.component';\n\nexport * from './ecl-inpage-navigation.module';\nexport * from './ecl-inpage-navigation.component';\nexport * from './ecl-inpage-navigation-item.component';\nexport * from './ecl-inpage-navigation-list.directive';\nexport * from './services/ecl-inpage-navigation.service';\n\nexport const EUI_ECL_INPAGE_NAVIGATION = [\n EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i1"],"mappings":"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"}