@fundamental-ngx/cx 0.61.2-rc.9 → 0.61.3

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.
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Input, Directive, Component, HostListener, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, EventEmitter, Output, inject, DestroyRef, Injectable, Injector, effect, ContentChildren, forwardRef, Optional, booleanAttribute, computed, ViewChild, NgModule } from '@angular/core';
2
+ import { HostBinding, Input, Directive, Component, HostListener, ViewEncapsulation, ChangeDetectionStrategy, ContentChild, EventEmitter, Output, inject, DestroyRef, Injectable, ContentChildren, forwardRef, Optional, Inject, booleanAttribute, computed, ViewChild, NgModule } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import { Subject, startWith } from 'rxjs';
4
+ import * as i4 from 'rxjs';
5
+ import { Subject, combineLatest, startWith } from 'rxjs';
5
6
  import { NgTemplateOutlet } from '@angular/common';
6
7
  import { IconComponent } from '@fundamental-ngx/core/icon';
7
8
  import { takeUntil, filter } from 'rxjs/operators';
@@ -9,7 +10,7 @@ import { RIGHT_ARROW, LEFT_ARROW } from '@angular/cdk/keycodes';
9
10
  import { RtlService, KeyUtil } from '@fundamental-ngx/cdk/utils';
10
11
  import { MenuKeyboardService } from '@fundamental-ngx/core/menu';
11
12
  import { ContentDensityObserver, contentDensityObserverProviders, ContentDensityModule } from '@fundamental-ngx/core/content-density';
12
- import { TranslationResolver, FD_LANGUAGE_SIGNAL } from '@fundamental-ngx/i18n';
13
+ import { TranslationResolver, FD_LANGUAGE } from '@fundamental-ngx/i18n';
13
14
  import * as i3 from '@angular/cdk/overlay';
14
15
  import { PopoverComponent, PopoverControlComponent, PopoverBodyComponent, PopoverModule } from '@fundamental-ngx/core/popover';
15
16
  import * as i1 from '@angular/router';
@@ -615,12 +616,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
615
616
 
616
617
  class NestedListComponent {
617
618
  /** @hidden */
618
- constructor(_nestedItemService, _nestedListStateService, _nestedListKeyboardService, _elementRef, _changeDetectionRef) {
619
+ constructor(_nestedItemService, _nestedListStateService, _nestedListKeyboardService, _elementRef, _changeDetectionRef, _language$) {
619
620
  this._nestedItemService = _nestedItemService;
620
621
  this._nestedListStateService = _nestedListStateService;
621
622
  this._nestedListKeyboardService = _nestedListKeyboardService;
622
623
  this._elementRef = _elementRef;
623
624
  this._changeDetectionRef = _changeDetectionRef;
625
+ this._language$ = _language$;
624
626
  /** In case the user wants to no use icons for items in this list */
625
627
  this.textOnly = false;
626
628
  /** Aria defines role description for the Nested List Tree. */
@@ -645,10 +647,6 @@ class NestedListComponent {
645
647
  this._destroyRef = inject(DestroyRef);
646
648
  /** @hidden */
647
649
  this._translationResolver = new TranslationResolver();
648
- /** @hidden */
649
- this._langSignal = inject(FD_LANGUAGE_SIGNAL);
650
- /** @hidden */
651
- this._injector = inject(Injector);
652
650
  if (this._nestedItemService) {
653
651
  this._nestedItemService.list = this;
654
652
  }
@@ -666,15 +664,9 @@ class NestedListComponent {
666
664
  _handleNestedLevel() {
667
665
  const nestedLevel = this._getNestedLevel();
668
666
  this._setAccessibilityProperties(nestedLevel);
669
- // Register effect with explicit injector context
670
- effect(() => {
671
- const lang = this._langSignal();
672
- this._nestedListKeyboardService.refresh$.next();
673
- this._setAriaAttributes(nestedLevel, lang);
674
- }, { injector: this._injector });
675
- // React to nested items changes
676
- this.nestedItems.changes.pipe(startWith(undefined), takeUntilDestroyed(this._destroyRef)).subscribe(() => {
677
- const lang = this._langSignal();
667
+ combineLatest([this._language$, this.nestedItems.changes.pipe(startWith(undefined))])
668
+ .pipe(takeUntilDestroyed(this._destroyRef))
669
+ .subscribe(([lang]) => {
678
670
  this._nestedListKeyboardService.refresh$.next();
679
671
  this._setAriaAttributes(nestedLevel, lang);
680
672
  /** Adding class with the nested level */
@@ -735,7 +727,7 @@ class NestedListComponent {
735
727
  this._ariaHaspopup = 'tree';
736
728
  }
737
729
  }
738
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NestedListComponent, deps: [{ token: NestedItemService, optional: true }, { token: NestedListStateService }, { token: NestedListKeyboardService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
730
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NestedListComponent, deps: [{ token: NestedItemService, optional: true }, { token: NestedListStateService }, { token: NestedListKeyboardService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FD_LANGUAGE }], target: i0.ɵɵFactoryTarget.Component }); }
739
731
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: NestedListComponent, isStandalone: true, selector: "[cxNestedList], [fdx-nested-list], ul[fdx-nested-list]", inputs: { textOnly: "textOnly", ariaRoledescriptionTree: "ariaRoledescriptionTree", ariaRoledescriptionMenuBar: "ariaRoledescriptionMenuBar", ariaLabelSelected: "ariaLabelSelected" }, host: { properties: { "class.fdx-nested-list--text-only": "this.textOnly", "class.fdx-nested-list": "this.fdNestedListItemClass", "attr.aria-hidden": "this.hidden", "attr.role": "this._role", "attr.aria-roledescription": "this._ariaRoledescription", "attr.aria-haspopup": "this._ariaHaspopup", "attr.tabindex": "this._tabindex" } }, providers: [contentDensityObserverProviders()], queries: [{ propertyName: "_nestedListHeader", first: true, predicate: NestedListHeaderDirective, descendants: true }, { propertyName: "nestedItems", predicate: i0.forwardRef(() => NestedItemComponent) }, { propertyName: "_nestedLists", predicate: i0.forwardRef(() => NestedListComponent), descendants: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
740
732
  }
741
733
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NestedListComponent, decorators: [{
@@ -749,7 +741,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
749
741
  }]
750
742
  }], ctorParameters: () => [{ type: NestedItemService, decorators: [{
751
743
  type: Optional
752
- }] }, { type: NestedListStateService }, { type: NestedListKeyboardService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { textOnly: [{
744
+ }] }, { type: NestedListStateService }, { type: NestedListKeyboardService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i4.Observable, decorators: [{
745
+ type: Inject,
746
+ args: [FD_LANGUAGE]
747
+ }] }], propDecorators: { textOnly: [{
753
748
  type: Input
754
749
  }, {
755
750
  type: HostBinding,
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-cx-nested-list.mjs","sources":["../../../../libs/cx/nested-list/nested-item/nested-item.service.ts","../../../../libs/cx/nested-list/nested-list-directives.ts","../../../../libs/cx/nested-list/nested-link/nested-link.component.ts","../../../../libs/cx/nested-list/nested-content/nested-list-content.directive.ts","../../../../libs/cx/nested-list/nested-list-keyboard.service.ts","../../../../libs/cx/nested-list/nested-list-state.service.ts","../../../../libs/cx/nested-list/nested-list/nested-list.component.ts","../../../../libs/cx/nested-list/nested-item/nested-item.component.ts","../../../../libs/cx/nested-list/nested-list-popover/nested-list-popover.component.ts","../../../../libs/cx/nested-list/nested-list-popover/nested-list-popover.component.html","../../../../libs/cx/nested-list/prepared-nested-list/prepared-nested-list.component.ts","../../../../libs/cx/nested-list/prepared-nested-list/prepared-nested-list.component.html","../../../../libs/cx/nested-list/nested-list.module.ts","../../../../libs/cx/nested-list/fundamental-ngx-cx-nested-list.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { NestedListPopoverInterface } from '../nested-list-popover/nested-list-popover.interface';\nimport { NestedListInterface } from '../nested-list/nested-list.interface';\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 ViewEncapsulation\n} from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { NestedItemService } from './nested-item/nested-item.service';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[cxNestedDirectivesHeader], [fdx-nested-list-header]',\n standalone: true\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 constructor(\n private _itemService: NestedItemService,\n private _changeDetRef: ChangeDetectorRef\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\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListTitleDirective\n} from '../nested-list-directives';\n\n@Component({\n template: `\n @if (!_nestedListButton) {\n <div class=\"fdx-nested-list__link-container\">\n <ng-template [ngTemplateOutlet]=\"containerContent\"></ng-template>\n </div>\n }\n @if (_nestedListButton) {\n <a tabindex=\"0\" class=\"fdx-nested-list__link-container\">\n <ng-template [ngTemplateOutlet]=\"containerContent\"></ng-template>\n </a>\n }\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 imports: [NgTemplateOutlet],\n standalone: true,\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('attr.aria-selected')\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: Event): void {\n this._itemService.keyDown.next(event as KeyboardEvent);\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 DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\n@Directive({\n selector: '[cxNestedListContent], [fdx-nested-list-content]',\n standalone: true,\n host: {\n tabindex: '0'\n }\n})\nexport class NestedListContentDirective implements AfterContentInit {\n /** Whether this element is selected*/\n @Input()\n @HostBinding('attr.aria-selected')\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 /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\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')\n onClick(): void {\n this._itemService.click.next();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._makeLinkUnFocusable();\n this._setFocusSubscription();\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(takeUntilDestroyed(this._destroyRef)).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 { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { inject, Injectable } from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NestedItemInterface } from './nested-item/nested-item.interface';\nimport { NestedListInterface } from './nested-list/nested-list.interface';\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 /**\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 private readonly keyboardService = inject(MenuKeyboardService);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\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 const isRtl = this._rtlService?.rtl() ?? false;\n\n if (\n (!isRtl && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW)) ||\n (isRtl && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW))\n ) {\n if (!item.expanded && item.hasChildren) {\n item.triggerOpen();\n }\n keyboardEvent.preventDefault();\n }\n\n if (\n (!isRtl && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW)) ||\n (isRtl && 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","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 ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n Injector,\n Input,\n Optional,\n QueryList,\n effect,\n forwardRef,\n inject\n} from '@angular/core';\nimport { startWith } from 'rxjs';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FD_LANGUAGE_SIGNAL, FdLanguage, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListHeaderDirective } from '../nested-list-directives';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedListInterface } from './nested-list.interface';\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 standalone: true,\n providers: [contentDensityObserverProviders()]\n})\nexport class NestedListComponent implements AfterContentInit, NestedListInterface {\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 protected _nestedListHeader: NestedListHeaderDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => NestedListComponent), { descendants: true })\n protected _nestedLists: QueryList<NestedListComponent>;\n\n /** @hidden */\n @HostBinding('attr.role')\n protected _role = 'tree';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n protected _ariaRoledescription: Nullable<string> = this.ariaRoledescriptionTree;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n protected _ariaHaspopup: Nullable<string> = null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n protected _tabindex = '-1';\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private readonly _injector = inject(Injector);\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 ) {\n if (this._nestedItemService) {\n this._nestedItemService.list = this;\n }\n inject(ContentDensityObserver).subscribe();\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 const nestedLevel: number = this._getNestedLevel();\n\n this._setAccessibilityProperties(nestedLevel);\n\n // Register effect with explicit injector context\n effect(\n () => {\n const lang = this._langSignal();\n this._nestedListKeyboardService.refresh$.next();\n this._setAriaAttributes(nestedLevel, lang);\n },\n { injector: this._injector }\n );\n\n // React to nested items changes\n this.nestedItems.changes.pipe(startWith(undefined), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n const lang = this._langSignal();\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\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, // TODO: this property has been deprecated and will be removed from translations\n total: this.nestedItems.length, // TODO: this property has been deprecated and will be removed from translations\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 AfterContentInit,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n booleanAttribute,\n forwardRef,\n inject\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedItemInterface } from './nested-item.interface';\nimport { NestedItemService } from './nested-item.service';\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 standalone: true,\n host: {\n role: 'treeitem'\n }\n})\nexport class NestedItemComponent implements AfterContentInit, NestedItemInterface {\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 /** @hidden */\n @HostBinding('class.fdx-nested-list__item--group')\n @Input({ transform: booleanAttribute })\n group = false;\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 * @Input\n * Applies `aria-hidden` to the element.\n * Set to `true` for non-focusable elements without focusable children to hide them from assistive technologies.\n */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden = 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 @HostBinding('attr.role')\n protected _role: string;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n protected _ariaExpanded: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n protected _ariaSelected: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n protected _ariaDisabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n protected _ariaLabel: string;\n\n /** @hidden */\n _narrow = false;\n\n /** @hidden */\n private _expanded = false;\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\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 /** 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(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.toggle());\n\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.click\n .pipe(takeUntilDestroyed(this._destroyRef))\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(takeUntilDestroyed(this._destroyRef))\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 takeUntilDestroyed(this._destroyRef),\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 ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyComponent, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { NestedItemInterface } from '../nested-item/nested-item.interface';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListPopoverInterface } from './nested-list-popover.interface';\n\n@Component({\n selector: 'fdx-nested-list-popover',\n templateUrl: './nested-list-popover.component.html',\n styleUrl: './nested-list-popover.component.scss',\n imports: [PopoverComponent, PopoverControlComponent, PopoverBodyComponent],\n standalone: true,\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 = computed(() => (this._rtlService?.rtl() ? 'left-start' : 'right-start'));\n\n /** @hidden */\n open = false;\n\n /** @hidden */\n _closeScrollStrategy: ScrollStrategy;\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n constructor(\n private _keyboardNestService: NestedListKeyboardService,\n @Optional() private _itemService: NestedItemService,\n private _overlay: Overlay\n ) {\n this._listenOnKeyboardRefresh();\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","<fd-popover\n [placement]=\"placement()\"\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 { RouterModule } from '@angular/router';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport {\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from '../nested-list-directives';\nimport { NestedListItem, NestedListModel } from '../nested-list-model';\nimport { NestedListPopoverComponent } from '../nested-list-popover/nested-list-popover.component';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\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 imports: [\n NestedListComponent,\n NestedListHeaderDirective,\n NestedItemComponent,\n NestedListPopoverComponent,\n NestedLinkComponent,\n RouterModule,\n NestedListContentDirective,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListExpandIconComponent\n ],\n standalone: true,\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 @for (item of list?.items; track item) {\n @if (item.headerTitle) {\n <li fdx-nested-list-header>\n {{ item.headerTitle }}\n </li>\n } @else {\n <li fdx-nested-list-item [expanded]=\"!!item.expanded\" (expandedChange)=\"_expandedChange($event, item)\">\n @if (condensed && first && item.list) {\n <fdx-nested-list-popover [title]=\"item.link?.title || ''\">\n <div fdx-nested-list-content [selected]=\"!!item.link?.selected\">\n <ng-template\n [ngTemplateOutlet]=\"link\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-template>\n <button fdx-nested-list-expand-icon></button>\n </div>\n @if (item.list) {\n <fdx-prepared-nested-list [first]=\"false\" [list]=\"item.list\"></fdx-prepared-nested-list>\n }\n </fdx-nested-list-popover>\n }\n @if (!item.list) {\n <ng-template [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-template>\n }\n @if ((!condensed || !first) && item.list) {\n <div fdx-nested-list-content>\n <ng-template [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-template>\n <button fdx-nested-list-expand-icon></button>\n </div>\n @if (item.list) {\n <fdx-prepared-nested-list [first]=\"false\" [list]=\"item.list\"></fdx-prepared-nested-list>\n }\n }\n <ng-template let-item=\"item\" #link>\n @if (item.link) {\n <a\n fdx-nested-list-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 @if (item.link.icon) {\n <span fdx-nested-list-icon [glyph]=\"item.link.icon\"></span>\n }\n <span fdx-nested-list-title>{{ item.link.title }}</span>\n </a>\n }\n </ng-template>\n </li>\n }\n }\n</ul>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { NestedListContentDirective } from './nested-content/nested-list-content.directive';\nimport { NestedItemComponent } from './nested-item/nested-item.component';\nimport { NestedLinkComponent } from './nested-link/nested-link.component';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from './nested-list-directives';\nimport { NestedListKeyboardService } from './nested-list-keyboard.service';\nimport { NestedListPopoverComponent } from './nested-list-popover/nested-list-popover.component';\nimport { NestedListStateService } from './nested-list-state.service';\nimport { NestedListComponent } from './nested-list/nested-list.component';\nimport { PreparedNestedListComponent } from './prepared-nested-list/prepared-nested-list.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListButtonDirective,\n PopoverModule,\n RouterModule,\n IconComponent,\n ContentDensityModule,\n NestedListContentDirective\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.NestedListStateService","i3.NestedListKeyboardService","i2.NestedListKeyboardService","i3.NestedListStateService","i1.NestedListKeyboardService","i2.NestedItemService"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-cx-nested-list.mjs","sources":["../../../../libs/cx/nested-list/nested-item/nested-item.service.ts","../../../../libs/cx/nested-list/nested-list-directives.ts","../../../../libs/cx/nested-list/nested-link/nested-link.component.ts","../../../../libs/cx/nested-list/nested-content/nested-list-content.directive.ts","../../../../libs/cx/nested-list/nested-list-keyboard.service.ts","../../../../libs/cx/nested-list/nested-list-state.service.ts","../../../../libs/cx/nested-list/nested-list/nested-list.component.ts","../../../../libs/cx/nested-list/nested-item/nested-item.component.ts","../../../../libs/cx/nested-list/nested-list-popover/nested-list-popover.component.ts","../../../../libs/cx/nested-list/nested-list-popover/nested-list-popover.component.html","../../../../libs/cx/nested-list/prepared-nested-list/prepared-nested-list.component.ts","../../../../libs/cx/nested-list/prepared-nested-list/prepared-nested-list.component.html","../../../../libs/cx/nested-list/nested-list.module.ts","../../../../libs/cx/nested-list/fundamental-ngx-cx-nested-list.ts"],"sourcesContent":["import { Subject } from 'rxjs';\nimport { NestedListPopoverInterface } from '../nested-list-popover/nested-list-popover.interface';\nimport { NestedListInterface } from '../nested-list/nested-list.interface';\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 ViewEncapsulation\n} from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { NestedItemService } from './nested-item/nested-item.service';\n\nlet uniqueId = 0;\n\n@Directive({\n selector: '[cxNestedDirectivesHeader], [fdx-nested-list-header]',\n standalone: true\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 constructor(\n private _itemService: NestedItemService,\n private _changeDetRef: ChangeDetectorRef\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\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n Renderer2\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListTitleDirective\n} from '../nested-list-directives';\n\n@Component({\n template: `\n @if (!_nestedListButton) {\n <div class=\"fdx-nested-list__link-container\">\n <ng-template [ngTemplateOutlet]=\"containerContent\"></ng-template>\n </div>\n }\n @if (_nestedListButton) {\n <a tabindex=\"0\" class=\"fdx-nested-list__link-container\">\n <ng-template [ngTemplateOutlet]=\"containerContent\"></ng-template>\n </a>\n }\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 imports: [NgTemplateOutlet],\n standalone: true,\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('attr.aria-selected')\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: Event): void {\n this._itemService.keyDown.next(event as KeyboardEvent);\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 DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\n\n@Directive({\n selector: '[cxNestedListContent], [fdx-nested-list-content]',\n standalone: true,\n host: {\n tabindex: '0'\n }\n})\nexport class NestedListContentDirective implements AfterContentInit {\n /** Whether this element is selected*/\n @Input()\n @HostBinding('attr.aria-selected')\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 /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n public changeDetRef: ChangeDetectorRef,\n private _elementRef: ElementRef,\n private _itemService: NestedItemService\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')\n onClick(): void {\n this._itemService.click.next();\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._makeLinkUnFocusable();\n this._setFocusSubscription();\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(takeUntilDestroyed(this._destroyRef)).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 { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { inject, Injectable } from '@angular/core';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NestedItemInterface } from './nested-item/nested-item.interface';\nimport { NestedListInterface } from './nested-list/nested-list.interface';\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 /**\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 private readonly keyboardService = inject(MenuKeyboardService);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\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 const isRtl = this._rtlService?.rtl() ?? false;\n\n if (\n (!isRtl && KeyUtil.isKeyCode(keyboardEvent, RIGHT_ARROW)) ||\n (isRtl && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW))\n ) {\n if (!item.expanded && item.hasChildren) {\n item.triggerOpen();\n }\n keyboardEvent.preventDefault();\n }\n\n if (\n (!isRtl && KeyUtil.isKeyCode(keyboardEvent, LEFT_ARROW)) ||\n (isRtl && 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","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 ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n QueryList,\n forwardRef,\n inject\n} from '@angular/core';\nimport { Observable, combineLatest, startWith } from 'rxjs';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FD_LANGUAGE, FdLanguage, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedListHeaderDirective } from '../nested-list-directives';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedListInterface } from './nested-list.interface';\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 standalone: true,\n providers: [contentDensityObserverProviders()]\n})\nexport class NestedListComponent implements AfterContentInit, NestedListInterface {\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 protected _nestedListHeader: NestedListHeaderDirective;\n\n /** @hidden */\n @ContentChildren(forwardRef(() => NestedListComponent), { descendants: true })\n protected _nestedLists: QueryList<NestedListComponent>;\n\n /** @hidden */\n @HostBinding('attr.role')\n protected _role = 'tree';\n\n /** @hidden */\n @HostBinding('attr.aria-roledescription')\n protected _ariaRoledescription: Nullable<string> = this.ariaRoledescriptionTree;\n\n /** @hidden */\n @HostBinding('attr.aria-haspopup')\n protected _ariaHaspopup: Nullable<string> = null;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n protected _tabindex = '-1';\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\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 ) {\n if (this._nestedItemService) {\n this._nestedItemService.list = this;\n }\n inject(ContentDensityObserver).subscribe();\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 const nestedLevel: number = this._getNestedLevel();\n\n this._setAccessibilityProperties(nestedLevel);\n\n combineLatest([this._language$, this.nestedItems.changes.pipe(startWith(undefined))])\n .pipe(takeUntilDestroyed(this._destroyRef))\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\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, // TODO: this property has been deprecated and will be removed from translations\n total: this.nestedItems.length, // TODO: this property has been deprecated and will be removed from translations\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 AfterContentInit,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n booleanAttribute,\n forwardRef,\n inject\n} from '@angular/core';\nimport { filter } from 'rxjs/operators';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListExpandIconComponent } from '../nested-list-directives';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListStateService } from '../nested-list-state.service';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\nimport { NestedItemInterface } from './nested-item.interface';\nimport { NestedItemService } from './nested-item.service';\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 standalone: true,\n host: {\n role: 'treeitem'\n }\n})\nexport class NestedItemComponent implements AfterContentInit, NestedItemInterface {\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 /** @hidden */\n @HostBinding('class.fdx-nested-list__item--group')\n @Input({ transform: booleanAttribute })\n group = false;\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 * @Input\n * Applies `aria-hidden` to the element.\n * Set to `true` for non-focusable elements without focusable children to hide them from assistive technologies.\n */\n @Input()\n @HostBinding('attr.aria-hidden')\n ariaHidden = 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 @HostBinding('attr.role')\n protected _role: string;\n\n /** @hidden */\n @HostBinding('attr.aria-expanded')\n protected _ariaExpanded: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-selected')\n protected _ariaSelected: Nullable<boolean> = null;\n\n /** @hidden */\n @HostBinding('attr.aria-disabled')\n protected _ariaDisabled = false;\n\n /** @hidden */\n @HostBinding('attr.aria-label')\n protected _ariaLabel: string;\n\n /** @hidden */\n _narrow = false;\n\n /** @hidden */\n private _expanded = false;\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\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 /** 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(takeUntilDestroyed(this._destroyRef)).subscribe(() => this.toggle());\n\n /** Subscribe to mouse click event, thrown by link item */\n this._itemService.click\n .pipe(takeUntilDestroyed(this._destroyRef))\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(takeUntilDestroyed(this._destroyRef))\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 takeUntilDestroyed(this._destroyRef),\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 ChangeDetectionStrategy,\n Component,\n ContentChild,\n HostBinding,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\n\nimport { Overlay, ScrollStrategy } from '@angular/cdk/overlay';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyComponent, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { NestedItemInterface } from '../nested-item/nested-item.interface';\nimport { NestedItemService } from '../nested-item/nested-item.service';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport { NestedListKeyboardService } from '../nested-list-keyboard.service';\nimport { NestedListPopoverInterface } from './nested-list-popover.interface';\n\n@Component({\n selector: 'fdx-nested-list-popover',\n templateUrl: './nested-list-popover.component.html',\n styleUrl: './nested-list-popover.component.scss',\n imports: [PopoverComponent, PopoverControlComponent, PopoverBodyComponent],\n standalone: true,\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 = computed(() => (this._rtlService?.rtl() ? 'left-start' : 'right-start'));\n\n /** @hidden */\n open = false;\n\n /** @hidden */\n _closeScrollStrategy: ScrollStrategy;\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n constructor(\n private _keyboardNestService: NestedListKeyboardService,\n @Optional() private _itemService: NestedItemService,\n private _overlay: Overlay\n ) {\n this._listenOnKeyboardRefresh();\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","<fd-popover\n [placement]=\"placement()\"\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 { RouterModule } from '@angular/router';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { NestedListContentDirective } from '../nested-content/nested-list-content.directive';\nimport { NestedItemComponent } from '../nested-item/nested-item.component';\nimport { NestedLinkComponent } from '../nested-link/nested-link.component';\nimport {\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from '../nested-list-directives';\nimport { NestedListItem, NestedListModel } from '../nested-list-model';\nimport { NestedListPopoverComponent } from '../nested-list-popover/nested-list-popover.component';\nimport { NestedListComponent } from '../nested-list/nested-list.component';\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 imports: [\n NestedListComponent,\n NestedListHeaderDirective,\n NestedItemComponent,\n NestedListPopoverComponent,\n NestedLinkComponent,\n RouterModule,\n NestedListContentDirective,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListExpandIconComponent\n ],\n standalone: true,\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 @for (item of list?.items; track item) {\n @if (item.headerTitle) {\n <li fdx-nested-list-header>\n {{ item.headerTitle }}\n </li>\n } @else {\n <li fdx-nested-list-item [expanded]=\"!!item.expanded\" (expandedChange)=\"_expandedChange($event, item)\">\n @if (condensed && first && item.list) {\n <fdx-nested-list-popover [title]=\"item.link?.title || ''\">\n <div fdx-nested-list-content [selected]=\"!!item.link?.selected\">\n <ng-template\n [ngTemplateOutlet]=\"link\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-template>\n <button fdx-nested-list-expand-icon></button>\n </div>\n @if (item.list) {\n <fdx-prepared-nested-list [first]=\"false\" [list]=\"item.list\"></fdx-prepared-nested-list>\n }\n </fdx-nested-list-popover>\n }\n @if (!item.list) {\n <ng-template [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-template>\n }\n @if ((!condensed || !first) && item.list) {\n <div fdx-nested-list-content>\n <ng-template [ngTemplateOutlet]=\"link\" [ngTemplateOutletContext]=\"{ item: item }\"></ng-template>\n <button fdx-nested-list-expand-icon></button>\n </div>\n @if (item.list) {\n <fdx-prepared-nested-list [first]=\"false\" [list]=\"item.list\"></fdx-prepared-nested-list>\n }\n }\n <ng-template let-item=\"item\" #link>\n @if (item.link) {\n <a\n fdx-nested-list-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 @if (item.link.icon) {\n <span fdx-nested-list-icon [glyph]=\"item.link.icon\"></span>\n }\n <span fdx-nested-list-title>{{ item.link.title }}</span>\n </a>\n }\n </ng-template>\n </li>\n }\n }\n</ul>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { NestedListContentDirective } from './nested-content/nested-list-content.directive';\nimport { NestedItemComponent } from './nested-item/nested-item.component';\nimport { NestedLinkComponent } from './nested-link/nested-link.component';\nimport {\n NestedListButtonDirective,\n NestedListExpandIconComponent,\n NestedListHeaderDirective,\n NestedListIconComponent,\n NestedListTitleDirective\n} from './nested-list-directives';\nimport { NestedListKeyboardService } from './nested-list-keyboard.service';\nimport { NestedListPopoverComponent } from './nested-list-popover/nested-list-popover.component';\nimport { NestedListStateService } from './nested-list-state.service';\nimport { NestedListComponent } from './nested-list/nested-list.component';\nimport { PreparedNestedListComponent } from './prepared-nested-list/prepared-nested-list.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n NestedListComponent,\n NestedLinkComponent,\n NestedItemComponent,\n NestedListIconComponent,\n NestedListTitleDirective,\n NestedListHeaderDirective,\n NestedListPopoverComponent,\n PreparedNestedListComponent,\n NestedListExpandIconComponent,\n NestedListButtonDirective,\n PopoverModule,\n RouterModule,\n IconComponent,\n ContentDensityModule,\n NestedListContentDirective\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.NestedListKeyboardService","i3.NestedListStateService","i1.NestedListKeyboardService","i2.NestedItemService"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { HostBinding, Directive, ContentChildren, ContentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, inject, ChangeDetectorRef, DestroyRef, ElementRef, HostListener, ViewChild, ViewChildren, Input, NgModule } from '@angular/core';
2
+ import { HostBinding, Directive, ContentChildren, ContentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, signal, inject, ChangeDetectorRef, ElementRef, HostListener, ViewChild, ViewChildren, Input, NgModule } from '@angular/core';
3
3
  import { InputGroupComponent } from '@fundamental-ngx/core/input-group';
4
4
  import * as i1 from '@fundamental-ngx/core/scrollbar';
5
5
  import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
@@ -9,7 +9,8 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
9
9
  import { warnOnce } from '@fundamental-ngx/cdk/utils';
10
10
  import { ButtonComponent } from '@fundamental-ngx/core/button';
11
11
  import { MenuKeyboardService } from '@fundamental-ngx/core/menu';
12
- import { FdTranslatePipe } from '@fundamental-ngx/i18n';
12
+ import * as i1$1 from '@fundamental-ngx/i18n';
13
+ import { I18nModule } from '@fundamental-ngx/i18n';
13
14
 
14
15
  class SideNavigationButtonDirective {
15
16
  constructor() {
@@ -143,9 +144,7 @@ class SideNavigationComponent {
143
144
  this._nestedListState = inject(NestedListStateService);
144
145
  /** @hidden */
145
146
  this._cdRef = inject(ChangeDetectorRef);
146
- /** @hidden */
147
- this._destroyRef = inject(DestroyRef);
148
- this._keyboardService.refresh$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
147
+ this._keyboardService.refresh$.pipe(takeUntilDestroyed()).subscribe(() => {
149
148
  /** Refresh list of elements, that are being supported by keyboard */
150
149
  this._keyboardService.refreshItems(this.getLists());
151
150
  });
@@ -244,19 +243,19 @@ class SideNavigationComponent {
244
243
  }, !this.narrow ? 200 : 0);
245
244
  }
246
245
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SideNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
247
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SideNavigationComponent, isStandalone: true, selector: "fdx-side-nav", inputs: { condensed: "condensed", inShellbar: "inShellbar", sideNavigationConfiguration: "sideNavigationConfiguration", dynamicWidth: "dynamicWidth", collapseWidth: "collapseWidth", narrow: "narrow", mobile: "mobile", showScrollButtons: "showScrollButtons", selectable: "selectable" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "class.fdx-side-nav--condensed": "this.condensed" } }, providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService], queries: [{ propertyName: "sideNavUtility", first: true, predicate: SideNavigationUtilityDirective, descendants: true }, { propertyName: "sideNavMain", first: true, predicate: SideNavigationMainComponent, descendants: true }], viewQueries: [{ propertyName: "_scrollDownButton", first: true, predicate: ["scrollDownButton"], descendants: true, read: ElementRef }, { propertyName: "preparedNestedList", predicate: PreparedNestedListComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<nav\n class=\"fdx-side-nav\"\n [class.fdx-side-nav--dynamic-width]=\"dynamicWidth\"\n [class.fdx-side-nav--shellbar]=\"inShellbar\"\n [class.fdx-side-nav--narrow]=\"narrow\"\n [class.fdx-side-nav--narrow-animated-items]=\"_narrowAnimatedItems$()\"\n [class.fdx-side-nav--condensed]=\"condensed || sideNavigationConfiguration?.condensed\"\n [class.fdx-side-nav--mobile]=\"mobile\"\n [attr.aria-label]=\"('coreNavigation.mainNavigation' | fdTranslate)()\"\n>\n @if (!sideNavigationConfiguration) {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n <ng-content select=\"[fdx-side-nav-main]\"></ng-content>\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n <ng-content select=\"[fdx-side-nav-utility]\"></ng-content>\n } @else {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n @if (sideNavigationConfiguration.mainNavigation) {\n <div fdx-side-nav-main>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.mainNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n @if (sideNavigationConfiguration.utilityNavigation) {\n <div fdx-side-nav-utility>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.utilityNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n }\n</nav>\n<ng-template #scrollUp>\n @if (_showScrollUpButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--top\">\n <button\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-up-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('up')\"\n ></button>\n </div>\n }\n</ng-template>\n<ng-template #scrollDown>\n @if (_showScrollDownButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--bottom\">\n <button\n #scrollDownButton\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-down-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('down')\"\n ></button>\n </div>\n }\n</ng-template>\n", styles: [".fdx-nested-list{--fdNestedList_Item_Height:var(--sapElement_LineHeight);--fdNestedList_Item_Spacing:.25rem;--fdNestedList_Item_Spacing_Compact:.125rem;--fdNestedList_Item_Margin:.25rem;--fdNestedList_Focus_Offset:0;--fdNestedList_Focus_Offset_Width:var(--sapContent_FocusWidth);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;list-style:none;width:100%}.fdx-nested-list:after,.fdx-nested-list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list[aria-hidden=true]{display:none}.fdx-nested-list__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fdx-nested-list__item:after,.fdx-nested-list__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__item--header h1.fdx-nested-list__link,.fdx-nested-list__item--header h2.fdx-nested-list__link,.fdx-nested-list__item--header h3.fdx-nested-list__link,.fdx-nested-list__item--header h4.fdx-nested-list__link,.fdx-nested-list__item--header h5.fdx-nested-list__link,.fdx-nested-list__item--header h6.fdx-nested-list__link{cursor:auto}.fdx-nested-list__item--header h1.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h1.fdx-nested-list__link:hover,.fdx-nested-list__item--header h2.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h2.fdx-nested-list__link:hover,.fdx-nested-list__item--header h3.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h3.fdx-nested-list__link:hover,.fdx-nested-list__item--header h4.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h4.fdx-nested-list__link:hover,.fdx-nested-list__item--header h5.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h5.fdx-nested-list__link:hover,.fdx-nested-list__item--header h6.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h6.fdx-nested-list__link:hover{background:var(--sapList_Background);color:var(--sapList_TextColor)}.fdx-nested-list__item--header h1.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h2.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h3.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h4.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h5.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h6.fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--header .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item--header .fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:var(--fdNestedList_Item_Height);padding-inline:1rem}.fdx-nested-list__item--group .fdx-nested-list__title{color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize)}.fdx-nested-list__item--group:not(:first-child){-webkit-margin-before:.625rem;margin-block-start:.625rem}.fdx-nested-list__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background:var(--sapList_Background);border-radius:var(--sapButton_BorderCornerRadius);color:var(--sapList_TextColor);cursor:pointer;min-height:var(--fdNestedList_Item_Height);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link:after,.fdx-nested-list__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link.is-hover,.fdx-nested-list__link:hover{background:var(--sapList_Hover_Background);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-focus,.fdx-nested-list__link:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link.is-selected,.fdx-nested-list__link[aria-selected=true]{background:var(--sapList_SelectionBackgroundColor);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected.is-hover,.fdx-nested-list__link.is-selected:hover,.fdx-nested-list__link[aria-selected=true].is-hover,.fdx-nested-list__link[aria-selected=true]:hover{background:var(--sapList_Hover_SelectionBackground);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{background:var(--sapList_SelectionBorderColor);content:\"\";height:100%;left:0;position:absolute;top:0;width:.1875rem}.fdx-nested-list__link.is-selected[dir=rtl] .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true][dir=rtl] .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{left:auto;right:0}.fdx-nested-list__link.is-active,.fdx-nested-list__link.is-active.is-selected,.fdx-nested-list__link.is-active[aria-selected=true],.fdx-nested-list__link:active,.fdx-nested-list__link:active.is-selected,.fdx-nested-list__link:active[aria-selected=true]{background:var(--sapList_Active_Background);color:var(--sapList_Active_TextColor)}.fdx-nested-list__link.is-active .fdx-nested-list__arrow,.fdx-nested-list__link.is-active .fdx-nested-list__icon,.fdx-nested-list__link.is-active .fdx-nested-list__title,.fdx-nested-list__link:active .fdx-nested-list__arrow,.fdx-nested-list__link:active .fdx-nested-list__icon,.fdx-nested-list__link:active .fdx-nested-list__title{color:var(--sapList_Active_TextColor)}.fdx-nested-list__link-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--sapButton_BorderCornerRadius);overflow:hidden;padding-block:.5rem;padding-inline:var(--fdNestedList_Start_Offset,1rem) var(--fdNestedList_End_Offset,1rem);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link-container:after,.fdx-nested-list__link-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link-container.is-focus,.fdx-nested-list__link-container:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link-container:has(.fdx-nested-list__arrow){--fdNestedList_End_Offset:.375rem}.fdx-nested-list__icon [class*=sap-icon],.fdx-nested-list__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapList_TextColor);font-size:inherit;font-size:1rem;line-height:1;max-width:1rem;min-width:1rem;width:1rem}.fdx-nested-list__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-family:var(--fdNestedList_Title_Font_Family,var(--sapFontBoldFamily));font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;text-align:start;-webkit-transition:opacity .1s ease-out,visibility .1s ease-out;transition:opacity .1s ease-out,visibility .1s ease-out;width:100%}.fdx-nested-list__title:after,.fdx-nested-list__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon]{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:2.25rem;min-height:1rem;min-width:2.25rem;width:2.25rem}.fdx-nested-list__arrow[class*=sap-icon]:after,.fdx-nested-list__arrow[class*=sap-icon]:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__arrow[class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list__button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:2.75rem;min-width:2.75rem;width:2.75rem;-webkit-margin-start:1.3125rem;background:transparent;border-radius:var(--sapButton_BorderCornerRadius);cursor:pointer;height:var(--fdNestedList_Item_Height);margin-inline-start:1.3125rem;position:relative}.fdx-nested-list__button:after,.fdx-nested-list__button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__button.is-focus,.fdx-nested-list__button:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__button:before{background:var(--sapTextColor);content:\"\";height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fdx-nested-list__button[dir=rtl]:before,[dir=rtl] .fdx-nested-list__button:before{left:auto;right:-.25rem}.fdx-nested-list__button [class*=sap-icon]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:1rem;min-height:1rem;min-width:1rem;width:1rem}.fdx-nested-list__button [class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__button [class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list .fdx-nested-list.level-2{--fdNestedList_Start_Offset:2.5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list--text-only .fdx-nested-list.level-2{--fdNestedList_Start_Offset:3rem}.fdx-nested-list--text-only .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem}.fdx-nested-list[class*=-compact],.fdx-nested-list[class*=-condensed],[class*=-compact] .fdx-nested-list:not([class*=-cozy]),[class*=-condensed] .fdx-nested-list:not([class*=-cozy]){--fdNestedList_Item_Margin:.25rem;--fdNestedList_Item_Spacing:.125rem;--fdNestedList_Focus_Offset:.0625rem;--fdNestedList_Focus_Offset_Width:.0625rem;--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav{--fdSideNav_Padding_Block:.25rem;--fdSideNav_Padding_Inline:0;--fdSideNav_First_Item_Margin_Top:.25rem;--fdSideNav_Utility_Margin_Bottom:1rem;--fdNestedList_Item_Height:var(--sapElement_LineHeigh);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-transition:width .2s ease-out;transition:width .2s ease-out;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background-color:var(--sapGroup_ContentBackground);border-radius:0;-webkit-box-shadow:var(--sapContent_Shadow0);box-shadow:var(--sapContent_Shadow0);height:100%;justify-content:space-between;width:15rem}.fdx-side-nav:after,.fdx-side-nav:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden scroll;padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__main-navigation:after,.fdx-side-nav__main-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation.fd-scrollbar{padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__utility{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:.5rem;-webkit-padding-after:.5rem;padding-block-end:.5rem}.fdx-side-nav__utility:after,.fdx-side-nav__utility:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__utility:before{background:var(--sapToolbar_SeparatorColor);content:\"\";display:block;height:.0625rem;width:auto;-webkit-margin-after:.25rem;margin-block-end:.25rem;margin-inline:.5rem}.fdx-side-nav__popover-body{border-radius:1rem!important;margin-block:.25rem!important;max-width:16rem!important;min-width:16rem!important;padding-inline:0!important;width:16rem!important}.fdx-side-nav__popover-body .fdx-nested-list.level-2{padding-block:.5rem;padding-inline:.5rem}.fdx-side-nav__popover-body .fdx-nested-list.level-2 .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body .fdx-nested-list.level-3 .fdx-nested-list__link-container{--fdNestedList_Start_Offset:3rem}.fdx-side-nav__popover-body--dynamic-width{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;min-width:16rem!important;width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important}.fdx-side-nav__button{margin-block:.25rem!important;margin-inline:0!important}.fdx-side-nav__input-group{margin-block:.75rem!important;margin-inline:.5rem!important;max-width:calc(100% - 1rem);min-width:calc(100% - 1rem);width:calc(100% - 1rem)}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdSideNav_Padding_Block:.125rem;--fdSideNav_First_Item_Margin_Top:.125rem;--fdSideNav_Utility_Margin_Bottom:.75rem}.fdx-side-nav--mobile{border-radius:0;width:100%}.fdx-side-nav--narrow-animated-items .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow-animated-items .fdx-nested-list__button,.fdx-side-nav--narrow-animated-items .fdx-nested-list__title{height:var(--fdNestedList_Item_Height);opacity:0;overflow:hidden;visibility:hidden}.fdx-side-nav--narrow{width:4rem}.fdx-side-nav--narrow .fdx-nested-list__link{height:var(--fdNestedList_Item_Height);max-height:var(--fdNestedList_Item_Height);min-height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__button,.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__title{display:none;height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link{position:relative}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;content:\"\\e066\";position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-padding-end:.25rem;font-family:SAP-icons;padding-inline-end:.25rem}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link[dir=rtl]:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link[dir=rtl]:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;left:0;padding-inline:.25rem 0;right:auto;-webkit-transform:rotateY(180deg) translateY(-50%);transform:rotateY(180deg) translateY(-50%)}.fdx-side-nav--dynamic-width{max-width:100%;min-width:15rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fdx-side-nav--dynamic-width.fdx--narrow{width:4rem}.fdx-side-nav--shellbar{border-top-right-radius:0}.fdx-side-nav--shellbar[dir=rtl],[dir=rtl] .fdx-side-nav--shellbar{border-top-left-radius:0}.fdx-side-nav--single-line .fdx-nested-list__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav__button-container{background:var(--sapGroup_ContentBackground);position:static;width:100%;height:48px;z-index:1}.fdx-side-nav__button-container--bottom{border-bottom-right-radius:1rem}.fdx-side-nav__button-container--top{border-top-right-radius:1rem}.fdx-side-nav__button-container .fdx-side-nav .fdx-side-nav__button:last-of-type{margin-top:0!important}.fdx-nested-list__item{display:block}.fdx-nested-list__item .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item .fdx-nested-list__content .fdx-nested-list__button.fd-button{background:none}.fdx-side-nav .fd-button{margin-left:.875rem!important}.fdx-side-nav .fdx-side-nav__button{min-height:2.25rem;overflow:hidden;position:sticky}.fdx-side-nav--narrow .fdx-nested-list__item--group{display:none!important}.fdx-side-nav--compact .fdx-side-nav__button{min-height:1.5rem}.fdx-side-nav__popover-body .fd-scrollbar{padding:.25rem 0!important}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child{padding:.5rem}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:not(:first-child){margin-block-start:.5rem;--fdNestedList_Start_Offset: 3rem}\n/*! Bundled license information:\n\n@fundamental-styles/cx/dist/side-nav.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SideNavigationMainComponent, selector: "fdx-side-nav-main, div[fdx-side-nav-main]" }, { kind: "component", type: PreparedNestedListComponent, selector: "fdx-prepared-nested-list", inputs: ["first", "condensed", "list"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: SideNavigationUtilityDirective, selector: "[cxSideNavigationUtility], [fdx-side-nav-utility]" }, { kind: "directive", type: SideNavigationButtonDirective, selector: "[cxSideNavButton], [fdx-side-nav-button]" }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
246
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: SideNavigationComponent, isStandalone: true, selector: "fdx-side-nav", inputs: { condensed: "condensed", inShellbar: "inShellbar", sideNavigationConfiguration: "sideNavigationConfiguration", dynamicWidth: "dynamicWidth", collapseWidth: "collapseWidth", narrow: "narrow", mobile: "mobile", showScrollButtons: "showScrollButtons", selectable: "selectable" }, host: { listeners: { "window:resize": "onResize()" }, properties: { "class.fdx-side-nav--condensed": "this.condensed" } }, providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService], queries: [{ propertyName: "sideNavUtility", first: true, predicate: SideNavigationUtilityDirective, descendants: true }, { propertyName: "sideNavMain", first: true, predicate: SideNavigationMainComponent, descendants: true }], viewQueries: [{ propertyName: "_scrollDownButton", first: true, predicate: ["scrollDownButton"], descendants: true, read: ElementRef }, { propertyName: "preparedNestedList", predicate: PreparedNestedListComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<nav\n class=\"fdx-side-nav\"\n [class.fdx-side-nav--dynamic-width]=\"dynamicWidth\"\n [class.fdx-side-nav--shellbar]=\"inShellbar\"\n [class.fdx-side-nav--narrow]=\"narrow\"\n [class.fdx-side-nav--narrow-animated-items]=\"_narrowAnimatedItems$()\"\n [class.fdx-side-nav--condensed]=\"condensed || sideNavigationConfiguration?.condensed\"\n [class.fdx-side-nav--mobile]=\"mobile\"\n [attr.aria-label]=\"'coreNavigation.mainNavigation' | fdTranslate\"\n>\n @if (!sideNavigationConfiguration) {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n <ng-content select=\"[fdx-side-nav-main]\"></ng-content>\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n <ng-content select=\"[fdx-side-nav-utility]\"></ng-content>\n } @else {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n @if (sideNavigationConfiguration.mainNavigation) {\n <div fdx-side-nav-main>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.mainNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n @if (sideNavigationConfiguration.utilityNavigation) {\n <div fdx-side-nav-utility>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.utilityNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n }\n</nav>\n<ng-template #scrollUp>\n @if (_showScrollUpButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--top\">\n <button\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-up-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('up')\"\n ></button>\n </div>\n }\n</ng-template>\n<ng-template #scrollDown>\n @if (_showScrollDownButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--bottom\">\n <button\n #scrollDownButton\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-down-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('down')\"\n ></button>\n </div>\n }\n</ng-template>\n", styles: [".fdx-nested-list{--fdNestedList_Item_Height:var(--sapElement_LineHeight);--fdNestedList_Item_Spacing:.25rem;--fdNestedList_Item_Spacing_Compact:.125rem;--fdNestedList_Item_Margin:.25rem;--fdNestedList_Focus_Offset:0;--fdNestedList_Focus_Offset_Width:var(--sapContent_FocusWidth);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;list-style:none;width:100%}.fdx-nested-list:after,.fdx-nested-list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list[aria-hidden=true]{display:none}.fdx-nested-list__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fdx-nested-list__item:after,.fdx-nested-list__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__item--header h1.fdx-nested-list__link,.fdx-nested-list__item--header h2.fdx-nested-list__link,.fdx-nested-list__item--header h3.fdx-nested-list__link,.fdx-nested-list__item--header h4.fdx-nested-list__link,.fdx-nested-list__item--header h5.fdx-nested-list__link,.fdx-nested-list__item--header h6.fdx-nested-list__link{cursor:auto}.fdx-nested-list__item--header h1.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h1.fdx-nested-list__link:hover,.fdx-nested-list__item--header h2.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h2.fdx-nested-list__link:hover,.fdx-nested-list__item--header h3.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h3.fdx-nested-list__link:hover,.fdx-nested-list__item--header h4.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h4.fdx-nested-list__link:hover,.fdx-nested-list__item--header h5.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h5.fdx-nested-list__link:hover,.fdx-nested-list__item--header h6.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h6.fdx-nested-list__link:hover{background:var(--sapList_Background);color:var(--sapList_TextColor)}.fdx-nested-list__item--header h1.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h2.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h3.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h4.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h5.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h6.fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--header .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item--header .fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:var(--fdNestedList_Item_Height);padding-inline:1rem}.fdx-nested-list__item--group .fdx-nested-list__title{color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize)}.fdx-nested-list__item--group:not(:first-child){-webkit-margin-before:.625rem;margin-block-start:.625rem}.fdx-nested-list__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background:var(--sapList_Background);border-radius:var(--sapButton_BorderCornerRadius);color:var(--sapList_TextColor);cursor:pointer;min-height:var(--fdNestedList_Item_Height);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link:after,.fdx-nested-list__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link.is-hover,.fdx-nested-list__link:hover{background:var(--sapList_Hover_Background);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-focus,.fdx-nested-list__link:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link.is-selected,.fdx-nested-list__link[aria-selected=true]{background:var(--sapList_SelectionBackgroundColor);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected.is-hover,.fdx-nested-list__link.is-selected:hover,.fdx-nested-list__link[aria-selected=true].is-hover,.fdx-nested-list__link[aria-selected=true]:hover{background:var(--sapList_Hover_SelectionBackground);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{background:var(--sapList_SelectionBorderColor);content:\"\";height:100%;left:0;position:absolute;top:0;width:.1875rem}.fdx-nested-list__link.is-selected[dir=rtl] .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true][dir=rtl] .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{left:auto;right:0}.fdx-nested-list__link.is-active,.fdx-nested-list__link.is-active.is-selected,.fdx-nested-list__link.is-active[aria-selected=true],.fdx-nested-list__link:active,.fdx-nested-list__link:active.is-selected,.fdx-nested-list__link:active[aria-selected=true]{background:var(--sapList_Active_Background);color:var(--sapList_Active_TextColor)}.fdx-nested-list__link.is-active .fdx-nested-list__arrow,.fdx-nested-list__link.is-active .fdx-nested-list__icon,.fdx-nested-list__link.is-active .fdx-nested-list__title,.fdx-nested-list__link:active .fdx-nested-list__arrow,.fdx-nested-list__link:active .fdx-nested-list__icon,.fdx-nested-list__link:active .fdx-nested-list__title{color:var(--sapList_Active_TextColor)}.fdx-nested-list__link-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--sapButton_BorderCornerRadius);overflow:hidden;padding-block:.5rem;padding-inline:var(--fdNestedList_Start_Offset,1rem) var(--fdNestedList_End_Offset,1rem);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link-container:after,.fdx-nested-list__link-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link-container.is-focus,.fdx-nested-list__link-container:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link-container:has(.fdx-nested-list__arrow){--fdNestedList_End_Offset:.375rem}.fdx-nested-list__icon [class*=sap-icon],.fdx-nested-list__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapList_TextColor);font-size:inherit;font-size:1rem;line-height:1;max-width:1rem;min-width:1rem;width:1rem}.fdx-nested-list__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-family:var(--fdNestedList_Title_Font_Family,var(--sapFontBoldFamily));font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;text-align:start;-webkit-transition:opacity .1s ease-out,visibility .1s ease-out;transition:opacity .1s ease-out,visibility .1s ease-out;width:100%}.fdx-nested-list__title:after,.fdx-nested-list__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon]{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:2.25rem;min-height:1rem;min-width:2.25rem;width:2.25rem}.fdx-nested-list__arrow[class*=sap-icon]:after,.fdx-nested-list__arrow[class*=sap-icon]:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__arrow[class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list__button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:2.75rem;min-width:2.75rem;width:2.75rem;-webkit-margin-start:1.3125rem;background:transparent;border-radius:var(--sapButton_BorderCornerRadius);cursor:pointer;height:var(--fdNestedList_Item_Height);margin-inline-start:1.3125rem;position:relative}.fdx-nested-list__button:after,.fdx-nested-list__button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__button.is-focus,.fdx-nested-list__button:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__button:before{background:var(--sapTextColor);content:\"\";height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fdx-nested-list__button[dir=rtl]:before,[dir=rtl] .fdx-nested-list__button:before{left:auto;right:-.25rem}.fdx-nested-list__button [class*=sap-icon]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:1rem;min-height:1rem;min-width:1rem;width:1rem}.fdx-nested-list__button [class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__button [class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list .fdx-nested-list.level-2{--fdNestedList_Start_Offset:2.5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list--text-only .fdx-nested-list.level-2{--fdNestedList_Start_Offset:3rem}.fdx-nested-list--text-only .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem}.fdx-nested-list[class*=-compact],.fdx-nested-list[class*=-condensed],[class*=-compact] .fdx-nested-list:not([class*=-cozy]),[class*=-condensed] .fdx-nested-list:not([class*=-cozy]){--fdNestedList_Item_Margin:.25rem;--fdNestedList_Item_Spacing:.125rem;--fdNestedList_Focus_Offset:.0625rem;--fdNestedList_Focus_Offset_Width:.0625rem;--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav{--fdSideNav_Padding_Block:.25rem;--fdSideNav_Padding_Inline:0;--fdSideNav_First_Item_Margin_Top:.25rem;--fdSideNav_Utility_Margin_Bottom:1rem;--fdNestedList_Item_Height:var(--sapElement_LineHeigh);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-transition:width .2s ease-out;transition:width .2s ease-out;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background-color:var(--sapGroup_ContentBackground);border-radius:0;-webkit-box-shadow:var(--sapContent_Shadow0);box-shadow:var(--sapContent_Shadow0);height:100%;justify-content:space-between;width:15rem}.fdx-side-nav:after,.fdx-side-nav:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden scroll;padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__main-navigation:after,.fdx-side-nav__main-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation.fd-scrollbar{padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__utility{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:.5rem;-webkit-padding-after:.5rem;padding-block-end:.5rem}.fdx-side-nav__utility:after,.fdx-side-nav__utility:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__utility:before{background:var(--sapToolbar_SeparatorColor);content:\"\";display:block;height:.0625rem;width:auto;-webkit-margin-after:.25rem;margin-block-end:.25rem;margin-inline:.5rem}.fdx-side-nav__popover-body{border-radius:1rem!important;margin-block:.25rem!important;max-width:16rem!important;min-width:16rem!important;padding-inline:0!important;width:16rem!important}.fdx-side-nav__popover-body .fdx-nested-list.level-2{padding-block:.5rem;padding-inline:.5rem}.fdx-side-nav__popover-body .fdx-nested-list.level-2 .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body .fdx-nested-list.level-3 .fdx-nested-list__link-container{--fdNestedList_Start_Offset:3rem}.fdx-side-nav__popover-body--dynamic-width{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;min-width:16rem!important;width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important}.fdx-side-nav__button{margin-block:.25rem!important;margin-inline:0!important}.fdx-side-nav__input-group{margin-block:.75rem!important;margin-inline:.5rem!important;max-width:calc(100% - 1rem);min-width:calc(100% - 1rem);width:calc(100% - 1rem)}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdSideNav_Padding_Block:.125rem;--fdSideNav_First_Item_Margin_Top:.125rem;--fdSideNav_Utility_Margin_Bottom:.75rem}.fdx-side-nav--mobile{border-radius:0;width:100%}.fdx-side-nav--narrow-animated-items .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow-animated-items .fdx-nested-list__button,.fdx-side-nav--narrow-animated-items .fdx-nested-list__title{height:var(--fdNestedList_Item_Height);opacity:0;overflow:hidden;visibility:hidden}.fdx-side-nav--narrow{width:4rem}.fdx-side-nav--narrow .fdx-nested-list__link{height:var(--fdNestedList_Item_Height);max-height:var(--fdNestedList_Item_Height);min-height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__button,.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__title{display:none;height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link{position:relative}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;content:\"\\e066\";position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-padding-end:.25rem;font-family:SAP-icons;padding-inline-end:.25rem}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link[dir=rtl]:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link[dir=rtl]:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;left:0;padding-inline:.25rem 0;right:auto;-webkit-transform:rotateY(180deg) translateY(-50%);transform:rotateY(180deg) translateY(-50%)}.fdx-side-nav--dynamic-width{max-width:100%;min-width:15rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fdx-side-nav--dynamic-width.fdx--narrow{width:4rem}.fdx-side-nav--shellbar{border-top-right-radius:0}.fdx-side-nav--shellbar[dir=rtl],[dir=rtl] .fdx-side-nav--shellbar{border-top-left-radius:0}.fdx-side-nav--single-line .fdx-nested-list__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav__button-container{background:var(--sapGroup_ContentBackground);position:static;width:100%;height:48px;z-index:1}.fdx-side-nav__button-container--bottom{border-bottom-right-radius:1rem}.fdx-side-nav__button-container--top{border-top-right-radius:1rem}.fdx-side-nav__button-container .fdx-side-nav .fdx-side-nav__button:last-of-type{margin-top:0!important}.fdx-nested-list__item{display:block}.fdx-nested-list__item .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item .fdx-nested-list__content .fdx-nested-list__button.fd-button{background:none}.fdx-side-nav .fd-button{margin-left:.875rem!important}.fdx-side-nav .fdx-side-nav__button{min-height:2.25rem;overflow:hidden;position:sticky}.fdx-side-nav--narrow .fdx-nested-list__item--group{display:none!important}.fdx-side-nav--compact .fdx-side-nav__button{min-height:1.5rem}.fdx-side-nav__popover-body .fd-scrollbar{padding:.25rem 0!important}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child{padding:.5rem}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:not(:first-child){margin-block-start:.5rem;--fdNestedList_Start_Offset: 3rem}\n/*! Bundled license information:\n\n@fundamental-styles/cx/dist/side-nav.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "ngmodule", type: I18nModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SideNavigationMainComponent, selector: "fdx-side-nav-main, div[fdx-side-nav-main]" }, { kind: "component", type: PreparedNestedListComponent, selector: "fdx-prepared-nested-list", inputs: ["first", "condensed", "list"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["id"], exportAs: ["fd-button"] }, { kind: "directive", type: SideNavigationUtilityDirective, selector: "[cxSideNavigationUtility], [fdx-side-nav-utility]" }, { kind: "directive", type: SideNavigationButtonDirective, selector: "[cxSideNavButton], [fdx-side-nav-button]" }, { kind: "pipe", type: i1$1.FdTranslatePipe, name: "fdTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
248
247
  }
249
248
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SideNavigationComponent, decorators: [{
250
249
  type: Component,
251
250
  args: [{ selector: 'fdx-side-nav', encapsulation: ViewEncapsulation.None, imports: [
252
- FdTranslatePipe,
251
+ I18nModule,
253
252
  NgTemplateOutlet,
254
253
  SideNavigationMainComponent,
255
254
  PreparedNestedListComponent,
256
255
  ButtonComponent,
257
256
  SideNavigationUtilityDirective,
258
257
  SideNavigationButtonDirective
259
- ], standalone: true, providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService], template: "<nav\n class=\"fdx-side-nav\"\n [class.fdx-side-nav--dynamic-width]=\"dynamicWidth\"\n [class.fdx-side-nav--shellbar]=\"inShellbar\"\n [class.fdx-side-nav--narrow]=\"narrow\"\n [class.fdx-side-nav--narrow-animated-items]=\"_narrowAnimatedItems$()\"\n [class.fdx-side-nav--condensed]=\"condensed || sideNavigationConfiguration?.condensed\"\n [class.fdx-side-nav--mobile]=\"mobile\"\n [attr.aria-label]=\"('coreNavigation.mainNavigation' | fdTranslate)()\"\n>\n @if (!sideNavigationConfiguration) {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n <ng-content select=\"[fdx-side-nav-main]\"></ng-content>\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n <ng-content select=\"[fdx-side-nav-utility]\"></ng-content>\n } @else {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n @if (sideNavigationConfiguration.mainNavigation) {\n <div fdx-side-nav-main>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.mainNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n @if (sideNavigationConfiguration.utilityNavigation) {\n <div fdx-side-nav-utility>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.utilityNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n }\n</nav>\n<ng-template #scrollUp>\n @if (_showScrollUpButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--top\">\n <button\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-up-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('up')\"\n ></button>\n </div>\n }\n</ng-template>\n<ng-template #scrollDown>\n @if (_showScrollDownButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--bottom\">\n <button\n #scrollDownButton\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-down-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('down')\"\n ></button>\n </div>\n }\n</ng-template>\n", styles: [".fdx-nested-list{--fdNestedList_Item_Height:var(--sapElement_LineHeight);--fdNestedList_Item_Spacing:.25rem;--fdNestedList_Item_Spacing_Compact:.125rem;--fdNestedList_Item_Margin:.25rem;--fdNestedList_Focus_Offset:0;--fdNestedList_Focus_Offset_Width:var(--sapContent_FocusWidth);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;list-style:none;width:100%}.fdx-nested-list:after,.fdx-nested-list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list[aria-hidden=true]{display:none}.fdx-nested-list__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fdx-nested-list__item:after,.fdx-nested-list__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__item--header h1.fdx-nested-list__link,.fdx-nested-list__item--header h2.fdx-nested-list__link,.fdx-nested-list__item--header h3.fdx-nested-list__link,.fdx-nested-list__item--header h4.fdx-nested-list__link,.fdx-nested-list__item--header h5.fdx-nested-list__link,.fdx-nested-list__item--header h6.fdx-nested-list__link{cursor:auto}.fdx-nested-list__item--header h1.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h1.fdx-nested-list__link:hover,.fdx-nested-list__item--header h2.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h2.fdx-nested-list__link:hover,.fdx-nested-list__item--header h3.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h3.fdx-nested-list__link:hover,.fdx-nested-list__item--header h4.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h4.fdx-nested-list__link:hover,.fdx-nested-list__item--header h5.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h5.fdx-nested-list__link:hover,.fdx-nested-list__item--header h6.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h6.fdx-nested-list__link:hover{background:var(--sapList_Background);color:var(--sapList_TextColor)}.fdx-nested-list__item--header h1.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h2.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h3.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h4.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h5.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h6.fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--header .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item--header .fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:var(--fdNestedList_Item_Height);padding-inline:1rem}.fdx-nested-list__item--group .fdx-nested-list__title{color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize)}.fdx-nested-list__item--group:not(:first-child){-webkit-margin-before:.625rem;margin-block-start:.625rem}.fdx-nested-list__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background:var(--sapList_Background);border-radius:var(--sapButton_BorderCornerRadius);color:var(--sapList_TextColor);cursor:pointer;min-height:var(--fdNestedList_Item_Height);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link:after,.fdx-nested-list__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link.is-hover,.fdx-nested-list__link:hover{background:var(--sapList_Hover_Background);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-focus,.fdx-nested-list__link:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link.is-selected,.fdx-nested-list__link[aria-selected=true]{background:var(--sapList_SelectionBackgroundColor);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected.is-hover,.fdx-nested-list__link.is-selected:hover,.fdx-nested-list__link[aria-selected=true].is-hover,.fdx-nested-list__link[aria-selected=true]:hover{background:var(--sapList_Hover_SelectionBackground);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{background:var(--sapList_SelectionBorderColor);content:\"\";height:100%;left:0;position:absolute;top:0;width:.1875rem}.fdx-nested-list__link.is-selected[dir=rtl] .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true][dir=rtl] .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{left:auto;right:0}.fdx-nested-list__link.is-active,.fdx-nested-list__link.is-active.is-selected,.fdx-nested-list__link.is-active[aria-selected=true],.fdx-nested-list__link:active,.fdx-nested-list__link:active.is-selected,.fdx-nested-list__link:active[aria-selected=true]{background:var(--sapList_Active_Background);color:var(--sapList_Active_TextColor)}.fdx-nested-list__link.is-active .fdx-nested-list__arrow,.fdx-nested-list__link.is-active .fdx-nested-list__icon,.fdx-nested-list__link.is-active .fdx-nested-list__title,.fdx-nested-list__link:active .fdx-nested-list__arrow,.fdx-nested-list__link:active .fdx-nested-list__icon,.fdx-nested-list__link:active .fdx-nested-list__title{color:var(--sapList_Active_TextColor)}.fdx-nested-list__link-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--sapButton_BorderCornerRadius);overflow:hidden;padding-block:.5rem;padding-inline:var(--fdNestedList_Start_Offset,1rem) var(--fdNestedList_End_Offset,1rem);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link-container:after,.fdx-nested-list__link-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link-container.is-focus,.fdx-nested-list__link-container:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link-container:has(.fdx-nested-list__arrow){--fdNestedList_End_Offset:.375rem}.fdx-nested-list__icon [class*=sap-icon],.fdx-nested-list__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapList_TextColor);font-size:inherit;font-size:1rem;line-height:1;max-width:1rem;min-width:1rem;width:1rem}.fdx-nested-list__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-family:var(--fdNestedList_Title_Font_Family,var(--sapFontBoldFamily));font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;text-align:start;-webkit-transition:opacity .1s ease-out,visibility .1s ease-out;transition:opacity .1s ease-out,visibility .1s ease-out;width:100%}.fdx-nested-list__title:after,.fdx-nested-list__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon]{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:2.25rem;min-height:1rem;min-width:2.25rem;width:2.25rem}.fdx-nested-list__arrow[class*=sap-icon]:after,.fdx-nested-list__arrow[class*=sap-icon]:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__arrow[class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list__button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:2.75rem;min-width:2.75rem;width:2.75rem;-webkit-margin-start:1.3125rem;background:transparent;border-radius:var(--sapButton_BorderCornerRadius);cursor:pointer;height:var(--fdNestedList_Item_Height);margin-inline-start:1.3125rem;position:relative}.fdx-nested-list__button:after,.fdx-nested-list__button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__button.is-focus,.fdx-nested-list__button:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__button:before{background:var(--sapTextColor);content:\"\";height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fdx-nested-list__button[dir=rtl]:before,[dir=rtl] .fdx-nested-list__button:before{left:auto;right:-.25rem}.fdx-nested-list__button [class*=sap-icon]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:1rem;min-height:1rem;min-width:1rem;width:1rem}.fdx-nested-list__button [class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__button [class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list .fdx-nested-list.level-2{--fdNestedList_Start_Offset:2.5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list--text-only .fdx-nested-list.level-2{--fdNestedList_Start_Offset:3rem}.fdx-nested-list--text-only .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem}.fdx-nested-list[class*=-compact],.fdx-nested-list[class*=-condensed],[class*=-compact] .fdx-nested-list:not([class*=-cozy]),[class*=-condensed] .fdx-nested-list:not([class*=-cozy]){--fdNestedList_Item_Margin:.25rem;--fdNestedList_Item_Spacing:.125rem;--fdNestedList_Focus_Offset:.0625rem;--fdNestedList_Focus_Offset_Width:.0625rem;--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav{--fdSideNav_Padding_Block:.25rem;--fdSideNav_Padding_Inline:0;--fdSideNav_First_Item_Margin_Top:.25rem;--fdSideNav_Utility_Margin_Bottom:1rem;--fdNestedList_Item_Height:var(--sapElement_LineHeigh);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-transition:width .2s ease-out;transition:width .2s ease-out;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background-color:var(--sapGroup_ContentBackground);border-radius:0;-webkit-box-shadow:var(--sapContent_Shadow0);box-shadow:var(--sapContent_Shadow0);height:100%;justify-content:space-between;width:15rem}.fdx-side-nav:after,.fdx-side-nav:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden scroll;padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__main-navigation:after,.fdx-side-nav__main-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation.fd-scrollbar{padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__utility{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:.5rem;-webkit-padding-after:.5rem;padding-block-end:.5rem}.fdx-side-nav__utility:after,.fdx-side-nav__utility:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__utility:before{background:var(--sapToolbar_SeparatorColor);content:\"\";display:block;height:.0625rem;width:auto;-webkit-margin-after:.25rem;margin-block-end:.25rem;margin-inline:.5rem}.fdx-side-nav__popover-body{border-radius:1rem!important;margin-block:.25rem!important;max-width:16rem!important;min-width:16rem!important;padding-inline:0!important;width:16rem!important}.fdx-side-nav__popover-body .fdx-nested-list.level-2{padding-block:.5rem;padding-inline:.5rem}.fdx-side-nav__popover-body .fdx-nested-list.level-2 .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body .fdx-nested-list.level-3 .fdx-nested-list__link-container{--fdNestedList_Start_Offset:3rem}.fdx-side-nav__popover-body--dynamic-width{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;min-width:16rem!important;width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important}.fdx-side-nav__button{margin-block:.25rem!important;margin-inline:0!important}.fdx-side-nav__input-group{margin-block:.75rem!important;margin-inline:.5rem!important;max-width:calc(100% - 1rem);min-width:calc(100% - 1rem);width:calc(100% - 1rem)}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdSideNav_Padding_Block:.125rem;--fdSideNav_First_Item_Margin_Top:.125rem;--fdSideNav_Utility_Margin_Bottom:.75rem}.fdx-side-nav--mobile{border-radius:0;width:100%}.fdx-side-nav--narrow-animated-items .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow-animated-items .fdx-nested-list__button,.fdx-side-nav--narrow-animated-items .fdx-nested-list__title{height:var(--fdNestedList_Item_Height);opacity:0;overflow:hidden;visibility:hidden}.fdx-side-nav--narrow{width:4rem}.fdx-side-nav--narrow .fdx-nested-list__link{height:var(--fdNestedList_Item_Height);max-height:var(--fdNestedList_Item_Height);min-height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__button,.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__title{display:none;height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link{position:relative}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;content:\"\\e066\";position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-padding-end:.25rem;font-family:SAP-icons;padding-inline-end:.25rem}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link[dir=rtl]:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link[dir=rtl]:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;left:0;padding-inline:.25rem 0;right:auto;-webkit-transform:rotateY(180deg) translateY(-50%);transform:rotateY(180deg) translateY(-50%)}.fdx-side-nav--dynamic-width{max-width:100%;min-width:15rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fdx-side-nav--dynamic-width.fdx--narrow{width:4rem}.fdx-side-nav--shellbar{border-top-right-radius:0}.fdx-side-nav--shellbar[dir=rtl],[dir=rtl] .fdx-side-nav--shellbar{border-top-left-radius:0}.fdx-side-nav--single-line .fdx-nested-list__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav__button-container{background:var(--sapGroup_ContentBackground);position:static;width:100%;height:48px;z-index:1}.fdx-side-nav__button-container--bottom{border-bottom-right-radius:1rem}.fdx-side-nav__button-container--top{border-top-right-radius:1rem}.fdx-side-nav__button-container .fdx-side-nav .fdx-side-nav__button:last-of-type{margin-top:0!important}.fdx-nested-list__item{display:block}.fdx-nested-list__item .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item .fdx-nested-list__content .fdx-nested-list__button.fd-button{background:none}.fdx-side-nav .fd-button{margin-left:.875rem!important}.fdx-side-nav .fdx-side-nav__button{min-height:2.25rem;overflow:hidden;position:sticky}.fdx-side-nav--narrow .fdx-nested-list__item--group{display:none!important}.fdx-side-nav--compact .fdx-side-nav__button{min-height:1.5rem}.fdx-side-nav__popover-body .fd-scrollbar{padding:.25rem 0!important}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child{padding:.5rem}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:not(:first-child){margin-block-start:.5rem;--fdNestedList_Start_Offset: 3rem}\n/*! Bundled license information:\n\n@fundamental-styles/cx/dist/side-nav.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
258
+ ], standalone: true, providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService], template: "<nav\n class=\"fdx-side-nav\"\n [class.fdx-side-nav--dynamic-width]=\"dynamicWidth\"\n [class.fdx-side-nav--shellbar]=\"inShellbar\"\n [class.fdx-side-nav--narrow]=\"narrow\"\n [class.fdx-side-nav--narrow-animated-items]=\"_narrowAnimatedItems$()\"\n [class.fdx-side-nav--condensed]=\"condensed || sideNavigationConfiguration?.condensed\"\n [class.fdx-side-nav--mobile]=\"mobile\"\n [attr.aria-label]=\"'coreNavigation.mainNavigation' | fdTranslate\"\n>\n @if (!sideNavigationConfiguration) {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n <ng-content select=\"[fdx-side-nav-main]\"></ng-content>\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n <ng-content select=\"[fdx-side-nav-utility]\"></ng-content>\n } @else {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n @if (sideNavigationConfiguration.mainNavigation) {\n <div fdx-side-nav-main>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.mainNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n @if (sideNavigationConfiguration.utilityNavigation) {\n <div fdx-side-nav-utility>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.utilityNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n }\n</nav>\n<ng-template #scrollUp>\n @if (_showScrollUpButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--top\">\n <button\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-up-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('up')\"\n ></button>\n </div>\n }\n</ng-template>\n<ng-template #scrollDown>\n @if (_showScrollDownButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--bottom\">\n <button\n #scrollDownButton\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-down-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('down')\"\n ></button>\n </div>\n }\n</ng-template>\n", styles: [".fdx-nested-list{--fdNestedList_Item_Height:var(--sapElement_LineHeight);--fdNestedList_Item_Spacing:.25rem;--fdNestedList_Item_Spacing_Compact:.125rem;--fdNestedList_Item_Margin:.25rem;--fdNestedList_Focus_Offset:0;--fdNestedList_Focus_Offset_Width:var(--sapContent_FocusWidth);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:.25rem;list-style:none;width:100%}.fdx-nested-list:after,.fdx-nested-list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list[aria-hidden=true]{display:none}.fdx-nested-list__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fdx-nested-list__item:after,.fdx-nested-list__item:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__item--header h1.fdx-nested-list__link,.fdx-nested-list__item--header h2.fdx-nested-list__link,.fdx-nested-list__item--header h3.fdx-nested-list__link,.fdx-nested-list__item--header h4.fdx-nested-list__link,.fdx-nested-list__item--header h5.fdx-nested-list__link,.fdx-nested-list__item--header h6.fdx-nested-list__link{cursor:auto}.fdx-nested-list__item--header h1.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h1.fdx-nested-list__link:hover,.fdx-nested-list__item--header h2.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h2.fdx-nested-list__link:hover,.fdx-nested-list__item--header h3.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h3.fdx-nested-list__link:hover,.fdx-nested-list__item--header h4.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h4.fdx-nested-list__link:hover,.fdx-nested-list__item--header h5.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h5.fdx-nested-list__link:hover,.fdx-nested-list__item--header h6.fdx-nested-list__link.is-hover,.fdx-nested-list__item--header h6.fdx-nested-list__link:hover{background:var(--sapList_Background);color:var(--sapList_TextColor)}.fdx-nested-list__item--header h1.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h2.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h3.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h4.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h5.fdx-nested-list__link .fdx-nested-list__title,.fdx-nested-list__item--header h6.fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--header .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item--header .fdx-nested-list__link .fdx-nested-list__title{font-weight:700}.fdx-nested-list__item--group{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:var(--fdNestedList_Item_Height);padding-inline:1rem}.fdx-nested-list__item--group .fdx-nested-list__title{color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize)}.fdx-nested-list__item--group:not(:first-child){-webkit-margin-before:.625rem;margin-block-start:.625rem}.fdx-nested-list__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background:var(--sapList_Background);border-radius:var(--sapButton_BorderCornerRadius);color:var(--sapList_TextColor);cursor:pointer;min-height:var(--fdNestedList_Item_Height);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link:after,.fdx-nested-list__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link.is-hover,.fdx-nested-list__link:hover{background:var(--sapList_Hover_Background);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-focus,.fdx-nested-list__link:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link.is-selected,.fdx-nested-list__link[aria-selected=true]{background:var(--sapList_SelectionBackgroundColor);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected.is-hover,.fdx-nested-list__link.is-selected:hover,.fdx-nested-list__link[aria-selected=true].is-hover,.fdx-nested-list__link[aria-selected=true]:hover{background:var(--sapList_Hover_SelectionBackground);color:var(--sapList_TextColor)}.fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{background:var(--sapList_SelectionBorderColor);content:\"\";height:100%;left:0;position:absolute;top:0;width:.1875rem}.fdx-nested-list__link.is-selected[dir=rtl] .fdx-nested-list__link-container:after,.fdx-nested-list__link[aria-selected=true][dir=rtl] .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link.is-selected .fdx-nested-list__link-container:after,[dir=rtl] .fdx-nested-list__link[aria-selected=true] .fdx-nested-list__link-container:after{left:auto;right:0}.fdx-nested-list__link.is-active,.fdx-nested-list__link.is-active.is-selected,.fdx-nested-list__link.is-active[aria-selected=true],.fdx-nested-list__link:active,.fdx-nested-list__link:active.is-selected,.fdx-nested-list__link:active[aria-selected=true]{background:var(--sapList_Active_Background);color:var(--sapList_Active_TextColor)}.fdx-nested-list__link.is-active .fdx-nested-list__arrow,.fdx-nested-list__link.is-active .fdx-nested-list__icon,.fdx-nested-list__link.is-active .fdx-nested-list__title,.fdx-nested-list__link:active .fdx-nested-list__arrow,.fdx-nested-list__link:active .fdx-nested-list__icon,.fdx-nested-list__link:active .fdx-nested-list__title{color:var(--sapList_Active_TextColor)}.fdx-nested-list__link-container{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--sapButton_BorderCornerRadius);overflow:hidden;padding-block:.5rem;padding-inline:var(--fdNestedList_Start_Offset,1rem) var(--fdNestedList_End_Offset,1rem);position:relative;text-decoration:none;width:100%}.fdx-nested-list__link-container:after,.fdx-nested-list__link-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__link-container.is-focus,.fdx-nested-list__link-container:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__link-container:has(.fdx-nested-list__arrow){--fdNestedList_End_Offset:.375rem}.fdx-nested-list__icon [class*=sap-icon],.fdx-nested-list__icon[class*=sap-icon]{background:inherit;border-radius:inherit;color:inherit;color:var(--sapList_TextColor);font-size:inherit;font-size:1rem;line-height:1;max-width:1rem;min-width:1rem;width:1rem}.fdx-nested-list__title{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);display:inline-block;font-family:var(--sapFontFamily);font-family:var(--fdNestedList_Title_Font_Family,var(--sapFontBoldFamily));font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;text-align:start;-webkit-transition:opacity .1s ease-out,visibility .1s ease-out;transition:opacity .1s ease-out,visibility .1s ease-out;width:100%}.fdx-nested-list__title:after,.fdx-nested-list__title:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon]{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:2.25rem;min-height:1rem;min-width:2.25rem;width:2.25rem}.fdx-nested-list__arrow[class*=sap-icon]:after,.fdx-nested-list__arrow[class*=sap-icon]:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__arrow[class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__arrow[class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list__button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:2.75rem;min-width:2.75rem;width:2.75rem;-webkit-margin-start:1.3125rem;background:transparent;border-radius:var(--sapButton_BorderCornerRadius);cursor:pointer;height:var(--fdNestedList_Item_Height);margin-inline-start:1.3125rem;position:relative}.fdx-nested-list__button:after,.fdx-nested-list__button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-nested-list__button.is-focus,.fdx-nested-list__button:focus{outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--fdNestedList_Focus_Offset_Width);outline-offset:var(--fdNestedList_Focus_Offset)}.fdx-nested-list__button:before{background:var(--sapTextColor);content:\"\";height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fdx-nested-list__button[dir=rtl]:before,[dir=rtl] .fdx-nested-list__button:before{left:auto;right:-.25rem}.fdx-nested-list__button [class*=sap-icon]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:1rem;line-height:1;max-height:1rem;max-width:1rem;min-height:1rem;min-width:1rem;width:1rem}.fdx-nested-list__button [class*=sap-icon][dir=rtl],[dir=rtl] .fdx-nested-list__button [class*=sap-icon]{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fdx-nested-list .fdx-nested-list.level-2{--fdNestedList_Start_Offset:2.5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem;--fdNestedList_Title_Font_Family:var(--sapFontFamily);-webkit-margin-before:.25rem;margin-block-start:.25rem}.fdx-nested-list--text-only .fdx-nested-list.level-2{--fdNestedList_Start_Offset:3rem}.fdx-nested-list--text-only .fdx-nested-list.level-3{--fdNestedList_Start_Offset:5rem}.fdx-nested-list[class*=-compact],.fdx-nested-list[class*=-condensed],[class*=-compact] .fdx-nested-list:not([class*=-cozy]),[class*=-condensed] .fdx-nested-list:not([class*=-cozy]){--fdNestedList_Item_Margin:.25rem;--fdNestedList_Item_Spacing:.125rem;--fdNestedList_Focus_Offset:.0625rem;--fdNestedList_Focus_Offset_Width:.0625rem;--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav{--fdSideNav_Padding_Block:.25rem;--fdSideNav_Padding_Inline:0;--fdSideNav_First_Item_Margin_Top:.25rem;--fdSideNav_Utility_Margin_Bottom:1rem;--fdNestedList_Item_Height:var(--sapElement_LineHeigh);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-transition:width .2s ease-out;transition:width .2s ease-out;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background-color:var(--sapGroup_ContentBackground);border-radius:0;-webkit-box-shadow:var(--sapContent_Shadow0);box-shadow:var(--sapContent_Shadow0);height:100%;justify-content:space-between;width:15rem}.fdx-side-nav:after,.fdx-side-nav:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden scroll;padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__main-navigation:after,.fdx-side-nav__main-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__main-navigation.fd-scrollbar{padding-block:.5rem .25rem;padding-inline:.5rem}.fdx-side-nav__utility{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:.5rem;-webkit-padding-after:.5rem;padding-block-end:.5rem}.fdx-side-nav__utility:after,.fdx-side-nav__utility:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fdx-side-nav__utility:before{background:var(--sapToolbar_SeparatorColor);content:\"\";display:block;height:.0625rem;width:auto;-webkit-margin-after:.25rem;margin-block-end:.25rem;margin-inline:.5rem}.fdx-side-nav__popover-body{border-radius:1rem!important;margin-block:.25rem!important;max-width:16rem!important;min-width:16rem!important;padding-inline:0!important;width:16rem!important}.fdx-side-nav__popover-body .fdx-nested-list.level-2{padding-block:.5rem;padding-inline:.5rem}.fdx-side-nav__popover-body .fdx-nested-list.level-2 .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body .fdx-nested-list.level-3 .fdx-nested-list__link-container{--fdNestedList_Start_Offset:3rem}.fdx-side-nav__popover-body--dynamic-width{max-width:-webkit-fit-content!important;max-width:-moz-fit-content!important;max-width:fit-content!important;min-width:16rem!important;width:-webkit-fit-content!important;width:-moz-fit-content!important;width:fit-content!important}.fdx-side-nav__button{margin-block:.25rem!important;margin-inline:0!important}.fdx-side-nav__input-group{margin-block:.75rem!important;margin-inline:.5rem!important;max-width:calc(100% - 1rem);min-width:calc(100% - 1rem);width:calc(100% - 1rem)}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdSideNav_Padding_Block:.125rem;--fdSideNav_First_Item_Margin_Top:.125rem;--fdSideNav_Utility_Margin_Bottom:.75rem}.fdx-side-nav--mobile{border-radius:0;width:100%}.fdx-side-nav--narrow-animated-items .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow-animated-items .fdx-nested-list__button,.fdx-side-nav--narrow-animated-items .fdx-nested-list__title{height:var(--fdNestedList_Item_Height);opacity:0;overflow:hidden;visibility:hidden}.fdx-side-nav--narrow{width:4rem}.fdx-side-nav--narrow .fdx-nested-list__link{height:var(--fdNestedList_Item_Height);max-height:var(--fdNestedList_Item_Height);min-height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__arrow[class*=sap-icon],.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__button,.fdx-side-nav--narrow:not(.fdx-side-nav--narrow-animated-items) .fdx-nested-list__title{display:none;height:var(--fdNestedList_Item_Height)}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link{position:relative}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;content:\"\\e066\";position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-padding-end:.25rem;font-family:SAP-icons;padding-inline-end:.25rem}.fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link[dir=rtl]:before,.fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link[dir=rtl]:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list button.fdx-nested-list__link:before,[dir=rtl] .fdx-side-nav--narrow .fdx-nested-list div.fdx-nested-list__link:before{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;left:0;padding-inline:.25rem 0;right:auto;-webkit-transform:rotateY(180deg) translateY(-50%);transform:rotateY(180deg) translateY(-50%)}.fdx-side-nav--dynamic-width{max-width:100%;min-width:15rem;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fdx-side-nav--dynamic-width.fdx--narrow{width:4rem}.fdx-side-nav--shellbar{border-top-right-radius:0}.fdx-side-nav--shellbar[dir=rtl],[dir=rtl] .fdx-side-nav--shellbar{border-top-left-radius:0}.fdx-side-nav--single-line .fdx-nested-list__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fdx-side-nav[class*=-compact],.fdx-side-nav[class*=-condensed],[class*=-compact] .fdx-side-nav:not([class*=-cozy]),[class*=-condensed] .fdx-side-nav:not([class*=-cozy]){--fdNestedList_Item_Height:var(--sapElement_Compact_LineHeight)}.fdx-side-nav__button-container{background:var(--sapGroup_ContentBackground);position:static;width:100%;height:48px;z-index:1}.fdx-side-nav__button-container--bottom{border-bottom-right-radius:1rem}.fdx-side-nav__button-container--top{border-top-right-radius:1rem}.fdx-side-nav__button-container .fdx-side-nav .fdx-side-nav__button:last-of-type{margin-top:0!important}.fdx-nested-list__item{display:block}.fdx-nested-list__item .fdx-nested-list__link{cursor:pointer}.fdx-nested-list__item .fdx-nested-list__content .fdx-nested-list__button.fd-button{background:none}.fdx-side-nav .fd-button{margin-left:.875rem!important}.fdx-side-nav .fdx-side-nav__button{min-height:2.25rem;overflow:hidden;position:sticky}.fdx-side-nav--narrow .fdx-nested-list__item--group{display:none!important}.fdx-side-nav--compact .fdx-side-nav__button{min-height:1.5rem}.fdx-side-nav__popover-body .fd-scrollbar{padding:.25rem 0!important}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child{padding:.5rem}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:first-child .fdx-nested-list__title{font-family:var(--sapFontFamily)}.fdx-side-nav__popover-body.fdx-nested-list--text-only .fdx-nested-list:not(:first-child){margin-block-start:.5rem;--fdNestedList_Start_Offset: 3rem}\n/*! Bundled license information:\n\n@fundamental-styles/cx/dist/side-nav.css:\n (*!\n * Fundamental Library Styles v0.40.1\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
260
259
  }], ctorParameters: () => [], propDecorators: { condensed: [{
261
260
  type: Input
262
261
  }, {
@@ -303,12 +302,13 @@ class CxSideNavigationModule {
303
302
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CxSideNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
304
303
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: CxSideNavigationModule, imports: [ButtonComponent,
305
304
  ScrollbarDirective,
306
- FdTranslatePipe,
305
+ I18nModule,
307
306
  SideNavigationMainComponent,
308
307
  SideNavigationUtilityDirective,
309
308
  SideNavigationButtonDirective,
310
309
  SideNavigationComponent], exports: [SideNavigationComponent] }); }
311
310
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CxSideNavigationModule, imports: [ButtonComponent,
311
+ I18nModule,
312
312
  SideNavigationComponent] }); }
313
313
  }
314
314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CxSideNavigationModule, decorators: [{
@@ -317,7 +317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
317
317
  imports: [
318
318
  ButtonComponent,
319
319
  ScrollbarDirective,
320
- FdTranslatePipe,
320
+ I18nModule,
321
321
  SideNavigationMainComponent,
322
322
  SideNavigationUtilityDirective,
323
323
  SideNavigationButtonDirective,
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-cx-side-navigation.mjs","sources":["../../../../libs/cx/side-navigation/side-navigation-button.directive.ts","../../../../libs/cx/side-navigation/side-navigation-main.component.ts","../../../../libs/cx/side-navigation/side-navigation-utility.directive.ts","../../../../libs/cx/side-navigation/side-navigation.component.ts","../../../../libs/cx/side-navigation/side-navigation.component.html","../../../../libs/cx/side-navigation/side-navigation.module.ts","../../../../libs/cx/side-navigation/fundamental-ngx-cx-side-navigation.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[cxSideNavButton], [fdx-side-nav-button]',\n standalone: true\n})\nexport class SideNavigationButtonDirective {\n /** @hidden */\n @HostBinding('class.fdx-side-nav__button')\n fdSideNavButtonClass = true;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { InputGroupComponent } from '@fundamental-ngx/core/input-group';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { NestedListComponent } from '@fundamental-ngx/cx/nested-list';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fdx-side-nav-main, div[fdx-side-nav-main]',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [ScrollbarDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SideNavigationMainComponent implements AfterContentInit {\n /** @hidden */\n @ContentChild(NestedListComponent)\n list: NestedListComponent;\n\n /** @hidden */\n @ContentChildren(InputGroupComponent, { descendants: true })\n _inputGroups: QueryList<InputGroupComponent>;\n\n /** @hidden */\n @HostBinding('class.fdx-side-nav__main-navigation')\n classSideNavMainNavigation = true;\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n private _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._inputGroups.forEach((input) => {\n input.elementRef.nativeElement.classList.add('fdx-side-nav__input-group');\n });\n }\n}\n","import { ContentChild, Directive, HostBinding } from '@angular/core';\nimport { NestedListComponent } from '@fundamental-ngx/cx/nested-list';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[cxSideNavigationUtility], [fdx-side-nav-utility]',\n standalone: true\n})\nexport class SideNavigationUtilityDirective {\n /** @hidden */\n @ContentChild(NestedListComponent)\n list: NestedListComponent;\n\n /** @hidden */\n @HostBinding('class.fdx-side-nav__utility')\n classSideNavUtility = true;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n inject,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { SideNavigationInterface } from '@fundamental-ngx/core/side-navigation';\nimport {\n NestedListComponent,\n NestedListKeyboardService,\n NestedListStateService,\n PreparedNestedListComponent\n} from '@fundamental-ngx/cx/nested-list';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SideNavigationButtonDirective } from './side-navigation-button.directive';\nimport { SideNavigationMainComponent } from './side-navigation-main.component';\nimport { SideNavigationModel } from './side-navigation-model';\nimport { SideNavigationUtilityDirective } from './side-navigation-utility.directive';\n\n/**\n * The side-navigation is a wrapping component representing\n * a left navigation that can always display or expand/collapse using the menu icon within the global navigation.\n */\n@Component({\n selector: 'fdx-side-nav',\n templateUrl: './side-navigation.component.html',\n styleUrl: 'side-navigation.component.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [\n FdTranslatePipe,\n NgTemplateOutlet,\n SideNavigationMainComponent,\n PreparedNestedListComponent,\n ButtonComponent,\n SideNavigationUtilityDirective,\n SideNavigationButtonDirective\n ],\n standalone: true,\n providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService]\n})\nexport class SideNavigationComponent\n implements AfterContentInit, AfterViewInit, OnInit, OnChanges, SideNavigationInterface\n{\n /** @deprecated Not applicable to the CX side nav. */\n @Input()\n @HostBinding('class.fdx-side-nav--condensed')\n set condensed(value: boolean) {\n warnOnce('The \"condensed\" input is not applicable to the CX side nav.');\n this._condensed = value;\n }\n\n get condensed(): boolean {\n return this._condensed;\n }\n\n /** Whether the sidenav is used with shellbar. */\n @Input()\n inShellbar = false;\n\n /**\n * Side navigation configuration, to pass whole model object, instead of creating HTML from scratch\n */\n @Input()\n sideNavigationConfiguration: Nullable<SideNavigationModel>;\n\n /** Prevents the side navigation from truncating or wrapping, extending the width to its longest label. */\n @Input()\n dynamicWidth = false;\n\n /**\n * The screen width, in pixels, at which to automatically collapse the side navigation on window resize.\n */\n @Input()\n collapseWidth: number;\n\n /**\n * Whether this side nav should display as narrow. Note this can only be used with side nav items that have icons.\n */\n @Input()\n narrow = false;\n\n /** Whether this side nav should display in mobile (fullscreen) mode. */\n @Input()\n mobile = false;\n\n /** Whether to show the scroll buttons in narrow mode. When set to false, default scrollbar behavior will be used. */\n @Input()\n showScrollButtons = true;\n\n /** Whether clicking on elements should change selected state of items */\n @Input()\n set selectable(selectable: boolean) {\n this._nestedListState.selectable = selectable;\n }\n\n /** @hidden */\n @ContentChild(SideNavigationUtilityDirective)\n sideNavUtility: SideNavigationUtilityDirective;\n\n /** @hidden */\n @ContentChild(SideNavigationMainComponent, { descendants: true })\n sideNavMain: SideNavigationMainComponent;\n\n /** @hidden */\n @ViewChildren(PreparedNestedListComponent)\n preparedNestedList: QueryList<PreparedNestedListComponent>;\n\n /** @hidden */\n @ViewChild('scrollDownButton', { read: ElementRef })\n _scrollDownButton: ElementRef;\n\n /** @hidden */\n _showScrollUpButton = false;\n\n /** @hidden */\n _showScrollDownButton = false;\n\n /** @hidden */\n additionalShellbarCssClass = 'fd-shellbar--cx-side-nav';\n\n /** @hidden */\n _narrowAnimatedItems$ = signal(false);\n\n private _timeout: ReturnType<typeof setTimeout> | undefined;\n\n /** @hidden */\n private _condensed = false;\n\n /** @hidden */\n private readonly _keyboardService = inject(NestedListKeyboardService);\n /** @hidden */\n private readonly _nestedListState = inject(NestedListStateService);\n /** @hidden */\n private readonly _cdRef = inject(ChangeDetectorRef);\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor() {\n this._keyboardService.refresh$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n /** Refresh list of elements, that are being supported by keyboard */\n this._keyboardService.refreshItems(this.getLists());\n });\n }\n\n /** @hidden */\n @HostListener('window:resize')\n onResize(): void {\n if (this.collapseWidth) {\n this._condensed = window.innerWidth <= this.collapseWidth;\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n /** Set up condensed state */\n this._nestedListState.condensed =\n this._condensed || !!(this.sideNavigationConfiguration && this.sideNavigationConfiguration.condensed);\n\n if (this.collapseWidth) {\n this.onResize();\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (!this.sideNavigationConfiguration) {\n this._keyboardService.refreshItems(this.getLists());\n }\n this._setupScrollButtons();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.narrow) {\n this._setupScrollButtons();\n this._animateNarrowState();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.sideNavigationConfiguration) {\n this._keyboardService.refreshItems(this.getLists());\n }\n }\n\n /** @hidden */\n _setupScrollButtons(): void {\n setTimeout(() => {\n if (!this.sideNavMain) {\n return;\n }\n if (\n this.sideNavMain.elementRef.nativeElement.scrollHeight >\n this.sideNavMain.elementRef.nativeElement.clientHeight &&\n this.sideNavMain &&\n this.narrow &&\n this.showScrollButtons\n ) {\n this._showScrollUpButton = true;\n this._showScrollDownButton = true;\n this.sideNavMain.list.nestedItems.forEach((item) => {\n item._narrow = true;\n });\n } else {\n this._showScrollUpButton = false;\n this._showScrollDownButton = false;\n this.sideNavMain.list.nestedItems.forEach((item) => {\n item._narrow = false;\n });\n }\n this._cdRef.detectChanges();\n });\n }\n\n /** @hidden */\n _scrollItems(direction: 'up' | 'down'): void {\n this.sideNavMain.elementRef.nativeElement.scrollBy({\n top: direction === 'up' ? -52 : 52,\n left: 0,\n behavior: 'smooth'\n });\n }\n\n /**\n * @hidden\n * Method that returns 1 deep level of lists.\n */\n private getLists(): NestedListComponent[] {\n const lists: NestedListComponent[] = [];\n\n if (this.sideNavMain) {\n lists.push(this.sideNavMain.list);\n }\n if (this.sideNavUtility) {\n lists.push(this.sideNavUtility.list);\n }\n if (this.preparedNestedList) {\n lists.push(...this.preparedNestedList.map((preparedNested) => preparedNested.nestedListComponent));\n }\n\n return lists;\n }\n\n private _animateNarrowState(): void {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(\n () => {\n this._narrowAnimatedItems$.set(this.narrow);\n },\n !this.narrow ? 200 : 0\n );\n }\n}\n","<nav\n class=\"fdx-side-nav\"\n [class.fdx-side-nav--dynamic-width]=\"dynamicWidth\"\n [class.fdx-side-nav--shellbar]=\"inShellbar\"\n [class.fdx-side-nav--narrow]=\"narrow\"\n [class.fdx-side-nav--narrow-animated-items]=\"_narrowAnimatedItems$()\"\n [class.fdx-side-nav--condensed]=\"condensed || sideNavigationConfiguration?.condensed\"\n [class.fdx-side-nav--mobile]=\"mobile\"\n [attr.aria-label]=\"('coreNavigation.mainNavigation' | fdTranslate)()\"\n>\n @if (!sideNavigationConfiguration) {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n <ng-content select=\"[fdx-side-nav-main]\"></ng-content>\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n <ng-content select=\"[fdx-side-nav-utility]\"></ng-content>\n } @else {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n @if (sideNavigationConfiguration.mainNavigation) {\n <div fdx-side-nav-main>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.mainNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n @if (sideNavigationConfiguration.utilityNavigation) {\n <div fdx-side-nav-utility>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.utilityNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n }\n</nav>\n<ng-template #scrollUp>\n @if (_showScrollUpButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--top\">\n <button\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-up-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('up')\"\n ></button>\n </div>\n }\n</ng-template>\n<ng-template #scrollDown>\n @if (_showScrollDownButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--bottom\">\n <button\n #scrollDownButton\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-down-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('down')\"\n ></button>\n </div>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SideNavigationButtonDirective } from './side-navigation-button.directive';\nimport { SideNavigationMainComponent } from './side-navigation-main.component';\nimport { SideNavigationUtilityDirective } from './side-navigation-utility.directive';\nimport { SideNavigationComponent } from './side-navigation.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n ButtonComponent,\n ScrollbarDirective,\n FdTranslatePipe,\n SideNavigationMainComponent,\n SideNavigationUtilityDirective,\n SideNavigationButtonDirective,\n SideNavigationComponent\n ],\n exports: [SideNavigationComponent]\n})\nexport class CxSideNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-cx-side-navigation.mjs","sources":["../../../../libs/cx/side-navigation/side-navigation-button.directive.ts","../../../../libs/cx/side-navigation/side-navigation-main.component.ts","../../../../libs/cx/side-navigation/side-navigation-utility.directive.ts","../../../../libs/cx/side-navigation/side-navigation.component.ts","../../../../libs/cx/side-navigation/side-navigation.component.html","../../../../libs/cx/side-navigation/side-navigation.module.ts","../../../../libs/cx/side-navigation/fundamental-ngx-cx-side-navigation.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[cxSideNavButton], [fdx-side-nav-button]',\n standalone: true\n})\nexport class SideNavigationButtonDirective {\n /** @hidden */\n @HostBinding('class.fdx-side-nav__button')\n fdSideNavButtonClass = true;\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n ElementRef,\n HostBinding,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { InputGroupComponent } from '@fundamental-ngx/core/input-group';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { NestedListComponent } from '@fundamental-ngx/cx/nested-list';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'fdx-side-nav-main, div[fdx-side-nav-main]',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [ScrollbarDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SideNavigationMainComponent implements AfterContentInit {\n /** @hidden */\n @ContentChild(NestedListComponent)\n list: NestedListComponent;\n\n /** @hidden */\n @ContentChildren(InputGroupComponent, { descendants: true })\n _inputGroups: QueryList<InputGroupComponent>;\n\n /** @hidden */\n @HostBinding('class.fdx-side-nav__main-navigation')\n classSideNavMainNavigation = true;\n\n /** @hidden */\n constructor(\n private _elementRef: ElementRef,\n private _cdRef: ChangeDetectorRef\n ) {}\n\n /** @hidden */\n get elementRef(): ElementRef<HTMLElement> {\n return this._elementRef;\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._inputGroups.forEach((input) => {\n input.elementRef.nativeElement.classList.add('fdx-side-nav__input-group');\n });\n }\n}\n","import { ContentChild, Directive, HostBinding } from '@angular/core';\nimport { NestedListComponent } from '@fundamental-ngx/cx/nested-list';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[cxSideNavigationUtility], [fdx-side-nav-utility]',\n standalone: true\n})\nexport class SideNavigationUtilityDirective {\n /** @hidden */\n @ContentChild(NestedListComponent)\n list: NestedListComponent;\n\n /** @hidden */\n @HostBinding('class.fdx-side-nav__utility')\n classSideNavUtility = true;\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n SimpleChanges,\n ViewChild,\n ViewChildren,\n ViewEncapsulation,\n inject,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { MenuKeyboardService } from '@fundamental-ngx/core/menu';\nimport { SideNavigationInterface } from '@fundamental-ngx/core/side-navigation';\nimport {\n NestedListComponent,\n NestedListKeyboardService,\n NestedListStateService,\n PreparedNestedListComponent\n} from '@fundamental-ngx/cx/nested-list';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { SideNavigationButtonDirective } from './side-navigation-button.directive';\nimport { SideNavigationMainComponent } from './side-navigation-main.component';\nimport { SideNavigationModel } from './side-navigation-model';\nimport { SideNavigationUtilityDirective } from './side-navigation-utility.directive';\n\n/**\n * The side-navigation is a wrapping component representing\n * a left navigation that can always display or expand/collapse using the menu icon within the global navigation.\n */\n@Component({\n selector: 'fdx-side-nav',\n templateUrl: './side-navigation.component.html',\n styleUrl: 'side-navigation.component.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [\n I18nModule,\n NgTemplateOutlet,\n SideNavigationMainComponent,\n PreparedNestedListComponent,\n ButtonComponent,\n SideNavigationUtilityDirective,\n SideNavigationButtonDirective\n ],\n standalone: true,\n providers: [MenuKeyboardService, NestedListKeyboardService, NestedListStateService]\n})\nexport class SideNavigationComponent\n implements AfterContentInit, AfterViewInit, OnInit, OnChanges, SideNavigationInterface\n{\n /** @deprecated Not applicable to the CX side nav. */\n @Input()\n @HostBinding('class.fdx-side-nav--condensed')\n set condensed(value: boolean) {\n warnOnce('The \"condensed\" input is not applicable to the CX side nav.');\n this._condensed = value;\n }\n\n get condensed(): boolean {\n return this._condensed;\n }\n\n /** Whether the sidenav is used with shellbar. */\n @Input()\n inShellbar = false;\n\n /**\n * Side navigation configuration, to pass whole model object, instead of creating HTML from scratch\n */\n @Input()\n sideNavigationConfiguration: Nullable<SideNavigationModel>;\n\n /** Prevents the side navigation from truncating or wrapping, extending the width to its longest label. */\n @Input()\n dynamicWidth = false;\n\n /**\n * The screen width, in pixels, at which to automatically collapse the side navigation on window resize.\n */\n @Input()\n collapseWidth: number;\n\n /**\n * Whether this side nav should display as narrow. Note this can only be used with side nav items that have icons.\n */\n @Input()\n narrow = false;\n\n /** Whether this side nav should display in mobile (fullscreen) mode. */\n @Input()\n mobile = false;\n\n /** Whether to show the scroll buttons in narrow mode. When set to false, default scrollbar behavior will be used. */\n @Input()\n showScrollButtons = true;\n\n /** Whether clicking on elements should change selected state of items */\n @Input()\n set selectable(selectable: boolean) {\n this._nestedListState.selectable = selectable;\n }\n\n /** @hidden */\n @ContentChild(SideNavigationUtilityDirective)\n sideNavUtility: SideNavigationUtilityDirective;\n\n /** @hidden */\n @ContentChild(SideNavigationMainComponent, { descendants: true })\n sideNavMain: SideNavigationMainComponent;\n\n /** @hidden */\n @ViewChildren(PreparedNestedListComponent)\n preparedNestedList: QueryList<PreparedNestedListComponent>;\n\n /** @hidden */\n @ViewChild('scrollDownButton', { read: ElementRef })\n _scrollDownButton: ElementRef;\n\n /** @hidden */\n _showScrollUpButton = false;\n\n /** @hidden */\n _showScrollDownButton = false;\n\n /** @hidden */\n additionalShellbarCssClass = 'fd-shellbar--cx-side-nav';\n\n /** @hidden */\n _narrowAnimatedItems$ = signal(false);\n\n private _timeout: ReturnType<typeof setTimeout> | undefined;\n\n /** @hidden */\n private _condensed = false;\n\n /** @hidden */\n private readonly _keyboardService = inject(NestedListKeyboardService);\n /** @hidden */\n private readonly _nestedListState = inject(NestedListStateService);\n /** @hidden */\n private readonly _cdRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n constructor() {\n this._keyboardService.refresh$.pipe(takeUntilDestroyed()).subscribe(() => {\n /** Refresh list of elements, that are being supported by keyboard */\n this._keyboardService.refreshItems(this.getLists());\n });\n }\n\n /** @hidden */\n @HostListener('window:resize')\n onResize(): void {\n if (this.collapseWidth) {\n this._condensed = window.innerWidth <= this.collapseWidth;\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n /** Set up condensed state */\n this._nestedListState.condensed =\n this._condensed || !!(this.sideNavigationConfiguration && this.sideNavigationConfiguration.condensed);\n\n if (this.collapseWidth) {\n this.onResize();\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n if (!this.sideNavigationConfiguration) {\n this._keyboardService.refreshItems(this.getLists());\n }\n this._setupScrollButtons();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.narrow) {\n this._setupScrollButtons();\n this._animateNarrowState();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.sideNavigationConfiguration) {\n this._keyboardService.refreshItems(this.getLists());\n }\n }\n\n /** @hidden */\n _setupScrollButtons(): void {\n setTimeout(() => {\n if (!this.sideNavMain) {\n return;\n }\n if (\n this.sideNavMain.elementRef.nativeElement.scrollHeight >\n this.sideNavMain.elementRef.nativeElement.clientHeight &&\n this.sideNavMain &&\n this.narrow &&\n this.showScrollButtons\n ) {\n this._showScrollUpButton = true;\n this._showScrollDownButton = true;\n this.sideNavMain.list.nestedItems.forEach((item) => {\n item._narrow = true;\n });\n } else {\n this._showScrollUpButton = false;\n this._showScrollDownButton = false;\n this.sideNavMain.list.nestedItems.forEach((item) => {\n item._narrow = false;\n });\n }\n this._cdRef.detectChanges();\n });\n }\n\n /** @hidden */\n _scrollItems(direction: 'up' | 'down'): void {\n this.sideNavMain.elementRef.nativeElement.scrollBy({\n top: direction === 'up' ? -52 : 52,\n left: 0,\n behavior: 'smooth'\n });\n }\n\n /**\n * @hidden\n * Method that returns 1 deep level of lists.\n */\n private getLists(): NestedListComponent[] {\n const lists: NestedListComponent[] = [];\n\n if (this.sideNavMain) {\n lists.push(this.sideNavMain.list);\n }\n if (this.sideNavUtility) {\n lists.push(this.sideNavUtility.list);\n }\n if (this.preparedNestedList) {\n lists.push(...this.preparedNestedList.map((preparedNested) => preparedNested.nestedListComponent));\n }\n\n return lists;\n }\n\n private _animateNarrowState(): void {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(\n () => {\n this._narrowAnimatedItems$.set(this.narrow);\n },\n !this.narrow ? 200 : 0\n );\n }\n}\n","<nav\n class=\"fdx-side-nav\"\n [class.fdx-side-nav--dynamic-width]=\"dynamicWidth\"\n [class.fdx-side-nav--shellbar]=\"inShellbar\"\n [class.fdx-side-nav--narrow]=\"narrow\"\n [class.fdx-side-nav--narrow-animated-items]=\"_narrowAnimatedItems$()\"\n [class.fdx-side-nav--condensed]=\"condensed || sideNavigationConfiguration?.condensed\"\n [class.fdx-side-nav--mobile]=\"mobile\"\n [attr.aria-label]=\"'coreNavigation.mainNavigation' | fdTranslate\"\n>\n @if (!sideNavigationConfiguration) {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n <ng-content select=\"[fdx-side-nav-main]\"></ng-content>\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n <ng-content select=\"[fdx-side-nav-utility]\"></ng-content>\n } @else {\n <ng-template [ngTemplateOutlet]=\"scrollUp\"></ng-template>\n @if (sideNavigationConfiguration.mainNavigation) {\n <div fdx-side-nav-main>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.mainNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n <ng-template [ngTemplateOutlet]=\"scrollDown\"></ng-template>\n @if (sideNavigationConfiguration.utilityNavigation) {\n <div fdx-side-nav-utility>\n <fdx-prepared-nested-list\n [condensed]=\"condensed || !!sideNavigationConfiguration.condensed\"\n [first]=\"true\"\n [list]=\"sideNavigationConfiguration.utilityNavigation\"\n >\n </fdx-prepared-nested-list>\n </div>\n }\n }\n</nav>\n<ng-template #scrollUp>\n @if (_showScrollUpButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--top\">\n <button\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-up-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('up')\"\n ></button>\n </div>\n }\n</ng-template>\n<ng-template #scrollDown>\n @if (_showScrollDownButton) {\n <div class=\"fdx-side-nav__button-container fdx-side-nav__button-container--bottom\">\n <button\n #scrollDownButton\n fd-button\n fdType=\"standard\"\n glyph=\"navigation-down-arrow\"\n fdx-side-nav-button\n (click)=\"_scrollItems('down')\"\n ></button>\n </div>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { SideNavigationButtonDirective } from './side-navigation-button.directive';\nimport { SideNavigationMainComponent } from './side-navigation-main.component';\nimport { SideNavigationUtilityDirective } from './side-navigation-utility.directive';\nimport { SideNavigationComponent } from './side-navigation.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n ButtonComponent,\n ScrollbarDirective,\n I18nModule,\n SideNavigationMainComponent,\n SideNavigationUtilityDirective,\n SideNavigationButtonDirective,\n SideNavigationComponent\n ],\n exports: [SideNavigationComponent]\n})\nexport class CxSideNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/cx",
3
- "version": "0.61.2-rc.9",
3
+ "version": "0.61.3",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - cx",
6
6
  "license": "Apache-2.0",
@@ -20,8 +20,8 @@
20
20
  "@angular/forms": "^21.0.0",
21
21
  "@angular/platform-browser": "^21.0.0",
22
22
  "@angular/router": "^21.0.0",
23
- "@fundamental-ngx/core": "0.61.2-rc.9",
24
- "@fundamental-ngx/i18n": "0.61.2-rc.9",
23
+ "@fundamental-ngx/core": "0.61.3",
24
+ "@fundamental-ngx/i18n": "0.61.3",
25
25
  "rxjs": "^7.8.0"
26
26
  },
27
27
  "dependencies": {
@@ -57,4 +57,4 @@
57
57
  }
58
58
  },
59
59
  "sideEffects": false
60
- }
60
+ }
@@ -1,10 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ElementRef, AfterContentInit, ChangeDetectorRef, EventEmitter, Renderer2, QueryList, OnInit } from '@angular/core';
3
- import { Subject } from 'rxjs';
3
+ import { Subject, Observable } from 'rxjs';
4
4
  import { DefaultMenuItem } from '@fundamental-ngx/core/menu';
5
5
  import { Nullable } from '@fundamental-ngx/cdk/utils';
6
6
  import * as i9 from '@fundamental-ngx/core/icon';
7
7
  import { IconComponent } from '@fundamental-ngx/core/icon';
8
+ import { FdLanguage } from '@fundamental-ngx/i18n';
8
9
  import { ScrollStrategy, Overlay } from '@angular/cdk/overlay';
9
10
  import * as i7 from '@fundamental-ngx/core/popover';
10
11
  import { PopoverComponent } from '@fundamental-ngx/core/popover';
@@ -287,6 +288,7 @@ declare class NestedListComponent implements AfterContentInit, NestedListInterfa
287
288
  private _nestedListKeyboardService;
288
289
  private _elementRef;
289
290
  private _changeDetectionRef;
291
+ private _language$;
290
292
  /** In case the user wants to no use icons for items in this list */
291
293
  textOnly: boolean;
292
294
  /** Aria defines role description for the Nested List Tree. */
@@ -322,11 +324,7 @@ declare class NestedListComponent implements AfterContentInit, NestedListInterfa
322
324
  /** @hidden */
323
325
  private readonly _translationResolver;
324
326
  /** @hidden */
325
- private readonly _langSignal;
326
- /** @hidden */
327
- private readonly _injector;
328
- /** @hidden */
329
- constructor(_nestedItemService: NestedItemService, _nestedListStateService: NestedListStateService, _nestedListKeyboardService: NestedListKeyboardService, _elementRef: ElementRef, _changeDetectionRef: ChangeDetectorRef);
327
+ constructor(_nestedItemService: NestedItemService, _nestedListStateService: NestedListStateService, _nestedListKeyboardService: NestedListKeyboardService, _elementRef: ElementRef, _changeDetectionRef: ChangeDetectorRef, _language$: Observable<FdLanguage>);
330
328
  /** @hidden */
331
329
  ngAfterContentInit(): void;
332
330
  /** @hidden */
@@ -342,7 +340,7 @@ declare class NestedListComponent implements AfterContentInit, NestedListInterfa
342
340
  private _setAriaAttributes;
343
341
  /** @hidden */
344
342
  private _setAccessibilityProperties;
345
- static ɵfac: i0.ɵɵFactoryDeclaration<NestedListComponent, [{ optional: true; }, null, null, null, null]>;
343
+ static ɵfac: i0.ɵɵFactoryDeclaration<NestedListComponent, [{ optional: true; }, null, null, null, null, null]>;
346
344
  static ɵcmp: i0.ɵɵComponentDeclaration<NestedListComponent, "[cxNestedList], [fdx-nested-list], ul[fdx-nested-list]", never, { "textOnly": { "alias": "textOnly"; "required": false; }; "ariaRoledescriptionTree": { "alias": "ariaRoledescriptionTree"; "required": false; }; "ariaRoledescriptionMenuBar": { "alias": "ariaRoledescriptionMenuBar"; "required": false; }; "ariaLabelSelected": { "alias": "ariaLabelSelected"; "required": false; }; }, {}, ["_nestedListHeader", "nestedItems", "_nestedLists"], ["*"], true, never>;
347
345
  }
348
346
 
@@ -105,8 +105,6 @@ declare class SideNavigationComponent implements AfterContentInit, AfterViewInit
105
105
  /** @hidden */
106
106
  private readonly _cdRef;
107
107
  /** @hidden */
108
- private readonly _destroyRef;
109
- /** @hidden */
110
108
  constructor();
111
109
  /** @hidden */
112
110
  onResize(): void;
@@ -138,7 +136,7 @@ declare class SideNavigationComponent implements AfterContentInit, AfterViewInit
138
136
  */
139
137
  declare class CxSideNavigationModule {
140
138
  static ɵfac: i0.ɵɵFactoryDeclaration<CxSideNavigationModule, never>;
141
- static ɵmod: i0.ɵɵNgModuleDeclaration<CxSideNavigationModule, never, [typeof i1$1.ButtonComponent, typeof i1.ScrollbarDirective, typeof i3.FdTranslatePipe, typeof SideNavigationMainComponent, typeof SideNavigationUtilityDirective, typeof SideNavigationButtonDirective, typeof SideNavigationComponent], [typeof SideNavigationComponent]>;
139
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CxSideNavigationModule, never, [typeof i1$1.ButtonComponent, typeof i1.ScrollbarDirective, typeof i3.I18nModule, typeof SideNavigationMainComponent, typeof SideNavigationUtilityDirective, typeof SideNavigationButtonDirective, typeof SideNavigationComponent], [typeof SideNavigationComponent]>;
142
140
  static ɵinj: i0.ɵɵInjectorDeclaration<CxSideNavigationModule>;
143
141
  }
144
142