@eui/ecl 22.0.0-alpha.1 → 22.0.0-alpha.10

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 (120) hide show
  1. package/docs/changelog.html +527 -0
  2. package/docs/components/EclCategoryFilterComponent.html +23 -187
  3. package/docs/components/EclCategoryFilterItemComponent.html +111 -274
  4. package/docs/components/EclCategoryFilterListComponent.html +9 -225
  5. package/docs/components/EclDateBlockComponent.html +0 -9
  6. package/docs/components/EclDescriptionListDefinitionComponent.html +6 -44
  7. package/docs/components/EclIconComponent.html +1 -1
  8. package/docs/components/EclListIllustrationComponent.html +0 -171
  9. package/docs/components/EclListIllustrationItemComponent.html +77 -83
  10. package/docs/components/EclLoadingIndicatorComponent.html +4 -91
  11. package/docs/components/EclMegaMenuComponent.html +5 -203
  12. package/docs/components/EclMegaMenuFeaturedComponent.html +10 -126
  13. package/docs/components/EclMegaMenuInfoComponent.html +0 -91
  14. package/docs/components/EclMegaMenuItemComponent.html +38 -115
  15. package/docs/components/EclMegaMenuSubitemComponent.html +4 -68
  16. package/docs/components/EclMenuItemComponent.html +46 -0
  17. package/docs/components/EclSiteFooterRowCommonComponent.html +1 -1
  18. package/docs/components/EclSiteHeaderLanguageComponent.html +5 -627
  19. package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +99 -440
  20. package/docs/components/EclSiteHeaderLoginComponent.html +9 -453
  21. package/docs/components/EclSiteHeaderSearchComponent.html +18 -470
  22. package/docs/components/EclSocialMediaFollowComponent.html +28 -39
  23. package/docs/components/EclSocialMediaFollowItemComponent.html +26 -129
  24. package/docs/components/EclStoryCardComponent.html +1 -1
  25. package/docs/directives/ECLClickOutsideDirective.html +3 -0
  26. package/docs/directives/EclDescriptionListDefinitionItemDirective.html +6 -47
  27. package/docs/directives/EclDescriptionListDefinitionListDirective.html +0 -116
  28. package/docs/directives/EclDividerDirective.html +0 -116
  29. package/docs/directives/EclFileUploadDirective.html +2 -390
  30. package/docs/directives/EclLabelDirective.html +0 -46
  31. package/docs/directives/EclLinkDirective.html +0 -39
  32. package/docs/directives/EclLoadingIndicatorLabelDirective.html +0 -61
  33. package/docs/directives/EclLoadingIndicatorOverlayDirective.html +0 -45
  34. package/docs/directives/EclMediaContainerCaptionDirective.html +0 -39
  35. package/docs/directives/EclMediaContainerCreditDirective.html +0 -39
  36. package/docs/directives/EclMediaContainerIframeDirective.html +13 -19
  37. package/docs/directives/EclMediaContainerItemAudioDescriptionDirective.html +0 -39
  38. package/docs/directives/EclMediaContainerItemDirective.html +0 -39
  39. package/docs/directives/EclMediaContainerPictureDirective.html +0 -39
  40. package/docs/directives/EclMegaMenuContainerDirective.html +0 -104
  41. package/docs/directives/EclMegaMenuFeaturedImageDirective.html +0 -104
  42. package/docs/directives/EclMegaMenuFeaturedListDirective.html +0 -104
  43. package/docs/directives/EclMegaMenuFeaturedListItemDescriptionDirective.html +0 -104
  44. package/docs/directives/EclMegaMenuFeaturedListItemDirective.html +0 -104
  45. package/docs/directives/EclMegaMenuFeaturedPictureDirective.html +0 -39
  46. package/docs/directives/EclMegaMenuListDirective.html +0 -104
  47. package/docs/directives/EclMegaMenuSpacerDirective.html +0 -104
  48. package/docs/directives/EclMegaMenuSublistDirective.html +0 -165
  49. package/docs/js/search/search_index.js +2 -2
  50. package/docs/json/EclIconComponent.md +1 -1
  51. package/docs/json/EclMediaContainerIframeDirective.md +0 -1
  52. package/docs/json/EclSiteHeaderLanguagePopoverComponent.md +6 -6
  53. package/docs/json/EclSiteHeaderSearchComponent.md +1 -0
  54. package/docs/json/EclSocialMediaFollowComponent.md +1 -0
  55. package/docs/json/documentation.json +1317 -2896
  56. package/docs/llms.txt +30 -90
  57. package/docs/miscellaneous/variables.html +222 -41
  58. package/docs/properties.html +1 -1
  59. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs +94 -129
  60. package/fesm2022/eui-ecl-components-ecl-category-filter.mjs.map +1 -1
  61. package/fesm2022/eui-ecl-components-ecl-date-block.mjs +2 -2
  62. package/fesm2022/eui-ecl-components-ecl-date-block.mjs.map +1 -1
  63. package/fesm2022/eui-ecl-components-ecl-divider.mjs +6 -13
  64. package/fesm2022/eui-ecl-components-ecl-divider.mjs.map +1 -1
  65. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs +13 -27
  66. package/fesm2022/eui-ecl-components-ecl-file-upload.mjs.map +1 -1
  67. package/fesm2022/eui-ecl-components-ecl-icon.mjs.map +1 -1
  68. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +55 -9
  69. package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
  70. package/fesm2022/eui-ecl-components-ecl-label.mjs +6 -6
  71. package/fesm2022/eui-ecl-components-ecl-label.mjs.map +1 -1
  72. package/fesm2022/eui-ecl-components-ecl-link.mjs +10 -13
  73. package/fesm2022/eui-ecl-components-ecl-link.mjs.map +1 -1
  74. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs +19 -30
  75. package/fesm2022/eui-ecl-components-ecl-list-illustration.mjs.map +1 -1
  76. package/fesm2022/eui-ecl-components-ecl-list.mjs +44 -41
  77. package/fesm2022/eui-ecl-components-ecl-list.mjs.map +1 -1
  78. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs +17 -20
  79. package/fesm2022/eui-ecl-components-ecl-loading-indicator.mjs.map +1 -1
  80. package/fesm2022/eui-ecl-components-ecl-media-container.mjs +36 -33
  81. package/fesm2022/eui-ecl-components-ecl-media-container.mjs.map +1 -1
  82. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs +100 -159
  83. package/fesm2022/eui-ecl-components-ecl-mega-menu.mjs.map +1 -1
  84. package/fesm2022/eui-ecl-components-ecl-menu.mjs +16 -3
  85. package/fesm2022/eui-ecl-components-ecl-menu.mjs.map +1 -1
  86. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs +2 -2
  87. package/fesm2022/eui-ecl-components-ecl-site-footer.mjs.map +1 -1
  88. package/fesm2022/eui-ecl-components-ecl-site-header.mjs +326 -261
  89. package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
  90. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs +17 -17
  91. package/fesm2022/eui-ecl-components-ecl-social-media-follow.mjs.map +1 -1
  92. package/fesm2022/eui-ecl-components-ecl-story-card.mjs +2 -2
  93. package/fesm2022/eui-ecl-components-ecl-story-card.mjs.map +1 -1
  94. package/package.json +1 -1
  95. package/types/eui-ecl-components-ecl-category-filter.d.ts +32 -56
  96. package/types/eui-ecl-components-ecl-category-filter.d.ts.map +1 -1
  97. package/types/eui-ecl-components-ecl-date-block.d.ts.map +1 -1
  98. package/types/eui-ecl-components-ecl-divider.d.ts +0 -4
  99. package/types/eui-ecl-components-ecl-divider.d.ts.map +1 -1
  100. package/types/eui-ecl-components-ecl-file-upload.d.ts.map +1 -1
  101. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts +25 -0
  102. package/types/eui-ecl-components-ecl-inpage-navigation.d.ts.map +1 -1
  103. package/types/eui-ecl-components-ecl-label.d.ts.map +1 -1
  104. package/types/eui-ecl-components-ecl-link.d.ts +2 -4
  105. package/types/eui-ecl-components-ecl-link.d.ts.map +1 -1
  106. package/types/eui-ecl-components-ecl-list-illustration.d.ts +3 -3
  107. package/types/eui-ecl-components-ecl-list-illustration.d.ts.map +1 -1
  108. package/types/eui-ecl-components-ecl-list.d.ts +9 -12
  109. package/types/eui-ecl-components-ecl-list.d.ts.map +1 -1
  110. package/types/eui-ecl-components-ecl-loading-indicator.d.ts.map +1 -1
  111. package/types/eui-ecl-components-ecl-media-container.d.ts +7 -2
  112. package/types/eui-ecl-components-ecl-media-container.d.ts.map +1 -1
  113. package/types/eui-ecl-components-ecl-mega-menu.d.ts +12 -22
  114. package/types/eui-ecl-components-ecl-mega-menu.d.ts.map +1 -1
  115. package/types/eui-ecl-components-ecl-menu.d.ts +12 -1
  116. package/types/eui-ecl-components-ecl-menu.d.ts.map +1 -1
  117. package/types/eui-ecl-components-ecl-site-header.d.ts +240 -216
  118. package/types/eui-ecl-components-ecl-site-header.d.ts.map +1 -1
  119. package/types/eui-ecl-components-ecl-social-media-follow.d.ts +5 -3
  120. package/types/eui-ecl-components-ecl-social-media-follow.d.ts.map +1 -1
@@ -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/index.ts","../../components/ecl-inpage-navigation/eui-ecl-components-ecl-inpage-navigation.ts"],"sourcesContent":["import { Component, HostBinding, Output, EventEmitter, ElementRef, inject, PLATFORM_ID, DOCUMENT, input, model, viewChild } 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';\nimport { isPlatformBrowser } from '@angular/common';\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@Component({\n selector: '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 host: {\n '[class.ecl-inpage-navigation__item--active]': 'isActive()',\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 readonly label = input<string>(undefined);\n readonly sectionId = input<string>(undefined);\n readonly isActive = model<boolean>(undefined);\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 readonly link = viewChild(EclLinkDirective);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly doc = inject(DOCUMENT);\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 | null {\n if (!isPlatformBrowser(this.platformId)) return null;\n return this.doc.querySelector<HTMLElement>(`#${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, signal } 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 host: {\n '[style.max-height.px]': 'maxHeight()',\n },\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 maxHeight = signal<number | null>(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 { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { AfterViewInit, ChangeDetectorRef, Component, DOCUMENT, DoCheck, ElementRef, IterableDiffer, IterableDiffers, NgZone, OnDestroy, OnInit, PLATFORM_ID, afterNextRender, inject, numberAttribute, output, input, viewChild, contentChildren, contentChild } from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_STICKY_CONTAINER } from '@eui/ecl/components/ecl-sticky-container';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService, EclThemeService } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\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 { isPlatformBrowser } from '@angular/common';\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: [TranslatePipe, ...EUI_ECL_STICKY_CONTAINER, ...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, AfterViewInit, OnDestroy, DoCheck {\n eclThemeService = inject(EclThemeService);\n\n readonly eclTitle = input<string>(undefined);\n /**\n * Used to calculate component's position.\n */\n readonly marginTop = input<number>(undefined);\n readonly marginBottom = input<number>(undefined);\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 readonly offsetTop = input<number, unknown>(undefined, { transform: numberAttribute });\n readonly togglerButton = viewChild<ElementRef<HTMLButtonElement>>('togglerButton');\n readonly toggleWrapper = viewChild<ElementRef<HTMLDivElement>>('toggleWrapper');\n readonly navTittle = viewChild<ElementRef<HTMLDivElement>>('navTittle');\n /**\n * This event will be emitted, when onscroll a new section becomes active.\n */\n readonly sectionEnter = output<EclInpageNavigationSectionEnterEvent>();\n\n readonly eclNavigationLinkItems = contentChildren(EclInpageNavigationItemComponent, { descendants: true });\n readonly eclNavigationList = contentChild(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 | null = null;\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: ScrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private viewportRuler = inject(ViewportRuler);\n private eclInpageNavigationService = inject(EclInpageNavigationService);\n private cdr = inject(ChangeDetectorRef);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly doc = inject(DOCUMENT);\n private readonly win = this.doc.defaultView; // Window | null\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.zone.run(() => this.setListHeight());\n });\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n ngAfterViewInit() {\n if (!this.isBrowser) return;\n\n this.subscribeToCDKScrollEvent();\n this.observeBreakpointChanges();\n this.viewportRuler.change(300)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.zone.run(() => this.setListHeight()));\n\n const togglerButton = this.togglerButton();\n if (typeof IntersectionObserver !== 'undefined' && togglerButton?.nativeElement) {\n this.intersectionObserver = new IntersectionObserver(() => this.setListHeight());\n this.intersectionObserver.observe(togglerButton.nativeElement);\n }\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 const togglerButton = this.togglerButton();\n if (this.intersectionObserver && togglerButton?.nativeElement) {\n this.intersectionObserver.unobserve(togglerButton.nativeElement);\n this.intersectionObserver.disconnect();\n }\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.isBrowser) return;\n const eclNavigationList = this.eclNavigationList();\n if (!eclNavigationList) return;\n if (!this.win) return;\n\n const viewportHeight = this.win.innerHeight;\n const viewportWidth = this.win.innerWidth;\n let topPosition = 0;\n\n if (viewportWidth < this.TABLET_BREAKPOINT) {\n const toggleWrapper = this.toggleWrapper()?.nativeElement;\n if (toggleWrapper) {\n const styles = this.win.getComputedStyle(toggleWrapper);\n topPosition =\n toggleWrapper.getBoundingClientRect().bottom +\n parseFloat(styles.marginBottom || '0');\n }\n } else if (this.eclTitle()) {\n const titleEl = this.navTittle()?.nativeElement;\n if (titleEl) topPosition = titleEl.getBoundingClientRect().bottom;\n } else {\n const listEl = eclNavigationList?.el?.nativeElement;\n if (listEl) topPosition = listEl.getBoundingClientRect().top;\n }\n\n const availableSpace = viewportHeight - topPosition;\n if (availableSpace > 0) {\n this.listMaxHeight = availableSpace;\n eclNavigationList.maxHeight.set(this.listMaxHeight);\n }\n }\n\n private onExpandButtonArrowDown(evt: Event): void {\n evt.preventDefault();\n this.isButtonExpanded = true;\n this.eclNavigationLinkItems().at(0).onFocus();\n }\n\n private onExpandButtonTab(evt: Event): void {\n if ((evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.eclNavigationLinkItems().at(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 item.sectionElement.focus();\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().indexOf(item);\n const eclNavigationLinkItems = this.eclNavigationLinkItems();\n if (index !== eclNavigationLinkItems.length - 1) {\n eclNavigationLinkItems.at(index + 1).onFocus();\n }\n }\n\n private onItemArrowUp(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems().indexOf(item);\n if (index !== 0) {\n this.eclNavigationLinkItems().at(index - 1).onFocus();\n } else {\n const togglerButton = this.togglerButton();\n if (this.isMobileBreakpoint && togglerButton) {\n this.isButtonExpanded = false;\n 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().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 if (!this.isBrowser) return;\n\n this.scrollDispatcher\n .scrolled()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.zone.run(() => {\n const ids = this.eclNavigationLinkItems().map((item) => item.sectionId());\n\n const sectionElements = ids\n .map((id) => this.doc.querySelector<HTMLElement>(`#${id}`))\n .filter((el): el is HTMLElement => !!el);\n\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.set(it.sectionElement === itemElement);\n });\n this.cdr.markForCheck();\n }\n\n private handleNavigationLinksHighlight(sectionElements: HTMLElement[]): void {\n const currentSectionElement = this.findActiveSectionElement(sectionElements);\n\n if (currentSectionElement !== this.currentSectionElement) {\n this.currentSectionElement = currentSectionElement ?? undefined as HTMLElement | null;\n if (currentSectionElement) this.selectNavigationItem(currentSectionElement);\n\n const sectionId = this.currentNavigationLinkItem?.sectionId();\n this.sectionEnter.emit(new EclInpageNavigationSectionEnterEvent(sectionId));\n }\n }\n\n private findActiveSectionElement(sectionElements: HTMLElement[]): HTMLElement | null {\n if (!this.isBrowser || !this.win) return null;\n\n let currentSection: HTMLElement | null = null;\n const offset = this.MIN_DISTANCE_TOP + (this.offsetTop() ?? 0);\n\n const isNearBottom =\n this.win.innerHeight + this.win.scrollY >=\n this.doc.documentElement.scrollHeight - 10;\n\n for (const sectionElement of sectionElements) {\n const rect = sectionElement.getBoundingClientRect();\n const isAboveOffset = rect.top <= offset;\n const isVisibleInViewport = rect.top < this.win.innerHeight;\n\n if (isAboveOffset || (isVisibleInViewport && isNearBottom)) {\n currentSection = sectionElement;\n }\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 aria-labelledby=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\" [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 #togglerButton id=\"ecl-inpage-navigation-default-trigger\" type=\"button\"\n class=\"ecl-inpage-navigation__trigger\" aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\" (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\">\n </ecl-icon>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n </nav>\n</ecl-sticky-container>","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.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"],"mappings":";;;;;;;;;;;;;;;;AAMM,MAAO,iCAAkC,SAAQ,YAAY,CAAA;AAC/D,IAAA,WAAA,CAAmB,gBAAwB,EAAA;AACvC,QAAA,KAAK,EAAE;QADQ,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAEnC;AACH;AACD;;AAEG;AAgBG,MAAO,gCAAiC,SAAQ,gBAAgB,CAAA;AAuClE,IAAA,WAAA,GAAA;AACI,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AAE7B,QAAA,KAAK,EAAE;QAzCuC,IAAA,CAAA,QAAQ,GAAG,IAAI;AACjE;;AAEG;QACuB,IAAA,CAAA,IAAI,GAAG,UAAU;AAE3C;;AAEG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS;kFAAC;QAChC,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,SAAS;sFAAC;QACpC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,SAAS;qFAAC;AAE7C;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAqC;AAC3E;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;AAC1C;;AAEG;AACO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE;AAC5C;;AAEG;AACO,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAS;AAC7C;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE;QAE/B,IAAA,CAAA,IAAI,GAAG,SAAS,CAAC,gBAAgB;iFAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QAMnC,IAAI,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,4BAA4B,EAAE;AACzE,YAAA,OAAO,CAAC,IAAI,CAAC,iGAAiG,CAAC;QACnH;IACJ;AAEA,IAAA,WAAW,CAAC,GAAe,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,iCAAiC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACrE,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAE1B,GAAG,CAAC,cAAc,EAAE;IACxB;AAEA;;AAEG;AACH,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,YAAA,OAAO,IAAI;AACpD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAc,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,EAAE,CAAA,CAAE,CAAC;IACtE;AAEA,IAAA,SAAS,CAAC,GAAU,EAAA;QAChB,GAAG,CAAC,cAAc,EAAE;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IAC3B;AAEA,IAAA,WAAW,CAAC,GAAU,EAAA;QAClB,GAAG,CAAC,cAAc,EAAE;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;IAC7B;AAEA,IAAA,KAAK,CAAC,GAAU,EAAA;AACZ,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1B;IAEA,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;IACzB;AAEA,IAAA,OAAO,CAAC,GAAU,EAAA;QACd,GAAG,CAAC,cAAc,EAAE;QACpB,GAAG,CAAC,eAAe,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACzB;8GArFS,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mCAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAmCf,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChE9C,2RAKA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FDwBa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAf5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAAA,OAAA,EAE9B,CAAC,GAAG,YAAY,CAAC,EAAA,IAAA,EAQpB;AACF,wBAAA,6CAA6C,EAAE,YAAY;AAC9D,qBAAA,EAAA,QAAA,EAAA,2RAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA;;sBAGA,WAAW;uBAAC,mCAAmC;;sBAI/C,WAAW;uBAAC,WAAW;;sBAYvB;;sBAIA;;sBAIA;;sBAIA;;sBAIA;wEAEyB,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ME5DjC,0BAA0B,CAAA;AAKtC,IAAA,WAAA,GAAA;AAFQ,QAAA,IAAA,CAAA,2BAA2B,GAAqB,IAAI,OAAO,EAAW;QAGvE,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,2BAA2B,CAAC,YAAY,EAAE;IAC1F;AAEA;;;AAGG;AACA,IAAA,yBAAyB,CAAC,UAAmB,EAAA;AAC/C,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC;IAClD;8GAfY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cADb,MAAM,EAAA,CAAA,CAAA;;2FACnB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACElC;;AAEG;AAQG,MAAO,gCAAiC,SAAQ,gBAAgB,CAAA;AAPtE,IAAA,WAAA,GAAA;;AAQI,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;QAE2B,IAAA,CAAA,QAAQ,GAAG,IAAI;AACjE;;AAEG;QACwD,IAAA,CAAA,SAAS,GAAG,KAAK;QAC5E,IAAA,CAAA,SAAS,GAAG,MAAM,CAAgB,IAAI;sFAAC;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;AACnD,QAAA,IAAA,CAAA,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAY1E,IAAA;IAVG,kBAAkB,GAAA;QACd,IAAI,CAAC,0BAA0B,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;AACrH,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AAC1B,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;IAC/B;8GAtBS,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,mCAAA,EAAA,eAAA,EAAA,4CAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAP5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACF,wBAAA,uBAAuB,EAAE,aAAa;AACzC,qBAAA;AAEJ,iBAAA;;sBAII,WAAW;uBAAC,mCAAmC;;sBAI/C,WAAW;uBAAC,4CAA4C;;;ACRvD,MAAO,oCAAqC,SAAQ,YAAY,CAAA;AAClE,IAAA,WAAA,CAAmB,SAAiB,EAAA;AAChC,QAAA,KAAK,EAAE;QADQ,IAAA,CAAA,SAAS,GAAT,SAAS;IAE5B;AACH;AAED;;;;;AAKG;AAeG,MAAO,4BAA6B,SAAQ,gBAAgB,CAAA;AAoD9D,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AApDX,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QAEhC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAS,SAAS;qFAAC;AAC5C;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,SAAS;sFAAC;QACpC,IAAA,CAAA,YAAY,GAAG,KAAK,CAAS,SAAS;yFAAC;AAChD;;AAEG;QACM,IAAA,CAAA,SAAS,GAAG,KAAK,CAAkB,SAAS,iFAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QAC7E,IAAA,CAAA,aAAa,GAAG,SAAS,CAAgC,eAAe;0FAAC;QACzE,IAAA,CAAA,aAAa,GAAG,SAAS,CAA6B,eAAe;0FAAC;QACtE,IAAA,CAAA,SAAS,GAAG,SAAS,CAA6B,WAAW;sFAAC;AACvE;;AAEG;QACM,IAAA,CAAA,YAAY,GAAG,MAAM,EAAwC;QAE7D,IAAA,CAAA,sBAAsB,GAAG,eAAe,CAAC,gCAAgC,8FAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QACjG,IAAA,CAAA,iBAAiB,GAAG,YAAY,CAAC,gCAAgC;8FAAC;AAE3E;;AAEG;QACH,IAAA,CAAA,gBAAgB,GAAG,KAAK;QACxB,IAAA,CAAA,qBAAqB,GAAuB,IAAI;QACzC,IAAA,CAAA,KAAK,GAAG,KAAK;AAEZ,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW;QAEnD,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,gBAAgB,GAAG,EAAE;QACZ,IAAA,CAAA,kBAAkB,GAAG,KAAK;QAC1B,IAAA,CAAA,kBAAkB,GAAG,GAAG;QACxB,IAAA,CAAA,iBAAiB,GAAG,GAAG;AAEhC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;AACjC,QAAA,IAAA,CAAA,gBAAgB,GAAqB,MAAM,CAAC,gBAAgB,CAAC;AAC7D,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAClD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,QAAA,IAAA,CAAA,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,CAAC;AAC/D,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACtB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtB,IAAA,CAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3B,QAAA,IAAA,CAAA,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAI3D,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC5C,eAAe,CAAC,MAAK;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7C,QAAA,CAAC,CAAC;IACN;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,oBAAoB,EAAE;IAC/B;IAEA,eAAe,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;QAErB,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,wBAAwB,EAAE;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG;AACxB,aAAA,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;AAE/D,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,OAAO,oBAAoB,KAAK,WAAW,IAAI,aAAa,EAAE,aAAa,EAAE;AAC7E,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAChF,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC;QAClE;IACJ;AAEA,IAAA,IAAI,iBAAiB,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACrC;AAEA,IAAA,IAAI,yBAAyB,GAAA;QACzB,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,qBAAqB,CAAC;IAC3G;AAEA;;AAEG;AACH,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE;YAClC,OAAO,IAAI,CAAC,kBAAkB;QAClC;aAAO;YACH,OAAO,IAAI,CAAC,kBAAkB;QAClC;IACJ;AAEA,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB;IACvC;IAEA,SAAS,GAAA;AACL,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC5D,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;AACrC,YAAA,CAAC,CAAC;QACN;IACJ;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC3B,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;QAC1C,IAAI,IAAI,CAAC,oBAAoB,IAAI,aAAa,EAAE,aAAa,EAAE;YAC3D,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC;AAChE,YAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;QAC1C;IACJ;AAEA;;AAEG;IACH,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB;QAC9C,IAAI,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACpF;AAEA;;;AAGG;AACH,IAAA,qBAAqB,CAAC,GAAU,EAAA;AAC5B,QAAA,QAAS,GAAqB,CAAC,GAAG;AAC9B,YAAA,KAAK,KAAK;AACN,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBAC3B;AACJ,YAAA,KAAK,WAAW;AACZ,gBAAA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC;gBACjC;AACJ,YAAA;gBACI;;IAEZ;IAEQ,oBAAoB,GAAA;QACxB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACtF,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;AACzB,QAAA,CAAC,CAAC;IACN;AAEA;;AAEG;IACK,aAAa,GAAA;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AACrB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAClD,QAAA,IAAI,CAAC,iBAAiB;YAAE;QACxB,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE;AAEf,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW;AAC3C,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU;QACzC,IAAI,WAAW,GAAG,CAAC;AAEnB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACxC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;YACzD,IAAI,aAAa,EAAE;gBACf,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAa,CAAC;gBACvD,WAAW;AACP,oBAAA,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;AAC5C,wBAAA,UAAU,CAAC,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC;YAC9C;QACJ;AAAO,aAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa;AAC/C,YAAA,IAAI,OAAO;AAAE,gBAAA,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM;QACrE;aAAO;AACH,YAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE,EAAE,EAAE,aAAa;AACnD,YAAA,IAAI,MAAM;AAAE,gBAAA,WAAW,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC,GAAG;QAChE;AAEA,QAAA,MAAM,cAAc,GAAG,cAAc,GAAG,WAAW;AACnD,QAAA,IAAI,cAAc,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,GAAG,cAAc;YACnC,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QACvD;IACJ;AAEQ,IAAA,uBAAuB,CAAC,GAAU,EAAA;QACtC,GAAG,CAAC,cAAc,EAAE;AACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;IACjD;AAEQ,IAAA,iBAAiB,CAAC,GAAU,EAAA;AAChC,QAAA,IAAK,GAAqB,CAAC,QAAQ,EAAE;YACjC,GAAG,CAAC,cAAc,EAAE;AACpB,YAAA,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QACxF;IACJ;AAEQ,IAAA,iBAAiB,CAAC,IAAsC,EAAA;AAC5D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC7D,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC9B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AAC3D,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC5B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACzD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAC1B,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,KAAI;AAC5D,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9C,YAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,gBAAA,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;AACpC,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YAC/B;AACA,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AACjC,QAAA,CAAC,CAAC;IACN;AAEQ,IAAA,WAAW,CAAC,IAAsC,EAAA;AACtD,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC9C,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;YACpC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;AACrC,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC;AAChC,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AAC3B,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrC;QACJ;AACA,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;IACjC;AAEQ,IAAA,eAAe,CAAC,IAAsC,EAAA;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AACzD,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,EAAE;QAC5D,IAAI,KAAK,KAAK,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,sBAAsB,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QAClD;IACJ;AAEQ,IAAA,aAAa,CAAC,IAAsC,EAAA;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AACzD,QAAA,IAAI,KAAK,KAAK,CAAC,EAAE;AACb,YAAA,IAAI,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE;QACzD;aAAO;AACH,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE;AAC1C,YAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,aAAa,EAAE;AAC1C,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;AAC7B,gBAAA,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE;YACvC;QACJ;IACJ;IAEQ,SAAS,CAAC,IAAsC,EAAE,GAAU,EAAA;AAChE,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAE,GAAqB,CAAC,QAAQ,EAAE;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;gBACzD,IAAI,KAAK,KAAK,IAAI,CAAC,sBAAsB,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpD,GAAG,CAAC,cAAc,EAAE;oBACpB,IAAI,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;gBAC9C;YACJ;QACJ;IACJ;IAEQ,yBAAyB,GAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE;AAErB,QAAA,IAAI,CAAC;AACA,aAAA,QAAQ;AACR,aAAA,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACf,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBAEzE,MAAM,eAAe,GAAG;AACnB,qBAAA,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,aAAa,CAAc,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC;qBACzD,MAAM,CAAC,CAAC,EAAE,KAAwB,CAAC,CAAC,EAAE,CAAC;AAE5C,gBAAA,IAAI,CAAC,8BAA8B,CAAC,eAAe,CAAC;gBACpD,IAAI,CAAC,aAAa,EAAE;AACxB,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACV;AAEQ,IAAA,oBAAoB,CAAC,WAAwB,EAAA;QACjD,IAAI,CAAC,sBAAsB,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,KAAI;YACzC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,KAAK,WAAW,CAAC;AACtD,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;IAC3B;AAEQ,IAAA,8BAA8B,CAAC,eAA8B,EAAA;QACjE,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;AAE5E,QAAA,IAAI,qBAAqB,KAAK,IAAI,CAAC,qBAAqB,EAAE;AACtD,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,IAAI,SAA+B;AACrF,YAAA,IAAI,qBAAqB;AAAE,gBAAA,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;YAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,EAAE;YAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,oCAAoC,CAAC,SAAS,CAAC,CAAC;QAC/E;IACJ;AAEQ,IAAA,wBAAwB,CAAC,eAA8B,EAAA;QAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI;QAE7C,IAAI,cAAc,GAAuB,IAAI;AAC7C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAE9D,QAAA,MAAM,YAAY,GACd,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO;YACvC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,GAAG,EAAE;AAE9C,QAAA,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;AAC1C,YAAA,MAAM,IAAI,GAAG,cAAc,CAAC,qBAAqB,EAAE;AACnD,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM;YACxC,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW;YAE3D,IAAI,aAAa,KAAK,mBAAmB,IAAI,YAAY,CAAC,EAAE;gBACxD,cAAc,GAAG,cAAc;YACnC;QACJ;AAEA,QAAA,OAAO,cAAc;IACzB;IAEQ,wBAAwB,GAAA;AAC5B,QAAA,IAAI,CAAC;AACA,aAAA,OAAO,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AACpE,aAAA,IAAI,CAACA,WAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,YAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,OAAO;AAC5C,QAAA,CAAC,CAAC;IACV;8GAxVS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,qsBAqBa,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACxC,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9D9E,shDAuBuB,+eDMT,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAWd,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAdxC,SAAS;+BACI,uBAAuB,EAAA,OAAA,EAExB,CAAC,aAAa,EAAE,GAAG,wBAAwB,EAAE,GAAG,YAAY,CAAC,EAAA,QAAA,EAAA,shDAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA;AAwBJ,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAClB,eAAe,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACnB,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAMpB,gCAAgC,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,gGAC/D,gCAAgC,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AErDvE,MAAM,yBAAyB,GAAG;IACrC,4BAA4B,EAAE,gCAAgC,EAAE,gCAAgC;;;ACVpG;;AAEG;;;;"}
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/index.ts","../../components/ecl-inpage-navigation/eui-ecl-components-ecl-inpage-navigation.ts"],"sourcesContent":["import { Component, HostBinding, Output, EventEmitter, ElementRef, inject, PLATFORM_ID, DOCUMENT, input, model, viewChild } 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';\nimport { isPlatformBrowser } from '@angular/common';\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@Component({\n selector: '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 host: {\n '[class.ecl-inpage-navigation__item--active]': 'isActive()',\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 readonly label = input<string>(undefined);\n readonly sectionId = input<string>(undefined);\n readonly isActive = model<boolean>(undefined);\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 readonly link = viewChild(EclLinkDirective);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly doc = inject(DOCUMENT);\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 | null {\n if (!isPlatformBrowser(this.platformId)) return null;\n return this.doc.querySelector<HTMLElement>(`#${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, signal } 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 host: {\n '[style.max-height.px]': 'maxHeight()',\n },\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 maxHeight = signal<number | null>(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 { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { isPlatformBrowser } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, DOCUMENT, DoCheck, ElementRef, IterableDiffer, IterableDiffers, NgZone, OnDestroy, OnInit, PLATFORM_ID, afterNextRender, contentChild, contentChildren, inject, input, numberAttribute, output, viewChild } from '@angular/core';\nimport { EUI_ECL_ICON } from '@eui/ecl/components/ecl-icon';\nimport { EUI_ECL_STICKY_CONTAINER } from '@eui/ecl/components/ecl-sticky-container';\nimport { ECLBaseDirective, EclBaseEvent, EclRtlService, EclThemeService } from '@eui/ecl/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\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: [TranslatePipe, ...EUI_ECL_STICKY_CONTAINER, ...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, AfterViewInit, OnDestroy, DoCheck {\n eclThemeService = inject(EclThemeService);\n\n readonly eclTitle = input<string>(undefined);\n /**\n * Used to calculate component's position.\n */\n readonly marginTop = input<number>(undefined);\n readonly marginBottom = input<number>(undefined);\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 readonly offsetTop = input<number, unknown>(undefined, { transform: numberAttribute });\n readonly togglerButton = viewChild<ElementRef<HTMLButtonElement>>('togglerButton');\n readonly toggleWrapper = viewChild<ElementRef<HTMLDivElement>>('toggleWrapper');\n readonly navTittle = viewChild<ElementRef<HTMLDivElement>>('navTittle');\n /**\n * This event will be emitted, when onscroll a new section becomes active.\n */\n readonly sectionEnter = output<EclInpageNavigationSectionEnterEvent>();\n\n readonly eclNavigationLinkItems = contentChildren(EclInpageNavigationItemComponent, { descendants: true });\n readonly eclNavigationList = contentChild(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 | null = null;\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 /**\n * Extra spacing (px) kept between the sticky toggler and the target heading when scrolling to a section on mobile,\n * so the heading is not flush against the toggler. Mirrors the spacing buffer used by the vanilla ECL\n * `scroll-margin-top` rule (trigger height + spacing).\n */\n private readonly MOBILE_SCROLL_SPACING = 16;\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: ScrollDispatcher = inject(ScrollDispatcher);\n private zone = inject(NgZone);\n private cdkBreakpointObserver = inject(BreakpointObserver);\n private viewportRuler = inject(ViewportRuler);\n private eclInpageNavigationService = inject(EclInpageNavigationService);\n private cdr = inject(ChangeDetectorRef);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly doc = inject(DOCUMENT);\n private readonly win = this.doc.defaultView; // Window | null\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n\n constructor() {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.zone.run(() => this.setListHeight());\n });\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n ngAfterViewInit() {\n if (!this.isBrowser) return;\n\n this.subscribeToCDKScrollEvent();\n this.observeBreakpointChanges();\n this.viewportRuler.change(300)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.zone.run(() => this.setListHeight()));\n\n const togglerButton = this.togglerButton();\n if (typeof IntersectionObserver !== 'undefined' && togglerButton?.nativeElement) {\n this.intersectionObserver = new IntersectionObserver(() => this.setListHeight());\n this.intersectionObserver.observe(togglerButton.nativeElement);\n }\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 const togglerButton = this.togglerButton();\n if (this.intersectionObserver && togglerButton?.nativeElement) {\n this.intersectionObserver.unobserve(togglerButton.nativeElement);\n this.intersectionObserver.disconnect();\n }\n }\n\n /**\n * On mobile view - handle the dropdown toggle.\n */\n onExpandButtonClick(): void {\n this.setButtonExpanded(!this.isButtonExpanded);\n }\n\n /**\n * Single entry point for changing the dropdown expanded state. Keeps the local flag (used for the button's\n * aria-expanded) and the shared service state (that drives the list's visibility class) in sync.\n */\n private setButtonExpanded(isExpanded: boolean): void {\n this.isButtonExpanded = isExpanded;\n this.eclInpageNavigationService.eclInpageNavigationToggle(isExpanded);\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.isBrowser) return;\n const eclNavigationList = this.eclNavigationList();\n if (!eclNavigationList) return;\n if (!this.win) return;\n\n const viewportHeight = this.win.innerHeight;\n const viewportWidth = this.win.innerWidth;\n let topPosition = 0;\n\n if (viewportWidth < this.TABLET_BREAKPOINT) {\n const toggleWrapper = this.toggleWrapper()?.nativeElement;\n if (toggleWrapper) {\n const styles = this.win.getComputedStyle(toggleWrapper);\n topPosition =\n toggleWrapper.getBoundingClientRect().bottom +\n parseFloat(styles.marginBottom || '0');\n }\n } else if (this.eclTitle()) {\n const titleEl = this.navTittle()?.nativeElement;\n if (titleEl) topPosition = titleEl.getBoundingClientRect().bottom;\n } else {\n const listEl = eclNavigationList?.el?.nativeElement;\n if (listEl) topPosition = listEl.getBoundingClientRect().top;\n }\n\n const availableSpace = viewportHeight - topPosition;\n if (availableSpace > 0) {\n this.listMaxHeight = availableSpace;\n eclNavigationList.maxHeight.set(this.listMaxHeight);\n }\n }\n\n private onExpandButtonArrowDown(evt: Event): void {\n evt.preventDefault();\n this.setButtonExpanded(true);\n this.eclNavigationLinkItems().at(0).onFocus();\n }\n\n private onExpandButtonTab(evt: Event): void {\n if ((evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.eclNavigationLinkItems().at(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 this.scrollToSection(item.sectionElement);\n item.sectionElement.focus();\n }\n this.setButtonExpanded(false);\n });\n }\n\n private onItemEnter(item: EclInpageNavigationItemComponent): void {\n this.selectNavigationItem(item.sectionElement);\n if (item.sectionElement) {\n this.scrollToSection(item.sectionElement);\n if (item.sectionElement.tabIndex === -1) {\n item.sectionElement.tabIndex = 0;\n item.sectionElement.focus();\n item.sectionElement.tabIndex = -1;\n }\n }\n this.setButtonExpanded(false);\n }\n\n /**\n * Scrolls the target section into view. On desktop this is a plain scrollIntoView() (unchanged behaviour). On\n * mobile the in-page navigation toggler is sticky at the top, so a top-aligned scroll would hide the heading\n * underneath it; we therefore set `scroll-margin-top` on the target (sticky toggler height + spacing buffer) and\n * let scrollIntoView() honour it. Using scroll-margin-top instead of a manual window.scrollTo() keeps this working\n * regardless of which element is the actual scroll container (window or a nested scrollable wrapper).\n */\n private scrollToSection(sectionElement: HTMLElement): void {\n if (!this.isBrowser) return;\n const offset = this.getMobileScrollOffset();\n sectionElement.style.scrollMarginTop = offset > 0 ? `${offset}px` : '';\n sectionElement.scrollIntoView();\n }\n\n /**\n * The offset (px) applied on mobile so that a scrolled-to heading clears the sticky toggler: the toggler height\n * plus a spacing buffer. Returns 0 on desktop (no sticky toggler). Shared by the scroll logic and the scroll-spy\n * so the heading lands exactly where the spy expects it, keeping the active item in sync after a click.\n */\n private getMobileScrollOffset(): number {\n if (!this.isMobileBreakpoint) return 0;\n const toggleWrapper = this.toggleWrapper()?.nativeElement;\n if (!toggleWrapper) return 0;\n return toggleWrapper.getBoundingClientRect().height + this.MOBILE_SCROLL_SPACING;\n }\n\n private onItemArrowDown(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems().indexOf(item);\n const eclNavigationLinkItems = this.eclNavigationLinkItems();\n if (index !== eclNavigationLinkItems.length - 1) {\n eclNavigationLinkItems.at(index + 1).onFocus();\n }\n }\n\n private onItemArrowUp(item: EclInpageNavigationItemComponent): void {\n const index = this.eclNavigationLinkItems().indexOf(item);\n if (index !== 0) {\n this.eclNavigationLinkItems().at(index - 1).onFocus();\n } else {\n const togglerButton = this.togglerButton();\n if (this.isMobileBreakpoint && togglerButton) {\n this.setButtonExpanded(false);\n 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().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 if (!this.isBrowser) return;\n\n this.scrollDispatcher\n .scrolled()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.zone.run(() => {\n const ids = this.eclNavigationLinkItems().map((item) => item.sectionId());\n\n const sectionElements = ids\n .map((id) => this.doc.querySelector<HTMLElement>(`#${id}`))\n .filter((el): el is HTMLElement => !!el);\n\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.set(it.sectionElement === itemElement);\n });\n this.cdr.markForCheck();\n }\n\n private handleNavigationLinksHighlight(sectionElements: HTMLElement[]): void {\n const currentSectionElement = this.findActiveSectionElement(sectionElements);\n\n if (currentSectionElement !== this.currentSectionElement) {\n this.currentSectionElement = currentSectionElement ?? undefined as HTMLElement | null;\n if (currentSectionElement) this.selectNavigationItem(currentSectionElement);\n\n const sectionId = this.currentNavigationLinkItem?.sectionId();\n this.sectionEnter.emit(new EclInpageNavigationSectionEnterEvent(sectionId));\n }\n }\n\n private findActiveSectionElement(sectionElements: HTMLElement[]): HTMLElement | null {\n if (!this.isBrowser || !this.win) return null;\n\n let currentSection: HTMLElement | null = null;\n // On mobile the heading is scrolled to sit just below the sticky toggler, so the spy must use that same\n // offset; otherwise it would highlight the previous section. The extra MIN_DISTANCE_TOP is a cushion so a\n // heading that lands right on the boundary (sub-pixel rounding) is still treated as \"reached\". On desktop\n // keep the original threshold.\n const offset = this.isMobileBreakpoint\n ? this.getMobileScrollOffset() + this.MIN_DISTANCE_TOP\n : this.MIN_DISTANCE_TOP + (this.offsetTop() ?? 0);\n\n const isNearBottom =\n this.win.innerHeight + this.win.scrollY >=\n this.doc.documentElement.scrollHeight - 10;\n\n for (const sectionElement of sectionElements) {\n const rect = sectionElement.getBoundingClientRect();\n const isAboveOffset = rect.top <= offset;\n const isVisibleInViewport = rect.top < this.win.innerHeight;\n\n if (isAboveOffset || (isVisibleInViewport && isNearBottom)) {\n currentSection = sectionElement;\n }\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 aria-labelledby=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\" [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 #togglerButton id=\"ecl-inpage-navigation-default-trigger\" type=\"button\"\n class=\"ecl-inpage-navigation__trigger\" aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\" (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\">\n </ecl-icon>\n </button>\n </div>\n <ng-content></ng-content>\n </div>\n </nav>\n</ecl-sticky-container>","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.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"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, HostBinding, Directive } from '@angular/core';
2
+ import { input, Directive } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
 
5
5
  /**
@@ -32,17 +32,17 @@ class EclLabelDirective extends ECLBaseDirective {
32
32
  return [super.getCssClasses('ecl-label'), `ecl-label--${this.variant()}`].join(' ').trim();
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLabelDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclLabelDirective, isStandalone: true, selector: "[eclLabel]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.2", type: EclLabelDirective, isStandalone: true, selector: "[eclLabel]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "cssClasses" } }, usesInheritance: true, ngImport: i0 }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclLabelDirective, decorators: [{
38
38
  type: Directive,
39
39
  args: [{
40
40
  selector: '[eclLabel]',
41
+ host: {
42
+ '[class]': 'cssClasses',
43
+ },
41
44
  }]
42
- }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], cssClasses: [{
43
- type: HostBinding,
44
- args: ['class']
45
- }] } });
45
+ }], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
46
46
 
47
47
  const EUI_ECL_LABEL = [
48
48
  EclLabelDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-label.mjs","sources":["../../components/ecl-label/ecl-label.directive.ts","../../components/ecl-label/index.ts","../../components/ecl-label/eui-ecl-components-ecl-label.ts"],"sourcesContent":["import { Directive, HostBinding, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for applying ECL label styles.\n *\n * Supports multiple visual variants based on importance or context.\n * Adds appropriate ECL classes dynamically.\n */\n@Directive({\n selector: '[eclLabel]',\n})\nexport class EclLabelDirective extends ECLBaseDirective {\n /**\n * Defines the visual variant of the label.\n * \n * - `'low'` – default styling\n * - `'medium'` – medium emphasis\n * - `'high'` – high emphasis\n * - `'highlight'` – special highlight\n *\n * @default 'low'\n */\n readonly variant = input<'low' | 'medium' | 'high' | 'highlight'>('low');\n\n /**\n * CSS classes applied to the host element.\n * Combines base ECL label class with the variant modifier.\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-label'), `ecl-label--${this.variant()}`].join(' ').trim();\n }\n}\n","import { EclLabelDirective } from './ecl-label.directive';\n\nexport * from './ecl-label.directive';\n\nexport const EUI_ECL_LABEL = [\n EclLabelDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;;AAKG;AAIG,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AAHvD,IAAA,WAAA,GAAA;;AAII;;;;;;;;;AASG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAA0C,KAAK;oFAAC;AAU3E,IAAA;AARG;;;AAGG;AACH,IAAA,IACI,UAAU,GAAA;QACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC9F;8GApBS,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACzB,iBAAA;;sBAkBI,WAAW;uBAAC,OAAO;;;ACzBjB,MAAM,aAAa,GAAG;IACzB,iBAAiB;;;ACLrB;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-label.mjs","sources":["../../components/ecl-label/ecl-label.directive.ts","../../components/ecl-label/index.ts","../../components/ecl-label/eui-ecl-components-ecl-label.ts"],"sourcesContent":["import { Directive, input } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * Directive for applying ECL label styles.\n *\n * Supports multiple visual variants based on importance or context.\n * Adds appropriate ECL classes dynamically.\n */\n@Directive({\n selector: '[eclLabel]',\n host: {\n '[class]': 'cssClasses',\n },\n})\nexport class EclLabelDirective extends ECLBaseDirective {\n /**\n * Defines the visual variant of the label.\n * \n * - `'low'` – default styling\n * - `'medium'` – medium emphasis\n * - `'high'` – high emphasis\n * - `'highlight'` – special highlight\n *\n * @default 'low'\n */\n readonly variant = input<'low' | 'medium' | 'high' | 'highlight'>('low');\n\n /**\n * CSS classes applied to the host element.\n * Combines base ECL label class with the variant modifier.\n */\n get cssClasses(): string {\n return [super.getCssClasses('ecl-label'), `ecl-label--${this.variant()}`].join(' ').trim();\n }\n}\n","import { EclLabelDirective } from './ecl-label.directive';\n\nexport * from './ecl-label.directive';\n\nexport const EUI_ECL_LABEL = [\n EclLabelDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;;AAKG;AAOG,MAAO,iBAAkB,SAAQ,gBAAgB,CAAA;AANvD,IAAA,WAAA,GAAA;;AAOI;;;;;;;;;AASG;QACM,IAAA,CAAA,OAAO,GAAG,KAAK,CAA0C,KAAK;oFAAC;AAS3E,IAAA;AAPG;;;AAGG;AACH,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAA,WAAA,EAAc,IAAI,CAAC,OAAO,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IAC9F;8GAnBS,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,YAAY;AAC1B,qBAAA;AACJ,iBAAA;;;ACVM,MAAM,aAAa,GAAG;IACzB,iBAAiB;;;ACLrB;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Component, Directive, inject, ElementRef, Renderer2, ChangeDetectorRef, input, booleanAttribute, contentChildren, forwardRef, computed, effect } from '@angular/core';
2
+ import { HostBinding, Component, Directive, inject, ElementRef, Renderer2, input, booleanAttribute, contentChildren, forwardRef, computed, effect } from '@angular/core';
3
3
  import { ECLBaseDirective } from '@eui/ecl/core';
4
4
  import { EclIconComponent } from '@eui/ecl/components/ecl-icon';
5
5
 
@@ -90,7 +90,6 @@ class EclLinkDirective extends ECLBaseDirective {
90
90
  super();
91
91
  this.el = inject(ElementRef);
92
92
  this.renderer = inject(Renderer2);
93
- this.cd = inject(ChangeDetectorRef);
94
93
  /**
95
94
  * Additional HTML attributes to be set on the link element.
96
95
  * Used e.g. by social-media-follow for passing extra_attributes.
@@ -134,6 +133,15 @@ class EclLinkDirective extends ECLBaseDirective {
134
133
  });
135
134
  }
136
135
  });
136
+ // Add 'ecl-link__icon' class to child icons reactively.
137
+ effect(() => {
138
+ const icons = this.eclIconComponents();
139
+ if (icons?.length > 0) {
140
+ icons.forEach((icn) => {
141
+ icn.addExtraClass('ecl-link__icon');
142
+ });
143
+ }
144
+ });
137
145
  }
138
146
  get hostIsInverted() {
139
147
  return (!this.variant() || this.variant() === 'standalone') && this.isInverted();
@@ -161,17 +169,6 @@ class EclLinkDirective extends ECLBaseDirective {
161
169
  (this.variant() === 'primary' && this.isHighlight()) ? 'ecl-link--primary-highlight' : '',
162
170
  ].join(' ').trim();
163
171
  }
164
- ngAfterContentInit() {
165
- // Add additional class to the child icon, if any.
166
- if (this.eclIconComponents()?.length > 0) {
167
- setTimeout(() => {
168
- this.eclIconComponents().forEach((icn) => {
169
- icn.addExtraClass('ecl-link__icon');
170
- });
171
- this.cd.markForCheck();
172
- });
173
- }
174
- }
175
172
  /**
176
173
  * Calls the native focus() method of the default HTML element.
177
174
  */
@@ -1 +1 @@
1
- {"version":3,"file":"eui-ecl-components-ecl-link.mjs","sources":["../../components/ecl-link/ecl-indicator/ecl-indicator.component.ts","../../components/ecl-link/ecl-indicator/ecl-indicator.component.html","../../components/ecl-link/ecl-indicator/ecl-indicator.directive.ts","../../components/ecl-link/ecl-link-label.directive.ts","../../components/ecl-link/ecl-link.directive.ts","../../components/ecl-link/index.ts","../../components/ecl-link/eui-ecl-components-ecl-link.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * Component for indicating special content inside the ECL Link.\n * Automatically applies the `ecl-indicator` CSS class.\n */\n@Component({\n selector: '[eclIndicator]',\n templateUrl: './ecl-indicator.component.html',\n})\nexport class EclIndicatorComponent {\n /**\n * Applies the `ecl-indicator` CSS class.\n */\n @HostBinding('class.ecl-indicator') hasClass = true;\n}\n","<span class=\"ecl-indicator__value\"><ng-content></ng-content></span>\n<ng-content select=\"[eclIndicatorLabel]\"></ng-content>","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * Directive for indicating special content inside the ECL Link.\n * Automatically applies the `ecl-indicator__label` CSS class.\n */\n@Directive({\n selector: '[eclIndicatorLabel]',\n})\nexport class EclIndicatorLabelDirective {\n /**\n * Applies the `ecl-indicator__label` CSS class.\n */\n @HostBinding('class.ecl-indicator__label') hasClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclLinkLabel]',\n})\nexport class EclLinkLabelDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-link__label')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclLinkIconContainer]',\n})\nexport class EclLinkIconContainerDirective {\n @HostBinding('class.ecl-link__icon-container') hasClass = true;\n}\n","import { AfterContentInit, booleanAttribute, ChangeDetectorRef, contentChildren, Directive, ElementRef, HostBinding, inject, input, Renderer2, effect, computed, forwardRef } from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * 'eclLink' directive is used to add some styling to the defalt HTML anchor component. In order to comply with ECL standards.\n */\n@Directive({\n selector: '[eclLink]',\n})\nexport class EclLinkDirective extends ECLBaseDirective implements AfterContentInit {\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n cd = inject(ChangeDetectorRef);\n\n /**\n * Additional HTML attributes to be set on the link element.\n * Used e.g. by social-media-follow for passing extra_attributes.\n */\n extraAttributes = input<{ name: string; value?: string | null }[] | undefined>();\n\n /**\n * Property to style the component as 'inverted' (with dark background). Can be used alone or with 'standalone' variant.\n */\n isInverted = input(false, { transform: booleanAttribute });\n\n /**\n * Property to style the component if it consist only of an icon.\n */\n isIconOnly = input(false, { transform: booleanAttribute });\n\n /** Adds class for hightlighted link (works only with 'primary' variant)\n * @deprecated - to be removed in v23. Use variant='primary-highlight', as only primary variant can be highlighted.\n */\n isHighlight = input(false, { transform: booleanAttribute });\n\n /**\n * @deprecated - will be removed in v21. Deprecated on ECL side.\n */\n isNoVisited = input(false, { transform: booleanAttribute });\n\n isBranded = input(false, { transform: booleanAttribute });\n\n /**\n * With 'variant' property user can add some more specific styling to the <a> component.\n */\n variant = input<'standalone' | 'primary' | 'secondary' | 'secondary-neutral' | 'primary-neutral' | 'primary-highlight'>();\n\n eclIconComponents = contentChildren(forwardRef(() => EclIconComponent), { descendants: true });\n\n constructor() {\n super();\n effect(() => {\n const attrs = this.extraAttributes();\n if (attrs && attrs.length) {\n attrs.forEach((attr) => {\n if (attr?.name) {\n this.el.nativeElement.setAttribute(attr.name, attr.value ?? '');\n }\n });\n }\n });\n }\n\n @HostBinding('class.ecl-link--inverted')\n get hostIsInverted(): boolean {\n return (!this.variant() || this.variant() === 'standalone') && this.isInverted();\n }\n\n @HostBinding('class.ecl-link--brand')\n get hostIsBranded(): boolean {\n return (!this.variant() || this.variant() === 'standalone') && this.isBranded();\n }\n\n @HostBinding('class.ecl-link--icon-only')\n get hostIsIconOnly(): boolean {\n return this.isIconOnly();\n }\n\n @HostBinding('class.ecl-link--icon')\n get hasIcon(): boolean {\n return this._hasIcon();\n }\n\n private _hasIcon = computed(() => {\n return this.eclIconComponents()?.length > 0;\n });\n\n /**\n * Adds speific ECL classes to the <a> component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n const variantClass = this.variant()\n ? (this.variant() === 'secondary' && this.isInverted()\n ? 'ecl-link--secondary-inverted'\n : `ecl-link--${this.variant()}`)\n : '';\n\n return [super.getCssClasses('ecl-link'),\n variantClass,\n (this.variant() === 'primary' && this.isHighlight()) ? 'ecl-link--primary-highlight' : '',\n ].join(' ').trim();\n }\n\n ngAfterContentInit(): void {\n // Add additional class to the child icon, if any.\n if (this.eclIconComponents()?.length > 0 ) {\n setTimeout(() => {\n this.eclIconComponents().forEach((icn) => {\n icn.addExtraClass('ecl-link__icon');\n });\n this.cd.markForCheck();\n });\n }\n }\n\n /**\n * Calls the native focus() method of the default HTML element.\n */\n onFocus(): void {\n this.el.nativeElement.focus();\n }\n\n /**\n * Calls the native click() method of the default HTML element.\n */\n onClick(): void {\n this.el.nativeElement.click();\n }\n\n /**\n * Calls the native blur() method of the default HTML element.\n */\n onBlur(): void {\n this.el.nativeElement.blur();\n }\n}\n","import { EclIndicatorComponent } from './ecl-indicator/ecl-indicator.component';\nimport { EclIndicatorLabelDirective } from './ecl-indicator/ecl-indicator.directive';\nimport { EclLinkIconContainerDirective, EclLinkLabelDirective } from './ecl-link-label.directive';\nimport { EclLinkDirective } from './ecl-link.directive';\n\nexport * from './ecl-link.directive';\nexport * from './ecl-link-label.directive';\nexport * from './ecl-indicator/ecl-indicator.component';\nexport * from './ecl-indicator/ecl-indicator.directive';\n\nexport const EUI_ECL_LINK = [\n EclLinkDirective, EclLinkLabelDirective, EclLinkIconContainerDirective, EclIndicatorComponent,\n EclIndicatorLabelDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-ecl-components-ecl-link.mjs","sources":["../../components/ecl-link/ecl-indicator/ecl-indicator.component.ts","../../components/ecl-link/ecl-indicator/ecl-indicator.component.html","../../components/ecl-link/ecl-indicator/ecl-indicator.directive.ts","../../components/ecl-link/ecl-link-label.directive.ts","../../components/ecl-link/ecl-link.directive.ts","../../components/ecl-link/index.ts","../../components/ecl-link/eui-ecl-components-ecl-link.ts"],"sourcesContent":["import { Component, HostBinding } from '@angular/core';\n\n/**\n * Component for indicating special content inside the ECL Link.\n * Automatically applies the `ecl-indicator` CSS class.\n */\n@Component({\n selector: '[eclIndicator]',\n templateUrl: './ecl-indicator.component.html',\n})\nexport class EclIndicatorComponent {\n /**\n * Applies the `ecl-indicator` CSS class.\n */\n @HostBinding('class.ecl-indicator') hasClass = true;\n}\n","<span class=\"ecl-indicator__value\"><ng-content></ng-content></span>\n<ng-content select=\"[eclIndicatorLabel]\"></ng-content>","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * Directive for indicating special content inside the ECL Link.\n * Automatically applies the `ecl-indicator__label` CSS class.\n */\n@Directive({\n selector: '[eclIndicatorLabel]',\n})\nexport class EclIndicatorLabelDirective {\n /**\n * Applies the `ecl-indicator__label` CSS class.\n */\n @HostBinding('class.ecl-indicator__label') hasClass = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n@Directive({\n selector: '[eclLinkLabel]',\n})\nexport class EclLinkLabelDirective extends ECLBaseDirective {\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('ecl-link__label')].join(' ').trim();\n }\n}\n\n@Directive({\n selector: '[eclLinkIconContainer]',\n})\nexport class EclLinkIconContainerDirective {\n @HostBinding('class.ecl-link__icon-container') hasClass = true;\n}\n","import { booleanAttribute, contentChildren, Directive, ElementRef, HostBinding, inject, input, Renderer2, effect, computed, forwardRef } from '@angular/core';\nimport { EclIconComponent } from '@eui/ecl/components/ecl-icon';\nimport { ECLBaseDirective } from '@eui/ecl/core';\n\n/**\n * 'eclLink' directive is used to add some styling to the defalt HTML anchor component. In order to comply with ECL standards.\n */\n@Directive({\n selector: '[eclLink]',\n})\nexport class EclLinkDirective extends ECLBaseDirective {\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n\n /**\n * Additional HTML attributes to be set on the link element.\n * Used e.g. by social-media-follow for passing extra_attributes.\n */\n extraAttributes = input<{ name: string; value?: string | null }[] | undefined>();\n\n /**\n * Property to style the component as 'inverted' (with dark background). Can be used alone or with 'standalone' variant.\n */\n isInverted = input(false, { transform: booleanAttribute });\n\n /**\n * Property to style the component if it consist only of an icon.\n */\n isIconOnly = input(false, { transform: booleanAttribute });\n\n /** Adds class for hightlighted link (works only with 'primary' variant)\n * @deprecated - to be removed in v23. Use variant='primary-highlight', as only primary variant can be highlighted.\n */\n isHighlight = input(false, { transform: booleanAttribute });\n\n /**\n * @deprecated - will be removed in v21. Deprecated on ECL side.\n */\n isNoVisited = input(false, { transform: booleanAttribute });\n\n isBranded = input(false, { transform: booleanAttribute });\n\n /**\n * With 'variant' property user can add some more specific styling to the <a> component.\n */\n variant = input<'standalone' | 'primary' | 'secondary' | 'secondary-neutral' | 'primary-neutral' | 'primary-highlight'>();\n\n eclIconComponents = contentChildren(forwardRef(() => EclIconComponent), { descendants: true });\n\n constructor() {\n super();\n effect(() => {\n const attrs = this.extraAttributes();\n if (attrs && attrs.length) {\n attrs.forEach((attr) => {\n if (attr?.name) {\n this.el.nativeElement.setAttribute(attr.name, attr.value ?? '');\n }\n });\n }\n });\n\n // Add 'ecl-link__icon' class to child icons reactively.\n effect(() => {\n const icons = this.eclIconComponents();\n if (icons?.length > 0) {\n icons.forEach((icn) => {\n icn.addExtraClass('ecl-link__icon');\n });\n }\n });\n }\n\n @HostBinding('class.ecl-link--inverted')\n get hostIsInverted(): boolean {\n return (!this.variant() || this.variant() === 'standalone') && this.isInverted();\n }\n\n @HostBinding('class.ecl-link--brand')\n get hostIsBranded(): boolean {\n return (!this.variant() || this.variant() === 'standalone') && this.isBranded();\n }\n\n @HostBinding('class.ecl-link--icon-only')\n get hostIsIconOnly(): boolean {\n return this.isIconOnly();\n }\n\n @HostBinding('class.ecl-link--icon')\n get hasIcon(): boolean {\n return this._hasIcon();\n }\n\n private _hasIcon = computed(() => {\n return this.eclIconComponents()?.length > 0;\n });\n\n /**\n * Adds speific ECL classes to the <a> component.\n */\n @HostBinding('class')\n get cssClasses(): string {\n const variantClass = this.variant()\n ? (this.variant() === 'secondary' && this.isInverted()\n ? 'ecl-link--secondary-inverted'\n : `ecl-link--${this.variant()}`)\n : '';\n\n return [super.getCssClasses('ecl-link'),\n variantClass,\n (this.variant() === 'primary' && this.isHighlight()) ? 'ecl-link--primary-highlight' : '',\n ].join(' ').trim();\n }\n\n /**\n * Calls the native focus() method of the default HTML element.\n */\n onFocus(): void {\n this.el.nativeElement.focus();\n }\n\n /**\n * Calls the native click() method of the default HTML element.\n */\n onClick(): void {\n this.el.nativeElement.click();\n }\n\n /**\n * Calls the native blur() method of the default HTML element.\n */\n onBlur(): void {\n this.el.nativeElement.blur();\n }\n}\n","import { EclIndicatorComponent } from './ecl-indicator/ecl-indicator.component';\nimport { EclIndicatorLabelDirective } from './ecl-indicator/ecl-indicator.directive';\nimport { EclLinkIconContainerDirective, EclLinkLabelDirective } from './ecl-link-label.directive';\nimport { EclLinkDirective } from './ecl-link.directive';\n\nexport * from './ecl-link.directive';\nexport * from './ecl-link-label.directive';\nexport * from './ecl-indicator/ecl-indicator.component';\nexport * from './ecl-indicator/ecl-indicator.directive';\n\nexport const EUI_ECL_LINK = [\n EclLinkDirective, EclLinkLabelDirective, EclLinkIconContainerDirective, EclIndicatorComponent,\n EclIndicatorLabelDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAEA;;;AAGG;MAKU,qBAAqB,CAAA;AAJlC,IAAA,WAAA,GAAA;AAKI;;AAEG;QACiC,IAAA,CAAA,QAAQ,GAAG,IAAI;AACtD,IAAA;8GALY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,4ICVlC,iIACsD,EAAA,CAAA,CAAA;;2FDSzC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACI,gBAAgB,EAAA,QAAA,EAAA,iIAAA,EAAA;;sBAOzB,WAAW;uBAAC,qBAAqB;;;AEZtC;;;AAGG;MAIU,0BAA0B,CAAA;AAHvC,IAAA,WAAA,GAAA;AAII;;AAEG;QACwC,IAAA,CAAA,QAAQ,GAAG,IAAI;AAC7D,IAAA;8GALY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAClC,iBAAA;;sBAKI,WAAW;uBAAC,4BAA4B;;;ACNvC,MAAO,qBAAsB,SAAQ,gBAAgB,CAAA;AACvD,IAAA,IACI,UAAU,GAAA;AACV,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACpE;8GAJS,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA;;sBAEI,WAAW;uBAAC,OAAO;;MASX,6BAA6B,CAAA;AAH1C,IAAA,WAAA,GAAA;QAImD,IAAA,CAAA,QAAQ,GAAG,IAAI;AACjE,IAAA;8GAFY,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AACrC,iBAAA;;sBAEI,WAAW;uBAAC,gCAAgC;;;ACdjD;;AAEG;AAIG,MAAO,gBAAiB,SAAQ,gBAAgB,CAAA;AAuClD,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAvCX,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAE5B;;;AAGG;AACH,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK;uGAAyD;AAEhF;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE1D;;AAEG;QACH,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,kFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE1D;;AAEE;QACF,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3D;;AAEG;QACH,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;QAE3D,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAEzD;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK;+FAA0G;AAEzH,QAAA,IAAA,CAAA,iBAAiB,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,8BAAA,EAAA,CAAA,EAAI,WAAW,EAAE,IAAI,GAAG;AA8CtF,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;YAC7B,OAAO,IAAI,CAAC,iBAAiB,EAAE,EAAE,MAAM,GAAG,CAAC;QAC/C,CAAC;qFAAC;QA5CE,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE;AACpC,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;AACvB,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACnB,oBAAA,IAAI,IAAI,EAAE,IAAI,EAAE;AACZ,wBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACnE;AACJ,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC,CAAC;;QAGF,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE;AACtC,YAAA,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;AACnB,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAClB,oBAAA,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC;AACvC,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,IACI,cAAc,GAAA;AACd,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,IAAI,CAAC,UAAU,EAAE;IACpF;AAEA,IAAA,IACI,aAAa,GAAA;AACb,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,YAAY,KAAK,IAAI,CAAC,SAAS,EAAE;IACnF;AAEA,IAAA,IACI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;IAC5B;AAEA,IAAA,IACI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IAC1B;AAMA;;AAEG;AACH,IAAA,IACI,UAAU,GAAA;AACV,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;AAC7B,eAAG,IAAI,CAAC,OAAO,EAAE,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU;AAChD,kBAAE;AACF,kBAAE,CAAA,UAAA,EAAa,IAAI,CAAC,OAAO,EAAE,EAAE;cACjC,EAAE;AAER,QAAA,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC;YACnC,YAAY;AACZ,YAAA,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,6BAA6B,GAAG,EAAE;AAC5F,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;IACtB;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IACjC;AAEA;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE;IACjC;AAEA;;AAEG;IACH,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE;IAChC;8GA3HS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,qzCAqC4B,gBAAgB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FArC5D,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA;izBAsCuC,UAAU,CAAC,MAAM,gBAAgB,CAAC,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA;sBA0B5F,WAAW;uBAAC,0BAA0B;;sBAKtC,WAAW;uBAAC,uBAAuB;;sBAKnC,WAAW;uBAAC,2BAA2B;;sBAKvC,WAAW;uBAAC,sBAAsB;;sBAYlC,WAAW;uBAAC,OAAO;;;AC1FjB,MAAM,YAAY,GAAG;AACxB,IAAA,gBAAgB,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,qBAAqB;IAC7F,0BAA0B;;;ACZ9B;;AAEG;;;;"}
@@ -149,25 +149,23 @@ class EclListIllustrationItemComponent extends ECLBaseDirective {
149
149
  ...(ngDevMode ? [{ debugName: "hasDivider" }] : /* istanbul ignore next */ []));
150
150
  this.hasPicture = computed(() => this.eclIllustrationPicture() !== undefined, /* @ts-ignore */
151
151
  ...(ngDevMode ? [{ debugName: "hasPicture" }] : /* istanbul ignore next */ []));
152
- }
153
- /**
154
- * Returns `true` if the item has a title or any projected icons.
155
- */
156
- get hasTitle() {
157
- return Boolean(this.eclTitle()) || this.eclIllustrationIcon() !== undefined;
158
- }
159
- /**
160
- * Returns `true` if the item has a value.
161
- */
162
- get hasValue() {
163
- return Boolean(this.eclValue());
152
+ /**
153
+ * Returns `true` if the item has a title or any projected icons.
154
+ */
155
+ this.hasTitle = computed(() => Boolean(this.eclTitle()) || this.eclIllustrationIcon() !== undefined, /* @ts-ignore */
156
+ ...(ngDevMode ? [{ debugName: "hasTitle" }] : /* istanbul ignore next */ []));
157
+ /**
158
+ * Returns `true` if the item has a value.
159
+ */
160
+ this.hasValue = computed(() => Boolean(this.eclValue()), /* @ts-ignore */
161
+ ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
164
162
  }
165
163
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclListIllustrationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
166
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclListIllustrationItemComponent, isStandalone: true, selector: "ecl-list-illustration-item, li[eclListIllustrationItem]", inputs: { eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, eclValue: { classPropertyName: "eclValue", publicName: "eclValue", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "this.role", "class.ecl-list-illustration__item": "this.className" } }, queries: [{ propertyName: "eclIllustrationIcon", first: true, predicate: i0.forwardRef(() => EclListIllustrationIconDirective), descendants: true, isSignal: true }, { propertyName: "eclIllustrationPicture", first: true, predicate: i0.forwardRef(() => EclListIllustrationPictureDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-list-illustration__item-content\" [class.ecl-list-illustration__item-content--row]=\"isVerticalPicture()\"\n [class.ecl-list-illustration__divider]=\"hasDivider()\">\n <ng-content select=\"[eclListIllustrationImage],[eclListIllustrationPicture],[eclListIllustrationIcon]\"></ng-content>\n <div class=\"ecl-list-illustration__detail\">\n @if (hasTitle || hasValue) {\n <div class=\"ecl-list-illustration__title-container\">\n @if (hasValue) {\n <div class=\"ecl-list-illustration__value\">{{ eclValue() }}</div>\n }\n <div class=\"ecl-list-illustration__title\">{{ eclTitle() }}</div>\n </div>\n }\n\n <div class=\"ecl-list-illustration__description\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>" }); }
164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.2", type: EclListIllustrationItemComponent, isStandalone: true, selector: "ecl-list-illustration-item, li[eclListIllustrationItem]", inputs: { eclTitle: { classPropertyName: "eclTitle", publicName: "eclTitle", isSignal: true, isRequired: false, transformFunction: null }, eclValue: { classPropertyName: "eclValue", publicName: "eclValue", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "this.role", "class.ecl-list-illustration__item": "this.className" } }, queries: [{ propertyName: "eclIllustrationIcon", first: true, predicate: i0.forwardRef(() => EclListIllustrationIconDirective), descendants: true, isSignal: true }, { propertyName: "eclIllustrationPicture", first: true, predicate: i0.forwardRef(() => EclListIllustrationPictureDirective), descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ecl-list-illustration__item-content\" [class.ecl-list-illustration__item-content--row]=\"isVerticalPicture()\"\n [class.ecl-list-illustration__divider]=\"hasDivider()\">\n <ng-content select=\"[eclListIllustrationImage],[eclListIllustrationPicture],[eclListIllustrationIcon]\"></ng-content>\n <div class=\"ecl-list-illustration__detail\">\n @if (hasTitle() || hasValue()) {\n <div class=\"ecl-list-illustration__title-container\">\n @if (hasValue()) {\n <div class=\"ecl-list-illustration__value\">{{ eclValue() }}</div>\n }\n <div class=\"ecl-list-illustration__title\">{{ eclTitle() }}</div>\n </div>\n }\n\n <div class=\"ecl-list-illustration__description\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>" }); }
167
165
  }
168
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclListIllustrationItemComponent, decorators: [{
169
167
  type: Component,
170
- args: [{ selector: 'ecl-list-illustration-item, li[eclListIllustrationItem]', template: "<div class=\"ecl-list-illustration__item-content\" [class.ecl-list-illustration__item-content--row]=\"isVerticalPicture()\"\n [class.ecl-list-illustration__divider]=\"hasDivider()\">\n <ng-content select=\"[eclListIllustrationImage],[eclListIllustrationPicture],[eclListIllustrationIcon]\"></ng-content>\n <div class=\"ecl-list-illustration__detail\">\n @if (hasTitle || hasValue) {\n <div class=\"ecl-list-illustration__title-container\">\n @if (hasValue) {\n <div class=\"ecl-list-illustration__value\">{{ eclValue() }}</div>\n }\n <div class=\"ecl-list-illustration__title\">{{ eclTitle() }}</div>\n </div>\n }\n\n <div class=\"ecl-list-illustration__description\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>" }]
168
+ args: [{ selector: 'ecl-list-illustration-item, li[eclListIllustrationItem]', template: "<div class=\"ecl-list-illustration__item-content\" [class.ecl-list-illustration__item-content--row]=\"isVerticalPicture()\"\n [class.ecl-list-illustration__divider]=\"hasDivider()\">\n <ng-content select=\"[eclListIllustrationImage],[eclListIllustrationPicture],[eclListIllustrationIcon]\"></ng-content>\n <div class=\"ecl-list-illustration__detail\">\n @if (hasTitle() || hasValue()) {\n <div class=\"ecl-list-illustration__title-container\">\n @if (hasValue()) {\n <div class=\"ecl-list-illustration__value\">{{ eclValue() }}</div>\n }\n <div class=\"ecl-list-illustration__title\">{{ eclTitle() }}</div>\n </div>\n }\n\n <div class=\"ecl-list-illustration__description\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>" }]
171
169
  }], propDecorators: { eclTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclTitle", required: false }] }], eclValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "eclValue", required: false }] }], role: [{
172
170
  type: HostBinding,
173
171
  args: ['attr.role']
@@ -227,8 +225,7 @@ class EclListIllustrationComponent extends ECLBaseDirective {
227
225
  /** If this is an icon-list, it can have dividers between each item. */
228
226
  this.hasDividers = input(false, { ...(ngDevMode ? { debugName: "hasDividers" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
229
227
  /** If we have a number-list, the user can set the start of the counter. */
230
- this.counterStart = input(null, /* @ts-ignore */
231
- ...(ngDevMode ? [{ debugName: "counterStart" }] : /* istanbul ignore next */ []));
228
+ this.counterStart = input(null, { ...(ngDevMode ? { debugName: "counterStart" } : /* istanbul ignore next */ {}), transform: numberAttribute });
232
229
  this.eclIllustrationItems = contentChildren(forwardRef(() => EclListIllustrationItemComponent), /* @ts-ignore */
233
230
  ...(ngDevMode ? [{ debugName: "eclIllustrationItems" }] : /* istanbul ignore next */ []));
234
231
  /**
@@ -276,26 +273,18 @@ class EclListIllustrationComponent extends ECLBaseDirective {
276
273
  });
277
274
  }
278
275
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclListIllustrationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
279
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclListIllustrationComponent, isStandalone: true, selector: "ecl-list-illustration, ul[eclListIllustration], ol[eclListIllustration]", inputs: { isZebra: { classPropertyName: "isZebra", publicName: "isZebra", isSignal: true, isRequired: false, transformFunction: null }, horizontalColumns: { classPropertyName: "horizontalColumns", publicName: "horizontalColumns", isSignal: true, isRequired: false, transformFunction: null }, fontSize: { classPropertyName: "fontSize", publicName: "fontSize", isSignal: true, isRequired: false, transformFunction: null }, isCentered: { classPropertyName: "isCentered", publicName: "isCentered", isSignal: true, isRequired: false, transformFunction: null }, isIconInline: { classPropertyName: "isIconInline", publicName: "isIconInline", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hasDividers: { classPropertyName: "hasDividers", publicName: "hasDividers", isSignal: true, isRequired: false, transformFunction: null }, counterStart: { classPropertyName: "counterStart", publicName: "counterStart", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "elementDisplayStyle()", "attr.role": "this.role", "class": "this.cssClasses", "style.--ecl-list-illustration-counter-start": "this.counterStartStyle", "attr.start": "this.startAttr" } }, queries: [{ propertyName: "eclIllustrationItems", predicate: i0.forwardRef(() => EclListIllustrationItemComponent), isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>" }); }
276
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.2", type: EclListIllustrationComponent, isStandalone: true, selector: "ecl-list-illustration, ul[eclListIllustration], ol[eclListIllustration]", inputs: { isZebra: { classPropertyName: "isZebra", publicName: "isZebra", isSignal: true, isRequired: false, transformFunction: null }, horizontalColumns: { classPropertyName: "horizontalColumns", publicName: "horizontalColumns", isSignal: true, isRequired: false, transformFunction: null }, fontSize: { classPropertyName: "fontSize", publicName: "fontSize", isSignal: true, isRequired: false, transformFunction: null }, isCentered: { classPropertyName: "isCentered", publicName: "isCentered", isSignal: true, isRequired: false, transformFunction: null }, isIconInline: { classPropertyName: "isIconInline", publicName: "isIconInline", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, hasDividers: { classPropertyName: "hasDividers", publicName: "hasDividers", isSignal: true, isRequired: false, transformFunction: null }, counterStart: { classPropertyName: "counterStart", publicName: "counterStart", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role", "class": "cssClasses", "style.display": "elementDisplayStyle()", "style.--ecl-list-illustration-counter-start": "counterStartStyle", "attr.start": "startAttr" } }, queries: [{ propertyName: "eclIllustrationItems", predicate: i0.forwardRef(() => EclListIllustrationItemComponent), isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>" }); }
280
277
  }
281
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EclListIllustrationComponent, decorators: [{
282
279
  type: Component,
283
280
  args: [{ selector: 'ecl-list-illustration, ul[eclListIllustration], ol[eclListIllustration]', host: {
281
+ '[attr.role]': 'role',
282
+ '[class]': 'cssClasses',
284
283
  '[style.display]': 'elementDisplayStyle()',
284
+ '[style.--ecl-list-illustration-counter-start]': 'counterStartStyle',
285
+ '[attr.start]': 'startAttr',
285
286
  }, template: "<ng-content></ng-content>" }]
286
- }], ctorParameters: () => [], propDecorators: { isZebra: [{ type: i0.Input, args: [{ isSignal: true, alias: "isZebra", required: false }] }], horizontalColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontalColumns", required: false }] }], fontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontSize", required: false }] }], isCentered: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCentered", required: false }] }], isIconInline: [{ type: i0.Input, args: [{ isSignal: true, alias: "isIconInline", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], hasDividers: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDividers", required: false }] }], counterStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "counterStart", required: false }] }], eclIllustrationItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclListIllustrationItemComponent), { isSignal: true }] }], role: [{
287
- type: HostBinding,
288
- args: ['attr.role']
289
- }], cssClasses: [{
290
- type: HostBinding,
291
- args: ['class']
292
- }], counterStartStyle: [{
293
- type: HostBinding,
294
- args: ['style.--ecl-list-illustration-counter-start']
295
- }], startAttr: [{
296
- type: HostBinding,
297
- args: ['attr.start']
298
- }] } });
287
+ }], ctorParameters: () => [], propDecorators: { isZebra: [{ type: i0.Input, args: [{ isSignal: true, alias: "isZebra", required: false }] }], horizontalColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontalColumns", required: false }] }], fontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "fontSize", required: false }] }], isCentered: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCentered", required: false }] }], isIconInline: [{ type: i0.Input, args: [{ isSignal: true, alias: "isIconInline", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], hasDividers: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasDividers", required: false }] }], counterStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "counterStart", required: false }] }], eclIllustrationItems: [{ type: i0.ContentChildren, args: [forwardRef(() => EclListIllustrationItemComponent), { isSignal: true }] }] } });
299
288
 
300
289
  const EUI_ECL_LIST_ILUSTRATION = [
301
290
  EclListIllustrationComponent,