@eui/ecl 19.0.2-snapshot-1736167801365 → 19.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ecl-breadcrumb/ecl-breadcrumb-container.directive.d.ts +11 -0
- package/components/ecl-breadcrumb/ecl-breadcrumb-container.directive.d.ts.map +1 -0
- package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts +3 -4
- package/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
- package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts +7 -1
- package/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
- package/components/ecl-breadcrumb/ecl-breadcrumb.module.d.ts +8 -7
- package/components/ecl-breadcrumb/ecl-breadcrumb.module.d.ts.map +1 -1
- package/components/ecl-breadcrumb/index.d.ts +1 -0
- package/components/ecl-breadcrumb/index.d.ts.map +1 -1
- package/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.d.ts +3 -2
- package/components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.d.ts.map +1 -1
- package/components/ecl-inpage-navigation/ecl-inpage-navigation-list.directive.d.ts +16 -0
- package/components/ecl-inpage-navigation/ecl-inpage-navigation-list.directive.d.ts.map +1 -0
- package/components/ecl-inpage-navigation/ecl-inpage-navigation.component.d.ts +7 -3
- package/components/ecl-inpage-navigation/ecl-inpage-navigation.component.d.ts.map +1 -1
- package/components/ecl-inpage-navigation/ecl-inpage-navigation.module.d.ts +7 -6
- package/components/ecl-inpage-navigation/ecl-inpage-navigation.module.d.ts.map +1 -1
- package/components/ecl-inpage-navigation/index.d.ts +2 -0
- package/components/ecl-inpage-navigation/index.d.ts.map +1 -1
- package/components/ecl-inpage-navigation/services/ecl-inpage-navigation.service.d.ts +11 -0
- package/components/ecl-inpage-navigation/services/ecl-inpage-navigation.service.d.ts.map +1 -0
- package/components/ecl-pagination/ecl-pagination-item.component.d.ts +4 -2
- package/components/ecl-pagination/ecl-pagination-item.component.d.ts.map +1 -1
- package/components/ecl-pagination/ecl-pagination-list.directive.d.ts +8 -0
- package/components/ecl-pagination/ecl-pagination-list.directive.d.ts.map +1 -0
- package/components/ecl-pagination/ecl-pagination.component.d.ts +4 -1
- package/components/ecl-pagination/ecl-pagination.component.d.ts.map +1 -1
- package/components/ecl-pagination/ecl-pagination.module.d.ts +7 -6
- package/components/ecl-pagination/ecl-pagination.module.d.ts.map +1 -1
- package/components/ecl-pagination/index.d.ts +1 -0
- package/components/ecl-pagination/index.d.ts.map +1 -1
- package/docs/components/EclAccordionComponent.html +2 -2
- package/docs/components/EclAccordionItemComponent.html +2 -2
- package/docs/components/EclAppComponent.html +2 -2
- package/docs/components/EclBannerComponent.html +2 -2
- package/docs/components/EclBlockquoteComponent.html +2 -2
- package/docs/components/EclBreadcrumbComponent.html +66 -6
- package/docs/components/EclBreadcrumbSegmentComponent.html +4 -16
- package/docs/components/EclButtonComponent.html +2 -2
- package/docs/components/EclCardBodyComponent.html +2 -2
- package/docs/components/EclCardComponent.html +2 -2
- package/docs/components/EclCarouselComponent.html +2 -2
- package/docs/components/EclCarouselItemComponent.html +2 -2
- package/docs/components/EclCategoryFilterComponent.html +2 -2
- package/docs/components/EclCategoryFilterItemComponent.html +2 -2
- package/docs/components/EclCategoryFilterListComponent.html +2 -2
- package/docs/components/EclCheckboxHelpComponent.html +2 -2
- package/docs/components/EclCheckboxLabelComponent.html +2 -2
- package/docs/components/EclContentBlockComponent.html +2 -2
- package/docs/components/EclContentItemComponent.html +2 -2
- package/docs/components/EclDateBlockComponent.html +2 -2
- package/docs/components/EclDescriptionListDefinitionComponent.html +2 -2
- package/docs/components/EclExpandableComponent.html +2 -2
- package/docs/components/EclFactFiguresComponent.html +2 -2
- package/docs/components/EclFactFiguresDescriptionComponent.html +2 -2
- package/docs/components/EclFactFiguresItemComponent.html +2 -2
- package/docs/components/EclFactFiguresTitleComponent.html +2 -2
- package/docs/components/EclFactFiguresValueComponent.html +2 -2
- package/docs/components/EclFactFiguresViewAllComponent.html +2 -2
- package/docs/components/EclFeaturedComponent.html +2 -2
- package/docs/components/EclFeaturedItemComponent.html +2 -2
- package/docs/components/EclFeaturedItemDescriptionComponent.html +2 -2
- package/docs/components/EclFeaturedItemFooterComponent.html +2 -2
- package/docs/components/EclFileComponent.html +2 -2
- package/docs/components/EclFileItemComponent.html +2 -2
- package/docs/components/EclFileItemsComponent.html +2 -2
- package/docs/components/EclFileTaxonomyComponent.html +2 -2
- package/docs/components/EclFormGroupComponent.html +2 -2
- package/docs/components/EclFormLabelComponent.html +2 -2
- package/docs/components/EclGalleryComponent.html +2 -2
- package/docs/components/EclGalleryFooterComponent.html +2 -2
- package/docs/components/EclGalleryItemComponent.html +2 -2
- package/docs/components/EclIconComponent.html +2 -2
- package/docs/components/EclInpageNavigationComponent.html +72 -17
- package/docs/components/EclInpageNavigationItemComponent.html +46 -3
- package/docs/components/EclListIllustrationComponent.html +2 -2
- package/docs/components/EclListIllustrationItemComponent.html +2 -2
- package/docs/components/EclLoadingIndicatorComponent.html +2 -2
- package/docs/components/EclMediaContainerComponent.html +2 -2
- package/docs/components/EclMegaMenuComponent.html +2 -2
- package/docs/components/EclMegaMenuFeaturedComponent.html +2 -2
- package/docs/components/EclMegaMenuInfoComponent.html +2 -2
- package/docs/components/EclMegaMenuItemComponent.html +2 -2
- package/docs/components/EclMegaMenuSubitemComponent.html +2 -2
- package/docs/components/EclMenuComponent.html +2 -2
- package/docs/components/EclMenuItemComponent.html +2 -2
- package/docs/components/EclMenuMegaComponent.html +2 -2
- package/docs/components/EclMenuMegaItemComponent.html +2 -2
- package/docs/components/EclModalBodyComponent.html +2 -2
- package/docs/components/EclModalComponent.html +2 -2
- package/docs/components/EclModalFooterComponent.html +2 -2
- package/docs/components/EclModalHeaderComponent.html +2 -2
- package/docs/components/EclMultiselectComponent.html +2 -2
- package/docs/components/EclMultiselectDropdownComponent.html +2 -2
- package/docs/components/EclMultiselectInputComponent.html +2 -2
- package/docs/components/EclMultiselectOptgroupComponent.html +2 -2
- package/docs/components/EclMultiselectOptionComponent.html +2 -2
- package/docs/components/EclNavigationListComponent.html +2 -2
- package/docs/components/EclNavigationListItemComponent.html +2 -2
- package/docs/components/EclNewsTickerComponent.html +2 -2
- package/docs/components/EclNewsTickerItemComponent.html +2 -2
- package/docs/components/EclNotificationComponent.html +2 -2
- package/docs/components/EclPageHeaderComponent.html +2 -2
- package/docs/components/EclPaginationComponent.html +74 -3
- package/docs/components/EclPaginationItemComponent.html +72 -3
- package/docs/components/EclPopoverComponent.html +2 -2
- package/docs/components/EclRadioHelpComponent.html +2 -2
- package/docs/components/EclRadioLabelComponent.html +2 -2
- package/docs/components/EclRangeBubbleComponent.html +2 -2
- package/docs/components/EclRangeValueComponent.html +2 -2
- package/docs/components/EclRatingFieldComponent.html +2 -2
- package/docs/components/EclSearchFormComponent.html +2 -2
- package/docs/components/EclSelectContainerComponent.html +2 -2
- package/docs/components/EclSiteFooterComponent.html +2 -2
- package/docs/components/EclSiteFooterFixedContentECComponent.html +2 -2
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +2 -2
- package/docs/components/EclSiteHeaderActionComponent.html +2 -2
- package/docs/components/EclSiteHeaderBannerTopComponent.html +2 -2
- package/docs/components/EclSiteHeaderComponent.html +2 -2
- package/docs/components/EclSiteHeaderEnvironmentComponent.html +2 -2
- package/docs/components/EclSiteHeaderLanguageComponent.html +3 -3
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +2 -2
- package/docs/components/EclSiteHeaderLoginComponent.html +2 -2
- package/docs/components/EclSiteHeaderNotificationComponent.html +2 -2
- package/docs/components/EclSiteHeaderSearchComponent.html +2 -2
- package/docs/components/EclSocialMediaFollowComponent.html +2 -2
- package/docs/components/EclSocialMediaFollowItemComponent.html +2 -2
- package/docs/components/EclSocialMediaShareComponent.html +2 -2
- package/docs/components/EclSocialMediaShareItemComponent.html +2 -2
- package/docs/components/EclSplashPageComponent.html +2 -2
- package/docs/components/EclSplashPageLanguageCategoryComponent.html +2 -2
- package/docs/components/EclSplashPageLanguageContainerComponent.html +2 -2
- package/docs/components/EclSplashPageLanguageLinkComponent.html +2 -2
- package/docs/components/EclStickyContainerComponent.html +2 -2
- package/docs/components/EclTabComponent.html +2 -2
- package/docs/components/EclTabLabelComponent.html +2 -2
- package/docs/components/EclTabMoreComponent.html +2 -2
- package/docs/components/EclTableSortButtonComponent.html +2 -2
- package/docs/components/EclTabsComponent.html +2 -2
- package/docs/components/EclTagComponent.html +2 -2
- package/docs/components/EclTimelineComponent.html +2 -2
- package/docs/components/EclTimelineItemComponent.html +2 -2
- package/docs/components/EclTimelineItemTogglerComponent.html +2 -2
- package/docs/dependencies.html +2 -2
- package/docs/directives/EclBreadcrumbContainerDirective.html +566 -0
- package/docs/directives/EclInpageNavigationListDirective.html +610 -0
- package/docs/directives/EclPaginationListDirective.html +497 -0
- package/docs/index.html +2 -2
- package/docs/injectables/EclInpageNavigationService.html +361 -0
- package/docs/js/menu-wc.js +125 -20
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +65 -1
- package/docs/modules/EclInpageNavigationModule.html +61 -4
- package/docs/modules/EclPaginationModule.html +52 -4
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs +49 -15
- package/fesm2022/eui-ecl-components-ecl-breadcrumb.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs +95 -32
- package/fesm2022/eui-ecl-components-ecl-inpage-navigation.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs +53 -21
- package/fesm2022/eui-ecl-components-ecl-pagination.mjs.map +1 -1
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs +2 -2
- package/fesm2022/eui-ecl-components-ecl-site-header.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter, Component, HostBinding, Input, Output, ViewChild, afterNextRender, ContentChildren, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, HostBinding, Input, Output, ViewChild, Injectable, Directive, afterNextRender, ContentChildren, ContentChild, NgModule } from '@angular/core';
|
|
3
|
+
import * as i5 from '@angular/common';
|
|
3
4
|
import { CommonModule } from '@angular/common';
|
|
4
|
-
import * as
|
|
5
|
+
import * as i8 from '@ngx-translate/core';
|
|
5
6
|
import { TranslateModule } from '@ngx-translate/core';
|
|
6
7
|
import * as i1 from '@eui/ecl/components/ecl-link';
|
|
7
8
|
import { EclLinkDirective, EclLinkModule } from '@eui/ecl/components/ecl-link';
|
|
8
|
-
import * as
|
|
9
|
+
import * as i7 from '@eui/ecl/components/ecl-icon';
|
|
9
10
|
import { EclIconModule } from '@eui/ecl/components/ecl-icon';
|
|
10
|
-
import * as
|
|
11
|
+
import * as i6 from '@eui/ecl/components/ecl-sticky-container';
|
|
11
12
|
import { EclStickyContainerModule } from '@eui/ecl/components/ecl-sticky-container';
|
|
12
13
|
import * as i1$1 from '@eui/ecl/core';
|
|
13
14
|
import { EclBaseEvent, ECLBaseDirective } from '@eui/ecl/core';
|
|
14
15
|
import * as i3 from '@angular/cdk/layout';
|
|
15
16
|
import { Breakpoints } from '@angular/cdk/layout';
|
|
16
|
-
import { Subject } from 'rxjs';
|
|
17
|
-
import { takeUntil } from 'rxjs/operators';
|
|
17
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
18
|
+
import { takeUntil as takeUntil$1 } from 'rxjs/operators';
|
|
18
19
|
import * as i2 from '@angular/cdk/scrolling';
|
|
19
20
|
|
|
20
21
|
class EclInpageNavigationItemClickEvent extends EclBaseEvent {
|
|
@@ -23,15 +24,19 @@ class EclInpageNavigationItemClickEvent extends EclBaseEvent {
|
|
|
23
24
|
this.sectionElementId = sectionElementId;
|
|
24
25
|
}
|
|
25
26
|
}
|
|
27
|
+
// TODO: ecl-inpage-navigation-item selector is deprecated and should be removed in v20
|
|
26
28
|
class EclInpageNavigationItemComponent extends ECLBaseDirective {
|
|
27
|
-
constructor() {
|
|
28
|
-
super(
|
|
29
|
+
constructor(el) {
|
|
30
|
+
super();
|
|
29
31
|
this.cmpClass = true;
|
|
30
32
|
this.role = 'listitem';
|
|
31
33
|
this.itemClick = new EventEmitter();
|
|
32
34
|
this.itemArrowUp = new EventEmitter();
|
|
33
35
|
this.itemArrowDown = new EventEmitter();
|
|
34
36
|
this.itemTab = new EventEmitter();
|
|
37
|
+
if (el.nativeElement.tagName.toLowerCase() === 'ecl-inpage-navigation-item') {
|
|
38
|
+
console.warn('"ecl-inpage-navigation-item" selector is deprecated; use "li[eclInpageNavigationItem]" instead.');
|
|
39
|
+
}
|
|
35
40
|
}
|
|
36
41
|
onItemClick(evt) {
|
|
37
42
|
const event = new EclInpageNavigationItemClickEvent(this.sectionId);
|
|
@@ -55,13 +60,13 @@ class EclInpageNavigationItemComponent extends ECLBaseDirective {
|
|
|
55
60
|
onFocus() {
|
|
56
61
|
this.link.onFocus();
|
|
57
62
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationItemComponent, deps:
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: EclInpageNavigationItemComponent, isStandalone: false, selector: "ecl-inpage-navigation-item", inputs: { label: "label", sectionId: "sectionId", isActive: "isActive" }, outputs: { itemClick: "itemClick", itemArrowUp: "itemArrowUp", itemArrowDown: "itemArrowDown", itemTab: "itemTab" }, host: { properties: { "class.ecl-inpage-navigation__item": "this.cmpClass", "attr.role": "this.role", "class.ecl-inpage-navigation__item--active": "this.isActive" } }, viewQueries: [{ propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }] }); }
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationItemComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: EclInpageNavigationItemComponent, isStandalone: false, selector: "ecl-inpage-navigation-item, li[eclInpageNavigationItem]", inputs: { label: "label", sectionId: "sectionId", isActive: "isActive" }, outputs: { itemClick: "itemClick", itemArrowUp: "itemArrowUp", itemArrowDown: "itemArrowDown", itemTab: "itemTab" }, host: { properties: { "class.ecl-inpage-navigation__item": "this.cmpClass", "attr.role": "this.role", "class.ecl-inpage-navigation__item--active": "this.isActive" } }, viewQueries: [{ propertyName: "link", first: true, predicate: EclLinkDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"], dependencies: [{ kind: "directive", type: i1.EclLinkDirective, selector: "[eclLink]", inputs: ["isInverted", "isIconOnly", "isNoVisited", "variant"] }] }); }
|
|
60
65
|
}
|
|
61
66
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationItemComponent, decorators: [{
|
|
62
67
|
type: Component,
|
|
63
|
-
args: [{ selector: 'ecl-inpage-navigation-item', standalone: false, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"] }]
|
|
64
|
-
}], propDecorators: { cmpClass: [{
|
|
68
|
+
args: [{ selector: 'ecl-inpage-navigation-item, li[eclInpageNavigationItem]', standalone: false, template: "<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n", styles: [":host{display:list-item}\n"] }]
|
|
69
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { cmpClass: [{
|
|
65
70
|
type: HostBinding,
|
|
66
71
|
args: ['class.ecl-inpage-navigation__item']
|
|
67
72
|
}], role: [{
|
|
@@ -89,6 +94,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
89
94
|
args: [EclLinkDirective]
|
|
90
95
|
}] } });
|
|
91
96
|
|
|
97
|
+
class EclInpageNavigationService {
|
|
98
|
+
constructor() {
|
|
99
|
+
this.eclInpageNavigationExpanded = new Subject();
|
|
100
|
+
this.eclInpageNavigationExpanded$ = this.eclInpageNavigationExpanded.asObservable();
|
|
101
|
+
}
|
|
102
|
+
eclInpageNavigationToggle(isExpanded) {
|
|
103
|
+
this.eclInpageNavigationExpanded.next(isExpanded);
|
|
104
|
+
}
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
106
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationService }); }
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationService, decorators: [{
|
|
109
|
+
type: Injectable
|
|
110
|
+
}], ctorParameters: () => [] });
|
|
111
|
+
|
|
112
|
+
class EclInpageNavigationListDirective extends ECLBaseDirective {
|
|
113
|
+
constructor(eclInpageNavigationService) {
|
|
114
|
+
super();
|
|
115
|
+
this.eclInpageNavigationService = eclInpageNavigationService;
|
|
116
|
+
this.hasClass = true;
|
|
117
|
+
this.isVisible = false;
|
|
118
|
+
this.destroy$ = new Subject();
|
|
119
|
+
}
|
|
120
|
+
ngAfterContentInit() {
|
|
121
|
+
this.eclInpageNavigationService.eclInpageNavigationExpanded$.pipe(takeUntil(this.destroy$)).subscribe((value) => {
|
|
122
|
+
this.isVisible = value;
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
ngOnDestroy() {
|
|
126
|
+
this.destroy$.next(true);
|
|
127
|
+
this.destroy$.unsubscribe();
|
|
128
|
+
}
|
|
129
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationListDirective, deps: [{ token: EclInpageNavigationService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
130
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: EclInpageNavigationListDirective, isStandalone: false, selector: "ul[eclInpageNavigationList]", host: { properties: { "class.ecl-inpage-navigation__list": "this.hasClass", "class.ecl-inpage-navigation__list--visible": "this.isVisible" } }, usesInheritance: true, ngImport: i0 }); }
|
|
131
|
+
}
|
|
132
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationListDirective, decorators: [{
|
|
133
|
+
type: Directive,
|
|
134
|
+
args: [{
|
|
135
|
+
selector: 'ul[eclInpageNavigationList]',
|
|
136
|
+
standalone: false,
|
|
137
|
+
}]
|
|
138
|
+
}], ctorParameters: () => [{ type: EclInpageNavigationService }], propDecorators: { hasClass: [{
|
|
139
|
+
type: HostBinding,
|
|
140
|
+
args: ['class.ecl-inpage-navigation__list']
|
|
141
|
+
}], isVisible: [{
|
|
142
|
+
type: HostBinding,
|
|
143
|
+
args: ['class.ecl-inpage-navigation__list--visible']
|
|
144
|
+
}] } });
|
|
145
|
+
|
|
92
146
|
class EclInpageNavigationSectionEnterEvent extends EclBaseEvent {
|
|
93
147
|
constructor(sectionId) {
|
|
94
148
|
super();
|
|
@@ -96,9 +150,8 @@ class EclInpageNavigationSectionEnterEvent extends EclBaseEvent {
|
|
|
96
150
|
}
|
|
97
151
|
}
|
|
98
152
|
class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
99
|
-
constructor(
|
|
153
|
+
constructor(eclRtlService, eclThemeService, differs, scrollDispatcher, zone, cdkBreakpointObserver, viewportRuler, eclInpageNavigationService) {
|
|
100
154
|
super();
|
|
101
|
-
this.el = el;
|
|
102
155
|
this.eclRtlService = eclRtlService;
|
|
103
156
|
this.eclThemeService = eclThemeService;
|
|
104
157
|
this.differs = differs;
|
|
@@ -106,6 +159,7 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
106
159
|
this.zone = zone;
|
|
107
160
|
this.cdkBreakpointObserver = cdkBreakpointObserver;
|
|
108
161
|
this.viewportRuler = viewportRuler;
|
|
162
|
+
this.eclInpageNavigationService = eclInpageNavigationService;
|
|
109
163
|
this.sectionEnter = new EventEmitter();
|
|
110
164
|
this.isButtonExpanded = false;
|
|
111
165
|
this.isRtl = false;
|
|
@@ -123,7 +177,7 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
123
177
|
this.setListHeight();
|
|
124
178
|
});
|
|
125
179
|
this.intersectionObserver.observe(this.togglerButton.nativeElement);
|
|
126
|
-
this.viewportRuler.change(300).pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
180
|
+
this.viewportRuler.change(300).pipe(takeUntil$1(this.destroy$)).subscribe(() => {
|
|
127
181
|
this.zone.run(() => {
|
|
128
182
|
this.setListHeight();
|
|
129
183
|
});
|
|
@@ -133,6 +187,9 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
133
187
|
ngOnInit() {
|
|
134
188
|
this.handleRtlChangeState();
|
|
135
189
|
}
|
|
190
|
+
get hasNavigationList() {
|
|
191
|
+
return !!this.eclNavigationList;
|
|
192
|
+
}
|
|
136
193
|
get currentNavigationLinkItem() {
|
|
137
194
|
return this.eclNavigationLinkItems.find((item) => item.sectionElement === this.currentSectionElement);
|
|
138
195
|
}
|
|
@@ -162,6 +219,7 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
162
219
|
}
|
|
163
220
|
onExpandButtonClick() {
|
|
164
221
|
this.isButtonExpanded = !this.isButtonExpanded;
|
|
222
|
+
this.eclInpageNavigationService.eclInpageNavigationToggle(this.isButtonExpanded);
|
|
165
223
|
}
|
|
166
224
|
onExpandButtonKeydown(evt) {
|
|
167
225
|
switch (evt.key) {
|
|
@@ -176,7 +234,7 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
176
234
|
}
|
|
177
235
|
}
|
|
178
236
|
handleRtlChangeState() {
|
|
179
|
-
this.eclRtlService.currentRtlState$.pipe(takeUntil(this.destroy$)).subscribe((rtlState) => {
|
|
237
|
+
this.eclRtlService.currentRtlState$.pipe(takeUntil$1(this.destroy$)).subscribe((rtlState) => {
|
|
180
238
|
this.isRtl = rtlState;
|
|
181
239
|
});
|
|
182
240
|
}
|
|
@@ -217,16 +275,16 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
217
275
|
}
|
|
218
276
|
}
|
|
219
277
|
connectItemEvents(item) {
|
|
220
|
-
item.itemArrowDown.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
278
|
+
item.itemArrowDown.pipe(takeUntil$1(this.destroy$)).subscribe(() => {
|
|
221
279
|
this.onItemArrowDown(item);
|
|
222
280
|
});
|
|
223
|
-
item.itemArrowUp.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
281
|
+
item.itemArrowUp.pipe(takeUntil$1(this.destroy$)).subscribe(() => {
|
|
224
282
|
this.onItemArrowUp(item);
|
|
225
283
|
});
|
|
226
|
-
item.itemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
284
|
+
item.itemTab.pipe(takeUntil$1(this.destroy$)).subscribe((evt) => {
|
|
227
285
|
this.onItemTab(item, evt);
|
|
228
286
|
});
|
|
229
|
-
item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {
|
|
287
|
+
item.itemClick.pipe(takeUntil$1(this.destroy$)).subscribe((evt) => {
|
|
230
288
|
this.selectNavigationItem(item.sectionElement);
|
|
231
289
|
if (item.sectionElement) {
|
|
232
290
|
item.sectionElement.scrollIntoView();
|
|
@@ -268,7 +326,7 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
268
326
|
}
|
|
269
327
|
}
|
|
270
328
|
subscribeToCDKScrollEvent() {
|
|
271
|
-
this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe((scrollable) => {
|
|
329
|
+
this.scrollDispatcher.scrolled().pipe(takeUntil$1(this.destroy$)).subscribe((scrollable) => {
|
|
272
330
|
this.zone.run(() => {
|
|
273
331
|
const sectionElementIds = this.eclNavigationLinkItems.map((item) => item.sectionId);
|
|
274
332
|
const sectionElements = sectionElementIds.map((id) => document.querySelector(`#${id}`));
|
|
@@ -303,18 +361,18 @@ class EclInpageNavigationComponent extends ECLBaseDirective {
|
|
|
303
361
|
observeBreakpointChanges() {
|
|
304
362
|
this.cdkBreakpointObserver
|
|
305
363
|
.observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])
|
|
306
|
-
.pipe(takeUntil(this.destroy$))
|
|
364
|
+
.pipe(takeUntil$1(this.destroy$))
|
|
307
365
|
.subscribe((result) => {
|
|
308
366
|
this.isMobileBreakpoint = result.matches;
|
|
309
367
|
});
|
|
310
368
|
}
|
|
311
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationComponent, deps: [{ token:
|
|
312
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
369
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationComponent, deps: [{ token: i1$1.EclRtlService }, { token: i1$1.EclThemeService }, { token: i0.IterableDiffers }, { token: i2.ScrollDispatcher }, { token: i0.NgZone }, { token: i3.BreakpointObserver }, { token: i2.ViewportRuler }, { token: EclInpageNavigationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
370
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: EclInpageNavigationComponent, isStandalone: false, selector: "ecl-inpage-navigation", inputs: { eclTitle: "eclTitle", marginTop: "marginTop", marginBottom: "marginBottom" }, outputs: { sectionEnter: "sectionEnter" }, queries: [{ propertyName: "eclNavigationList", first: true, predicate: EclInpageNavigationListDirective, descendants: true }, { propertyName: "eclNavigationLinkItems", predicate: EclInpageNavigationItemComponent, descendants: true }], viewQueries: [{ propertyName: "togglerButton", first: true, predicate: ["togglerButton"], descendants: true }, { propertyName: "toggleWrapper", first: true, predicate: ["toggleWrapper"], descendants: true }, { propertyName: "listContainer", first: true, predicate: ["listContainer"], descendants: true }, { propertyName: "navTittle", first: true, predicate: ["navTittle"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n @if (!hasNavigationList) {\n <ul #listContainer id=\"ecl-inpage-navigation-default-list\" class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\" [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </ul>\n } @else {\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n }\n </div>\n </nav>\n</ecl-sticky-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["@media (min-width: 996px){.ecl-inpage-navigation__list{display:block!important}}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.EclStickyContainerComponent, selector: "ecl-sticky-container", inputs: ["isEnabled", "marginTop", "marginBottom"] }, { kind: "component", type: i7.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "title", "ariaHidden", "focusable", "isFlipHorizontal"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
|
|
313
371
|
}
|
|
314
372
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationComponent, decorators: [{
|
|
315
373
|
type: Component,
|
|
316
|
-
args: [{ selector: 'ecl-inpage-navigation', standalone: false, template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n
|
|
317
|
-
}], ctorParameters: () => [{ type:
|
|
374
|
+
args: [{ selector: 'ecl-inpage-navigation', standalone: false, template: "<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n @if (!hasNavigationList) {\n <ul #listContainer id=\"ecl-inpage-navigation-default-list\" class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\" [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </ul>\n } @else {\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n }\n </div>\n </nav>\n</ecl-sticky-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>", styles: ["@media (min-width: 996px){.ecl-inpage-navigation__list{display:block!important}}\n"] }]
|
|
375
|
+
}], ctorParameters: () => [{ type: i1$1.EclRtlService }, { type: i1$1.EclThemeService }, { type: i0.IterableDiffers }, { type: i2.ScrollDispatcher }, { type: i0.NgZone }, { type: i3.BreakpointObserver }, { type: i2.ViewportRuler }, { type: EclInpageNavigationService }], propDecorators: { eclTitle: [{
|
|
318
376
|
type: Input
|
|
319
377
|
}], marginTop: [{
|
|
320
378
|
type: Input
|
|
@@ -336,20 +394,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
336
394
|
type: Output
|
|
337
395
|
}], eclNavigationLinkItems: [{
|
|
338
396
|
type: ContentChildren,
|
|
339
|
-
args: [EclInpageNavigationItemComponent]
|
|
397
|
+
args: [EclInpageNavigationItemComponent, { descendants: true }]
|
|
398
|
+
}], eclNavigationList: [{
|
|
399
|
+
type: ContentChild,
|
|
400
|
+
args: [EclInpageNavigationListDirective]
|
|
340
401
|
}] } });
|
|
341
402
|
|
|
403
|
+
const COMPONENTS = [EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective];
|
|
342
404
|
class EclInpageNavigationModule {
|
|
343
405
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
344
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationModule, declarations: [EclInpageNavigationComponent, EclInpageNavigationItemComponent], imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule], exports: [EclInpageNavigationComponent, EclInpageNavigationItemComponent] }); }
|
|
345
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationModule, imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule] }); }
|
|
406
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationModule, declarations: [EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective], imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule], exports: [EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective] }); }
|
|
407
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationModule, providers: [EclInpageNavigationService], imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule] }); }
|
|
346
408
|
}
|
|
347
409
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: EclInpageNavigationModule, decorators: [{
|
|
348
410
|
type: NgModule,
|
|
349
411
|
args: [{
|
|
350
412
|
imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule],
|
|
351
|
-
exports: [
|
|
352
|
-
declarations: [
|
|
413
|
+
exports: [...COMPONENTS],
|
|
414
|
+
declarations: [...COMPONENTS],
|
|
415
|
+
providers: [EclInpageNavigationService],
|
|
353
416
|
}]
|
|
354
417
|
}] });
|
|
355
418
|
|
|
@@ -357,5 +420,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImpor
|
|
|
357
420
|
* Generated bundle index. Do not edit.
|
|
358
421
|
*/
|
|
359
422
|
|
|
360
|
-
export { EclInpageNavigationComponent, EclInpageNavigationItemClickEvent, EclInpageNavigationItemComponent, EclInpageNavigationModule, EclInpageNavigationSectionEnterEvent };
|
|
423
|
+
export { EclInpageNavigationComponent, EclInpageNavigationItemClickEvent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective, EclInpageNavigationModule, EclInpageNavigationSectionEnterEvent, EclInpageNavigationService };
|
|
361
424
|
//# sourceMappingURL=eui-ecl-components-ecl-inpage-navigation.mjs.map
|
|
@@ -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/ecl-inpage-navigation.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.html","../../components/ecl-inpage-navigation/ecl-inpage-navigation.module.ts","../../components/ecl-inpage-navigation/eui-ecl-components-ecl-inpage-navigation.ts"],"sourcesContent":["import { Component, HostBinding, Input, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n\nexport class EclInpageNavigationItemClickEvent extends EclBaseEvent {\n constructor(public sectionElementId: string) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-inpage-navigation-item',\n templateUrl: './ecl-inpage-navigation-item.component.html',\n standalone: false,\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclInpageNavigationItemComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-inpage-navigation__item') cmpClass = true;\n @HostBinding('attr.role') role = 'listitem';\n\n @Input() label: string;\n @Input() sectionId: string;\n @Input() @HostBinding('class.ecl-inpage-navigation__item--active') isActive: boolean;\n\n @Output() itemClick = new EventEmitter<EclInpageNavigationItemClickEvent>();\n @Output() itemArrowUp = new EventEmitter();\n @Output() itemArrowDown = new EventEmitter();\n @Output() itemTab = new EventEmitter<Event>();\n\n @ViewChild(EclLinkDirective) link: EclLinkDirective\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 get sectionElement(): HTMLElement {\n return document.querySelector(`#${this.sectionId}`);\n }\n\n onArrowUp(evt: Event): void {\n evt.preventDefault();\n this.itemArrowUp.emit()\n }\n\n onArrowDown(evt: Event): void {\n evt.preventDefault();\n this.itemArrowDown.emit();\n }\n\n onTab(evt: Event): void {\n this.itemTab.emit(evt);\n }\n\n onFocus(): void{\n this.link.onFocus();\n }\n}\n","<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n","import {\n Component,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Input,\n IterableDiffer, IterableDiffers,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n afterNextRender,\n} from '@angular/core';\nimport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclThemeService, EclRtlService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\n\nexport class EclInpageNavigationSectionEnterEvent extends EclBaseEvent {\n constructor(public sectionId: string) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-inpage-navigation',\n templateUrl: './ecl-inpage-navigation.component.html',\n standalone: false,\n styles: [\n `\n @media (min-width: 996px) {\n .ecl-inpage-navigation__list {\n display: block !important;\n }\n }\n `,\n ],\n})\nexport class EclInpageNavigationComponent extends ECLBaseDirective implements OnInit, OnDestroy, DoCheck {\n @Input() eclTitle: string;\n @Input() marginTop: number;\n @Input() marginBottom: number;\n @ViewChild('togglerButton') togglerButton: ElementRef<HTMLButtonElement>;\n @ViewChild('toggleWrapper') toggleWrapper: ElementRef<HTMLDivElement>;\n @ViewChild('listContainer') listContainer: ElementRef<HTMLUListElement>;\n @ViewChild('navTittle') navTittle: ElementRef<HTMLDivElement>;\n @Output() sectionEnter = new EventEmitter<EclInpageNavigationSectionEnterEvent>();\n\n @ContentChildren(EclInpageNavigationItemComponent) eclNavigationLinkItems: QueryList<EclInpageNavigationItemComponent>;\n\n isButtonExpanded = false;\n currentSectionElement: HTMLElement;\n public isRtl = false;\n public listMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclInpageNavigationItemComponent>;\n private isMobileBreakpoint = false;\n private MIN_DISTANCE_TOP = 10;\n private readonly ICON_SIZE_EC_THEME = 'xs';\n private readonly ICON_SIZE_EU_THEME = 's';\n private readonly TABLET_BREAKPOINT = 996;\n private intersectionObserver: IntersectionObserver;\n\n constructor(\n private el: ElementRef,\n private eclRtlService: EclRtlService,\n public eclThemeService: EclThemeService,\n private differs: IterableDiffers,\n private scrollDispatcher: ScrollDispatcher,\n private zone: NgZone,\n private cdkBreakpointObserver: BreakpointObserver,\n private viewportRuler: ViewportRuler,\n ) {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n this.observeBreakpointChanges();\n\n this.intersectionObserver = new IntersectionObserver(()=> {\n this.setListHeight();\n });\n this.intersectionObserver.observe(this.togglerButton.nativeElement);\n\n this.viewportRuler.change(300).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(()=> {\n this.setListHeight();\n });\n });\n });\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n get currentNavigationLinkItem(): EclInpageNavigationItemComponent {\n return this.eclNavigationLinkItems.find((item) => item.sectionElement === this.currentSectionElement);\n }\n\n get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC_THEME;\n } else {\n return this.ICON_SIZE_EU_THEME;\n }\n }\n\n get hasActiveSection(): boolean {\n return !!this.currentSectionElement;\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclNavigationLinkItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.intersectionObserver.unobserve(this.togglerButton.nativeElement);\n }\n\n onExpandButtonClick(): void {\n this.isButtonExpanded = !this.isButtonExpanded;\n }\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 private setListHeight(): void {\n if (!this.listContainer) {\n return;\n }\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let topPosition = 0;\n if (viewportWidth < this.TABLET_BREAKPOINT) {\n const toggleWrapper = this.toggleWrapper.nativeElement;\n if (toggleWrapper) {\n topPosition = toggleWrapper.getBoundingClientRect().bottom +\n parseFloat(window.getComputedStyle(toggleWrapper).marginBottom);\n }\n } else if (this.eclTitle) {\n topPosition = this.navTittle.nativeElement.getBoundingClientRect().bottom;\n } else {\n topPosition = this.listContainer.nativeElement.getBoundingClientRect().top;\n }\n\n const availableSpace = viewportHeight - topPosition;\n if (availableSpace > 0) {\n this.listMaxHeight = availableSpace;\n }\n }\n\n private onExpandButtonArrowDown(evt: Event): void {\n evt.preventDefault();\n this.isButtonExpanded = true;\n this.eclNavigationLinkItems.get(0).onFocus();\n }\n\n private onExpandButtonTab(evt: Event): void {\n if ((evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.eclNavigationLinkItems.get(this.eclNavigationLinkItems.length - 1).onFocus();\n }\n }\n\n private connectItemEvents(item: EclInpageNavigationItemComponent): void {\n item.itemArrowDown.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowDown(item);\n });\n\n item.itemArrowUp.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowUp(item);\n });\n\n item.itemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onItemTab(item, evt);\n });\n\n item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.selectNavigationItem(item.sectionElement);\n\n if (item.sectionElement) {\n item.sectionElement.scrollIntoView();\n }\n\n this.isButtonExpanded = false;\n });\n }\n\n private onItemArrowDown(item: EclInpageNavigationItemComponent): void {\n if (this.isMobileBreakpoint) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== this.eclNavigationLinkItems.length - 1) {\n this.eclNavigationLinkItems.get(index + 1).onFocus();\n }\n }\n }\n\n private onItemArrowUp(item: EclInpageNavigationItemComponent): void {\n if (this.isMobileBreakpoint) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== 0) {\n this.eclNavigationLinkItems.get(index - 1).onFocus();\n } else {\n if (this.togglerButton) {\n this.isButtonExpanded = false;\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n }\n\n private onItemTab(item: EclInpageNavigationItemComponent, evt: Event): void {\n if (this.isMobileBreakpoint) {\n if (!(evt as KeyboardEvent).shiftKey) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index === this.eclNavigationLinkItems.length - 1) {\n evt.preventDefault();\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n }\n\n private subscribeToCDKScrollEvent(): void {\n this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe((scrollable: CdkScrollable) => {\n this.zone.run(() => {\n const sectionElementIds = this.eclNavigationLinkItems.map((item) => item.sectionId);\n const sectionElements: Array<HTMLElement> = sectionElementIds.map((id) => document.querySelector(`#${id}`));\n this.handleNavigationLinksHighlight(sectionElements);\n this.setListHeight();\n });\n });\n }\n\n private selectNavigationItem(itemElement: HTMLElement): void {\n this.eclNavigationLinkItems.forEach((it) => {\n it.isActive = it.sectionElement === itemElement;\n });\n }\n\n private handleNavigationLinksHighlight(sectionElements: Array<HTMLElement>): void {\n const currentSectionElement: HTMLElement = this.findActiveSectionElement(sectionElements);\n if (currentSectionElement !== this.currentSectionElement) {\n this.currentSectionElement = currentSectionElement;\n this.selectNavigationItem(currentSectionElement);\n const sectionId = this.currentNavigationLinkItem ? this.currentNavigationLinkItem.sectionId : undefined;\n this.sectionEnter.next(new EclInpageNavigationSectionEnterEvent(sectionId));\n }\n }\n\n private findActiveSectionElement(sectionElements: Array<HTMLElement>): HTMLElement {\n let currentSection: HTMLElement;\n\n sectionElements.forEach((sectionElement) => {\n if (sectionElement && sectionElement.getBoundingClientRect().top <= this.MIN_DISTANCE_TOP) {\n currentSection = sectionElement;\n }\n });\n return currentSection;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n <ul\n #listContainer\n id=\"ecl-inpage-navigation-default-list\"\n class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\"\n [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-content></ng-content>\n </ul>\n </div>\n </nav>\n</ecl-sticky-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclStickyContainerModule } from '@eui/ecl/components/ecl-sticky-container';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationComponent } from './ecl-inpage-navigation.component';\n\n@NgModule({\n imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule],\n exports: [EclInpageNavigationComponent, EclInpageNavigationItemComponent],\n declarations: [EclInpageNavigationComponent, EclInpageNavigationItemComponent],\n})\nexport class EclInpageNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eui-ecl-components-ecl-inpage-navigation.mjs","sources":["../../components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation-item.component.html","../../components/ecl-inpage-navigation/services/ecl-inpage-navigation.service.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation-list.directive.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.ts","../../components/ecl-inpage-navigation/ecl-inpage-navigation.component.html","../../components/ecl-inpage-navigation/ecl-inpage-navigation.module.ts","../../components/ecl-inpage-navigation/eui-ecl-components-ecl-inpage-navigation.ts"],"sourcesContent":["import { Component, HostBinding, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclLinkDirective } from '@eui/ecl/components/ecl-link';\n\nexport class EclInpageNavigationItemClickEvent extends EclBaseEvent {\n constructor(public sectionElementId: string) {\n super();\n }\n}\n\n// TODO: ecl-inpage-navigation-item selector is deprecated and should be removed in v20\n@Component({\n selector: 'ecl-inpage-navigation-item, li[eclInpageNavigationItem]',\n templateUrl: './ecl-inpage-navigation-item.component.html',\n standalone: false,\n styles: [\n `\n :host {\n display: list-item;\n }\n `,\n ],\n})\nexport class EclInpageNavigationItemComponent extends ECLBaseDirective {\n @HostBinding('class.ecl-inpage-navigation__item') cmpClass = true;\n @HostBinding('attr.role') role = 'listitem';\n\n @Input() label: string;\n @Input() sectionId: string;\n @Input() @HostBinding('class.ecl-inpage-navigation__item--active') isActive: boolean;\n\n @Output() itemClick = new EventEmitter<EclInpageNavigationItemClickEvent>();\n @Output() itemArrowUp = new EventEmitter();\n @Output() itemArrowDown = new EventEmitter();\n @Output() itemTab = new EventEmitter<Event>();\n\n @ViewChild(EclLinkDirective) link: EclLinkDirective\n\n constructor(el: ElementRef) {\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 get sectionElement(): HTMLElement {\n return document.querySelector(`#${this.sectionId}`);\n }\n\n onArrowUp(evt: Event): void {\n evt.preventDefault();\n this.itemArrowUp.emit()\n }\n\n onArrowDown(evt: Event): void {\n evt.preventDefault();\n this.itemArrowDown.emit();\n }\n\n onTab(evt: Event): void {\n this.itemTab.emit(evt);\n }\n\n onFocus(): void{\n this.link.onFocus();\n }\n}\n","<a eclLink (click)=\"onItemClick($event)\" href=\"#\" class=\"ecl-inpage-navigation__link\"\n (keydown.arrowUp)=\"onArrowUp($event)\" (keydown.arrowDown)=\"onArrowDown($event)\"\n (keydown.tab)=\"onTab($event)\">\n {{ label }}\n</a>\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\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 eclInpageNavigationToggle(isExpanded: boolean): void {\n\t\tthis.eclInpageNavigationExpanded.next(isExpanded);\n\t}\n}\n","import { AfterContentInit, Directive, HostBinding, OnDestroy } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\n\n@Directive({\n selector: 'ul[eclInpageNavigationList]',\n standalone: false,\n\n})\nexport class EclInpageNavigationListDirective extends ECLBaseDirective implements AfterContentInit, OnDestroy {\n @HostBinding('class.ecl-inpage-navigation__list') hasClass = true;\n @HostBinding('class.ecl-inpage-navigation__list--visible') isVisible = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private eclInpageNavigationService: EclInpageNavigationService) {\n super();\n }\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 {\n Component,\n ContentChild,\n ContentChildren,\n DoCheck,\n ElementRef,\n EventEmitter,\n Input,\n IterableDiffer, IterableDiffers,\n NgZone,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n afterNextRender,\n} from '@angular/core';\nimport { CdkScrollable, ScrollDispatcher, ViewportRuler } from '@angular/cdk/scrolling';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { EclBaseEvent } from '@eui/ecl/core';\nimport { EclThemeService, EclRtlService } from '@eui/ecl/core';\nimport { ECLBaseDirective } from '@eui/ecl/core';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\n\nexport class EclInpageNavigationSectionEnterEvent extends EclBaseEvent {\n constructor(public sectionId: string) {\n super();\n }\n}\n\n@Component({\n selector: 'ecl-inpage-navigation',\n templateUrl: './ecl-inpage-navigation.component.html',\n standalone: false,\n styles: [\n `\n @media (min-width: 996px) {\n .ecl-inpage-navigation__list {\n display: block !important;\n }\n }\n `,\n ],\n})\nexport class EclInpageNavigationComponent extends ECLBaseDirective implements OnInit, OnDestroy, DoCheck {\n @Input() eclTitle: string;\n @Input() marginTop: number;\n @Input() marginBottom: number;\n @ViewChild('togglerButton') togglerButton: ElementRef<HTMLButtonElement>;\n @ViewChild('toggleWrapper') toggleWrapper: ElementRef<HTMLDivElement>;\n @ViewChild('listContainer') listContainer: ElementRef<HTMLUListElement>;\n @ViewChild('navTittle') navTittle: ElementRef<HTMLDivElement>;\n @Output() sectionEnter = new EventEmitter<EclInpageNavigationSectionEnterEvent>();\n\n @ContentChildren(EclInpageNavigationItemComponent, { descendants: true }) eclNavigationLinkItems: QueryList<EclInpageNavigationItemComponent>;\n @ContentChild(EclInpageNavigationListDirective) eclNavigationList: EclInpageNavigationListDirective;\n\n isButtonExpanded = false;\n currentSectionElement: HTMLElement;\n public isRtl = false;\n public listMaxHeight: number;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private differ: IterableDiffer<EclInpageNavigationItemComponent>;\n private isMobileBreakpoint = false;\n private MIN_DISTANCE_TOP = 10;\n private readonly ICON_SIZE_EC_THEME = 'xs';\n private readonly ICON_SIZE_EU_THEME = 's';\n private readonly TABLET_BREAKPOINT = 996;\n private intersectionObserver: IntersectionObserver;\n\n constructor(\n private eclRtlService: EclRtlService,\n public eclThemeService: EclThemeService,\n private differs: IterableDiffers,\n private scrollDispatcher: ScrollDispatcher,\n private zone: NgZone,\n private cdkBreakpointObserver: BreakpointObserver,\n private viewportRuler: ViewportRuler,\n private eclInpageNavigationService: EclInpageNavigationService,\n ) {\n super();\n this.differ = this.differs.find([]).create();\n afterNextRender(() => {\n this.subscribeToCDKScrollEvent();\n this.observeBreakpointChanges();\n\n this.intersectionObserver = new IntersectionObserver(()=> {\n this.setListHeight();\n });\n this.intersectionObserver.observe(this.togglerButton.nativeElement);\n\n this.viewportRuler.change(300).pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.zone.run(()=> {\n this.setListHeight();\n });\n });\n });\n }\n\n ngOnInit(): void {\n this.handleRtlChangeState();\n }\n\n get hasNavigationList(): boolean {\n return !!this.eclNavigationList;\n }\n\n get currentNavigationLinkItem(): EclInpageNavigationItemComponent {\n return this.eclNavigationLinkItems.find((item) => item.sectionElement === this.currentSectionElement);\n }\n\n get sizeIcon(): string {\n if (this.eclThemeService.isECTheme()) {\n return this.ICON_SIZE_EC_THEME;\n } else {\n return this.ICON_SIZE_EU_THEME;\n }\n }\n\n get hasActiveSection(): boolean {\n return !!this.currentSectionElement;\n }\n\n ngDoCheck(): void {\n const diff = this.differ.diff(this.eclNavigationLinkItems);\n if (diff) {\n diff.forEachItem((item) => {\n this.connectItemEvents(item.item);\n });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.intersectionObserver.unobserve(this.togglerButton.nativeElement);\n }\n\n onExpandButtonClick(): void {\n this.isButtonExpanded = !this.isButtonExpanded;\n this.eclInpageNavigationService.eclInpageNavigationToggle(this.isButtonExpanded);\n }\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 private setListHeight(): void {\n if (!this.listContainer) {\n return;\n }\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let topPosition = 0;\n if (viewportWidth < this.TABLET_BREAKPOINT) {\n const toggleWrapper = this.toggleWrapper.nativeElement;\n if (toggleWrapper) {\n topPosition = toggleWrapper.getBoundingClientRect().bottom +\n parseFloat(window.getComputedStyle(toggleWrapper).marginBottom);\n }\n } else if (this.eclTitle) {\n topPosition = this.navTittle.nativeElement.getBoundingClientRect().bottom;\n } else {\n topPosition = this.listContainer.nativeElement.getBoundingClientRect().top;\n }\n\n const availableSpace = viewportHeight - topPosition;\n if (availableSpace > 0) {\n this.listMaxHeight = availableSpace;\n }\n }\n\n private onExpandButtonArrowDown(evt: Event): void {\n evt.preventDefault();\n this.isButtonExpanded = true;\n this.eclNavigationLinkItems.get(0).onFocus();\n }\n\n private onExpandButtonTab(evt: Event): void {\n if ((evt as KeyboardEvent).shiftKey) {\n evt.preventDefault();\n this.eclNavigationLinkItems.get(this.eclNavigationLinkItems.length - 1).onFocus();\n }\n }\n\n private connectItemEvents(item: EclInpageNavigationItemComponent): void {\n item.itemArrowDown.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowDown(item);\n });\n\n item.itemArrowUp.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.onItemArrowUp(item);\n });\n\n item.itemTab.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.onItemTab(item, evt);\n });\n\n item.itemClick.pipe(takeUntil(this.destroy$)).subscribe((evt) => {\n this.selectNavigationItem(item.sectionElement);\n\n if (item.sectionElement) {\n item.sectionElement.scrollIntoView();\n }\n\n this.isButtonExpanded = false;\n });\n }\n\n private onItemArrowDown(item: EclInpageNavigationItemComponent): void {\n if (this.isMobileBreakpoint) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== this.eclNavigationLinkItems.length - 1) {\n this.eclNavigationLinkItems.get(index + 1).onFocus();\n }\n }\n }\n\n private onItemArrowUp(item: EclInpageNavigationItemComponent): void {\n if (this.isMobileBreakpoint) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index !== 0) {\n this.eclNavigationLinkItems.get(index - 1).onFocus();\n } else {\n if (this.togglerButton) {\n this.isButtonExpanded = false;\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n }\n\n private onItemTab(item: EclInpageNavigationItemComponent, evt: Event): void {\n if (this.isMobileBreakpoint) {\n if (!(evt as KeyboardEvent).shiftKey) {\n const index = this.eclNavigationLinkItems.toArray().indexOf(item);\n if (index === this.eclNavigationLinkItems.length - 1) {\n evt.preventDefault();\n this.togglerButton.nativeElement.focus();\n }\n }\n }\n }\n\n private subscribeToCDKScrollEvent(): void {\n this.scrollDispatcher.scrolled().pipe(takeUntil(this.destroy$)).subscribe((scrollable: CdkScrollable) => {\n this.zone.run(() => {\n const sectionElementIds = this.eclNavigationLinkItems.map((item) => item.sectionId);\n const sectionElements: Array<HTMLElement> = sectionElementIds.map((id) => document.querySelector(`#${id}`));\n this.handleNavigationLinksHighlight(sectionElements);\n this.setListHeight();\n });\n });\n }\n\n private selectNavigationItem(itemElement: HTMLElement): void {\n this.eclNavigationLinkItems.forEach((it) => {\n it.isActive = it.sectionElement === itemElement;\n });\n }\n\n private handleNavigationLinksHighlight(sectionElements: Array<HTMLElement>): void {\n const currentSectionElement: HTMLElement = this.findActiveSectionElement(sectionElements);\n if (currentSectionElement !== this.currentSectionElement) {\n this.currentSectionElement = currentSectionElement;\n this.selectNavigationItem(currentSectionElement);\n const sectionId = this.currentNavigationLinkItem ? this.currentNavigationLinkItem.sectionId : undefined;\n this.sectionEnter.next(new EclInpageNavigationSectionEnterEvent(sectionId));\n }\n }\n\n private findActiveSectionElement(sectionElements: Array<HTMLElement>): HTMLElement {\n let currentSection: HTMLElement;\n\n sectionElements.forEach((sectionElement) => {\n if (sectionElement && sectionElement.getBoundingClientRect().top <= this.MIN_DISTANCE_TOP) {\n currentSection = sectionElement;\n }\n });\n return currentSection;\n }\n\n private observeBreakpointChanges(): void {\n this.cdkBreakpointObserver\n .observe([Breakpoints.Handset, Breakpoints.Tablet, Breakpoints.Small])\n .pipe(takeUntil(this.destroy$))\n .subscribe((result) => {\n this.isMobileBreakpoint = result.matches;\n });\n }\n}\n","<ecl-sticky-container [marginTop]=\"marginTop\" [marginBottom]=\"marginBottom\">\n <nav\n aria-labelledby=\"ecl-inpage-navigation-default\"\n class=\"ecl-inpage-navigation\"\n [class.ecl-inpage-navigation--visible]=\"hasActiveSection\"\n [class.ecl-inpage-navigation--rtl]=\"isRtl\">\n <div #navTittle id=\"ecl-inpage-navigation-default\" class=\"ecl-inpage-navigation__title\">\n {{ eclTitle || 'ecl.inpage-navigation.PAGE-CONTENTS' | translate }}\n </div>\n <div class=\"ecl-inpage-navigation__body\">\n <div #toggleWrapper class=\"ecl-inpage-navigation__trigger-wrapper\">\n <button\n #togglerButton\n id=\"ecl-inpage-navigation-default-trigger\"\n type=\"button\"\n class=\"ecl-inpage-navigation__trigger\"\n aria-controls=\"ecl-inpage-navigation-list\"\n [attr.aria-expanded]=\"isButtonExpanded\"\n (click)=\"onExpandButtonClick()\"\n (keydown)=\"onExpandButtonKeydown($event)\">\n <span class=\"ecl-inpage-navigation__trigger-current\">\n {{ currentNavigationLinkItem?.label }}\n </span>\n <ecl-icon icon=\"corner-arrow\" [size]=\"sizeIcon\" transform=\"rotate-180\"\n class=\"ecl-inpage-navigation__trigger-icon\" title=\"Show full page table of contents\"> </ecl-icon>\n </button>\n </div>\n @if (!hasNavigationList) {\n <ul #listContainer id=\"ecl-inpage-navigation-default-list\" class=\"ecl-inpage-navigation__list\"\n [class.ecl-inpage-navigation__list--visible]=\"isButtonExpanded\" [style.max-height.px]=\"listMaxHeight\"\n [attr.aria-expanded]=\"isButtonExpanded\">\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </ul>\n } @else {\n <ng-container>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n }\n </div>\n </nav>\n</ecl-sticky-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EclLinkModule } from '@eui/ecl/components/ecl-link';\nimport { EclIconModule } from '@eui/ecl/components/ecl-icon';\nimport { EclStickyContainerModule } from '@eui/ecl/components/ecl-sticky-container';\nimport { EclInpageNavigationItemComponent } from './ecl-inpage-navigation-item.component';\nimport { EclInpageNavigationComponent } from './ecl-inpage-navigation.component';\nimport { EclInpageNavigationService } from './services/ecl-inpage-navigation.service';\nimport { EclInpageNavigationListDirective } from './ecl-inpage-navigation-list.directive';\n\nconst COMPONENTS = [EclInpageNavigationComponent, EclInpageNavigationItemComponent, EclInpageNavigationListDirective];\n@NgModule({\n imports: [CommonModule, TranslateModule, EclStickyContainerModule, EclLinkModule, EclIconModule],\n exports: [...COMPONENTS],\n declarations: [...COMPONENTS],\n providers: [EclInpageNavigationService],\n})\nexport class EclInpageNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EclInpageNavigationService","takeUntil","i1","i4.EclInpageNavigationService"],"mappings":"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"}
|