@fundamental-ngx/cx 0.62.0-rc.7 → 0.62.0-rc.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @Fundamental-NGX/CX
1
+ # @fundamental-ngx/cx
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40fundamental-ngx%2Fcx.svg)](//www.npmjs.com/package/@fundamental-ngx/cx)
4
4
  ![Build Status](https://github.com/SAP/fundamental-ngx/actions/workflows/create-release.yml/badge.svg?branch=main)
@@ -6,85 +6,44 @@
6
6
  [![Slack](https://img.shields.io/badge/slack-ui--fundamentals-blue.svg?logo=slack)](https://ui-fundamentals.slack.com)
7
7
  [![REUSE status](https://api.reuse.software/badge/github.com/SAP/fundamental-ngx)](https://api.reuse.software/info/github.com/SAP/fundamental-ngx)
8
8
 
9
- ## Content
9
+ ## Description
10
10
 
11
- - [1. Description](#1)
12
- - [2. Requirements](#2)
13
- - [3. Versioning](#3)
14
- - [4. Getting Started](#4)
15
- - [5. Known Issues](#5)
16
- - [6. Support](#6)
17
- - [7. Contributing](#7)
18
- - [8. License](https://github.com/SAP/fundamental-ngx/blob/main/LICENSE.txt)
19
- - [9. Similar Projects](#8)
11
+ `@fundamental-ngx/cx` provides Angular components for SAP Customer Experience use cases, built on the SAP Design System.
20
12
 
21
- ## <a name="1"></a>1. Description
13
+ See the [Component Documentation](https://sap.github.io/fundamental-ngx) for examples and API details.
22
14
 
23
- The `@fundamental-ngx/cx` library is a set of [Angular](https://angular.io/) components built using [Fundamental Library Styles](https://sap.github.io/fundamental-styles/).
15
+ ## Requirements
24
16
 
25
- The Fundamental Library Styles is a design system and HTML/CSS component library used to build modern product user experiences with the SAP look and feel.
17
+ Angular 21 or newer. Prior knowledge of Angular is recommended.
26
18
 
27
- See [Component Documentation](https://sap.github.io/fundamental-ngx/#/core/new-component) for examples and API details.
19
+ ## Getting Started
28
20
 
29
- ## <a name="2"></a>2. Requirements
21
+ ```bash
22
+ ng add @fundamental-ngx/cx
23
+ ```
30
24
 
31
- To download and use Fundamental Library for Angular, you will first need to install the [node package manager](https://www.npmjs.com/get-npm).
25
+ Import individual components (standalone by default):
32
26
 
33
- Fundamental Library for Angular is intended for use with Angular 15 or newer.
27
+ ```typescript
28
+ import { SideNavigationModule } from '@fundamental-ngx/cx/side-navigation';
29
+ ```
34
30
 
35
- Prior knowledge of Angular is recommended, to use the fundamental-ngx library.
31
+ ## Versioning
36
32
 
37
- ## <a name="3"></a>3. Versioning
33
+ Check the [Breaking Changes](https://github.com/SAP/fundamental-ngx/wiki#breaking-changes) for upgrade guidance.
38
34
 
39
- Check the [Breaking Changes](https://github.com/SAP/fundamental-ngx/wiki#breaking-changes) for the latest patches changes.
35
+ ## Known Issues
40
36
 
41
- ## <a name="4"></a>4. Getting Started
37
+ See [Issues](https://github.com/SAP/fundamental-ngx/issues).
42
38
 
43
- For an existing Angular CLI application,
44
-
45
- 0. **Video tutorial**
46
- [How to use the Fundamental Cx Library](https://www.youtube.com/watch?v=i4VIiuzD2Fg)
47
-
48
- 1. **Install Fundamental-NGX.**
49
- `ng add @fundamental-ngx/cx`
50
- For models prior to 0.10 use `fundamental-ngx`
51
-
52
- _If you do not use the Angular CLI or if this command does not work for you, please see the [full installation guide](https://github.com/SAP/fundamental-ngx/wiki/Full-Installation-Guide)._
53
-
54
- 1. **Edit your tsconfig.**
55
- Edit the `target` in your `tsconfig.json` to `es5`. The library is incompatible with later versions.
56
- 1. **Import the modules you want to use.**
57
-
58
- To add the entire library, add the following import to your main application module.
59
-
60
- ```typescript
61
- import { FundamentalNgxCxModule } from '@fundamental-ngx/cx';
62
-
63
- @NgModule({
64
- ...
65
- imports: [FundamentalNgxCxModule],
66
- })
67
- export class DemoModule { }
68
- ```
69
-
70
- To include an individual Angular Fundamental component in your application, you only need to import the relevant module.
71
-
72
- For example, to use Switchs, add the following import to your main application module.
73
-
74
- ```typescript
75
- import { CheckboxModule } from '@fundamental-ngx/cx';
76
- ```
77
-
78
- ## <a name="5"></a>5. Known Issues
79
-
80
- Please see [Issues](https://github.com/SAP/fundamental-ngx/issues).
81
-
82
- ## <a name="6"></a>6. Support
39
+ ## Support
83
40
 
84
41
  If you encounter an issue, you can [create a ticket](https://github.com/SAP/fundamental-ngx/issues).
85
42
 
86
- ## <a name="7"></a>7. Contributing
43
+ ## Contributing
44
+
45
+ See [CONTRIBUTING.md](https://github.com/SAP/fundamental-ngx/blob/main/CONTRIBUTING.md) for guidelines and [NEW_COMPONENT.md](https://github.com/SAP/fundamental-ngx/blob/main/NEW_COMPONENT.md) for building new components.
87
46
 
88
- If you want to contribute, please check the [CONTRIBUTING.md](https://github.com/SAP/fundamental-ngx/blob/main/CONTRIBUTING.md) documentation for contribution guidelines. Please follow the [Angular commit message guidelines](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit).
47
+ ## License
89
48
 
90
- Check out the [NEW_COMPONENT.md](https://github.com/SAP/fundamental-ngx/blob/main/NEW_COMPONENT.md) guide on building a new component for the library and creating the necessary documentation for your new component.
49
+ See [LICENSE.txt](https://github.com/SAP/fundamental-ngx/blob/main/LICENSE.txt).
@@ -1,5 +1,5 @@
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, Injector, effect, ContentChildren, forwardRef, Optional, ChangeDetectorRef, booleanAttribute, computed, ViewChild, NgModule } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { Subject, startWith } from 'rxjs';
5
5
  import { NgTemplateOutlet } from '@angular/common';
@@ -276,6 +276,7 @@ class NestedLinkComponent {
276
276
  changeSelected(selected) {
277
277
  this.selected = selected;
278
278
  this.selectedChange.emit(selected);
279
+ this.changeDetRef.markForCheck();
279
280
  }
280
281
  /** Set focus on the element. */
281
282
  focus() {
@@ -311,7 +312,7 @@ class NestedLinkComponent {
311
312
  <ng-content select="[fdx-nested-list-title]"></ng-content>
312
313
  <ng-content select="[fdx-nested-list-expand-icon]"></ng-content>
313
314
  </ng-template>
314
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
315
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
315
316
  }
316
317
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NestedLinkComponent, decorators: [{
317
318
  type: Component,
@@ -335,7 +336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
335
336
  </ng-template>
336
337
  `,
337
338
  imports: [NgTemplateOutlet],
338
- standalone: true,
339
+ changeDetection: ChangeDetectionStrategy.OnPush,
339
340
  selector:
340
341
  // eslint-disable-next-line @angular-eslint/component-selector
341
342
  '[fdx-nested-list-link], button[fdx-nested-list-link], a[fdx-nested-list-link], div[fdx-nested-list-link]',
@@ -841,6 +842,8 @@ class NestedItemComponent {
841
842
  this._expanded = false;
842
843
  /** @hidden */
843
844
  this._destroyRef = inject(DestroyRef);
845
+ /** @hidden */
846
+ this._cdr = inject(ChangeDetectorRef);
844
847
  /** Unique element ID */
845
848
  this._elementId = 'fdNestedItem' + sideNavigationItemUniqueId++;
846
849
  }
@@ -944,6 +947,7 @@ class NestedItemComponent {
944
947
  this._keyboardService.refresh$.next();
945
948
  }
946
949
  this.expandedChange.emit(open);
950
+ this._cdr.markForCheck();
947
951
  }
948
952
  /** @hidden */
949
953
  _shouldRefreshKeyboardService() {
@@ -976,7 +980,7 @@ class NestedItemComponent {
976
980
  if (this.contentItem && this.hasChildren) {
977
981
  this._ariaExpanded = false;
978
982
  this.contentItem.hasChildren = true;
979
- this.contentItem.changeDetRef.detectChanges();
983
+ this.contentItem.changeDetRef.markForCheck();
980
984
  }
981
985
  }
982
986
  /** Pass this element to popover child item, to allow control `expanded` value */
@@ -995,9 +999,10 @@ class NestedItemComponent {
995
999
  else if (this.linkItem) {
996
1000
  this.linkItem.changeSelected(selected);
997
1001
  }
1002
+ this._cdr.markForCheck();
998
1003
  }
999
1004
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NestedItemComponent, deps: [{ token: NestedItemService }, { token: NestedListKeyboardService }, { token: NestedListStateService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
1000
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.1.0", type: NestedItemComponent, isStandalone: true, selector: "[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]", inputs: { expanded: "expanded", group: ["group", "group", booleanAttribute], fdNestedListItemClass: "fdNestedListItemClass", header: "header", display: "display", ariaHidden: "ariaHidden" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { attributes: { "role": "treeitem" }, properties: { "class.fdx-nested-list__item--group": "this.group", "class.fdx-nested-list__item": "this.fdNestedListItemClass", "class.fdx-nested-list__item--header": "this.header", "attr.aria-hidden": "this.ariaHidden", "attr.aria-level": "this._ariaLevel", "attr.title": "this._title", "style.display": "this._display", "attr.role": "this._role", "attr.aria-expanded": "this._ariaExpanded", "attr.aria-selected": "this._ariaSelected", "attr.aria-disabled": "this._ariaDisabled", "attr.aria-label": "this._ariaLabel" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkComponent, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }, { propertyName: "expandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }, { propertyName: "_nestedList", first: true, predicate: i0.forwardRef(() => NestedListComponent), descendants: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true }); }
1005
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "21.1.0", type: NestedItemComponent, isStandalone: true, selector: "[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]", inputs: { expanded: "expanded", group: ["group", "group", booleanAttribute], fdNestedListItemClass: "fdNestedListItemClass", header: "header", display: "display", ariaHidden: "ariaHidden" }, outputs: { expandedChange: "expandedChange", keyboardTriggered: "keyboardTriggered" }, host: { attributes: { "role": "treeitem" }, properties: { "class.fdx-nested-list__item--group": "this.group", "class.fdx-nested-list__item": "this.fdNestedListItemClass", "class.fdx-nested-list__item--header": "this.header", "attr.aria-hidden": "this.ariaHidden", "attr.aria-level": "this._ariaLevel", "attr.title": "this._title", "style.display": "this._display", "attr.role": "this._role", "attr.aria-expanded": "this._ariaExpanded", "attr.aria-selected": "this._ariaSelected", "attr.aria-disabled": "this._ariaDisabled", "attr.aria-label": "this._ariaLabel" } }, providers: [NestedItemService], queries: [{ propertyName: "linkItem", first: true, predicate: NestedLinkComponent, descendants: true }, { propertyName: "contentItem", first: true, predicate: NestedListContentDirective, descendants: true }, { propertyName: "expandIcon", first: true, predicate: NestedListExpandIconComponent, descendants: true }, { propertyName: "_nestedList", first: true, predicate: i0.forwardRef(() => NestedListComponent), descendants: true }], ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1001
1006
  }
1002
1007
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: NestedItemComponent, decorators: [{
1003
1008
  type: Component,
@@ -1006,7 +1011,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
1006
1011
  selector: '[cxNestedItem], [fdx-nested-list-item], li[fdx-nested-list-item]',
1007
1012
  template: ` <ng-content></ng-content> `,
1008
1013
  providers: [NestedItemService],
1009
- standalone: true,
1014
+ changeDetection: ChangeDetectionStrategy.OnPush,
1010
1015
  host: {
1011
1016
  role: 'treeitem'
1012
1017
  }
@@ -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 ChangeDetectionStrategy,\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 changeDetection: ChangeDetectionStrategy.OnPush,\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 this.changeDetRef.markForCheck();\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 ChangeDetectionStrategy,\n ChangeDetectorRef,\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 changeDetection: ChangeDetectionStrategy.OnPush,\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 /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\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 this._cdr.markForCheck();\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.markForCheck();\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 this._cdr.markForCheck();\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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"}
@@ -155,6 +155,7 @@ class SideNavigationComponent {
155
155
  if (this.collapseWidth) {
156
156
  this._condensed = window.innerWidth <= this.collapseWidth;
157
157
  }
158
+ this._cdRef.markForCheck();
158
159
  }
159
160
  /** @hidden */
160
161
  ngOnInit() {
@@ -209,7 +210,7 @@ class SideNavigationComponent {
209
210
  item._narrow = false;
210
211
  });
211
212
  }
212
- this._cdRef.detectChanges();
213
+ this._cdRef.markForCheck();
213
214
  });
214
215
  }
215
216
  /** @hidden */
@@ -244,11 +245,11 @@ class SideNavigationComponent {
244
245
  }, !this.narrow ? 200 : 0);
245
246
  }
246
247
  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 }); }
248
+ 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__item--quick-create{--fdNestedList_Icon_Color:var(--sapButton_TextColor);--fdNestedList_Title_Color:var(--sapButton_TextColor);--fdNestedList_Title_Font_Family:var(--sapFontSemiboldDuplexFamily)}.fdx-nested-list__item--quick-create .fdx-nested-list__link{background:var(--fdNestedList_QuickAction_Background,var(--sapButton_Background));-webkit-box-shadow:var(--fdNestedList_QuickAction_BoxShadow,0 0 0 var(--sapButton_BorderWidth) var(--sapButton_BorderColor));box-shadow:var(--fdNestedList_QuickAction_BoxShadow,0 0 0 var(--sapButton_BorderWidth) var(--sapButton_BorderColor))}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link:hover{--fdNestedList_QuickAction_Background:var(--sapButton_Hover_Background);--fdNestedList_QuickAction_BoxShadow:0 0 0 var(--sapButton_BorderWidth) var(--sapButton_Hover_BorderColor)}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active{--fdNestedList_QuickAction_Background:var(--sapButton_Active_Background);--fdNestedList_QuickAction_BoxShadow:0 0 0 var(--sapButton_BorderWidth) var(--sapButton_Active_BorderColor)}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active .fdx-nested-list__icon,.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active .fdx-nested-list__title,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active .fdx-nested-list__icon,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active .fdx-nested-list__title{color:var(--sapButton_TextColor)}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active.is-hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active:hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active.is-hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active:hover{--fdNestedList_QuickAction_Background:var(--sapButton_Active_Background);--fdNestedList_QuickAction_BoxShadow:0 0 0 var(--sapButton_BorderWidth) var(--sapButton_Active_BorderColor)}.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(--fdNestedList_Icon_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(--fdNestedList_Title_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_LineHeight);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.41.1\n * Copyright (c) 2026 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" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
248
249
  }
249
250
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SideNavigationComponent, decorators: [{
250
251
  type: Component,
251
- args: [{ selector: 'fdx-side-nav', encapsulation: ViewEncapsulation.None, imports: [
252
+ args: [{ selector: 'fdx-side-nav', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
252
253
  FdTranslatePipe,
253
254
  NgTemplateOutlet,
254
255
  SideNavigationMainComponent,
@@ -256,7 +257,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
256
257
  ButtonComponent,
257
258
  SideNavigationUtilityDirective,
258
259
  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"] }]
260
+ ], 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__item--quick-create{--fdNestedList_Icon_Color:var(--sapButton_TextColor);--fdNestedList_Title_Color:var(--sapButton_TextColor);--fdNestedList_Title_Font_Family:var(--sapFontSemiboldDuplexFamily)}.fdx-nested-list__item--quick-create .fdx-nested-list__link{background:var(--fdNestedList_QuickAction_Background,var(--sapButton_Background));-webkit-box-shadow:var(--fdNestedList_QuickAction_BoxShadow,0 0 0 var(--sapButton_BorderWidth) var(--sapButton_BorderColor));box-shadow:var(--fdNestedList_QuickAction_BoxShadow,0 0 0 var(--sapButton_BorderWidth) var(--sapButton_BorderColor))}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link:hover{--fdNestedList_QuickAction_Background:var(--sapButton_Hover_Background);--fdNestedList_QuickAction_BoxShadow:0 0 0 var(--sapButton_BorderWidth) var(--sapButton_Hover_BorderColor)}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active{--fdNestedList_QuickAction_Background:var(--sapButton_Active_Background);--fdNestedList_QuickAction_BoxShadow:0 0 0 var(--sapButton_BorderWidth) var(--sapButton_Active_BorderColor)}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active .fdx-nested-list__icon,.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active .fdx-nested-list__title,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active .fdx-nested-list__icon,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active .fdx-nested-list__title{color:var(--sapButton_TextColor)}.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active.is-hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link.is-active:hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active.is-hover,.fdx-nested-list__item--quick-create .fdx-nested-list__link:active:hover{--fdNestedList_QuickAction_Background:var(--sapButton_Active_Background);--fdNestedList_QuickAction_BoxShadow:0 0 0 var(--sapButton_BorderWidth) var(--sapButton_Active_BorderColor)}.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(--fdNestedList_Icon_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(--fdNestedList_Title_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_LineHeight);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.41.1\n * Copyright (c) 2026 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
261
  }], ctorParameters: () => [], propDecorators: { condensed: [{
261
262
  type: Input
262
263
  }, {
@@ -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 ChangeDetectionStrategy,\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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FdTranslatePipe,\n NgTemplateOutlet,\n SideNavigationMainComponent,\n PreparedNestedListComponent,\n ButtonComponent,\n SideNavigationUtilityDirective,\n SideNavigationButtonDirective\n ],\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 this._cdRef.markForCheck();\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.markForCheck();\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/cx",
3
- "version": "0.62.0-rc.7",
3
+ "version": "0.62.0-rc.71",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - cx",
6
6
  "license": "Apache-2.0",
@@ -13,24 +13,23 @@
13
13
  "node": ">= 10"
14
14
  },
15
15
  "peerDependencies": {
16
- "@angular/animations": "^21.0.0",
17
16
  "@angular/cdk": "^21.0.0",
18
17
  "@angular/common": "^21.0.0",
19
18
  "@angular/core": "^21.0.0",
20
19
  "@angular/forms": "^21.0.0",
21
20
  "@angular/platform-browser": "^21.0.0",
22
21
  "@angular/router": "^21.0.0",
23
- "@fundamental-ngx/core": "0.62.0-rc.7",
24
- "@fundamental-ngx/i18n": "0.62.0-rc.7",
22
+ "@fundamental-ngx/core": "0.62.0-rc.71",
23
+ "@fundamental-ngx/i18n": "0.62.0-rc.71",
25
24
  "rxjs": "^7.8.0"
26
25
  },
27
26
  "dependencies": {
28
- "@fundamental-styles/cx": "0.40.1",
27
+ "@fundamental-styles/cx": "0.41.1",
29
28
  "@sap-theming/theming-base-content": "^11.32.0",
30
29
  "compare-versions": "^6.1.0",
31
30
  "fast-equals": "^6.0.0",
32
31
  "focus-trap": "^7.1.0",
33
- "fundamental-styles": "0.40.1",
32
+ "fundamental-styles": "0.41.1",
34
33
  "lodash-es": "^4.17.0",
35
34
  "tslib": "^2.0.0"
36
35
  },
@@ -1,26 +1,13 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.ngAdd = ngAdd;
13
4
  const schematics_1 = require("@angular-devkit/schematics");
14
5
  const tasks_1 = require("@angular-devkit/schematics/tasks");
15
6
  const dependencies_1 = require("@schematics/angular/utility/dependencies");
16
- const ng_module_utils_1 = require("../utils/ng-module-utils");
17
- const schematics_2 = require("@angular/cdk/schematics");
18
- const browserAnimationsModuleName = 'BrowserAnimationsModule';
19
- const noopAnimationsModuleName = 'NoopAnimationsModule';
20
7
  const fdStylesIconPath = 'node_modules/fundamental-styles/dist/icon.css';
21
8
  /** Installs cx package and dependencies. */
22
9
  function ngAdd(options) {
23
- return (0, schematics_1.chain)([addDependencies(), addAnimations(options), addStylePathToConfig(options)]);
10
+ return (0, schematics_1.chain)([addDependencies(), addStylePathToConfig(options)]);
24
11
  }
25
12
  // Adds missing dependencies to the project.
26
13
  function addDependencies() {
@@ -31,38 +18,14 @@ function addDependencies() {
31
18
  if (!formsDependency) {
32
19
  dependencies.push(Object.assign(Object.assign({}, ngCoreVersionTag), { name: '@angular/forms' }));
33
20
  }
34
- const animationsDependency = (0, dependencies_1.getPackageJsonDependency)(tree, '@angular/animations');
35
- if (!animationsDependency) {
36
- dependencies.push(Object.assign(Object.assign({}, ngCoreVersionTag), { name: '@angular/animations' }));
37
- }
38
21
  dependencies.forEach((dependency) => {
39
22
  (0, dependencies_1.addPackageJsonDependency)(tree, dependency);
40
- console.log(`✅️ Added ${dependency.name} to ${dependency.type}.`);
23
+ console.log(`Added ${dependency.name} to ${dependency.type}.`);
41
24
  });
42
25
  context.addTask(new tasks_1.NodePackageInstallTask());
43
26
  return tree;
44
27
  };
45
28
  }
46
- // Configures browser animations.
47
- function addAnimations(options) {
48
- return (tree) => __awaiter(this, void 0, void 0, function* () {
49
- const modulePath = yield (0, schematics_2.findModuleFromOptions)(tree, options);
50
- if (options.animations) {
51
- if ((0, ng_module_utils_1.hasModuleImport)(tree, modulePath, noopAnimationsModuleName)) {
52
- return console.warn(`Could not set up "${browserAnimationsModuleName}" ` +
53
- `because "${noopAnimationsModuleName}" is already imported. Please manually ` +
54
- `set up browser animations.`);
55
- }
56
- (0, schematics_2.addModuleImportToModule)(tree, modulePath, browserAnimationsModuleName, '@angular/platform-browser/animations');
57
- console.log(`✅️ Added ${browserAnimationsModuleName} to root module.`);
58
- }
59
- else if (!(0, ng_module_utils_1.hasModuleImport)(tree, modulePath, browserAnimationsModuleName)) {
60
- (0, schematics_2.addModuleImportToModule)(tree, modulePath, noopAnimationsModuleName, '@angular/platform-browser/animations');
61
- console.log(`✅️ Added ${noopAnimationsModuleName} to root module.`);
62
- }
63
- return tree;
64
- });
65
- }
66
29
  // Adds the icon style path to the angular.json.
67
30
  function addStylePathToConfig(options) {
68
31
  return (tree) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/cx/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/cx/schematics/ng-add/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  export interface Schema {
2
2
  project: string;
3
- animations: boolean;
4
3
  }
@@ -4,12 +4,6 @@
4
4
  "title": "Fundamental Library for Angular ng-add schematic",
5
5
  "type": "object",
6
6
  "properties": {
7
- "animations": {
8
- "type": "boolean",
9
- "default": true,
10
- "description": "Whether Angular browser animations should be set up.",
11
- "x-prompt": "Set up browser animations for Fundamental Library for Angular?"
12
- },
13
7
  "project": {
14
8
  "type": "string",
15
9
  "description": "The name of the project.",
@@ -410,6 +410,8 @@ declare class NestedItemComponent implements AfterContentInit, NestedItemInterfa
410
410
  private _expanded;
411
411
  /** @hidden */
412
412
  private readonly _destroyRef;
413
+ /** @hidden */
414
+ private readonly _cdr;
413
415
  /** Unique element ID */
414
416
  private readonly _elementId;
415
417
  /** @hidden */