@fundamental-ngx/cx 0.43.27 → 0.43.29

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.
@@ -66,7 +66,7 @@ export class NestedListPopoverComponent {
66
66
  }
67
67
  }
68
68
  NestedListPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NestedListPopoverComponent, deps: [{ token: i1.NestedListKeyboardService }, { token: i2.NestedItemService, optional: true }, { token: i3.RtlService, optional: true }, { token: i4.Overlay }], target: i0.ɵɵFactoryTarget.Component });
69
- NestedListPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NestedListPopoverComponent, selector: "fdx-nested-list-popover", host: { properties: { "class.fdx-nested-list__popover": "this.popoverClass" } }, queries: [{ propertyName: "linkDirective", first: true, predicate: NestedLinkComponent, descendants: true }], viewQueries: [{ propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"], dependencies: [{ kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
69
+ NestedListPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NestedListPopoverComponent, selector: "fdx-nested-list-popover", host: { properties: { "class.fdx-nested-list__popover": "this.popoverClass" } }, queries: [{ propertyName: "linkDirective", first: true, predicate: NestedLinkComponent, descendants: true }], viewQueries: [{ propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"], dependencies: [{ kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NestedListPopoverComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'fdx-nested-list-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"] }]
@@ -1150,7 +1150,7 @@ class NestedListPopoverComponent {
1150
1150
  }
1151
1151
  }
1152
1152
  NestedListPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NestedListPopoverComponent, deps: [{ token: NestedListKeyboardService }, { token: NestedItemService, optional: true }, { token: i2.RtlService, optional: true }, { token: i4$1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
1153
- NestedListPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NestedListPopoverComponent, selector: "fdx-nested-list-popover", host: { properties: { "class.fdx-nested-list__popover": "this.popoverClass" } }, queries: [{ propertyName: "linkDirective", first: true, predicate: NestedLinkComponent, descendants: true }], viewQueries: [{ propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"], dependencies: [{ kind: "component", type: i5$1.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5$1.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5$1.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1153
+ NestedListPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NestedListPopoverComponent, selector: "fdx-nested-list-popover", host: { properties: { "class.fdx-nested-list__popover": "this.popoverClass" } }, queries: [{ propertyName: "linkDirective", first: true, predicate: NestedLinkComponent, descendants: true }], viewQueries: [{ propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"], dependencies: [{ kind: "component", type: i5$1.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5$1.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5$1.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1154
1154
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NestedListPopoverComponent, decorators: [{
1155
1155
  type: Component,
1156
1156
  args: [{ selector: 'fdx-nested-list-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"] }]
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-cx-nested-list.mjs","sources":["../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.service.ts","../../../../libs/cx/src/lib/nested-list/nested-list-directives.ts","../../../../libs/cx/src/lib/nested-list/nested-link/nested-link.component.ts","../../../../libs/cx/src/lib/nested-list/nested-content/nested-list-content.directive.ts","../../../../libs/cx/src/lib/nested-list/nested-list-keyboard.service.ts","../../../../libs/cx/src/lib/nested-list/nested-list-state.service.ts","../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list/nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.html","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.html","../../../../libs/cx/src/lib/nested-list/nested-list.module.ts","../../../../libs/cx/src/lib/nested-list/fundamental-ngx-cx-nested-list.ts"],"sourcesContent":["import { NestedListInterface } from '../nested-list/nested-list.interface';\nimport { NestedListPopoverInterface } from '../nested-list-popover/nested-list-popover.interface';\nimport { Subject } from 'rxjs';\n\n/** Contains references to popover or list nested components, that are placed as direct children of item component */\nexport class NestedItemService {\n /** @hidden */\n list: NestedListInterface;\n /** @hidden */\n popover?: NestedListPopoverInterface;\n\n /** Subject fired when expand icon is clicked */\n toggle: Subject<boolean> = new Subject<boolean>();\n\n /** Subject fired, when child elements are focused */\n focus: Subject<void> = new Subject<void>();\n\n /** Subject fired, when content or link is clicked */\n click: Subject<void> = new Subject<void>();\n\n /** KeyDown handler, it is triggered from link, content and item elements */\n keyDown: Subject<KeyboardEvent> = new Subject<KeyboardEvent>();\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { NestedItemService } from './nested-item/nested-item.service';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[cxNestedDirectivesHeader], [fdx-nested-list-header]'\n})\nexport class NestedListHeaderDirective {\n /** Id of the element. */\n @Input()\n @HostBinding('attr.id')\n id: string | null = `fdx-nested-list-group-header-${++uniqueId}`;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__group-header')\n cxNestedListHeaderClass = true;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Get the header title */\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedDirectivesIcon], [fdx-nested-list-icon]',\n template: `<ng-content></ng-content>`\n})\nexport class NestedListIconComponent extends IconComponent {\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'presentation';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__icon')\n fdNestedListIconClass = true;\n}\n\n@Directive({\n selector: '[cxNestedDirectivesTitle], [fdx-nested-list-title]'\n})\nexport class NestedListTitleDirective {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__title')\n fdNestedListTitleClass = true;\n\n /** @hidden */\n constructor(private elementRef: ElementRef) {}\n\n /** Returns element's InnerText */\n getInnerText(): string {\n return this.elementRef && this.elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedListExpandIcon], [fdx-nested-list-expand-icon]',\n template: ` <ng-content></ng-content> `,\n host: {\n 'aria-haspopup': 'true',\n role: 'presentation'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NestedListExpandIconComponent {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__arrow')\n fdNestedListArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-down-arrow')\n get fdNestedListDownArrowClass(): boolean {\n return this.expanded;\n }\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-right-arrow')\n get fdNestedListRightArrowClass(): any {\n return !this.expanded;\n }\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.is-expanded')\n @HostBinding('attr.aria-expanded')\n expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n rtl$: Observable<boolean>;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _changeDetRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n this._listenOnTextDirection();\n }\n\n /** Mouse event handler */\n @HostListener('click', ['$event'])\n onClick(event?: MouseEvent): void {\n this.expanded = !this.expanded;\n this._itemService.toggle.next(this.expanded);\n event?.stopPropagation();\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** @hidden */\n changeExpandedState(expanded: boolean): void {\n this.expanded = expanded;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden Sets expand arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.rtl$ = this._rtlService ? this._rtlService.rtl.pipe(map((isRtl) => isRtl)) : of(false);\n }\n}\n\n@Directive({\n selector: '[cxNestedDirectivesButton], [fdx-nested-list-button]'\n})\nexport class NestedListButtonDirective implements AfterContentInit {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__button')\n fdNestedListButtonClass = true;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this._expandIcon.onClick();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._expandIcon) {\n this._expandIcon.fdNestedListArrowClass = false;\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedListButtonDirective, NestedListTitleDirective } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\n@Component({\n template: `\n <div *ngIf=\"!_nestedListButton\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </div>\n <a *ngIf=\"_nestedListButton\" tabindex=\"0\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </a>\n <ng-content select=\"[fdx-nested-list-button]\"></ng-content>\n <ng-template #containerContent>\n <ng-content select=\"[fdx-nested-list-icon]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-title]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-expand-icon]\"></ng-content>\n </ng-template>\n `,\n selector:\n // eslint-disable-next-line @angular-eslint/component-selector\n '[fdx-nested-list-link], button[fdx-nested-list-link], a[fdx-nested-list-link], div[fdx-nested-list-link]',\n host: {\n '[attr.tabindex]': '!_nestedListButton ? 0 : -1'\n }\n})\nexport class NestedLinkComponent {\n /** Function that is called on click event dispatch on this element. */\n @Input()\n onClickCallback: () => void;\n\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n _ariaLabel: string;\n\n /** @hidden */\n @Input()\n @HostBinding('attr.aria-describedby')\n ariaDescribedby: Nullable<string | number>;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__link')\n cxNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /**\n * @hidden\n * Reference to title element, it is used, to get title for condensed mode.\n */\n @ContentChild(NestedListTitleDirective)\n title: NestedListTitleDirective;\n\n /** @hidden */\n @ContentChild(NestedListButtonDirective)\n _nestedListButton: NestedListButtonDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** Handler for keyboard events */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._collapseOnly) {\n this._expandIcon.onClick();\n } else {\n this._itemService.click.next();\n if (this.onClickCallback) {\n this.onClickCallback();\n }\n }\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this._elementRef.nativeElement.click();\n }\n\n /** Returns the title value of the title directive */\n getTitle(): string {\n return this.title && this.title.getInnerText();\n }\n\n /** @hidden */\n private get _collapseOnly(): boolean {\n return !this._nestedListButton && this._expandIcon;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[cxNestedListContent], [fdx-nested-list-content]',\n host: {\n tabindex: '0'\n }\n})\nexport class NestedListContentDirective implements AfterContentInit, OnDestroy {\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded = false;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event that is thrown, when any keyboard event is dispatched on this element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Event that is thrown, when this element is clicked */\n @Output()\n readonly clicked: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__content')\n cxNestedListContentClass = true;\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.has-child')\n hasChildren = false;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n nestedLink: NestedLinkComponent;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n nestedExpandIcon: NestedListExpandIconComponent;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._makeLinkUnFocusable();\n this._setFocusSubscription();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n /** Keyboard Event Handler */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this.keyboardTriggered.emit(event);\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click', ['$event'])\n onClick(): void {\n this._itemService.click.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this.focus();\n if (this.nestedLink) {\n this.nestedLink.click();\n }\n }\n\n /** Add subscription for child focusing */\n private _setFocusSubscription(): void {\n this._itemService.focus.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.focus());\n }\n\n /** Hide link child element from tab key */\n private _makeLinkUnFocusable(): void {\n if (this.nestedLink) {\n this.nestedLink.elementRef.nativeElement.tabIndex = -1;\n this.changeDetRef.detectChanges();\n }\n }\n}\n","import { Subject } from 'rxjs';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { NestedItemInterface } from './nested-item/nested-item.interface';\nimport { NestedListInterface } from './nested-list/nested-list.interface';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/core/utils';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\n\n/**\n * Nested list keyboard service, which uses MenuKeyboardService, to deal with ArrowUp, ArrowDown, Space, Enter.\n * Also has own handling of ArrowLeft and ArrowRight, to open/close the menu if it has any children.\n */\n@Injectable()\nexport class NestedListKeyboardService {\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /**\n * Event, that is thrown always, when the open/close i being called on item components.\n * Also triggers changing of elements, to remove closed/hidden elements\n */\n readonly refresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n @Inject(MenuKeyboardService) private keyboardService: MenuKeyboardService,\n @Optional() private _rtlService: RtlService | null\n ) {\n this._subscribeToRtl();\n }\n\n /**\n * Function called after refresh$ event is triggered.\n * Refresh the list of NestedItems, that the keyboard support should be provided for\n */\n refreshItems(lists: NestedListInterface[]): void {\n const items: NestedItemInterface[] = [];\n\n /** Gathering all of the items */\n lists.forEach((list) => items.push(...this._getAllListItems(list)));\n /** Putting the keyboard support function to each of the items */\n items.forEach((item, index) => {\n item.keyboardTriggered\n .pipe(takeUntil(this.refresh$))\n .subscribe((keyboardEvent: KeyboardEvent) => this._handleKeyDown(keyboardEvent, index, items));\n });\n }\n\n /** Recursive function to get all of the NestedItem elements in correct order. */\n private _getItems(item: NestedItemInterface): NestedItemInterface[] {\n const childrenItems = item.expanded ? item.allChildrenItems : [];\n return childrenItems.reduce(\n (actualArray: NestedItemInterface[], nextItem: NestedItemInterface) => [\n ...actualArray,\n ...this._getItems(nextItem)\n ],\n [item]\n );\n }\n\n /** Method that calls the recursive function, getItems() and gathers all of the items in the NestedList */\n private _getAllListItems(list: NestedListInterface): NestedItemInterface[] {\n const _items: NestedItemInterface[] = [];\n if (list && list.nestedItems && list.nestedItems.length > 0) {\n list.nestedItems.forEach((item) => {\n _items.push(...this._getItems(item));\n });\n }\n\n return _items;\n }\n\n /**\n * Keyboard handle function. Uses keyboard support service from MenuComponent, to deal with ArrowUp, ArrowDown, Space, Enter.\n * For ArrowRight, if item is not expanded and has children (list or popup), the open function is triggered.\n * Otherwise it follows ArrowDown functionality.\n * For ArrowLeft, if item is expanded and has children (list or popup), the close function is triggered.\n * Otherwise it follows ArrowUp functionality\n */\n private _handleKeyDown(keyboardEvent: KeyboardEvent, index: number, items: NestedItemInterface[]): void {\n const item: NestedItemInterface = items[index];\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW))\n ) {\n if (!item.expanded && item.hasChildren) {\n item.triggerOpen();\n }\n keyboardEvent.preventDefault();\n }\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW))\n ) {\n if (item.expanded && item.hasChildren) {\n item.triggerClose();\n }\n keyboardEvent.preventDefault();\n }\n\n this.keyboardService.keyDownHandler(keyboardEvent, index, items);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class NestedListStateService {\n /**\n * @hidden\n * The condensed state is modified by the parent and read by nested lists.\n */\n condensed = false;\n\n /**\n * @hidden\n */\n selectable = true;\n\n /** @hidden */\n onSelected: Subject<string> = new Subject<string>();\n}\n","import {\n AfterContentInit,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n forwardRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemInterface } from './nested-item.interface';\nimport { NestedItemService } from './nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\nlet sideNavigationItemUniqueId = 0;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]',\n template: ` <ng-content></ng-content> `,\n providers: [NestedItemService],\n host: {\n role: 'treeitem'\n }\n})\nexport class NestedItemComponent implements AfterContentInit, NestedItemInterface, OnDestroy {\n /** Whether item should be expanded */\n @Input() set expanded(expanded: boolean) {\n if (expanded !== this._expanded) {\n this.propagateOpenChange(expanded);\n }\n }\n\n /** @hidden */\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** Event thrown, when expanded state is changed */\n @Output()\n readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event thrown, when any keyboard event is dispatched on this, or link element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n @Input()\n @HostBinding('class.fdx-nested-list__item')\n fdNestedListItemClass = true;\n\n /** Whether this item is a header item. */\n @Input()\n @HostBinding('class.fdx-nested-list__item--header')\n header = false;\n\n /** Whether this item is only meant for display purposes, meaning it cannot be used for navigation or shown as selected. */\n @Input()\n display = false;\n\n /**\n * @hidden\n * Reference to the link directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedLinkComponent)\n linkItem: NestedLinkComponent;\n\n /**\n * @hidden\n * Mostly used, when this item has list\n * Reference to the content directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedListContentDirective)\n contentItem: NestedListContentDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent, { descendants: true })\n expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @ContentChild(forwardRef(() => NestedListComponent))\n _nestedList: NestedListComponent;\n\n /** @hidden */\n @HostBinding('attr.aria-level')\n _ariaLevel: Nullable<number> = null;\n\n /** @hidden */\n @HostBinding('attr.title')\n _title: string;\n\n /** @hidden */\n @HostBinding('style.display')\n _display = 'block';\n\n /** @hidden */\n _narrow = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role: string;\n\n /** @hidden */\n private _expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n private _ariaExpanded: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n private _ariaSelected: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n private _ariaDisabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n private _ariaLabel: string;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private _ariaHidden = true;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** Unique element ID */\n private readonly _elementId: string = 'fdNestedItem' + sideNavigationItemUniqueId++;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _keyboardService: NestedListKeyboardService,\n private _stateService: NestedListStateService,\n public elementRef: ElementRef\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setUpSubscriptions();\n this._propagateHasChildrenProperty();\n this._passItemReferences();\n /** Propagate initial open state to children */\n this.propagateOpenChange(this._expanded);\n\n if (this.linkItem) {\n this._ariaSelected = this.linkItem.selected;\n this._ariaDisabled = !this._stateService.selectable && !this.linkItem.selected;\n this._title = this.linkItem.getTitle();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Check if the item element has any child */\n get hasChildren(): boolean {\n return !!this._itemService?.list;\n }\n\n /** Get all of the children item elements */\n get allChildrenItems(): NestedItemInterface[] {\n if (this._itemService?.list) {\n return this._itemService.list.nestedItems.toArray();\n }\n\n return [];\n }\n\n /** Method that expand the item and propagate it to children */\n triggerOpen(): void {\n if (!this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(true);\n }\n }\n\n /** Method that close the item and propagate it to children */\n triggerClose(): void {\n if (this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(false);\n }\n }\n\n /** Method that toggle the item and propagate it to children */\n toggle(): void {\n /** Propagate initial open state to children */\n this.propagateOpenChange(!this._expanded);\n }\n\n /** Method that dispatches `click` event on link item*/\n click(): void {\n if (!this.display) {\n if (this.contentItem) {\n this.contentItem.click();\n } else if (this.linkItem) {\n this.linkItem.click();\n }\n }\n }\n\n /** Method that focuses link item*/\n focus(): void {\n if (this.contentItem) {\n this.contentItem.focus();\n } else if (this.linkItem) {\n this.linkItem.focus();\n }\n }\n\n /** Method that provides information if element, or children of this element has passed id */\n containsId(id: string): boolean {\n if (this._elementId === id) {\n return true;\n }\n\n if (this._itemService.list) {\n return !!this._itemService.list.nestedItems.find((item) => item.containsId(id));\n }\n\n return false;\n }\n\n /**\n * @hidden\n * Propagate open state to all of the children\n */\n private propagateOpenChange(open: boolean): void {\n this._expanded = open;\n\n if (this.hasChildren) {\n this._ariaExpanded = this._expanded;\n }\n\n this.expandIcon?.changeExpandedState(open);\n\n /** Propagate hidden flag to list component, that is passed from child */\n if (this._itemService.list) {\n this._itemService.list.hidden = !open;\n this._itemService.list.detectChanges();\n }\n\n /** Propagate open flag to popover list component, that is passed from child */\n if (this._itemService.popover) {\n this._itemService.popover.open = open;\n }\n\n /**\n * If there are any list below\n * Trigger event to provide keyboard support to new list of opened item element.\n * */\n if (this._shouldRefreshKeyboardService()) {\n this._keyboardService.refresh$.next();\n }\n\n this.expandedChange.emit(open);\n }\n\n /** @hidden */\n private _shouldRefreshKeyboardService(): boolean {\n return !!(this._itemService.popover || this._itemService.list || this.contentItem);\n }\n\n /** @hidden */\n private _setUpSubscriptions(): void {\n if (this._stateService.condensed) {\n this._role = 'menuitemradio';\n }\n\n if (!this.display) {\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.toggle.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.toggle());\n\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.click\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._stateService.onSelected.next(this._elementId));\n }\n\n /** Subscribe to keyboard event and throw it farther */\n this._itemService.keyDown\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((keyboardEvent) => this.keyboardTriggered.emit(keyboardEvent));\n\n /** Subscribe to selected state change, it's not triggered, when selectable flag is disabled*/\n this._stateService.onSelected\n .pipe(\n takeUntil(this._onDestroy$),\n filter(() => this._stateService.selectable)\n )\n .subscribe((id) => this._selectedChange(id));\n }\n\n /** @hidden */\n private _propagateHasChildrenProperty(): void {\n if (this.contentItem && this.hasChildren) {\n this._ariaExpanded = false;\n this.contentItem.hasChildren = true;\n this.contentItem.changeDetRef.detectChanges();\n }\n }\n\n /** Pass this element to popover child item, to allow control `expanded` value */\n private _passItemReferences(): void {\n if (this._itemService.popover) {\n this._itemService.popover.parentItemElement = this;\n }\n }\n\n /** Change of selected state of content or link, if there is any children with I */\n private _selectedChange(id: string): void {\n const selected = this.containsId(id);\n this._ariaSelected = selected;\n\n if (this.contentItem) {\n this.contentItem.changeSelected(selected);\n } else if (this.linkItem) {\n this.linkItem.changeSelected(selected);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Component\n} from '@angular/core';\nimport { combineLatest, Observable, startWith, Subscription } from 'rxjs';\n\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListInterface } from './nested-list.interface';\nimport { NestedListHeaderDirective } from '../nested-list-directives';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\n@Component({\n template: ` <ng-content></ng-content> `,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedList], [fdx-nested-list], ul[fdx-nested-list]',\n providers: [contentDensityObserverProviders()]\n})\nexport class NestedListComponent implements AfterContentInit, NestedListInterface, OnDestroy {\n /** In case the user wants to no use icons for items in this list */\n @Input()\n @HostBinding('class.fdx-nested-list--text-only')\n textOnly = false;\n\n /** Aria defines role description for the Nested List Tree. */\n @Input()\n ariaRoledescriptionTree = 'Navigation List Tree';\n\n /** Aria defines role description for the Nested List MenuBar. */\n @Input()\n ariaRoledescriptionMenuBar = 'Navigation List Menu Bar';\n\n /** Aria defines aria label for the selected item when the list with disabled selection. */\n @Input()\n ariaLabelSelected = 'Selected';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list')\n fdNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n hidden = false;\n\n /**\n * @hidden\n * This variable is mostly to keep track of this list's children. There is not usage of it inside this directive,\n * but it's used by services and NestedItemComponent by itself,\n */\n @ContentChildren(forwardRef(() => NestedItemComponent))\n nestedItems: QueryList<NestedItemComponent>;\n\n /** @hidden */\n @ContentChild(NestedListHeaderDirective)\n private _nestedListHeader: NestedListHeaderDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => NestedListComponent), { descendants: true })\n private _nestedLists: QueryList<NestedListComponent>;\n\n /** @hidden */\n private _nestedItemsChangesSubscription = new Subscription();\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role = 'tree';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n private _ariaRoledescription: Nullable<string> = this.ariaRoledescriptionTree;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n private _ariaHaspopup: Nullable<string> = null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n private _tabindex = '-1';\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n @Optional() private _nestedItemService: NestedItemService,\n private _nestedListStateService: NestedListStateService,\n private _nestedListKeyboardService: NestedListKeyboardService,\n private _elementRef: ElementRef,\n private _changeDetectionRef: ChangeDetectorRef,\n @Inject(FD_LANGUAGE) private _language$: Observable<FdLanguage>,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n if (this._nestedItemService) {\n this._nestedItemService.list = this;\n }\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._handleNestedLevel();\n }\n\n /** @hidden */\n detectChanges(): void {\n this._changeDetectionRef.markForCheck();\n }\n\n /** @hidden */\n private _handleNestedLevel(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n\n const nestedLevel: number = this._getNestedLevel();\n\n this._setAccessibilityProperties(nestedLevel);\n\n const itemChangesSub = combineLatest([\n this._language$,\n this.nestedItems.changes.pipe(startWith(undefined))\n ]).subscribe(([lang]) => {\n this._nestedListKeyboardService.refresh$.next();\n this._setAriaAttributes(nestedLevel, lang);\n /** Adding class with the nested level */\n this._elementRef.nativeElement.classList.add('level-' + nestedLevel);\n });\n\n this._nestedItemsChangesSubscription.add(itemChangesSub);\n }\n\n /**\n * @hidden\n * Method, that checks how deep is the list element\n */\n private _getNestedLevel(): number {\n let element = this._elementRef.nativeElement;\n const parentElements: Element[] = [];\n\n /** Method that gathers all the parentNode elements of current NestedListComponent element */\n while (element.parentNode) {\n parentElements.unshift(element);\n element = element.parentNode;\n }\n\n /** Filter only elements, that has `fdx-nested-list` directive attribute */\n const filteredParentElements = parentElements.filter((_element) => _element.hasAttribute('fdx-nested-list'));\n\n let retVal = filteredParentElements.length;\n\n if (this._nestedItemService?.popover) {\n retVal += 1;\n }\n\n return retVal;\n }\n\n /** @hidden */\n private _setAriaAttributes(level: number, lang: FdLanguage): void {\n this.nestedItems.forEach((item, i) => {\n item._ariaLevel = level;\n if (!item.linkItem) {\n return;\n } else {\n item.linkItem.ariaDescribedby = this._nestedListHeader?.id || null;\n item.linkItem._ariaLabel = this._translationResolver.resolve(lang, 'coreNestedList.linkItemAriaLabel', {\n itemDetails: item.linkItem.getTitle(),\n index: i + 1,\n total: this.nestedItems.length,\n selectedDescription:\n !this._nestedListStateService.selectable && item.linkItem.selected\n ? ', ' + this.ariaLabelSelected\n : ''\n });\n }\n });\n\n this._changeDetectionRef.detectChanges();\n }\n\n /** @hidden */\n private _setAccessibilityProperties(level: number): void {\n if (this._nestedListStateService.condensed && level === 1) {\n this._ariaRoledescription = this.ariaRoledescriptionMenuBar;\n }\n\n if (level > 1 || (this._nestedItemService?.popover && !this._nestedListStateService.condensed)) {\n this._role = 'group';\n this._ariaRoledescription = null;\n }\n\n if (this._nestedItemService?.popover) {\n this._ariaHaspopup = 'tree';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { map } from 'rxjs/operators';\nimport { NestedItemInterface } from '../nested-item/nested-item.interface';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListPopoverInterface } from './nested-list-popover.interface';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'fdx-nested-list-popover',\n templateUrl: './nested-list-popover.component.html',\n styleUrls: ['./nested-list-popover.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NestedListPopoverComponent implements NestedListPopoverInterface, OnInit {\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__popover')\n popoverClass = true;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n linkDirective: NestedLinkComponent;\n\n /**\n * @hidden\n * Reference to parent item, to propagate open and close change from popover.\n */\n parentItemElement: NestedItemInterface;\n\n /** @hidden */\n placement$: Observable<Placement>;\n\n /** @hidden */\n open = false;\n\n /** @hidden */\n _closeScrollStrategy: ScrollStrategy;\n\n /** @hidden */\n constructor(\n private _keyboardNestService: NestedListKeyboardService,\n @Optional() private _itemService: NestedItemService,\n @Optional() private _rtlService: RtlService,\n private _overlay: Overlay\n ) {\n this._listenOnKeyboardRefresh();\n this._createRtlObservable();\n if (this._itemService) {\n this._itemService.popover = this;\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._closeScrollStrategy = this._overlay.scrollStrategies.close();\n }\n\n /**\n * Method called, when open state is changed, from popover component (escape key, outside click).\n */\n handleOpenChange(open: boolean): void {\n this.open = open;\n if (this.parentItemElement) {\n if (open) {\n this.parentItemElement.triggerOpen();\n } else {\n this.parentItemElement.triggerClose();\n }\n }\n }\n\n /** @hidden */\n private _listenOnKeyboardRefresh(): void {\n this._keyboardNestService.refresh$.subscribe(() => {\n /** Update popover position, on list of hidden items change */\n if (this.popoverComponent) {\n this.popoverComponent.refreshPosition();\n }\n });\n }\n\n /** @hidden */\n private _createRtlObservable(): void {\n this.placement$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'left-start' : 'right-start')))\n : of('right-start');\n }\n}\n","<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListItem, NestedListModel } from '../nested-list-model';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Component for internal usage, allows to generate the nested list from defined object.\n */\n@Component({\n selector: 'fdx-prepared-nested-list',\n templateUrl: './prepared-nested-list.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PreparedNestedListComponent {\n /**\n * @hidden\n * For internal usage.\n * Defines if the component is first\n */\n @Input()\n first = true;\n\n /** Defines if list should be displayed in condensed mode */\n @Input()\n condensed = false;\n\n /** List configuration*/\n @Input()\n list: Nullable<NestedListModel>;\n\n /**\n * @hidden\n */\n @ViewChild(forwardRef(() => NestedListComponent))\n _nestedListComponent: NestedListComponent;\n\n /**\n * In prepared nested list, nested items should be taken as reference of View, not Content.\n * There is direct reference to these directives here.\n */\n get nestedListComponent(): NestedListComponent {\n return this._nestedListComponent;\n }\n\n /** @hidden */\n _expandedChange(expanded: boolean, item: NestedListItem): void {\n item.expanded = expanded;\n }\n}\n","<ul fdx-nested-list [textOnly]=\"!!list?.textOnly\">\n <ng-container *ngFor=\"let item of list?.items\">\n <li *ngIf=\"item.headerTitle\" fdx-nested-list-header>\n {{ item.headerTitle }}\n </li>\n <li\n *ngIf=\"!item.headerTitle\"\n fdx-nested-list-item\n [expanded]=\"!!item.expanded\"\n (expandedChange)=\"_expandedChange($event, item)\"\n >\n <fdx-nested-list-popover *ngIf=\"condensed && first && item.list\" [title]=\"item.link?.title || ''\">\n <div fdx-nested-list-content [selected]=\"!!item.link?.selected\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </fdx-nested-list-popover>\n\n <ng-container *ngIf=\"!item.list\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(!condensed || !first) && item.list\">\n <div fdx-nested-list-content>\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </ng-container>\n\n <ng-template let-item=\"item\" #link>\n <a\n fdx-nested-list-link\n *ngIf=\"item.link\"\n [onClickCallback]=\"item.link.callback\"\n [(selected)]=\"!item.list && item.link.selected\"\n [attr.href]=\"item.link.href ? item.link.href : null\"\n [routerLink]=\"item.link.routerLink ? item.link.routerLink : []\"\n >\n <span fdx-nested-list-icon *ngIf=\"item.link.icon\" [glyph]=\"item.link.icon\"></span>\n <span fdx-nested-list-title>{{ item.link.title }}</span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { NestedListComponent } from './nested-list/nested-list.component';\nimport { NestedLinkComponent } from './nested-link/nested-link.component';\nimport { NestedItemComponent } from './nested-item/nested-item.component';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from './nested-list-directives';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { CommonModule } from '@angular/common';\nimport { NestedListKeyboardService } from './nested-list-keyboard.service';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { NestedListPopoverComponent } from './nested-list-popover/nested-list-popover.component';\nimport { PreparedNestedListComponent } from './prepared-nested-list/prepared-nested-list.component';\nimport { NestedListStateService } from './nested-list-state.service';\nimport { RouterModule } from '@angular/router';\nimport { NestedListContentDirective } from './nested-content/nested-list-content.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, RouterModule, IconModule, ContentDensityModule],\n declarations: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective\n ],\n exports: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective,\n ContentDensityModule\n ],\n providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService]\n})\nexport class CxNestedListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NestedItemService","i2","i1","i2.NestedListKeyboardService","i3.NestedListStateService","i1.NestedListKeyboardService","i2.NestedItemService","i3","i4","i5","i6","i6.NestedListExpandIconComponent","i8.NestedListContentDirective"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-cx-nested-list.mjs","sources":["../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.service.ts","../../../../libs/cx/src/lib/nested-list/nested-list-directives.ts","../../../../libs/cx/src/lib/nested-list/nested-link/nested-link.component.ts","../../../../libs/cx/src/lib/nested-list/nested-content/nested-list-content.directive.ts","../../../../libs/cx/src/lib/nested-list/nested-list-keyboard.service.ts","../../../../libs/cx/src/lib/nested-list/nested-list-state.service.ts","../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list/nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.html","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.html","../../../../libs/cx/src/lib/nested-list/nested-list.module.ts","../../../../libs/cx/src/lib/nested-list/fundamental-ngx-cx-nested-list.ts"],"sourcesContent":["import { NestedListInterface } from '../nested-list/nested-list.interface';\nimport { NestedListPopoverInterface } from '../nested-list-popover/nested-list-popover.interface';\nimport { Subject } from 'rxjs';\n\n/** Contains references to popover or list nested components, that are placed as direct children of item component */\nexport class NestedItemService {\n /** @hidden */\n list: NestedListInterface;\n /** @hidden */\n popover?: NestedListPopoverInterface;\n\n /** Subject fired when expand icon is clicked */\n toggle: Subject<boolean> = new Subject<boolean>();\n\n /** Subject fired, when child elements are focused */\n focus: Subject<void> = new Subject<void>();\n\n /** Subject fired, when content or link is clicked */\n click: Subject<void> = new Subject<void>();\n\n /** KeyDown handler, it is triggered from link, content and item elements */\n keyDown: Subject<KeyboardEvent> = new Subject<KeyboardEvent>();\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { NestedItemService } from './nested-item/nested-item.service';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[cxNestedDirectivesHeader], [fdx-nested-list-header]'\n})\nexport class NestedListHeaderDirective {\n /** Id of the element. */\n @Input()\n @HostBinding('attr.id')\n id: string | null = `fdx-nested-list-group-header-${++uniqueId}`;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__group-header')\n cxNestedListHeaderClass = true;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Get the header title */\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedDirectivesIcon], [fdx-nested-list-icon]',\n template: `<ng-content></ng-content>`\n})\nexport class NestedListIconComponent extends IconComponent {\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'presentation';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__icon')\n fdNestedListIconClass = true;\n}\n\n@Directive({\n selector: '[cxNestedDirectivesTitle], [fdx-nested-list-title]'\n})\nexport class NestedListTitleDirective {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__title')\n fdNestedListTitleClass = true;\n\n /** @hidden */\n constructor(private elementRef: ElementRef) {}\n\n /** Returns element's InnerText */\n getInnerText(): string {\n return this.elementRef && this.elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedListExpandIcon], [fdx-nested-list-expand-icon]',\n template: ` <ng-content></ng-content> `,\n host: {\n 'aria-haspopup': 'true',\n role: 'presentation'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NestedListExpandIconComponent {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__arrow')\n fdNestedListArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-down-arrow')\n get fdNestedListDownArrowClass(): boolean {\n return this.expanded;\n }\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-right-arrow')\n get fdNestedListRightArrowClass(): any {\n return !this.expanded;\n }\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.is-expanded')\n @HostBinding('attr.aria-expanded')\n expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n rtl$: Observable<boolean>;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _changeDetRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n this._listenOnTextDirection();\n }\n\n /** Mouse event handler */\n @HostListener('click', ['$event'])\n onClick(event?: MouseEvent): void {\n this.expanded = !this.expanded;\n this._itemService.toggle.next(this.expanded);\n event?.stopPropagation();\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** @hidden */\n changeExpandedState(expanded: boolean): void {\n this.expanded = expanded;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden Sets expand arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.rtl$ = this._rtlService ? this._rtlService.rtl.pipe(map((isRtl) => isRtl)) : of(false);\n }\n}\n\n@Directive({\n selector: '[cxNestedDirectivesButton], [fdx-nested-list-button]'\n})\nexport class NestedListButtonDirective implements AfterContentInit {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__button')\n fdNestedListButtonClass = true;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this._expandIcon.onClick();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._expandIcon) {\n this._expandIcon.fdNestedListArrowClass = false;\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedListButtonDirective, NestedListTitleDirective } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\n@Component({\n template: `\n <div *ngIf=\"!_nestedListButton\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </div>\n <a *ngIf=\"_nestedListButton\" tabindex=\"0\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </a>\n <ng-content select=\"[fdx-nested-list-button]\"></ng-content>\n <ng-template #containerContent>\n <ng-content select=\"[fdx-nested-list-icon]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-title]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-expand-icon]\"></ng-content>\n </ng-template>\n `,\n selector:\n // eslint-disable-next-line @angular-eslint/component-selector\n '[fdx-nested-list-link], button[fdx-nested-list-link], a[fdx-nested-list-link], div[fdx-nested-list-link]',\n host: {\n '[attr.tabindex]': '!_nestedListButton ? 0 : -1'\n }\n})\nexport class NestedLinkComponent {\n /** Function that is called on click event dispatch on this element. */\n @Input()\n onClickCallback: () => void;\n\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n _ariaLabel: string;\n\n /** @hidden */\n @Input()\n @HostBinding('attr.aria-describedby')\n ariaDescribedby: Nullable<string | number>;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__link')\n cxNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /**\n * @hidden\n * Reference to title element, it is used, to get title for condensed mode.\n */\n @ContentChild(NestedListTitleDirective)\n title: NestedListTitleDirective;\n\n /** @hidden */\n @ContentChild(NestedListButtonDirective)\n _nestedListButton: NestedListButtonDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** Handler for keyboard events */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._collapseOnly) {\n this._expandIcon.onClick();\n } else {\n this._itemService.click.next();\n if (this.onClickCallback) {\n this.onClickCallback();\n }\n }\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this._elementRef.nativeElement.click();\n }\n\n /** Returns the title value of the title directive */\n getTitle(): string {\n return this.title && this.title.getInnerText();\n }\n\n /** @hidden */\n private get _collapseOnly(): boolean {\n return !this._nestedListButton && this._expandIcon;\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[cxNestedListContent], [fdx-nested-list-content]',\n host: {\n tabindex: '0'\n }\n})\nexport class NestedListContentDirective implements AfterContentInit, OnDestroy {\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded = false;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event that is thrown, when any keyboard event is dispatched on this element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Event that is thrown, when this element is clicked */\n @Output()\n readonly clicked: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__content')\n cxNestedListContentClass = true;\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.has-child')\n hasChildren = false;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n nestedLink: NestedLinkComponent;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n nestedExpandIcon: NestedListExpandIconComponent;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._makeLinkUnFocusable();\n this._setFocusSubscription();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n /** Keyboard Event Handler */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this.keyboardTriggered.emit(event);\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click', ['$event'])\n onClick(): void {\n this._itemService.click.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this.focus();\n if (this.nestedLink) {\n this.nestedLink.click();\n }\n }\n\n /** Add subscription for child focusing */\n private _setFocusSubscription(): void {\n this._itemService.focus.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.focus());\n }\n\n /** Hide link child element from tab key */\n private _makeLinkUnFocusable(): void {\n if (this.nestedLink) {\n this.nestedLink.elementRef.nativeElement.tabIndex = -1;\n this.changeDetRef.detectChanges();\n }\n }\n}\n","import { Subject } from 'rxjs';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { NestedItemInterface } from './nested-item/nested-item.interface';\nimport { NestedListInterface } from './nested-list/nested-list.interface';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/core/utils';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\n\n/**\n * Nested list keyboard service, which uses MenuKeyboardService, to deal with ArrowUp, ArrowDown, Space, Enter.\n * Also has own handling of ArrowLeft and ArrowRight, to open/close the menu if it has any children.\n */\n@Injectable()\nexport class NestedListKeyboardService {\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /**\n * Event, that is thrown always, when the open/close i being called on item components.\n * Also triggers changing of elements, to remove closed/hidden elements\n */\n readonly refresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n @Inject(MenuKeyboardService) private keyboardService: MenuKeyboardService,\n @Optional() private _rtlService: RtlService | null\n ) {\n this._subscribeToRtl();\n }\n\n /**\n * Function called after refresh$ event is triggered.\n * Refresh the list of NestedItems, that the keyboard support should be provided for\n */\n refreshItems(lists: NestedListInterface[]): void {\n const items: NestedItemInterface[] = [];\n\n /** Gathering all of the items */\n lists.forEach((list) => items.push(...this._getAllListItems(list)));\n /** Putting the keyboard support function to each of the items */\n items.forEach((item, index) => {\n item.keyboardTriggered\n .pipe(takeUntil(this.refresh$))\n .subscribe((keyboardEvent: KeyboardEvent) => this._handleKeyDown(keyboardEvent, index, items));\n });\n }\n\n /** Recursive function to get all of the NestedItem elements in correct order. */\n private _getItems(item: NestedItemInterface): NestedItemInterface[] {\n const childrenItems = item.expanded ? item.allChildrenItems : [];\n return childrenItems.reduce(\n (actualArray: NestedItemInterface[], nextItem: NestedItemInterface) => [\n ...actualArray,\n ...this._getItems(nextItem)\n ],\n [item]\n );\n }\n\n /** Method that calls the recursive function, getItems() and gathers all of the items in the NestedList */\n private _getAllListItems(list: NestedListInterface): NestedItemInterface[] {\n const _items: NestedItemInterface[] = [];\n if (list && list.nestedItems && list.nestedItems.length > 0) {\n list.nestedItems.forEach((item) => {\n _items.push(...this._getItems(item));\n });\n }\n\n return _items;\n }\n\n /**\n * Keyboard handle function. Uses keyboard support service from MenuComponent, to deal with ArrowUp, ArrowDown, Space, Enter.\n * For ArrowRight, if item is not expanded and has children (list or popup), the open function is triggered.\n * Otherwise it follows ArrowDown functionality.\n * For ArrowLeft, if item is expanded and has children (list or popup), the close function is triggered.\n * Otherwise it follows ArrowUp functionality\n */\n private _handleKeyDown(keyboardEvent: KeyboardEvent, index: number, items: NestedItemInterface[]): void {\n const item: NestedItemInterface = items[index];\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW))\n ) {\n if (!item.expanded && item.hasChildren) {\n item.triggerOpen();\n }\n keyboardEvent.preventDefault();\n }\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW))\n ) {\n if (item.expanded && item.hasChildren) {\n item.triggerClose();\n }\n keyboardEvent.preventDefault();\n }\n\n this.keyboardService.keyDownHandler(keyboardEvent, index, items);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class NestedListStateService {\n /**\n * @hidden\n * The condensed state is modified by the parent and read by nested lists.\n */\n condensed = false;\n\n /**\n * @hidden\n */\n selectable = true;\n\n /** @hidden */\n onSelected: Subject<string> = new Subject<string>();\n}\n","import {\n AfterContentInit,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n forwardRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemInterface } from './nested-item.interface';\nimport { NestedItemService } from './nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\nlet sideNavigationItemUniqueId = 0;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]',\n template: ` <ng-content></ng-content> `,\n providers: [NestedItemService],\n host: {\n role: 'treeitem'\n }\n})\nexport class NestedItemComponent implements AfterContentInit, NestedItemInterface, OnDestroy {\n /** Whether item should be expanded */\n @Input() set expanded(expanded: boolean) {\n if (expanded !== this._expanded) {\n this.propagateOpenChange(expanded);\n }\n }\n\n /** @hidden */\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** Event thrown, when expanded state is changed */\n @Output()\n readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event thrown, when any keyboard event is dispatched on this, or link element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n @Input()\n @HostBinding('class.fdx-nested-list__item')\n fdNestedListItemClass = true;\n\n /** Whether this item is a header item. */\n @Input()\n @HostBinding('class.fdx-nested-list__item--header')\n header = false;\n\n /** Whether this item is only meant for display purposes, meaning it cannot be used for navigation or shown as selected. */\n @Input()\n display = false;\n\n /**\n * @hidden\n * Reference to the link directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedLinkComponent)\n linkItem: NestedLinkComponent;\n\n /**\n * @hidden\n * Mostly used, when this item has list\n * Reference to the content directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedListContentDirective)\n contentItem: NestedListContentDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent, { descendants: true })\n expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @ContentChild(forwardRef(() => NestedListComponent))\n _nestedList: NestedListComponent;\n\n /** @hidden */\n @HostBinding('attr.aria-level')\n _ariaLevel: Nullable<number> = null;\n\n /** @hidden */\n @HostBinding('attr.title')\n _title: string;\n\n /** @hidden */\n @HostBinding('style.display')\n _display = 'block';\n\n /** @hidden */\n _narrow = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role: string;\n\n /** @hidden */\n private _expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n private _ariaExpanded: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n private _ariaSelected: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n private _ariaDisabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n private _ariaLabel: string;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private _ariaHidden = true;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** Unique element ID */\n private readonly _elementId: string = 'fdNestedItem' + sideNavigationItemUniqueId++;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _keyboardService: NestedListKeyboardService,\n private _stateService: NestedListStateService,\n public elementRef: ElementRef\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setUpSubscriptions();\n this._propagateHasChildrenProperty();\n this._passItemReferences();\n /** Propagate initial open state to children */\n this.propagateOpenChange(this._expanded);\n\n if (this.linkItem) {\n this._ariaSelected = this.linkItem.selected;\n this._ariaDisabled = !this._stateService.selectable && !this.linkItem.selected;\n this._title = this.linkItem.getTitle();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Check if the item element has any child */\n get hasChildren(): boolean {\n return !!this._itemService?.list;\n }\n\n /** Get all of the children item elements */\n get allChildrenItems(): NestedItemInterface[] {\n if (this._itemService?.list) {\n return this._itemService.list.nestedItems.toArray();\n }\n\n return [];\n }\n\n /** Method that expand the item and propagate it to children */\n triggerOpen(): void {\n if (!this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(true);\n }\n }\n\n /** Method that close the item and propagate it to children */\n triggerClose(): void {\n if (this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(false);\n }\n }\n\n /** Method that toggle the item and propagate it to children */\n toggle(): void {\n /** Propagate initial open state to children */\n this.propagateOpenChange(!this._expanded);\n }\n\n /** Method that dispatches `click` event on link item*/\n click(): void {\n if (!this.display) {\n if (this.contentItem) {\n this.contentItem.click();\n } else if (this.linkItem) {\n this.linkItem.click();\n }\n }\n }\n\n /** Method that focuses link item*/\n focus(): void {\n if (this.contentItem) {\n this.contentItem.focus();\n } else if (this.linkItem) {\n this.linkItem.focus();\n }\n }\n\n /** Method that provides information if element, or children of this element has passed id */\n containsId(id: string): boolean {\n if (this._elementId === id) {\n return true;\n }\n\n if (this._itemService.list) {\n return !!this._itemService.list.nestedItems.find((item) => item.containsId(id));\n }\n\n return false;\n }\n\n /**\n * @hidden\n * Propagate open state to all of the children\n */\n private propagateOpenChange(open: boolean): void {\n this._expanded = open;\n\n if (this.hasChildren) {\n this._ariaExpanded = this._expanded;\n }\n\n this.expandIcon?.changeExpandedState(open);\n\n /** Propagate hidden flag to list component, that is passed from child */\n if (this._itemService.list) {\n this._itemService.list.hidden = !open;\n this._itemService.list.detectChanges();\n }\n\n /** Propagate open flag to popover list component, that is passed from child */\n if (this._itemService.popover) {\n this._itemService.popover.open = open;\n }\n\n /**\n * If there are any list below\n * Trigger event to provide keyboard support to new list of opened item element.\n * */\n if (this._shouldRefreshKeyboardService()) {\n this._keyboardService.refresh$.next();\n }\n\n this.expandedChange.emit(open);\n }\n\n /** @hidden */\n private _shouldRefreshKeyboardService(): boolean {\n return !!(this._itemService.popover || this._itemService.list || this.contentItem);\n }\n\n /** @hidden */\n private _setUpSubscriptions(): void {\n if (this._stateService.condensed) {\n this._role = 'menuitemradio';\n }\n\n if (!this.display) {\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.toggle.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.toggle());\n\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.click\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._stateService.onSelected.next(this._elementId));\n }\n\n /** Subscribe to keyboard event and throw it farther */\n this._itemService.keyDown\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((keyboardEvent) => this.keyboardTriggered.emit(keyboardEvent));\n\n /** Subscribe to selected state change, it's not triggered, when selectable flag is disabled*/\n this._stateService.onSelected\n .pipe(\n takeUntil(this._onDestroy$),\n filter(() => this._stateService.selectable)\n )\n .subscribe((id) => this._selectedChange(id));\n }\n\n /** @hidden */\n private _propagateHasChildrenProperty(): void {\n if (this.contentItem && this.hasChildren) {\n this._ariaExpanded = false;\n this.contentItem.hasChildren = true;\n this.contentItem.changeDetRef.detectChanges();\n }\n }\n\n /** Pass this element to popover child item, to allow control `expanded` value */\n private _passItemReferences(): void {\n if (this._itemService.popover) {\n this._itemService.popover.parentItemElement = this;\n }\n }\n\n /** Change of selected state of content or link, if there is any children with I */\n private _selectedChange(id: string): void {\n const selected = this.containsId(id);\n this._ariaSelected = selected;\n\n if (this.contentItem) {\n this.contentItem.changeSelected(selected);\n } else if (this.linkItem) {\n this.linkItem.changeSelected(selected);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Component\n} from '@angular/core';\nimport { combineLatest, Observable, startWith, Subscription } from 'rxjs';\n\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListInterface } from './nested-list.interface';\nimport { NestedListHeaderDirective } from '../nested-list-directives';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\n@Component({\n template: ` <ng-content></ng-content> `,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedList], [fdx-nested-list], ul[fdx-nested-list]',\n providers: [contentDensityObserverProviders()]\n})\nexport class NestedListComponent implements AfterContentInit, NestedListInterface, OnDestroy {\n /** In case the user wants to no use icons for items in this list */\n @Input()\n @HostBinding('class.fdx-nested-list--text-only')\n textOnly = false;\n\n /** Aria defines role description for the Nested List Tree. */\n @Input()\n ariaRoledescriptionTree = 'Navigation List Tree';\n\n /** Aria defines role description for the Nested List MenuBar. */\n @Input()\n ariaRoledescriptionMenuBar = 'Navigation List Menu Bar';\n\n /** Aria defines aria label for the selected item when the list with disabled selection. */\n @Input()\n ariaLabelSelected = 'Selected';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list')\n fdNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n hidden = false;\n\n /**\n * @hidden\n * This variable is mostly to keep track of this list's children. There is not usage of it inside this directive,\n * but it's used by services and NestedItemComponent by itself,\n */\n @ContentChildren(forwardRef(() => NestedItemComponent))\n nestedItems: QueryList<NestedItemComponent>;\n\n /** @hidden */\n @ContentChild(NestedListHeaderDirective)\n private _nestedListHeader: NestedListHeaderDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => NestedListComponent), { descendants: true })\n private _nestedLists: QueryList<NestedListComponent>;\n\n /** @hidden */\n private _nestedItemsChangesSubscription = new Subscription();\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role = 'tree';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n private _ariaRoledescription: Nullable<string> = this.ariaRoledescriptionTree;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n private _ariaHaspopup: Nullable<string> = null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n private _tabindex = '-1';\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n @Optional() private _nestedItemService: NestedItemService,\n private _nestedListStateService: NestedListStateService,\n private _nestedListKeyboardService: NestedListKeyboardService,\n private _elementRef: ElementRef,\n private _changeDetectionRef: ChangeDetectorRef,\n @Inject(FD_LANGUAGE) private _language$: Observable<FdLanguage>,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n if (this._nestedItemService) {\n this._nestedItemService.list = this;\n }\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._handleNestedLevel();\n }\n\n /** @hidden */\n detectChanges(): void {\n this._changeDetectionRef.markForCheck();\n }\n\n /** @hidden */\n private _handleNestedLevel(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n\n const nestedLevel: number = this._getNestedLevel();\n\n this._setAccessibilityProperties(nestedLevel);\n\n const itemChangesSub = combineLatest([\n this._language$,\n this.nestedItems.changes.pipe(startWith(undefined))\n ]).subscribe(([lang]) => {\n this._nestedListKeyboardService.refresh$.next();\n this._setAriaAttributes(nestedLevel, lang);\n /** Adding class with the nested level */\n this._elementRef.nativeElement.classList.add('level-' + nestedLevel);\n });\n\n this._nestedItemsChangesSubscription.add(itemChangesSub);\n }\n\n /**\n * @hidden\n * Method, that checks how deep is the list element\n */\n private _getNestedLevel(): number {\n let element = this._elementRef.nativeElement;\n const parentElements: Element[] = [];\n\n /** Method that gathers all the parentNode elements of current NestedListComponent element */\n while (element.parentNode) {\n parentElements.unshift(element);\n element = element.parentNode;\n }\n\n /** Filter only elements, that has `fdx-nested-list` directive attribute */\n const filteredParentElements = parentElements.filter((_element) => _element.hasAttribute('fdx-nested-list'));\n\n let retVal = filteredParentElements.length;\n\n if (this._nestedItemService?.popover) {\n retVal += 1;\n }\n\n return retVal;\n }\n\n /** @hidden */\n private _setAriaAttributes(level: number, lang: FdLanguage): void {\n this.nestedItems.forEach((item, i) => {\n item._ariaLevel = level;\n if (!item.linkItem) {\n return;\n } else {\n item.linkItem.ariaDescribedby = this._nestedListHeader?.id || null;\n item.linkItem._ariaLabel = this._translationResolver.resolve(lang, 'coreNestedList.linkItemAriaLabel', {\n itemDetails: item.linkItem.getTitle(),\n index: i + 1,\n total: this.nestedItems.length,\n selectedDescription:\n !this._nestedListStateService.selectable && item.linkItem.selected\n ? ', ' + this.ariaLabelSelected\n : ''\n });\n }\n });\n\n this._changeDetectionRef.detectChanges();\n }\n\n /** @hidden */\n private _setAccessibilityProperties(level: number): void {\n if (this._nestedListStateService.condensed && level === 1) {\n this._ariaRoledescription = this.ariaRoledescriptionMenuBar;\n }\n\n if (level > 1 || (this._nestedItemService?.popover && !this._nestedListStateService.condensed)) {\n this._role = 'group';\n this._ariaRoledescription = null;\n }\n\n if (this._nestedItemService?.popover) {\n this._ariaHaspopup = 'tree';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { map } from 'rxjs/operators';\nimport { NestedItemInterface } from '../nested-item/nested-item.interface';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListPopoverInterface } from './nested-list-popover.interface';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'fdx-nested-list-popover',\n templateUrl: './nested-list-popover.component.html',\n styleUrls: ['./nested-list-popover.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NestedListPopoverComponent implements NestedListPopoverInterface, OnInit {\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__popover')\n popoverClass = true;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n linkDirective: NestedLinkComponent;\n\n /**\n * @hidden\n * Reference to parent item, to propagate open and close change from popover.\n */\n parentItemElement: NestedItemInterface;\n\n /** @hidden */\n placement$: Observable<Placement>;\n\n /** @hidden */\n open = false;\n\n /** @hidden */\n _closeScrollStrategy: ScrollStrategy;\n\n /** @hidden */\n constructor(\n private _keyboardNestService: NestedListKeyboardService,\n @Optional() private _itemService: NestedItemService,\n @Optional() private _rtlService: RtlService,\n private _overlay: Overlay\n ) {\n this._listenOnKeyboardRefresh();\n this._createRtlObservable();\n if (this._itemService) {\n this._itemService.popover = this;\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._closeScrollStrategy = this._overlay.scrollStrategies.close();\n }\n\n /**\n * Method called, when open state is changed, from popover component (escape key, outside click).\n */\n handleOpenChange(open: boolean): void {\n this.open = open;\n if (this.parentItemElement) {\n if (open) {\n this.parentItemElement.triggerOpen();\n } else {\n this.parentItemElement.triggerClose();\n }\n }\n }\n\n /** @hidden */\n private _listenOnKeyboardRefresh(): void {\n this._keyboardNestService.refresh$.subscribe(() => {\n /** Update popover position, on list of hidden items change */\n if (this.popoverComponent) {\n this.popoverComponent.refreshPosition();\n }\n });\n }\n\n /** @hidden */\n private _createRtlObservable(): void {\n this.placement$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'left-start' : 'right-start')))\n : of('right-start');\n }\n}\n","<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListItem, NestedListModel } from '../nested-list-model';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Component for internal usage, allows to generate the nested list from defined object.\n */\n@Component({\n selector: 'fdx-prepared-nested-list',\n templateUrl: './prepared-nested-list.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PreparedNestedListComponent {\n /**\n * @hidden\n * For internal usage.\n * Defines if the component is first\n */\n @Input()\n first = true;\n\n /** Defines if list should be displayed in condensed mode */\n @Input()\n condensed = false;\n\n /** List configuration*/\n @Input()\n list: Nullable<NestedListModel>;\n\n /**\n * @hidden\n */\n @ViewChild(forwardRef(() => NestedListComponent))\n _nestedListComponent: NestedListComponent;\n\n /**\n * In prepared nested list, nested items should be taken as reference of View, not Content.\n * There is direct reference to these directives here.\n */\n get nestedListComponent(): NestedListComponent {\n return this._nestedListComponent;\n }\n\n /** @hidden */\n _expandedChange(expanded: boolean, item: NestedListItem): void {\n item.expanded = expanded;\n }\n}\n","<ul fdx-nested-list [textOnly]=\"!!list?.textOnly\">\n <ng-container *ngFor=\"let item of list?.items\">\n <li *ngIf=\"item.headerTitle\" fdx-nested-list-header>\n {{ item.headerTitle }}\n </li>\n <li\n *ngIf=\"!item.headerTitle\"\n fdx-nested-list-item\n [expanded]=\"!!item.expanded\"\n (expandedChange)=\"_expandedChange($event, item)\"\n >\n <fdx-nested-list-popover *ngIf=\"condensed && first && item.list\" [title]=\"item.link?.title || ''\">\n <div fdx-nested-list-content [selected]=\"!!item.link?.selected\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </fdx-nested-list-popover>\n\n <ng-container *ngIf=\"!item.list\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(!condensed || !first) && item.list\">\n <div fdx-nested-list-content>\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </ng-container>\n\n <ng-template let-item=\"item\" #link>\n <a\n fdx-nested-list-link\n *ngIf=\"item.link\"\n [onClickCallback]=\"item.link.callback\"\n [(selected)]=\"!item.list && item.link.selected\"\n [attr.href]=\"item.link.href ? item.link.href : null\"\n [routerLink]=\"item.link.routerLink ? item.link.routerLink : []\"\n >\n <span fdx-nested-list-icon *ngIf=\"item.link.icon\" [glyph]=\"item.link.icon\"></span>\n <span fdx-nested-list-title>{{ item.link.title }}</span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { NestedListComponent } from './nested-list/nested-list.component';\nimport { NestedLinkComponent } from './nested-link/nested-link.component';\nimport { NestedItemComponent } from './nested-item/nested-item.component';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from './nested-list-directives';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { CommonModule } from '@angular/common';\nimport { NestedListKeyboardService } from './nested-list-keyboard.service';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { NestedListPopoverComponent } from './nested-list-popover/nested-list-popover.component';\nimport { PreparedNestedListComponent } from './prepared-nested-list/prepared-nested-list.component';\nimport { NestedListStateService } from './nested-list-state.service';\nimport { RouterModule } from '@angular/router';\nimport { NestedListContentDirective } from './nested-content/nested-list-content.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, RouterModule, IconModule, ContentDensityModule],\n declarations: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective\n ],\n exports: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective,\n ContentDensityModule\n ],\n providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService]\n})\nexport class CxNestedListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NestedItemService","i2","i1","i2.NestedListKeyboardService","i3.NestedListStateService","i1.NestedListKeyboardService","i2.NestedItemService","i3","i4","i5","i6","i6.NestedListExpandIconComponent","i8.NestedListContentDirective"],"mappings":"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"}
@@ -1138,7 +1138,7 @@ class NestedListPopoverComponent {
1138
1138
  }
1139
1139
  }
1140
1140
  NestedListPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NestedListPopoverComponent, deps: [{ token: NestedListKeyboardService }, { token: NestedItemService, optional: true }, { token: i2.RtlService, optional: true }, { token: i4$1.Overlay }], target: i0.ɵɵFactoryTarget.Component });
1141
- NestedListPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NestedListPopoverComponent, selector: "fdx-nested-list-popover", host: { properties: { "class.fdx-nested-list__popover": "this.popoverClass" } }, queries: [{ propertyName: "linkDirective", first: true, predicate: NestedLinkComponent, descendants: true }], viewQueries: [{ propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"], dependencies: [{ kind: "component", type: i5$1.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5$1.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5$1.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1141
+ NestedListPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NestedListPopoverComponent, selector: "fdx-nested-list-popover", host: { properties: { "class.fdx-nested-list__popover": "this.popoverClass" } }, queries: [{ propertyName: "linkDirective", first: true, predicate: NestedLinkComponent, descendants: true }], viewQueries: [{ propertyName: "popoverComponent", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"], dependencies: [{ kind: "component", type: i5$1.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i5$1.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "component", type: i5$1.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
1142
1142
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NestedListPopoverComponent, decorators: [{
1143
1143
  type: Component,
1144
1144
  args: [{ selector: 'fdx-nested-list-popover', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n", styles: [".fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__title{display:inline-flex}.fdx-side-nav--condensed .fdx-nested-list__popover-header{box-shadow:0 0 .25rem #00000026,inset 0 -.0625rem #d9d9d9}.fdx-side-nav--condensed .fd-popover-custom{display:block}[dir=rtl] .fdx-side-nav--condensed .fd-popover-container-custom .fdx-nested-list__link,.fdx-side-nav--condensed[dir=rtl] .fd-popover-container-custom .fdx-nested-list__link{padding-left:1rem}\n"] }]
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-cx-nested-list.mjs","sources":["../../../../libs/cx/src/lib/nested-list/nested-list-state.service.ts","../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.service.ts","../../../../libs/cx/src/lib/nested-list/nested-list-directives.ts","../../../../libs/cx/src/lib/nested-list/nested-link/nested-link.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-keyboard.service.ts","../../../../libs/cx/src/lib/nested-list/nested-content/nested-list-content.directive.ts","../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list/nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.html","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.html","../../../../libs/cx/src/lib/nested-list/nested-list.module.ts","../../../../libs/cx/src/lib/nested-list/fundamental-ngx-cx-nested-list.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class NestedListStateService {\n /**\n * @hidden\n * The condensed state is modified by the parent and read by nested lists.\n */\n condensed = false;\n\n /**\n * @hidden\n */\n selectable = true;\n\n /** @hidden */\n onSelected: Subject<string> = new Subject<string>();\n}\n","import { NestedListInterface } from '../nested-list/nested-list.interface';\nimport { NestedListPopoverInterface } from '../nested-list-popover/nested-list-popover.interface';\nimport { Subject } from 'rxjs';\n\n/** Contains references to popover or list nested components, that are placed as direct children of item component */\nexport class NestedItemService {\n /** @hidden */\n list: NestedListInterface;\n /** @hidden */\n popover?: NestedListPopoverInterface;\n\n /** Subject fired when expand icon is clicked */\n toggle: Subject<boolean> = new Subject<boolean>();\n\n /** Subject fired, when child elements are focused */\n focus: Subject<void> = new Subject<void>();\n\n /** Subject fired, when content or link is clicked */\n click: Subject<void> = new Subject<void>();\n\n /** KeyDown handler, it is triggered from link, content and item elements */\n keyDown: Subject<KeyboardEvent> = new Subject<KeyboardEvent>();\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { NestedItemService } from './nested-item/nested-item.service';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[cxNestedDirectivesHeader], [fdx-nested-list-header]'\n})\nexport class NestedListHeaderDirective {\n /** Id of the element. */\n @Input()\n @HostBinding('attr.id')\n id: string | null = `fdx-nested-list-group-header-${++uniqueId}`;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__group-header')\n cxNestedListHeaderClass = true;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Get the header title */\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedDirectivesIcon], [fdx-nested-list-icon]',\n template: `<ng-content></ng-content>`\n})\nexport class NestedListIconComponent extends IconComponent {\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'presentation';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__icon')\n fdNestedListIconClass = true;\n}\n\n@Directive({\n selector: '[cxNestedDirectivesTitle], [fdx-nested-list-title]'\n})\nexport class NestedListTitleDirective {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__title')\n fdNestedListTitleClass = true;\n\n /** @hidden */\n constructor(private elementRef: ElementRef) {}\n\n /** Returns element's InnerText */\n getInnerText(): string {\n return this.elementRef && this.elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedListExpandIcon], [fdx-nested-list-expand-icon]',\n template: ` <ng-content></ng-content> `,\n host: {\n 'aria-haspopup': 'true',\n role: 'presentation'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NestedListExpandIconComponent {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__arrow')\n fdNestedListArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-down-arrow')\n get fdNestedListDownArrowClass(): boolean {\n return this.expanded;\n }\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-right-arrow')\n get fdNestedListRightArrowClass(): any {\n return !this.expanded;\n }\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.is-expanded')\n @HostBinding('attr.aria-expanded')\n expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n rtl$: Observable<boolean>;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _changeDetRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n this._listenOnTextDirection();\n }\n\n /** Mouse event handler */\n @HostListener('click', ['$event'])\n onClick(event?: MouseEvent): void {\n this.expanded = !this.expanded;\n this._itemService.toggle.next(this.expanded);\n event?.stopPropagation();\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** @hidden */\n changeExpandedState(expanded: boolean): void {\n this.expanded = expanded;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden Sets expand arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.rtl$ = this._rtlService ? this._rtlService.rtl.pipe(map((isRtl) => isRtl)) : of(false);\n }\n}\n\n@Directive({\n selector: '[cxNestedDirectivesButton], [fdx-nested-list-button]'\n})\nexport class NestedListButtonDirective implements AfterContentInit {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__button')\n fdNestedListButtonClass = true;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this._expandIcon.onClick();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._expandIcon) {\n this._expandIcon.fdNestedListArrowClass = false;\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedListButtonDirective, NestedListTitleDirective } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\n@Component({\n template: `\n <div *ngIf=\"!_nestedListButton\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </div>\n <a *ngIf=\"_nestedListButton\" tabindex=\"0\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </a>\n <ng-content select=\"[fdx-nested-list-button]\"></ng-content>\n <ng-template #containerContent>\n <ng-content select=\"[fdx-nested-list-icon]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-title]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-expand-icon]\"></ng-content>\n </ng-template>\n `,\n selector:\n // eslint-disable-next-line @angular-eslint/component-selector\n '[fdx-nested-list-link], button[fdx-nested-list-link], a[fdx-nested-list-link], div[fdx-nested-list-link]',\n host: {\n '[attr.tabindex]': '!_nestedListButton ? 0 : -1'\n }\n})\nexport class NestedLinkComponent {\n /** Function that is called on click event dispatch on this element. */\n @Input()\n onClickCallback: () => void;\n\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n _ariaLabel: string;\n\n /** @hidden */\n @Input()\n @HostBinding('attr.aria-describedby')\n ariaDescribedby: Nullable<string | number>;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__link')\n cxNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /**\n * @hidden\n * Reference to title element, it is used, to get title for condensed mode.\n */\n @ContentChild(NestedListTitleDirective)\n title: NestedListTitleDirective;\n\n /** @hidden */\n @ContentChild(NestedListButtonDirective)\n _nestedListButton: NestedListButtonDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** Handler for keyboard events */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._collapseOnly) {\n this._expandIcon.onClick();\n } else {\n this._itemService.click.next();\n if (this.onClickCallback) {\n this.onClickCallback();\n }\n }\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this._elementRef.nativeElement.click();\n }\n\n /** Returns the title value of the title directive */\n getTitle(): string {\n return this.title && this.title.getInnerText();\n }\n\n /** @hidden */\n private get _collapseOnly(): boolean {\n return !this._nestedListButton && this._expandIcon;\n }\n}\n","import { Subject } from 'rxjs';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { NestedItemInterface } from './nested-item/nested-item.interface';\nimport { NestedListInterface } from './nested-list/nested-list.interface';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/core/utils';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\n\n/**\n * Nested list keyboard service, which uses MenuKeyboardService, to deal with ArrowUp, ArrowDown, Space, Enter.\n * Also has own handling of ArrowLeft and ArrowRight, to open/close the menu if it has any children.\n */\n@Injectable()\nexport class NestedListKeyboardService {\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /**\n * Event, that is thrown always, when the open/close i being called on item components.\n * Also triggers changing of elements, to remove closed/hidden elements\n */\n readonly refresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n @Inject(MenuKeyboardService) private keyboardService: MenuKeyboardService,\n @Optional() private _rtlService: RtlService | null\n ) {\n this._subscribeToRtl();\n }\n\n /**\n * Function called after refresh$ event is triggered.\n * Refresh the list of NestedItems, that the keyboard support should be provided for\n */\n refreshItems(lists: NestedListInterface[]): void {\n const items: NestedItemInterface[] = [];\n\n /** Gathering all of the items */\n lists.forEach((list) => items.push(...this._getAllListItems(list)));\n /** Putting the keyboard support function to each of the items */\n items.forEach((item, index) => {\n item.keyboardTriggered\n .pipe(takeUntil(this.refresh$))\n .subscribe((keyboardEvent: KeyboardEvent) => this._handleKeyDown(keyboardEvent, index, items));\n });\n }\n\n /** Recursive function to get all of the NestedItem elements in correct order. */\n private _getItems(item: NestedItemInterface): NestedItemInterface[] {\n const childrenItems = item.expanded ? item.allChildrenItems : [];\n return childrenItems.reduce(\n (actualArray: NestedItemInterface[], nextItem: NestedItemInterface) => [\n ...actualArray,\n ...this._getItems(nextItem)\n ],\n [item]\n );\n }\n\n /** Method that calls the recursive function, getItems() and gathers all of the items in the NestedList */\n private _getAllListItems(list: NestedListInterface): NestedItemInterface[] {\n const _items: NestedItemInterface[] = [];\n if (list && list.nestedItems && list.nestedItems.length > 0) {\n list.nestedItems.forEach((item) => {\n _items.push(...this._getItems(item));\n });\n }\n\n return _items;\n }\n\n /**\n * Keyboard handle function. Uses keyboard support service from MenuComponent, to deal with ArrowUp, ArrowDown, Space, Enter.\n * For ArrowRight, if item is not expanded and has children (list or popup), the open function is triggered.\n * Otherwise it follows ArrowDown functionality.\n * For ArrowLeft, if item is expanded and has children (list or popup), the close function is triggered.\n * Otherwise it follows ArrowUp functionality\n */\n private _handleKeyDown(keyboardEvent: KeyboardEvent, index: number, items: NestedItemInterface[]): void {\n const item: NestedItemInterface = items[index];\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW))\n ) {\n if (!item.expanded && item.hasChildren) {\n item.triggerOpen();\n }\n keyboardEvent.preventDefault();\n }\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW))\n ) {\n if (item.expanded && item.hasChildren) {\n item.triggerClose();\n }\n keyboardEvent.preventDefault();\n }\n\n this.keyboardService.keyDownHandler(keyboardEvent, index, items);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n });\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[cxNestedListContent], [fdx-nested-list-content]',\n host: {\n tabindex: '0'\n }\n})\nexport class NestedListContentDirective implements AfterContentInit, OnDestroy {\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded = false;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event that is thrown, when any keyboard event is dispatched on this element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Event that is thrown, when this element is clicked */\n @Output()\n readonly clicked: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__content')\n cxNestedListContentClass = true;\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.has-child')\n hasChildren = false;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n nestedLink: NestedLinkComponent;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n nestedExpandIcon: NestedListExpandIconComponent;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._makeLinkUnFocusable();\n this._setFocusSubscription();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n /** Keyboard Event Handler */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this.keyboardTriggered.emit(event);\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click', ['$event'])\n onClick(): void {\n this._itemService.click.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this.focus();\n if (this.nestedLink) {\n this.nestedLink.click();\n }\n }\n\n /** Add subscription for child focusing */\n private _setFocusSubscription(): void {\n this._itemService.focus.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.focus());\n }\n\n /** Hide link child element from tab key */\n private _makeLinkUnFocusable(): void {\n if (this.nestedLink) {\n this.nestedLink.elementRef.nativeElement.tabIndex = -1;\n this.changeDetRef.detectChanges();\n }\n }\n}\n","import {\n AfterContentInit,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n forwardRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemInterface } from './nested-item.interface';\nimport { NestedItemService } from './nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\nlet sideNavigationItemUniqueId = 0;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]',\n template: ` <ng-content></ng-content> `,\n providers: [NestedItemService],\n host: {\n role: 'treeitem'\n }\n})\nexport class NestedItemComponent implements AfterContentInit, NestedItemInterface, OnDestroy {\n /** Whether item should be expanded */\n @Input() set expanded(expanded: boolean) {\n if (expanded !== this._expanded) {\n this.propagateOpenChange(expanded);\n }\n }\n\n /** @hidden */\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** Event thrown, when expanded state is changed */\n @Output()\n readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event thrown, when any keyboard event is dispatched on this, or link element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n @Input()\n @HostBinding('class.fdx-nested-list__item')\n fdNestedListItemClass = true;\n\n /** Whether this item is a header item. */\n @Input()\n @HostBinding('class.fdx-nested-list__item--header')\n header = false;\n\n /** Whether this item is only meant for display purposes, meaning it cannot be used for navigation or shown as selected. */\n @Input()\n display = false;\n\n /**\n * @hidden\n * Reference to the link directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedLinkComponent)\n linkItem: NestedLinkComponent;\n\n /**\n * @hidden\n * Mostly used, when this item has list\n * Reference to the content directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedListContentDirective)\n contentItem: NestedListContentDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent, { descendants: true })\n expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @ContentChild(forwardRef(() => NestedListComponent))\n _nestedList: NestedListComponent;\n\n /** @hidden */\n @HostBinding('attr.aria-level')\n _ariaLevel: Nullable<number> = null;\n\n /** @hidden */\n @HostBinding('attr.title')\n _title: string;\n\n /** @hidden */\n @HostBinding('style.display')\n _display = 'block';\n\n /** @hidden */\n _narrow = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role: string;\n\n /** @hidden */\n private _expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n private _ariaExpanded: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n private _ariaSelected: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n private _ariaDisabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n private _ariaLabel: string;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private _ariaHidden = true;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** Unique element ID */\n private readonly _elementId: string = 'fdNestedItem' + sideNavigationItemUniqueId++;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _keyboardService: NestedListKeyboardService,\n private _stateService: NestedListStateService,\n public elementRef: ElementRef\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setUpSubscriptions();\n this._propagateHasChildrenProperty();\n this._passItemReferences();\n /** Propagate initial open state to children */\n this.propagateOpenChange(this._expanded);\n\n if (this.linkItem) {\n this._ariaSelected = this.linkItem.selected;\n this._ariaDisabled = !this._stateService.selectable && !this.linkItem.selected;\n this._title = this.linkItem.getTitle();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Check if the item element has any child */\n get hasChildren(): boolean {\n return !!this._itemService?.list;\n }\n\n /** Get all of the children item elements */\n get allChildrenItems(): NestedItemInterface[] {\n if (this._itemService?.list) {\n return this._itemService.list.nestedItems.toArray();\n }\n\n return [];\n }\n\n /** Method that expand the item and propagate it to children */\n triggerOpen(): void {\n if (!this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(true);\n }\n }\n\n /** Method that close the item and propagate it to children */\n triggerClose(): void {\n if (this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(false);\n }\n }\n\n /** Method that toggle the item and propagate it to children */\n toggle(): void {\n /** Propagate initial open state to children */\n this.propagateOpenChange(!this._expanded);\n }\n\n /** Method that dispatches `click` event on link item*/\n click(): void {\n if (!this.display) {\n if (this.contentItem) {\n this.contentItem.click();\n } else if (this.linkItem) {\n this.linkItem.click();\n }\n }\n }\n\n /** Method that focuses link item*/\n focus(): void {\n if (this.contentItem) {\n this.contentItem.focus();\n } else if (this.linkItem) {\n this.linkItem.focus();\n }\n }\n\n /** Method that provides information if element, or children of this element has passed id */\n containsId(id: string): boolean {\n if (this._elementId === id) {\n return true;\n }\n\n if (this._itemService.list) {\n return !!this._itemService.list.nestedItems.find((item) => item.containsId(id));\n }\n\n return false;\n }\n\n /**\n * @hidden\n * Propagate open state to all of the children\n */\n private propagateOpenChange(open: boolean): void {\n this._expanded = open;\n\n if (this.hasChildren) {\n this._ariaExpanded = this._expanded;\n }\n\n this.expandIcon?.changeExpandedState(open);\n\n /** Propagate hidden flag to list component, that is passed from child */\n if (this._itemService.list) {\n this._itemService.list.hidden = !open;\n this._itemService.list.detectChanges();\n }\n\n /** Propagate open flag to popover list component, that is passed from child */\n if (this._itemService.popover) {\n this._itemService.popover.open = open;\n }\n\n /**\n * If there are any list below\n * Trigger event to provide keyboard support to new list of opened item element.\n * */\n if (this._shouldRefreshKeyboardService()) {\n this._keyboardService.refresh$.next();\n }\n\n this.expandedChange.emit(open);\n }\n\n /** @hidden */\n private _shouldRefreshKeyboardService(): boolean {\n return !!(this._itemService.popover || this._itemService.list || this.contentItem);\n }\n\n /** @hidden */\n private _setUpSubscriptions(): void {\n if (this._stateService.condensed) {\n this._role = 'menuitemradio';\n }\n\n if (!this.display) {\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.toggle.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.toggle());\n\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.click\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._stateService.onSelected.next(this._elementId));\n }\n\n /** Subscribe to keyboard event and throw it farther */\n this._itemService.keyDown\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((keyboardEvent) => this.keyboardTriggered.emit(keyboardEvent));\n\n /** Subscribe to selected state change, it's not triggered, when selectable flag is disabled*/\n this._stateService.onSelected\n .pipe(\n takeUntil(this._onDestroy$),\n filter(() => this._stateService.selectable)\n )\n .subscribe((id) => this._selectedChange(id));\n }\n\n /** @hidden */\n private _propagateHasChildrenProperty(): void {\n if (this.contentItem && this.hasChildren) {\n this._ariaExpanded = false;\n this.contentItem.hasChildren = true;\n this.contentItem.changeDetRef.detectChanges();\n }\n }\n\n /** Pass this element to popover child item, to allow control `expanded` value */\n private _passItemReferences(): void {\n if (this._itemService.popover) {\n this._itemService.popover.parentItemElement = this;\n }\n }\n\n /** Change of selected state of content or link, if there is any children with I */\n private _selectedChange(id: string): void {\n const selected = this.containsId(id);\n this._ariaSelected = selected;\n\n if (this.contentItem) {\n this.contentItem.changeSelected(selected);\n } else if (this.linkItem) {\n this.linkItem.changeSelected(selected);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Component\n} from '@angular/core';\nimport { combineLatest, Observable, startWith, Subscription } from 'rxjs';\n\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListInterface } from './nested-list.interface';\nimport { NestedListHeaderDirective } from '../nested-list-directives';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\n@Component({\n template: ` <ng-content></ng-content> `,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedList], [fdx-nested-list], ul[fdx-nested-list]',\n providers: [contentDensityObserverProviders()]\n})\nexport class NestedListComponent implements AfterContentInit, NestedListInterface, OnDestroy {\n /** In case the user wants to no use icons for items in this list */\n @Input()\n @HostBinding('class.fdx-nested-list--text-only')\n textOnly = false;\n\n /** Aria defines role description for the Nested List Tree. */\n @Input()\n ariaRoledescriptionTree = 'Navigation List Tree';\n\n /** Aria defines role description for the Nested List MenuBar. */\n @Input()\n ariaRoledescriptionMenuBar = 'Navigation List Menu Bar';\n\n /** Aria defines aria label for the selected item when the list with disabled selection. */\n @Input()\n ariaLabelSelected = 'Selected';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list')\n fdNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n hidden = false;\n\n /**\n * @hidden\n * This variable is mostly to keep track of this list's children. There is not usage of it inside this directive,\n * but it's used by services and NestedItemComponent by itself,\n */\n @ContentChildren(forwardRef(() => NestedItemComponent))\n nestedItems: QueryList<NestedItemComponent>;\n\n /** @hidden */\n @ContentChild(NestedListHeaderDirective)\n private _nestedListHeader: NestedListHeaderDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => NestedListComponent), { descendants: true })\n private _nestedLists: QueryList<NestedListComponent>;\n\n /** @hidden */\n private _nestedItemsChangesSubscription = new Subscription();\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role = 'tree';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n private _ariaRoledescription: Nullable<string> = this.ariaRoledescriptionTree;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n private _ariaHaspopup: Nullable<string> = null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n private _tabindex = '-1';\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n @Optional() private _nestedItemService: NestedItemService,\n private _nestedListStateService: NestedListStateService,\n private _nestedListKeyboardService: NestedListKeyboardService,\n private _elementRef: ElementRef,\n private _changeDetectionRef: ChangeDetectorRef,\n @Inject(FD_LANGUAGE) private _language$: Observable<FdLanguage>,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n if (this._nestedItemService) {\n this._nestedItemService.list = this;\n }\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._handleNestedLevel();\n }\n\n /** @hidden */\n detectChanges(): void {\n this._changeDetectionRef.markForCheck();\n }\n\n /** @hidden */\n private _handleNestedLevel(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n\n const nestedLevel: number = this._getNestedLevel();\n\n this._setAccessibilityProperties(nestedLevel);\n\n const itemChangesSub = combineLatest([\n this._language$,\n this.nestedItems.changes.pipe(startWith(undefined))\n ]).subscribe(([lang]) => {\n this._nestedListKeyboardService.refresh$.next();\n this._setAriaAttributes(nestedLevel, lang);\n /** Adding class with the nested level */\n this._elementRef.nativeElement.classList.add('level-' + nestedLevel);\n });\n\n this._nestedItemsChangesSubscription.add(itemChangesSub);\n }\n\n /**\n * @hidden\n * Method, that checks how deep is the list element\n */\n private _getNestedLevel(): number {\n let element = this._elementRef.nativeElement;\n const parentElements: Element[] = [];\n\n /** Method that gathers all the parentNode elements of current NestedListComponent element */\n while (element.parentNode) {\n parentElements.unshift(element);\n element = element.parentNode;\n }\n\n /** Filter only elements, that has `fdx-nested-list` directive attribute */\n const filteredParentElements = parentElements.filter((_element) => _element.hasAttribute('fdx-nested-list'));\n\n let retVal = filteredParentElements.length;\n\n if (this._nestedItemService?.popover) {\n retVal += 1;\n }\n\n return retVal;\n }\n\n /** @hidden */\n private _setAriaAttributes(level: number, lang: FdLanguage): void {\n this.nestedItems.forEach((item, i) => {\n item._ariaLevel = level;\n if (!item.linkItem) {\n return;\n } else {\n item.linkItem.ariaDescribedby = this._nestedListHeader?.id || null;\n item.linkItem._ariaLabel = this._translationResolver.resolve(lang, 'coreNestedList.linkItemAriaLabel', {\n itemDetails: item.linkItem.getTitle(),\n index: i + 1,\n total: this.nestedItems.length,\n selectedDescription:\n !this._nestedListStateService.selectable && item.linkItem.selected\n ? ', ' + this.ariaLabelSelected\n : ''\n });\n }\n });\n\n this._changeDetectionRef.detectChanges();\n }\n\n /** @hidden */\n private _setAccessibilityProperties(level: number): void {\n if (this._nestedListStateService.condensed && level === 1) {\n this._ariaRoledescription = this.ariaRoledescriptionMenuBar;\n }\n\n if (level > 1 || (this._nestedItemService?.popover && !this._nestedListStateService.condensed)) {\n this._role = 'group';\n this._ariaRoledescription = null;\n }\n\n if (this._nestedItemService?.popover) {\n this._ariaHaspopup = 'tree';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { map } from 'rxjs/operators';\nimport { NestedItemInterface } from '../nested-item/nested-item.interface';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListPopoverInterface } from './nested-list-popover.interface';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'fdx-nested-list-popover',\n templateUrl: './nested-list-popover.component.html',\n styleUrls: ['./nested-list-popover.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NestedListPopoverComponent implements NestedListPopoverInterface, OnInit {\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__popover')\n popoverClass = true;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n linkDirective: NestedLinkComponent;\n\n /**\n * @hidden\n * Reference to parent item, to propagate open and close change from popover.\n */\n parentItemElement: NestedItemInterface;\n\n /** @hidden */\n placement$: Observable<Placement>;\n\n /** @hidden */\n open = false;\n\n /** @hidden */\n _closeScrollStrategy: ScrollStrategy;\n\n /** @hidden */\n constructor(\n private _keyboardNestService: NestedListKeyboardService,\n @Optional() private _itemService: NestedItemService,\n @Optional() private _rtlService: RtlService,\n private _overlay: Overlay\n ) {\n this._listenOnKeyboardRefresh();\n this._createRtlObservable();\n if (this._itemService) {\n this._itemService.popover = this;\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._closeScrollStrategy = this._overlay.scrollStrategies.close();\n }\n\n /**\n * Method called, when open state is changed, from popover component (escape key, outside click).\n */\n handleOpenChange(open: boolean): void {\n this.open = open;\n if (this.parentItemElement) {\n if (open) {\n this.parentItemElement.triggerOpen();\n } else {\n this.parentItemElement.triggerClose();\n }\n }\n }\n\n /** @hidden */\n private _listenOnKeyboardRefresh(): void {\n this._keyboardNestService.refresh$.subscribe(() => {\n /** Update popover position, on list of hidden items change */\n if (this.popoverComponent) {\n this.popoverComponent.refreshPosition();\n }\n });\n }\n\n /** @hidden */\n private _createRtlObservable(): void {\n this.placement$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'left-start' : 'right-start')))\n : of('right-start');\n }\n}\n","<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListItem, NestedListModel } from '../nested-list-model';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Component for internal usage, allows to generate the nested list from defined object.\n */\n@Component({\n selector: 'fdx-prepared-nested-list',\n templateUrl: './prepared-nested-list.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PreparedNestedListComponent {\n /**\n * @hidden\n * For internal usage.\n * Defines if the component is first\n */\n @Input()\n first = true;\n\n /** Defines if list should be displayed in condensed mode */\n @Input()\n condensed = false;\n\n /** List configuration*/\n @Input()\n list: Nullable<NestedListModel>;\n\n /**\n * @hidden\n */\n @ViewChild(forwardRef(() => NestedListComponent))\n _nestedListComponent: NestedListComponent;\n\n /**\n * In prepared nested list, nested items should be taken as reference of View, not Content.\n * There is direct reference to these directives here.\n */\n get nestedListComponent(): NestedListComponent {\n return this._nestedListComponent;\n }\n\n /** @hidden */\n _expandedChange(expanded: boolean, item: NestedListItem): void {\n item.expanded = expanded;\n }\n}\n","<ul fdx-nested-list [textOnly]=\"!!list?.textOnly\">\n <ng-container *ngFor=\"let item of list?.items\">\n <li *ngIf=\"item.headerTitle\" fdx-nested-list-header>\n {{ item.headerTitle }}\n </li>\n <li\n *ngIf=\"!item.headerTitle\"\n fdx-nested-list-item\n [expanded]=\"!!item.expanded\"\n (expandedChange)=\"_expandedChange($event, item)\"\n >\n <fdx-nested-list-popover *ngIf=\"condensed && first && item.list\" [title]=\"item.link?.title || ''\">\n <div fdx-nested-list-content [selected]=\"!!item.link?.selected\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </fdx-nested-list-popover>\n\n <ng-container *ngIf=\"!item.list\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(!condensed || !first) && item.list\">\n <div fdx-nested-list-content>\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </ng-container>\n\n <ng-template let-item=\"item\" #link>\n <a\n fdx-nested-list-link\n *ngIf=\"item.link\"\n [onClickCallback]=\"item.link.callback\"\n [(selected)]=\"!item.list && item.link.selected\"\n [attr.href]=\"item.link.href ? item.link.href : null\"\n [routerLink]=\"item.link.routerLink ? item.link.routerLink : []\"\n >\n <span fdx-nested-list-icon *ngIf=\"item.link.icon\" [glyph]=\"item.link.icon\"></span>\n <span fdx-nested-list-title>{{ item.link.title }}</span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { NestedListComponent } from './nested-list/nested-list.component';\nimport { NestedLinkComponent } from './nested-link/nested-link.component';\nimport { NestedItemComponent } from './nested-item/nested-item.component';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from './nested-list-directives';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { CommonModule } from '@angular/common';\nimport { NestedListKeyboardService } from './nested-list-keyboard.service';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { NestedListPopoverComponent } from './nested-list-popover/nested-list-popover.component';\nimport { PreparedNestedListComponent } from './prepared-nested-list/prepared-nested-list.component';\nimport { NestedListStateService } from './nested-list-state.service';\nimport { RouterModule } from '@angular/router';\nimport { NestedListContentDirective } from './nested-content/nested-list-content.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, RouterModule, IconModule, ContentDensityModule],\n declarations: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective\n ],\n exports: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective,\n ContentDensityModule\n ],\n providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService]\n})\nexport class CxNestedListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NestedItemService","i2","i1","i2.NestedListKeyboardService","i3.NestedListStateService","i1.NestedListKeyboardService","i2.NestedItemService","i3","i4","i5","i6","i6.NestedListExpandIconComponent","i8.NestedListContentDirective"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-cx-nested-list.mjs","sources":["../../../../libs/cx/src/lib/nested-list/nested-list-state.service.ts","../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.service.ts","../../../../libs/cx/src/lib/nested-list/nested-list-directives.ts","../../../../libs/cx/src/lib/nested-list/nested-link/nested-link.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-keyboard.service.ts","../../../../libs/cx/src/lib/nested-list/nested-content/nested-list-content.directive.ts","../../../../libs/cx/src/lib/nested-list/nested-item/nested-item.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list/nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.ts","../../../../libs/cx/src/lib/nested-list/nested-list-popover/nested-list-popover.component.html","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.ts","../../../../libs/cx/src/lib/nested-list/prepared-nested-list/prepared-nested-list.component.html","../../../../libs/cx/src/lib/nested-list/nested-list.module.ts","../../../../libs/cx/src/lib/nested-list/fundamental-ngx-cx-nested-list.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable()\nexport class NestedListStateService {\n /**\n * @hidden\n * The condensed state is modified by the parent and read by nested lists.\n */\n condensed = false;\n\n /**\n * @hidden\n */\n selectable = true;\n\n /** @hidden */\n onSelected: Subject<string> = new Subject<string>();\n}\n","import { NestedListInterface } from '../nested-list/nested-list.interface';\nimport { NestedListPopoverInterface } from '../nested-list-popover/nested-list-popover.interface';\nimport { Subject } from 'rxjs';\n\n/** Contains references to popover or list nested components, that are placed as direct children of item component */\nexport class NestedItemService {\n /** @hidden */\n list: NestedListInterface;\n /** @hidden */\n popover?: NestedListPopoverInterface;\n\n /** Subject fired when expand icon is clicked */\n toggle: Subject<boolean> = new Subject<boolean>();\n\n /** Subject fired, when child elements are focused */\n focus: Subject<void> = new Subject<void>();\n\n /** Subject fired, when content or link is clicked */\n click: Subject<void> = new Subject<void>();\n\n /** KeyDown handler, it is triggered from link, content and item elements */\n keyDown: Subject<KeyboardEvent> = new Subject<KeyboardEvent>();\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n Optional,\n ViewEncapsulation\n} from '@angular/core';\nimport { NestedItemService } from './nested-item/nested-item.service';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { map } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[cxNestedDirectivesHeader], [fdx-nested-list-header]'\n})\nexport class NestedListHeaderDirective {\n /** Id of the element. */\n @Input()\n @HostBinding('attr.id')\n id: string | null = `fdx-nested-list-group-header-${++uniqueId}`;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__group-header')\n cxNestedListHeaderClass = true;\n\n /** @hidden */\n constructor(private _elementRef: ElementRef) {}\n\n /** Get the header title */\n get title(): string {\n return this._elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedDirectivesIcon], [fdx-nested-list-icon]',\n template: `<ng-content></ng-content>`\n})\nexport class NestedListIconComponent extends IconComponent {\n /** Role attribute */\n @Input()\n @HostBinding('attr.role')\n role = 'presentation';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__icon')\n fdNestedListIconClass = true;\n}\n\n@Directive({\n selector: '[cxNestedDirectivesTitle], [fdx-nested-list-title]'\n})\nexport class NestedListTitleDirective {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__title')\n fdNestedListTitleClass = true;\n\n /** @hidden */\n constructor(private elementRef: ElementRef) {}\n\n /** Returns element's InnerText */\n getInnerText(): string {\n return this.elementRef && this.elementRef.nativeElement.textContent;\n }\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedListExpandIcon], [fdx-nested-list-expand-icon]',\n template: ` <ng-content></ng-content> `,\n host: {\n 'aria-haspopup': 'true',\n role: 'presentation'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NestedListExpandIconComponent {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__arrow')\n fdNestedListArrowClass = true;\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-down-arrow')\n get fdNestedListDownArrowClass(): boolean {\n return this.expanded;\n }\n\n /** @hidden */\n @HostBinding('class.sap-icon--navigation-right-arrow')\n get fdNestedListRightArrowClass(): any {\n return !this.expanded;\n }\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.is-expanded')\n @HostBinding('attr.aria-expanded')\n expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n ariaHidden = true;\n\n /** @hidden */\n rtl$: Observable<boolean>;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _changeDetRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n @Optional() private _rtlService: RtlService\n ) {\n this._listenOnTextDirection();\n }\n\n /** Mouse event handler */\n @HostListener('click', ['$event'])\n onClick(event?: MouseEvent): void {\n this.expanded = !this.expanded;\n this._itemService.toggle.next(this.expanded);\n event?.stopPropagation();\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** @hidden */\n changeExpandedState(expanded: boolean): void {\n this.expanded = expanded;\n this._changeDetRef.detectChanges();\n }\n\n /** @hidden Sets expand arrow depending on text direction */\n private _listenOnTextDirection(): void {\n this.rtl$ = this._rtlService ? this._rtlService.rtl.pipe(map((isRtl) => isRtl)) : of(false);\n }\n}\n\n@Directive({\n selector: '[cxNestedDirectivesButton], [fdx-nested-list-button]'\n})\nexport class NestedListButtonDirective implements AfterContentInit {\n /** @hidden */\n @HostBinding('class.fdx-nested-list__button')\n fdNestedListButtonClass = true;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n onClick(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this._expandIcon.onClick();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (this._expandIcon) {\n this._expandIcon.fdNestedListArrowClass = false;\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedListButtonDirective, NestedListTitleDirective } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\n@Component({\n template: `\n <div *ngIf=\"!_nestedListButton\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </div>\n <a *ngIf=\"_nestedListButton\" tabindex=\"0\" class=\"fdx-nested-list__link-container\">\n <ng-container *ngTemplateOutlet=\"containerContent\"></ng-container>\n </a>\n <ng-content select=\"[fdx-nested-list-button]\"></ng-content>\n <ng-template #containerContent>\n <ng-content select=\"[fdx-nested-list-icon]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-title]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-expand-icon]\"></ng-content>\n </ng-template>\n `,\n selector:\n // eslint-disable-next-line @angular-eslint/component-selector\n '[fdx-nested-list-link], button[fdx-nested-list-link], a[fdx-nested-list-link], div[fdx-nested-list-link]',\n host: {\n '[attr.tabindex]': '!_nestedListButton ? 0 : -1'\n }\n})\nexport class NestedLinkComponent {\n /** Function that is called on click event dispatch on this element. */\n @Input()\n onClickCallback: () => void;\n\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n _ariaLabel: string;\n\n /** @hidden */\n @Input()\n @HostBinding('attr.aria-describedby')\n ariaDescribedby: Nullable<string | number>;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__link')\n cxNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /**\n * @hidden\n * Reference to title element, it is used, to get title for condensed mode.\n */\n @ContentChild(NestedListTitleDirective)\n title: NestedListTitleDirective;\n\n /** @hidden */\n @ContentChild(NestedListButtonDirective)\n _nestedListButton: NestedListButtonDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n _expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** Handler for keyboard events */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click')\n onClick(): void {\n if (this._collapseOnly) {\n this._expandIcon.onClick();\n } else {\n this._itemService.click.next();\n if (this.onClickCallback) {\n this.onClickCallback();\n }\n }\n }\n\n /** Handler for focus events */\n @HostListener('focus')\n onFocus(): void {\n this._itemService.focus.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this._elementRef.nativeElement.click();\n }\n\n /** Returns the title value of the title directive */\n getTitle(): string {\n return this.title && this.title.getInnerText();\n }\n\n /** @hidden */\n private get _collapseOnly(): boolean {\n return !this._nestedListButton && this._expandIcon;\n }\n}\n","import { Subject } from 'rxjs';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport { NestedItemInterface } from './nested-item/nested-item.interface';\nimport { NestedListInterface } from './nested-list/nested-list.interface';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/core/utils';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\n\n/**\n * Nested list keyboard service, which uses MenuKeyboardService, to deal with ArrowUp, ArrowDown, Space, Enter.\n * Also has own handling of ArrowLeft and ArrowRight, to open/close the menu if it has any children.\n */\n@Injectable()\nexport class NestedListKeyboardService {\n /** @hidden handles rtl service */\n private _dir: 'ltr' | 'rtl' | null = 'ltr';\n\n /**\n * Event, that is thrown always, when the open/close i being called on item components.\n * Also triggers changing of elements, to remove closed/hidden elements\n */\n readonly refresh$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n @Inject(MenuKeyboardService) private keyboardService: MenuKeyboardService,\n @Optional() private _rtlService: RtlService | null\n ) {\n this._subscribeToRtl();\n }\n\n /**\n * Function called after refresh$ event is triggered.\n * Refresh the list of NestedItems, that the keyboard support should be provided for\n */\n refreshItems(lists: NestedListInterface[]): void {\n const items: NestedItemInterface[] = [];\n\n /** Gathering all of the items */\n lists.forEach((list) => items.push(...this._getAllListItems(list)));\n /** Putting the keyboard support function to each of the items */\n items.forEach((item, index) => {\n item.keyboardTriggered\n .pipe(takeUntil(this.refresh$))\n .subscribe((keyboardEvent: KeyboardEvent) => this._handleKeyDown(keyboardEvent, index, items));\n });\n }\n\n /** Recursive function to get all of the NestedItem elements in correct order. */\n private _getItems(item: NestedItemInterface): NestedItemInterface[] {\n const childrenItems = item.expanded ? item.allChildrenItems : [];\n return childrenItems.reduce(\n (actualArray: NestedItemInterface[], nextItem: NestedItemInterface) => [\n ...actualArray,\n ...this._getItems(nextItem)\n ],\n [item]\n );\n }\n\n /** Method that calls the recursive function, getItems() and gathers all of the items in the NestedList */\n private _getAllListItems(list: NestedListInterface): NestedItemInterface[] {\n const _items: NestedItemInterface[] = [];\n if (list && list.nestedItems && list.nestedItems.length > 0) {\n list.nestedItems.forEach((item) => {\n _items.push(...this._getItems(item));\n });\n }\n\n return _items;\n }\n\n /**\n * Keyboard handle function. Uses keyboard support service from MenuComponent, to deal with ArrowUp, ArrowDown, Space, Enter.\n * For ArrowRight, if item is not expanded and has children (list or popup), the open function is triggered.\n * Otherwise it follows ArrowDown functionality.\n * For ArrowLeft, if item is expanded and has children (list or popup), the close function is triggered.\n * Otherwise it follows ArrowUp functionality\n */\n private _handleKeyDown(keyboardEvent: KeyboardEvent, index: number, items: NestedItemInterface[]): void {\n const item: NestedItemInterface = items[index];\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW))\n ) {\n if (!item.expanded && item.hasChildren) {\n item.triggerOpen();\n }\n keyboardEvent.preventDefault();\n }\n\n if (\n (this._dir === 'ltr' && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW)) ||\n (this._dir === 'rtl' && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW))\n ) {\n if (item.expanded && item.hasChildren) {\n item.triggerClose();\n }\n keyboardEvent.preventDefault();\n }\n\n this.keyboardService.keyDownHandler(keyboardEvent, index, items);\n }\n\n /** @hidden Rtl change subscription */\n private _subscribeToRtl(): void {\n if (!this._rtlService) {\n return;\n }\n\n this._rtlService.rtl.subscribe((isRtl) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n });\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2\n} from '@angular/core';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[cxNestedListContent], [fdx-nested-list-content]',\n host: {\n tabindex: '0'\n }\n})\nexport class NestedListContentDirective implements AfterContentInit, OnDestroy {\n /** Whether this element is selected*/\n @Input()\n @HostBinding('class.is-selected')\n selected = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n role = 'treeitem';\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n ariaExpanded = false;\n\n /** Event thrown, when selected state is changed */\n @Output()\n selectedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event that is thrown, when any keyboard event is dispatched on this element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** Event that is thrown, when this element is clicked */\n @Output()\n readonly clicked: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__content')\n cxNestedListContentClass = true;\n\n /**\n * @hidden\n * Attribute controlled by the parent `NestedItemComponent`\n */\n @HostBinding('class.has-child')\n hasChildren = false;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n nestedLink: NestedLinkComponent;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent)\n nestedExpandIcon: NestedListExpandIconComponent;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _renderer: Renderer2,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._makeLinkUnFocusable();\n this._setFocusSubscription();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.onDestroy$.next();\n this.onDestroy$.complete();\n }\n\n /** Keyboard Event Handler */\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent): void {\n this.keyboardTriggered.emit(event);\n this._itemService.keyDown.next(event);\n }\n\n /** Handler for mouse events */\n @HostListener('click', ['$event'])\n onClick(): void {\n this._itemService.click.next();\n }\n\n /** Method to trigger selected state change */\n changeSelected(selected: boolean): void {\n this.selected = selected;\n this.selectedChange.emit(selected);\n }\n\n /** Set focus on the element. */\n focus(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /** Dispatches the click event on the element */\n click(): void {\n this.focus();\n if (this.nestedLink) {\n this.nestedLink.click();\n }\n }\n\n /** Add subscription for child focusing */\n private _setFocusSubscription(): void {\n this._itemService.focus.pipe(takeUntil(this.onDestroy$)).subscribe(() => this.focus());\n }\n\n /** Hide link child element from tab key */\n private _makeLinkUnFocusable(): void {\n if (this.nestedLink) {\n this.nestedLink.elementRef.nativeElement.tabIndex = -1;\n this.changeDetRef.detectChanges();\n }\n }\n}\n","import {\n AfterContentInit,\n ContentChild,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n forwardRef\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemInterface } from './nested-item.interface';\nimport { NestedItemService } from './nested-item.service';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\nlet sideNavigationItemUniqueId = 0;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]',\n template: ` <ng-content></ng-content> `,\n providers: [NestedItemService],\n host: {\n role: 'treeitem'\n }\n})\nexport class NestedItemComponent implements AfterContentInit, NestedItemInterface, OnDestroy {\n /** Whether item should be expanded */\n @Input() set expanded(expanded: boolean) {\n if (expanded !== this._expanded) {\n this.propagateOpenChange(expanded);\n }\n }\n\n /** @hidden */\n get expanded(): boolean {\n return this._expanded;\n }\n\n /** Event thrown, when expanded state is changed */\n @Output()\n readonly expandedChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** Event thrown, when any keyboard event is dispatched on this, or link element */\n @Output()\n readonly keyboardTriggered: EventEmitter<KeyboardEvent> = new EventEmitter<KeyboardEvent>();\n\n /** @hidden */\n @Input()\n @HostBinding('class.fdx-nested-list__item')\n fdNestedListItemClass = true;\n\n /** Whether this item is a header item. */\n @Input()\n @HostBinding('class.fdx-nested-list__item--header')\n header = false;\n\n /** Whether this item is only meant for display purposes, meaning it cannot be used for navigation or shown as selected. */\n @Input()\n display = false;\n\n /**\n * @hidden\n * Reference to the link directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedLinkComponent)\n linkItem: NestedLinkComponent;\n\n /**\n * @hidden\n * Mostly used, when this item has list\n * Reference to the content directive, to allow manipulating the properties of this element.\n */\n @ContentChild(NestedListContentDirective)\n contentItem: NestedListContentDirective;\n\n /** @hidden */\n @ContentChild(NestedListExpandIconComponent, { descendants: true })\n expandIcon: NestedListExpandIconComponent;\n\n /** @hidden */\n @ContentChild(forwardRef(() => NestedListComponent))\n _nestedList: NestedListComponent;\n\n /** @hidden */\n @HostBinding('attr.aria-level')\n _ariaLevel: Nullable<number> = null;\n\n /** @hidden */\n @HostBinding('attr.title')\n _title: string;\n\n /** @hidden */\n @HostBinding('style.display')\n _display = 'block';\n\n /** @hidden */\n _narrow = false;\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role: string;\n\n /** @hidden */\n private _expanded = false;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n private _ariaExpanded: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n private _ariaSelected: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n private _ariaDisabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n private _ariaLabel: string;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n private _ariaHidden = true;\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** Unique element ID */\n private readonly _elementId: string = 'fdNestedItem' + sideNavigationItemUniqueId++;\n\n /** @hidden */\n constructor(\n private _itemService: NestedItemService,\n private _keyboardService: NestedListKeyboardService,\n private _stateService: NestedListStateService,\n public elementRef: ElementRef\n ) {}\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setUpSubscriptions();\n this._propagateHasChildrenProperty();\n this._passItemReferences();\n /** Propagate initial open state to children */\n this.propagateOpenChange(this._expanded);\n\n if (this.linkItem) {\n this._ariaSelected = this.linkItem.selected;\n this._ariaDisabled = !this._stateService.selectable && !this.linkItem.selected;\n this._title = this.linkItem.getTitle();\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /** Check if the item element has any child */\n get hasChildren(): boolean {\n return !!this._itemService?.list;\n }\n\n /** Get all of the children item elements */\n get allChildrenItems(): NestedItemInterface[] {\n if (this._itemService?.list) {\n return this._itemService.list.nestedItems.toArray();\n }\n\n return [];\n }\n\n /** Method that expand the item and propagate it to children */\n triggerOpen(): void {\n if (!this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(true);\n }\n }\n\n /** Method that close the item and propagate it to children */\n triggerClose(): void {\n if (this.expanded) {\n /** Propagate initial open state to children */\n this.propagateOpenChange(false);\n }\n }\n\n /** Method that toggle the item and propagate it to children */\n toggle(): void {\n /** Propagate initial open state to children */\n this.propagateOpenChange(!this._expanded);\n }\n\n /** Method that dispatches `click` event on link item*/\n click(): void {\n if (!this.display) {\n if (this.contentItem) {\n this.contentItem.click();\n } else if (this.linkItem) {\n this.linkItem.click();\n }\n }\n }\n\n /** Method that focuses link item*/\n focus(): void {\n if (this.contentItem) {\n this.contentItem.focus();\n } else if (this.linkItem) {\n this.linkItem.focus();\n }\n }\n\n /** Method that provides information if element, or children of this element has passed id */\n containsId(id: string): boolean {\n if (this._elementId === id) {\n return true;\n }\n\n if (this._itemService.list) {\n return !!this._itemService.list.nestedItems.find((item) => item.containsId(id));\n }\n\n return false;\n }\n\n /**\n * @hidden\n * Propagate open state to all of the children\n */\n private propagateOpenChange(open: boolean): void {\n this._expanded = open;\n\n if (this.hasChildren) {\n this._ariaExpanded = this._expanded;\n }\n\n this.expandIcon?.changeExpandedState(open);\n\n /** Propagate hidden flag to list component, that is passed from child */\n if (this._itemService.list) {\n this._itemService.list.hidden = !open;\n this._itemService.list.detectChanges();\n }\n\n /** Propagate open flag to popover list component, that is passed from child */\n if (this._itemService.popover) {\n this._itemService.popover.open = open;\n }\n\n /**\n * If there are any list below\n * Trigger event to provide keyboard support to new list of opened item element.\n * */\n if (this._shouldRefreshKeyboardService()) {\n this._keyboardService.refresh$.next();\n }\n\n this.expandedChange.emit(open);\n }\n\n /** @hidden */\n private _shouldRefreshKeyboardService(): boolean {\n return !!(this._itemService.popover || this._itemService.list || this.contentItem);\n }\n\n /** @hidden */\n private _setUpSubscriptions(): void {\n if (this._stateService.condensed) {\n this._role = 'menuitemradio';\n }\n\n if (!this.display) {\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.toggle.pipe(takeUntil(this._onDestroy$)).subscribe(() => this.toggle());\n\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.click\n .pipe(takeUntil(this._onDestroy$))\n .subscribe(() => this._stateService.onSelected.next(this._elementId));\n }\n\n /** Subscribe to keyboard event and throw it farther */\n this._itemService.keyDown\n .pipe(takeUntil(this._onDestroy$))\n .subscribe((keyboardEvent) => this.keyboardTriggered.emit(keyboardEvent));\n\n /** Subscribe to selected state change, it's not triggered, when selectable flag is disabled*/\n this._stateService.onSelected\n .pipe(\n takeUntil(this._onDestroy$),\n filter(() => this._stateService.selectable)\n )\n .subscribe((id) => this._selectedChange(id));\n }\n\n /** @hidden */\n private _propagateHasChildrenProperty(): void {\n if (this.contentItem && this.hasChildren) {\n this._ariaExpanded = false;\n this.contentItem.hasChildren = true;\n this.contentItem.changeDetRef.detectChanges();\n }\n }\n\n /** Pass this element to popover child item, to allow control `expanded` value */\n private _passItemReferences(): void {\n if (this._itemService.popover) {\n this._itemService.popover.parentItemElement = this;\n }\n }\n\n /** Change of selected state of content or link, if there is any children with I */\n private _selectedChange(id: string): void {\n const selected = this.containsId(id);\n this._ariaSelected = selected;\n\n if (this.contentItem) {\n this.contentItem.changeSelected(selected);\n } else if (this.linkItem) {\n this.linkItem.changeSelected(selected);\n }\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ContentChild,\n ContentChildren,\n ElementRef,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n Optional,\n QueryList,\n Component\n} from '@angular/core';\nimport { combineLatest, Observable, startWith, Subscription } from 'rxjs';\n\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListInterface } from './nested-list.interface';\nimport { NestedListHeaderDirective } from '../nested-list-directives';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\n\n@Component({\n template: ` <ng-content></ng-content> `,\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[cxNestedList], [fdx-nested-list], ul[fdx-nested-list]',\n providers: [contentDensityObserverProviders()]\n})\nexport class NestedListComponent implements AfterContentInit, NestedListInterface, OnDestroy {\n /** In case the user wants to no use icons for items in this list */\n @Input()\n @HostBinding('class.fdx-nested-list--text-only')\n textOnly = false;\n\n /** Aria defines role description for the Nested List Tree. */\n @Input()\n ariaRoledescriptionTree = 'Navigation List Tree';\n\n /** Aria defines role description for the Nested List MenuBar. */\n @Input()\n ariaRoledescriptionMenuBar = 'Navigation List Menu Bar';\n\n /** Aria defines aria label for the selected item when the list with disabled selection. */\n @Input()\n ariaLabelSelected = 'Selected';\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list')\n fdNestedListItemClass = true;\n\n /** @hidden */\n @HostBinding('attr.aria-hidden')\n hidden = false;\n\n /**\n * @hidden\n * This variable is mostly to keep track of this list's children. There is not usage of it inside this directive,\n * but it's used by services and NestedItemComponent by itself,\n */\n @ContentChildren(forwardRef(() => NestedItemComponent))\n nestedItems: QueryList<NestedItemComponent>;\n\n /** @hidden */\n @ContentChild(NestedListHeaderDirective)\n private _nestedListHeader: NestedListHeaderDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => NestedListComponent), { descendants: true })\n private _nestedLists: QueryList<NestedListComponent>;\n\n /** @hidden */\n private _nestedItemsChangesSubscription = new Subscription();\n\n /** @hidden */\n @HostBinding('attr.role')\n private _role = 'tree';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n private _ariaRoledescription: Nullable<string> = this.ariaRoledescriptionTree;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n private _ariaHaspopup: Nullable<string> = null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n private _tabindex = '-1';\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n @Optional() private _nestedItemService: NestedItemService,\n private _nestedListStateService: NestedListStateService,\n private _nestedListKeyboardService: NestedListKeyboardService,\n private _elementRef: ElementRef,\n private _changeDetectionRef: ChangeDetectorRef,\n @Inject(FD_LANGUAGE) private _language$: Observable<FdLanguage>,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n if (this._nestedItemService) {\n this._nestedItemService.list = this;\n }\n _contentDensityObserver.subscribe();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._handleNestedLevel();\n }\n\n /** @hidden */\n detectChanges(): void {\n this._changeDetectionRef.markForCheck();\n }\n\n /** @hidden */\n private _handleNestedLevel(): void {\n this._nestedItemsChangesSubscription.unsubscribe();\n\n const nestedLevel: number = this._getNestedLevel();\n\n this._setAccessibilityProperties(nestedLevel);\n\n const itemChangesSub = combineLatest([\n this._language$,\n this.nestedItems.changes.pipe(startWith(undefined))\n ]).subscribe(([lang]) => {\n this._nestedListKeyboardService.refresh$.next();\n this._setAriaAttributes(nestedLevel, lang);\n /** Adding class with the nested level */\n this._elementRef.nativeElement.classList.add('level-' + nestedLevel);\n });\n\n this._nestedItemsChangesSubscription.add(itemChangesSub);\n }\n\n /**\n * @hidden\n * Method, that checks how deep is the list element\n */\n private _getNestedLevel(): number {\n let element = this._elementRef.nativeElement;\n const parentElements: Element[] = [];\n\n /** Method that gathers all the parentNode elements of current NestedListComponent element */\n while (element.parentNode) {\n parentElements.unshift(element);\n element = element.parentNode;\n }\n\n /** Filter only elements, that has `fdx-nested-list` directive attribute */\n const filteredParentElements = parentElements.filter((_element) => _element.hasAttribute('fdx-nested-list'));\n\n let retVal = filteredParentElements.length;\n\n if (this._nestedItemService?.popover) {\n retVal += 1;\n }\n\n return retVal;\n }\n\n /** @hidden */\n private _setAriaAttributes(level: number, lang: FdLanguage): void {\n this.nestedItems.forEach((item, i) => {\n item._ariaLevel = level;\n if (!item.linkItem) {\n return;\n } else {\n item.linkItem.ariaDescribedby = this._nestedListHeader?.id || null;\n item.linkItem._ariaLabel = this._translationResolver.resolve(lang, 'coreNestedList.linkItemAriaLabel', {\n itemDetails: item.linkItem.getTitle(),\n index: i + 1,\n total: this.nestedItems.length,\n selectedDescription:\n !this._nestedListStateService.selectable && item.linkItem.selected\n ? ', ' + this.ariaLabelSelected\n : ''\n });\n }\n });\n\n this._changeDetectionRef.detectChanges();\n }\n\n /** @hidden */\n private _setAccessibilityProperties(level: number): void {\n if (this._nestedListStateService.condensed && level === 1) {\n this._ariaRoledescription = this.ariaRoledescriptionMenuBar;\n }\n\n if (level > 1 || (this._nestedItemService?.popover && !this._nestedListStateService.condensed)) {\n this._role = 'group';\n this._ariaRoledescription = null;\n }\n\n if (this._nestedItemService?.popover) {\n this._ariaHaspopup = 'tree';\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { map } from 'rxjs/operators';\nimport { NestedItemInterface } from '../nested-item/nested-item.interface';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListPopoverInterface } from './nested-list-popover.interface';\nimport { RtlService } from '@fundamental-ngx/core/utils';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\n\n@Component({\n selector: 'fdx-nested-list-popover',\n templateUrl: './nested-list-popover.component.html',\n styleUrls: ['./nested-list-popover.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NestedListPopoverComponent implements NestedListPopoverInterface, OnInit {\n /** @hidden */\n @ViewChild(PopoverComponent)\n popoverComponent: PopoverComponent;\n\n /** @hidden */\n @HostBinding('class.fdx-nested-list__popover')\n popoverClass = true;\n\n /** @hidden */\n @ContentChild(NestedLinkComponent)\n linkDirective: NestedLinkComponent;\n\n /**\n * @hidden\n * Reference to parent item, to propagate open and close change from popover.\n */\n parentItemElement: NestedItemInterface;\n\n /** @hidden */\n placement$: Observable<Placement>;\n\n /** @hidden */\n open = false;\n\n /** @hidden */\n _closeScrollStrategy: ScrollStrategy;\n\n /** @hidden */\n constructor(\n private _keyboardNestService: NestedListKeyboardService,\n @Optional() private _itemService: NestedItemService,\n @Optional() private _rtlService: RtlService,\n private _overlay: Overlay\n ) {\n this._listenOnKeyboardRefresh();\n this._createRtlObservable();\n if (this._itemService) {\n this._itemService.popover = this;\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._closeScrollStrategy = this._overlay.scrollStrategies.close();\n }\n\n /**\n * Method called, when open state is changed, from popover component (escape key, outside click).\n */\n handleOpenChange(open: boolean): void {\n this.open = open;\n if (this.parentItemElement) {\n if (open) {\n this.parentItemElement.triggerOpen();\n } else {\n this.parentItemElement.triggerClose();\n }\n }\n }\n\n /** @hidden */\n private _listenOnKeyboardRefresh(): void {\n this._keyboardNestService.refresh$.subscribe(() => {\n /** Update popover position, on list of hidden items change */\n if (this.popoverComponent) {\n this.popoverComponent.refreshPosition();\n }\n });\n }\n\n /** @hidden */\n private _createRtlObservable(): void {\n this.placement$ = this._rtlService\n ? this._rtlService.rtl.pipe(map((isRtl) => (isRtl ? 'left-start' : 'right-start')))\n : of('right-start');\n }\n}\n","<fd-popover\n [placement]=\"placement$ | async\"\n [triggers]=\"['click']\"\n [noArrow]=\"false\"\n [isOpen]=\"open\"\n (isOpenChange)=\"handleOpenChange($event)\"\n [scrollStrategy]=\"_closeScrollStrategy\"\n>\n <fd-popover-control>\n <ng-content select=\"[fdx-nested-list-link]\"></ng-content>\n <ng-content select=\"[fdx-nested-list-content]\"></ng-content>\n </fd-popover-control>\n <fd-popover-body class=\"fdx-side-nav__popover-body fdx-nested-list--text-only\">\n <ng-content select=\"[fdx-nested-list]\"></ng-content>\n <ng-content select=\"fdx-prepared-nested-list\"></ng-content>\n </fd-popover-body>\n</fd-popover>\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedListItem, NestedListModel } from '../nested-list-model';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\n/**\n * Component for internal usage, allows to generate the nested list from defined object.\n */\n@Component({\n selector: 'fdx-prepared-nested-list',\n templateUrl: './prepared-nested-list.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PreparedNestedListComponent {\n /**\n * @hidden\n * For internal usage.\n * Defines if the component is first\n */\n @Input()\n first = true;\n\n /** Defines if list should be displayed in condensed mode */\n @Input()\n condensed = false;\n\n /** List configuration*/\n @Input()\n list: Nullable<NestedListModel>;\n\n /**\n * @hidden\n */\n @ViewChild(forwardRef(() => NestedListComponent))\n _nestedListComponent: NestedListComponent;\n\n /**\n * In prepared nested list, nested items should be taken as reference of View, not Content.\n * There is direct reference to these directives here.\n */\n get nestedListComponent(): NestedListComponent {\n return this._nestedListComponent;\n }\n\n /** @hidden */\n _expandedChange(expanded: boolean, item: NestedListItem): void {\n item.expanded = expanded;\n }\n}\n","<ul fdx-nested-list [textOnly]=\"!!list?.textOnly\">\n <ng-container *ngFor=\"let item of list?.items\">\n <li *ngIf=\"item.headerTitle\" fdx-nested-list-header>\n {{ item.headerTitle }}\n </li>\n <li\n *ngIf=\"!item.headerTitle\"\n fdx-nested-list-item\n [expanded]=\"!!item.expanded\"\n (expandedChange)=\"_expandedChange($event, item)\"\n >\n <fdx-nested-list-popover *ngIf=\"condensed && first && item.list\" [title]=\"item.link?.title || ''\">\n <div fdx-nested-list-content [selected]=\"!!item.link?.selected\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </fdx-nested-list-popover>\n\n <ng-container *ngIf=\"!item.list\">\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"(!condensed || !first) && item.list\">\n <div fdx-nested-list-content>\n <ng-container [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-container>\n <button fdx-nested-list-expand-icon></button>\n </div>\n <fdx-prepared-nested-list\n [first]=\"false\"\n *ngIf=\"item.list\"\n [list]=\"item.list\"\n ></fdx-prepared-nested-list>\n </ng-container>\n\n <ng-template let-item=\"item\" #link>\n <a\n fdx-nested-list-link\n *ngIf=\"item.link\"\n [onClickCallback]=\"item.link.callback\"\n [(selected)]=\"!item.list && item.link.selected\"\n [attr.href]=\"item.link.href ? item.link.href : null\"\n [routerLink]=\"item.link.routerLink ? item.link.routerLink : []\"\n >\n <span fdx-nested-list-icon *ngIf=\"item.link.icon\" [glyph]=\"item.link.icon\"></span>\n <span fdx-nested-list-title>{{ item.link.title }}</span>\n </a>\n </ng-template>\n </li>\n </ng-container>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { NestedListComponent } from './nested-list/nested-list.component';\nimport { NestedLinkComponent } from './nested-link/nested-link.component';\nimport { NestedItemComponent } from './nested-item/nested-item.component';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from './nested-list-directives';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { CommonModule } from '@angular/common';\nimport { NestedListKeyboardService } from './nested-list-keyboard.service';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { NestedListPopoverComponent } from './nested-list-popover/nested-list-popover.component';\nimport { PreparedNestedListComponent } from './prepared-nested-list/prepared-nested-list.component';\nimport { NestedListStateService } from './nested-list-state.service';\nimport { RouterModule } from '@angular/router';\nimport { NestedListContentDirective } from './nested-content/nested-list-content.directive';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\n@NgModule({\n imports: [CommonModule, PopoverModule, RouterModule, IconModule, ContentDensityModule],\n declarations: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective\n ],\n exports: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListContentDirective,\n NestedListButtonDirective,\n ContentDensityModule\n ],\n providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService]\n})\nexport class CxNestedListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NestedItemService","i2","i1","i2.NestedListKeyboardService","i3.NestedListStateService","i1.NestedListKeyboardService","i2.NestedItemService","i3","i4","i5","i6","i6.NestedListExpandIconComponent","i8.NestedListContentDirective"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAIa,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAEI;;;AAGG;QACH,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAElB;;AAEG;QACH,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;AAGlB,QAAA,IAAA,CAAA,UAAU,GAAoB,IAAI,OAAO,EAAU,CAAC;AACvD,KAAA;;mHAdY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;uHAAtB,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;ACCX;MACa,iBAAiB,CAAA;AAA9B,IAAA,WAAA,GAAA;;AAOI,QAAA,IAAA,CAAA,MAAM,GAAqB,IAAI,OAAO,EAAW,CAAC;;AAGlD,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,OAAO,EAAQ,CAAC;;AAG3C,QAAA,IAAA,CAAA,KAAK,GAAkB,IAAI,OAAO,EAAQ,CAAC;;AAG3C,QAAA,IAAA,CAAA,OAAO,GAA2B,IAAI,OAAO,EAAiB,CAAC;KAClE;AAAA;;ACFD,IAAI,QAAQ,GAAG,CAAC,CAAC;MAKJ,yBAAyB,CAAA;;AAWlC,IAAA,WAAA,CAAoB,WAAuB,EAAA;QAAvB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAP3C,QAAA,IAAA,CAAA,EAAE,GAAkB,CAAA,6BAAA,EAAgC,EAAE,QAAQ,EAAE,CAAC;;QAIjE,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAC;KAGgB;;AAG/C,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;KACrD;;sHAhBQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0GAAzB,yBAAyB,EAAA,QAAA,EAAA,sDAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,qCAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sDAAsD;AACnE,iBAAA,CAAA;iGAKG,EAAE,EAAA,CAAA;sBAFD,KAAK;;sBACL,WAAW;uBAAC,SAAS,CAAA;gBAKtB,uBAAuB,EAAA,CAAA;sBADtB,WAAW;uBAAC,qCAAqC,CAAA;;AAiBhD,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AAL1D,IAAA,WAAA,GAAA;;;QASI,IAAI,CAAA,IAAA,GAAG,cAAc,CAAC;;QAItB,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;AAChC,KAAA;;oHATY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,0PAFtB,CAA2B,yBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAE5B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,QAAQ,EAAE,CAA2B,yBAAA,CAAA;AACxC,iBAAA,CAAA;8BAKG,IAAI,EAAA,CAAA;sBAFH,KAAK;;sBACL,WAAW;uBAAC,WAAW,CAAA;gBAKxB,qBAAqB,EAAA,CAAA;sBADpB,WAAW;uBAAC,6BAA6B,CAAA;;MAOjC,wBAAwB,CAAA;;AAMjC,IAAA,WAAA,CAAoB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;QAH1C,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;KAGgB;;IAG9C,YAAY,GAAA;QACR,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;KACvE;;qHAXQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,oDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oDAAoD;AACjE,iBAAA,CAAA;iGAIG,sBAAsB,EAAA,CAAA;sBADrB,WAAW;uBAAC,8BAA8B,CAAA;;MAuBlC,6BAA6B,CAAA;;AAMtC,IAAA,IACI,0BAA0B,GAAA;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;;AAGD,IAAA,IACI,2BAA2B,GAAA;AAC3B,QAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;KACzB;;AAkBD,IAAA,WAAA,CACY,YAA+B,EAC/B,aAAgC,EAChC,WAAuB,EACX,WAAuB,EAAA;QAHnC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAC/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmB;QAChC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACX,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;QAlC/C,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;AAc9B;;;AAGG;QAGH,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAYd,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACjC;;AAID,IAAA,OAAO,CAAC,KAAkB,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,KAAK,EAAE,eAAe,EAAE,CAAC;KAC5B;;IAID,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KAClC;;AAGD,IAAA,mBAAmB,CAAC,QAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;KACtC;;IAGO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;KAC/F;;0HAjEQ,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,6BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,wkBAR5B,CAA6B,2BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAQ9B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAXzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,yDAAyD;AACnE,oBAAA,QAAQ,EAAE,CAA6B,2BAAA,CAAA;AACvC,oBAAA,IAAI,EAAE;AACF,wBAAA,eAAe,EAAE,MAAM;AACvB,wBAAA,IAAI,EAAE,cAAc;AACvB,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACxC,iBAAA,CAAA;;0BAsCQ,QAAQ;4CAlCb,sBAAsB,EAAA,CAAA;sBADrB,WAAW;uBAAC,8BAA8B,CAAA;gBAKvC,0BAA0B,EAAA,CAAA;sBAD7B,WAAW;uBAAC,uCAAuC,CAAA;gBAOhD,2BAA2B,EAAA,CAAA;sBAD9B,WAAW;uBAAC,wCAAwC,CAAA;gBAWrD,QAAQ,EAAA,CAAA;sBAFP,WAAW;uBAAC,mBAAmB,CAAA;;sBAC/B,WAAW;uBAAC,oBAAoB,CAAA;gBAKjC,UAAU,EAAA,CAAA;sBADT,WAAW;uBAAC,kBAAkB,CAAA;gBAkB/B,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBASjC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;MAoBZ,yBAAyB,CAAA;AAHtC,IAAA,WAAA,GAAA;;QAMI,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAC;AAsBlC,KAAA;;AAZG,IAAA,OAAO,CAAC,KAAY,EAAA;QAChB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC9B;;IAGD,kBAAkB,GAAA;QACd,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACnD,SAAA;KACJ;;sHAxBQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,mVAMpB,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FANlC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sDAAsD;AACnE,iBAAA,CAAA;8BAIG,uBAAuB,EAAA,CAAA;sBADtB,WAAW;uBAAC,+BAA+B,CAAA;gBAK5C,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,6BAA6B,CAAA;gBAO3C,OAAO,EAAA,CAAA;sBAHN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAChC,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBACxC,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCpIhC,mBAAmB,CAAA;;AA+C5B,IAAA,WAAA,CACW,YAA+B,EAC9B,SAAoB,EACpB,WAAuB,EACvB,YAA+B,EAAA;QAHhC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAC9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;;QA3C3C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;AAajB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;;QAIpE,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;;QAI7B,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KAuBd;;AAGJ,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;AAID,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;;IAID,OAAO,GAAA;QACH,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AAC9B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1B,aAAA;AACJ,SAAA;KACJ;;IAID,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KAClC;;AAGD,IAAA,cAAc,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC1C;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC1C;;IAGD,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;KAClD;;AAGD,IAAA,IAAY,aAAa,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,WAAW,CAAC;KACtD;;gHA5GQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,qsBAmCd,wBAAwB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIxB,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIzB,6BAA6B,EAhEjC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;AAaT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAQQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtB/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;AAaT,IAAA,CAAA;oBACD,QAAQ;;oBAEJ,0GAA0G;AAC9G,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,6BAA6B;AACnD,qBAAA;AACJ,iBAAA,CAAA;sLAIG,eAAe,EAAA,CAAA;sBADd,KAAK;gBAMN,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,mBAAmB,CAAA;gBAKhC,UAAU,EAAA,CAAA;sBADT,WAAW;uBAAC,iBAAiB,CAAA;gBAM9B,eAAe,EAAA,CAAA;sBAFd,KAAK;;sBACL,WAAW;uBAAC,uBAAuB,CAAA;gBAKpC,cAAc,EAAA,CAAA;sBADb,MAAM;gBAKP,qBAAqB,EAAA,CAAA;sBADpB,WAAW;uBAAC,6BAA6B,CAAA;gBAK1C,IAAI,EAAA,CAAA;sBADH,WAAW;uBAAC,WAAW,CAAA;gBAQxB,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,wBAAwB,CAAA;gBAKtC,iBAAiB,EAAA,CAAA;sBADhB,YAAY;uBAAC,yBAAyB,CAAA;gBAKvC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,6BAA6B,CAAA;gBAkB3C,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAOnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;gBAcrB,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;AC7GzB;;;AAGG;MAEU,yBAAyB,CAAA;;IAWlC,WACyC,CAAA,eAAoC,EACrD,WAA8B,EAAA;QADb,IAAe,CAAA,eAAA,GAAf,eAAe,CAAqB;QACrD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;;QAX9C,IAAI,CAAA,IAAA,GAAyB,KAAK,CAAC;AAE3C;;;AAGG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAkB,IAAI,OAAO,EAAQ,CAAC;QAOnD,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;AAED;;;AAGG;AACH,IAAA,YAAY,CAAC,KAA4B,EAAA;QACrC,MAAM,KAAK,GAA0B,EAAE,CAAC;;QAGxC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;QAEpE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AAC1B,YAAA,IAAI,CAAC,iBAAiB;AACjB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,iBAAA,SAAS,CAAC,CAAC,aAA4B,KAAK,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AACvG,SAAC,CAAC,CAAC;KACN;;AAGO,IAAA,SAAS,CAAC,IAAyB,EAAA;AACvC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QACjE,OAAO,aAAa,CAAC,MAAM,CACvB,CAAC,WAAkC,EAAE,QAA6B,KAAK;AACnE,YAAA,GAAG,WAAW;AACd,YAAA,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AAC9B,SAAA,EACD,CAAC,IAAI,CAAC,CACT,CAAC;KACL;;AAGO,IAAA,gBAAgB,CAAC,IAAyB,EAAA;QAC9C,MAAM,MAAM,GAA0B,EAAE,CAAC;AACzC,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACzD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACzC,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AAED;;;;;;AAMG;AACK,IAAA,cAAc,CAAC,aAA4B,EAAE,KAAa,EAAE,KAA4B,EAAA;AAC5F,QAAA,MAAM,IAAI,GAAwB,KAAK,CAAC,KAAK,CAAC,CAAC;AAE/C,QAAA,IACI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC;AACrE,aAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,EACvE;YACE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;AACtB,aAAA;YACD,aAAa,CAAC,cAAc,EAAE,CAAC;AAClC,SAAA;AAED,QAAA,IACI,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;AACpE,aAAC,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,EACxE;AACE,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;gBACnC,IAAI,CAAC,YAAY,EAAE,CAAC;AACvB,aAAA;YACD,aAAa,CAAC,cAAc,EAAE,CAAC;AAClC,SAAA;QAED,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KACpE;;IAGO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,OAAO;AACV,SAAA;QAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACrC,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AACtC,SAAC,CAAC,CAAC;KACN;;AArGQ,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBAYtB,mBAAmB,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;0HAZtB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;0BAaF,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,QAAQ;;;MCDJ,0BAA0B,CAAA;;AAiDnC,IAAA,WAAA,CACW,YAA+B,EAC9B,SAAoB,EACpB,WAAuB,EACvB,YAA+B,EAAA;QAHhC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAC9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;;QAjD3C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;;QAIlB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AAIrB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;;AAI3D,QAAA,IAAA,CAAA,iBAAiB,GAAgC,IAAI,YAAY,EAAiB,CAAC;;AAInF,QAAA,IAAA,CAAA,OAAO,GAA6B,IAAI,YAAY,EAAc,CAAC;;QAI5E,IAAwB,CAAA,wBAAA,GAAG,IAAI,CAAC;AAEhC;;;AAGG;QAEH,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;AAWH,QAAA,IAAA,CAAA,UAAU,GAAkB,IAAI,OAAO,EAAQ,CAAC;KAQ7D;;IAGJ,kBAAkB,GAAA;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,qBAAqB,EAAE,CAAC;KAChC;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;KAC9B;;AAID,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;;IAID,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KAClC;;AAGD,IAAA,cAAc,CAAC,QAAiB,EAAA;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC1C;;IAGD,KAAK,GAAA;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AAC3B,SAAA;KACJ;;IAGO,qBAAqB,GAAA;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAC1F;;IAGO,oBAAoB,GAAA;QACxB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;AACrC,SAAA;KACJ;;uHA/GQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,GAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,gCAAA,EAAA,+BAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAsCrB,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAInB,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FA1ClC,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBANtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,IAAI,EAAE;AACF,wBAAA,QAAQ,EAAE,GAAG;AAChB,qBAAA;AACJ,iBAAA,CAAA;sLAKG,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,mBAAmB,CAAA;gBAKhC,IAAI,EAAA,CAAA;sBADH,WAAW;uBAAC,WAAW,CAAA;gBAKxB,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,oBAAoB,CAAA;gBAKjC,cAAc,EAAA,CAAA;sBADb,MAAM;gBAKE,iBAAiB,EAAA,CAAA;sBADzB,MAAM;gBAKE,OAAO,EAAA,CAAA;sBADf,MAAM;gBAKP,wBAAwB,EAAA,CAAA;sBADvB,WAAW;uBAAC,gCAAgC,CAAA;gBAQ7C,WAAW,EAAA,CAAA;sBADV,WAAW;uBAAC,iBAAiB,CAAA;gBAK9B,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,mBAAmB,CAAA;gBAKjC,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,6BAA6B,CAAA;gBA4B3C,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAQnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AC7ErC,IAAI,0BAA0B,GAAG,CAAC,CAAC;MAWtB,mBAAmB,CAAA;;IAE5B,IAAa,QAAQ,CAAC,QAAiB,EAAA;AACnC,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACtC,SAAA;KACJ;;AAGD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AAgGD,IAAA,WAAA,CACY,YAA+B,EAC/B,gBAA2C,EAC3C,aAAqC,EACtC,UAAsB,EAAA;QAHrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAC/B,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA2B;QAC3C,IAAa,CAAA,aAAA,GAAb,aAAa,CAAwB;QACtC,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;;AAhGxB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;;AAIpE,QAAA,IAAA,CAAA,iBAAiB,GAAgC,IAAI,YAAY,EAAiB,CAAC;;QAK5F,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;;QAK7B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;QAIf,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QA2BhB,IAAU,CAAA,UAAA,GAAqB,IAAI,CAAC;;QAQpC,IAAQ,CAAA,QAAA,GAAG,OAAO,CAAC;;QAGnB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;;QAOR,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;;QAIlB,IAAa,CAAA,aAAA,GAAsB,IAAI,CAAC;;QAIxC,IAAa,CAAA,aAAA,GAAsB,IAAI,CAAC;;QAIxC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAQtB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;;AAGV,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAQ,CAAC;;AAGjD,QAAA,IAAA,CAAA,UAAU,GAAW,cAAc,GAAG,0BAA0B,EAAE,CAAC;KAQhF;;IAGJ,kBAAkB,GAAA;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;;AAE3B,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC/E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;AAC1C,SAAA;KACJ;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC/B;;AAGD,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC;KACpC;;AAGD,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;AACvD,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACb;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;AAEhB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAClC,SAAA;KACJ;;IAGD,YAAY,GAAA;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;;AAEf,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;KACJ;;IAGD,MAAM,GAAA;;QAEF,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7C;;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AAC5B,aAAA;iBAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACtB,gBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzB,aAAA;AACJ,SAAA;KACJ;;IAGD,KAAK,GAAA;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;AAC5B,SAAA;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AACzB,SAAA;KACJ;;AAGD,IAAA,UAAU,CAAC,EAAU,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YACxB,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAED;;;AAGG;AACK,IAAA,mBAAmB,CAAC,IAAa,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;AACvC,SAAA;AAED,QAAA,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;;AAG3C,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;YACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;AACtC,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1C,SAAA;;AAGD,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACzC,SAAA;AAED;;;AAGK;AACL,QAAA,IAAI,IAAI,CAAC,6BAA6B,EAAE,EAAE;AACtC,YAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzC,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClC;;IAGO,6BAA6B,GAAA;AACjC,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;KACtF;;IAGO,mBAAmB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;AAC9B,YAAA,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC;AAChC,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;YAEf,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;;YAG1F,IAAI,CAAC,YAAY,CAAC,KAAK;AAClB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,iBAAA,SAAS,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AAC7E,SAAA;;QAGD,IAAI,CAAC,YAAY,CAAC,OAAO;AACpB,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,aAAA,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;QAG9E,IAAI,CAAC,aAAa,CAAC,UAAU;AACxB,aAAA,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,MAAM,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAC9C;AACA,aAAA,SAAS,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;KACpD;;IAGO,6BAA6B,GAAA;AACjC,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC;AACpC,YAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;AACjD,SAAA;KACJ;;IAGO,mBAAmB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACtD,SAAA;KACJ;;AAGO,IAAA,eAAe,CAAC,EAAU,EAAA;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAE9B,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC7C,SAAA;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AAC1C,SAAA;KACJ;;gHA5SQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EALjB,QAAA,EAAA,kEAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,4BAAA,EAAA,qCAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,iBAAiB,CAAC,EA4ChB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EAQnB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,0BAA0B,EAI1B,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,6BAA6B,EAIZ,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,mBAAmB,oDA7DxC,CAA6B,2BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAM9B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,kEAAkE;AAC5E,oBAAA,QAAQ,EAAE,CAA6B,2BAAA,CAAA;oBACvC,SAAS,EAAE,CAAC,iBAAiB,CAAC;AAC9B,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA;AACJ,iBAAA,CAAA;qMAGgB,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAaG,cAAc,EAAA,CAAA;sBADtB,MAAM;gBAKE,iBAAiB,EAAA,CAAA;sBADzB,MAAM;gBAMP,qBAAqB,EAAA,CAAA;sBAFpB,KAAK;;sBACL,WAAW;uBAAC,6BAA6B,CAAA;gBAM1C,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,qCAAqC,CAAA;gBAKlD,OAAO,EAAA,CAAA;sBADN,KAAK;gBAQN,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,mBAAmB,CAAA;gBASjC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,0BAA0B,CAAA;gBAKxC,UAAU,EAAA,CAAA;sBADT,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,6BAA6B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAKlE,WAAW,EAAA,CAAA;sBADV,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAA;gBAKnD,UAAU,EAAA,CAAA;sBADT,WAAW;uBAAC,iBAAiB,CAAA;gBAK9B,MAAM,EAAA,CAAA;sBADL,WAAW;uBAAC,YAAY,CAAA;gBAKzB,QAAQ,EAAA,CAAA;sBADP,WAAW;uBAAC,eAAe,CAAA;gBAQpB,KAAK,EAAA,CAAA;sBADZ,WAAW;uBAAC,WAAW,CAAA;gBAQhB,aAAa,EAAA,CAAA;sBADpB,WAAW;uBAAC,oBAAoB,CAAA;gBAKzB,aAAa,EAAA,CAAA;sBADpB,WAAW;uBAAC,oBAAoB,CAAA;gBAKzB,aAAa,EAAA,CAAA;sBADpB,WAAW;uBAAC,oBAAoB,CAAA;gBAKzB,UAAU,EAAA,CAAA;sBADjB,WAAW;uBAAC,iBAAiB,CAAA;gBAKtB,WAAW,EAAA,CAAA;sBADlB,WAAW;uBAAC,kBAAkB,CAAA;;;MCpGtB,mBAAmB,CAAA;;AAiE5B,IAAA,WAAA,CACwB,kBAAqC,EACjD,uBAA+C,EAC/C,0BAAqD,EACrD,WAAuB,EACvB,mBAAsC,EACjB,UAAkC,EACvD,uBAA+C,EAAA;QANnC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QACjD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAA2B;QACrD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACvB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAmB;QACjB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAwB;QACvD,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;;QApE3D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIjB,IAAuB,CAAA,uBAAA,GAAG,sBAAsB,CAAC;;QAIjD,IAA0B,CAAA,0BAAA,GAAG,0BAA0B,CAAC;;QAIxD,IAAiB,CAAA,iBAAA,GAAG,UAAU,CAAC;;QAI/B,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;;QAI7B,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;;AAmBP,QAAA,IAAA,CAAA,+BAA+B,GAAG,IAAI,YAAY,EAAE,CAAC;;QAIrD,IAAK,CAAA,KAAA,GAAG,MAAM,CAAC;;AAIf,QAAA,IAAA,CAAA,oBAAoB,GAAqB,IAAI,CAAC,uBAAuB,CAAC;;QAItE,IAAa,CAAA,aAAA,GAAqB,IAAI,CAAC;;QAIvC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;AAGR,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAY9D,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,IAAI,CAAC;AACvC,SAAA;QACD,uBAAuB,CAAC,SAAS,EAAE,CAAC;KACvC;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,+BAA+B,CAAC,WAAW,EAAE,CAAC;KACtD;;IAGD,kBAAkB,GAAA;QACd,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;;IAGD,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;KAC3C;;IAGO,kBAAkB,GAAA;AACtB,QAAA,IAAI,CAAC,+BAA+B,CAAC,WAAW,EAAE,CAAC;AAEnD,QAAA,MAAM,WAAW,GAAW,IAAI,CAAC,eAAe,EAAE,CAAC;AAEnD,QAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC;QAE9C,MAAM,cAAc,GAAG,aAAa,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SACtD,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAI;AACpB,YAAA,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAChD,YAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;;AAE3C,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;AACzE,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KAC5D;AAED;;;AAGG;IACK,eAAe,GAAA;AACnB,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAC7C,MAAM,cAAc,GAAc,EAAE,CAAC;;QAGrC,OAAO,OAAO,CAAC,UAAU,EAAE;AACvB,YAAA,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAChC,YAAA,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC;AAChC,SAAA;;AAGD,QAAA,MAAM,sBAAsB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE7G,QAAA,IAAI,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC;AAE3C,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE;YAClC,MAAM,IAAI,CAAC,CAAC;AACf,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;;IAGO,kBAAkB,CAAC,KAAa,EAAE,IAAgB,EAAA;QACtD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;AACjC,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChB,OAAO;AACV,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,IAAI,CAAC;AACnE,gBAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,EAAE,kCAAkC,EAAE;AACnG,oBAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACrC,KAAK,EAAE,CAAC,GAAG,CAAC;AACZ,oBAAA,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;AAC9B,oBAAA,mBAAmB,EACf,CAAC,IAAI,CAAC,uBAAuB,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAC9D,0BAAE,IAAI,GAAG,IAAI,CAAC,iBAAiB;AAC/B,0BAAE,EAAE;AACf,iBAAA,CAAC,CAAC;AACN,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC;KAC5C;;AAGO,IAAA,2BAA2B,CAAC,KAAa,EAAA;QAC7C,IAAI,IAAI,CAAC,uBAAuB,CAAC,SAAS,IAAI,KAAK,KAAK,CAAC,EAAE;AACvD,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC;AAC/D,SAAA;AAED,QAAA,IAAI,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE;AAC5F,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AACrB,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE,OAAO,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAC/B,SAAA;KACJ;;AAnLQ,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,oMAuEhB,WAAW,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAvEd,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAFjB,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,2BAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,+BAA+B,EAAE,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAqChC,yBAAyB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAJL,mBAAmB,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAQnB,mBAAmB,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5C3C,CAA6B,2BAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAK9B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,CAA6B,2BAAA,CAAA;;AAEvC,oBAAA,QAAQ,EAAE,wDAAwD;AAClE,oBAAA,SAAS,EAAE,CAAC,+BAA+B,EAAE,CAAC;AACjD,iBAAA,CAAA;;0BAmEQ,QAAQ;;0BAKR,MAAM;2BAAC,WAAW,CAAA;iFAnEvB,QAAQ,EAAA,CAAA;sBAFP,KAAK;;sBACL,WAAW;uBAAC,kCAAkC,CAAA;gBAK/C,uBAAuB,EAAA,CAAA;sBADtB,KAAK;gBAKN,0BAA0B,EAAA,CAAA;sBADzB,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,qBAAqB,EAAA,CAAA;sBADpB,WAAW;uBAAC,uBAAuB,CAAA;gBAKpC,MAAM,EAAA,CAAA;sBADL,WAAW;uBAAC,kBAAkB,CAAA;gBAS/B,WAAW,EAAA,CAAA;sBADV,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAA;gBAK9C,iBAAiB,EAAA,CAAA;sBADxB,YAAY;uBAAC,yBAAyB,CAAA;gBAK/B,YAAY,EAAA,CAAA;sBADnB,eAAe;uBAAC,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAQrE,KAAK,EAAA,CAAA;sBADZ,WAAW;uBAAC,WAAW,CAAA;gBAKhB,oBAAoB,EAAA,CAAA;sBAD3B,WAAW;uBAAC,2BAA2B,CAAA;gBAKhC,aAAa,EAAA,CAAA;sBADpB,WAAW;uBAAC,oBAAoB,CAAA;gBAKzB,SAAS,EAAA,CAAA;sBADhB,WAAW;uBAAC,eAAe,CAAA;;;MC7DnB,0BAA0B,CAAA;;AA6BnC,IAAA,WAAA,CACY,oBAA+C,EACnC,YAA+B,EAC/B,WAAuB,EACnC,QAAiB,EAAA;QAHjB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA2B;QACnC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAmB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACnC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;;QA1B7B,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;;QAgBpB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QAYT,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;AACpC,SAAA;KACJ;;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;KACtE;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,IAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;AACxC,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACzC,aAAA;AACJ,SAAA;KACJ;;IAGO,wBAAwB,GAAA;QAC5B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAK;;YAE9C,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;AAC3C,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;IAGO,oBAAoB,GAAA;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;AAC9B,cAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,KAAK,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC;AACnF,cAAE,EAAE,CAAC,aAAa,CAAC,CAAC;KAC3B;;uHA5EQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAUrB,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EARtB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,gDChC/B,+qBAiBA,EAAA,MAAA,EAAA,CAAA,mdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FDaa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,iBAGpB,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+qBAAA,EAAA,MAAA,EAAA,CAAA,mdAAA,CAAA,EAAA,CAAA;;0BAiC1C,QAAQ;;0BACR,QAAQ;oEA7Bb,gBAAgB,EAAA,CAAA;sBADf,SAAS;uBAAC,gBAAgB,CAAA;gBAK3B,YAAY,EAAA,CAAA;sBADX,WAAW;uBAAC,gCAAgC,CAAA;gBAK7C,aAAa,EAAA,CAAA;sBADZ,YAAY;uBAAC,mBAAmB,CAAA;;;AEnCrC;;AAEG;MAOU,2BAA2B,CAAA;AANxC,IAAA,WAAA,GAAA;AAOI;;;;AAIG;QAEH,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;;QAIb,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAwBrB,KAAA;AAZG;;;AAGG;AACH,IAAA,IAAI,mBAAmB,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC;KACpC;;IAGD,eAAe,CAAC,QAAiB,EAAE,IAAoB,EAAA;AACnD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;;wHAlCQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAoBR,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,OAAA,mBAAmB,CClCnD,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,mkFAuDA,q1DDzCa,2BAA2B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,6BAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,iBAErB,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mkFAAA,EAAA,CAAA;8BAS/C,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;gBAKN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAON,oBAAoB,EAAA,CAAA;sBADnB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAA;;;MEoBvC,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBA5BvB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,uBAAuB;QACvB,wBAAwB;QACxB,yBAAyB;QACzB,0BAA0B;QAC1B,2BAA2B;QAC3B,6BAA6B;QAC7B,0BAA0B;QAC1B,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAZnB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAejF,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,uBAAuB;QACvB,wBAAwB;QACxB,yBAAyB;QACzB,0BAA0B;QAC1B,2BAA2B;QAC3B,6BAA6B;QAC7B,0BAA0B;QAC1B,yBAAyB;QACzB,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAIf,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,aAFhB,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,sBAAsB,CAAC,EAAA,OAAA,EAAA,CA5BzE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,EA0BjF,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAIf,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBA/B9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,oBAAoB,CAAC;AACtF,oBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,uBAAuB;wBACvB,wBAAwB;wBACxB,yBAAyB;wBACzB,0BAA0B;wBAC1B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,0BAA0B;wBAC1B,yBAAyB;AAC5B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,uBAAuB;wBACvB,wBAAwB;wBACxB,yBAAyB;wBACzB,0BAA0B;wBAC1B,2BAA2B;wBAC3B,6BAA6B;wBAC7B,0BAA0B;wBAC1B,yBAAyB;wBACzB,oBAAoB;AACvB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,sBAAsB,CAAC;AACtF,iBAAA,CAAA;;;ACrDD;;AAEG;;;;"}
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/cx",
3
- "version": "0.43.27",
3
+ "version": "0.43.29",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - cx",
6
6
  "license": "Apache-2.0",
@@ -20,11 +20,11 @@
20
20
  "@angular/forms": "^15.0.0",
21
21
  "@angular/platform-browser": "^15.0.0",
22
22
  "@angular/router": "^15.0.0",
23
- "@fundamental-ngx/core": "0.43.27",
23
+ "@fundamental-ngx/core": "0.43.29",
24
24
  "rxjs": "^7.8.0"
25
25
  },
26
26
  "dependencies": {
27
- "@fundamental-ngx/i18n": "0.43.27",
27
+ "@fundamental-ngx/i18n": "0.43.29",
28
28
  "@fundamental-styles/cx": "0.28.3",
29
29
  "@sap-theming/theming-base-content": "^11.6.0",
30
30
  "compare-versions": "^5.0.0",
Binary file