@fundamental-ngx/btp 0.46.0-rc.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +7 -0
  2. package/esm2022/fundamental-ngx-btp.mjs +5 -0
  3. package/esm2022/index.mjs +3 -0
  4. package/esm2022/navigation/directives/navigation-home.directive.mjs +19 -0
  5. package/esm2022/navigation/directives/navigation-list-spacer.directive.mjs +24 -0
  6. package/esm2022/navigation/fundamental-ngx-btp-navigation.mjs +5 -0
  7. package/esm2022/navigation/index.mjs +11 -0
  8. package/esm2022/navigation/navigation-component.token.mjs +22 -0
  9. package/esm2022/navigation/navigation-content-end.component.mjs +62 -0
  10. package/esm2022/navigation/navigation-content-start.component.mjs +207 -0
  11. package/esm2022/navigation/navigation-content.token.mjs +3 -0
  12. package/esm2022/navigation/navigation-link.component.mjs +188 -0
  13. package/esm2022/navigation/navigation-list/navigation-list-item.component.mjs +423 -0
  14. package/esm2022/navigation/navigation-list/navigation-list-overflow-item.component.mjs +57 -0
  15. package/esm2022/navigation/navigation-list/navigation-list.component.mjs +125 -0
  16. package/esm2022/navigation/navigation-list-component.token.mjs +3 -0
  17. package/esm2022/navigation/navigation-list-item-component.token.mjs +90 -0
  18. package/esm2022/navigation/navigation.component.mjs +251 -0
  19. package/esm2022/navigation/navigation.service.mjs +14 -0
  20. package/esm2022/navigation/navigation.types.mjs +2 -0
  21. package/esm2022/navigation-menu/fundamental-ngx-btp-navigation-menu.mjs +5 -0
  22. package/esm2022/navigation-menu/index.mjs +6 -0
  23. package/esm2022/navigation-menu/lib/navigation-menu-item.component.mjs +48 -0
  24. package/esm2022/navigation-menu/lib/navigation-menu-popover-control.directive.mjs +19 -0
  25. package/esm2022/navigation-menu/lib/navigation-menu-popover.component.mjs +38 -0
  26. package/esm2022/navigation-menu/lib/navigation-menu.component.mjs +13 -0
  27. package/esm2022/navigation-menu/lib/navigation-menu.module.mjs +17 -0
  28. package/esm2022/search-field/fundamental-ngx-btp-search-field.mjs +5 -0
  29. package/esm2022/search-field/index.mjs +2 -0
  30. package/esm2022/search-field/search-field.component.mjs +62 -0
  31. package/esm2022/shared/fundamental-ngx-btp-shared.mjs +5 -0
  32. package/esm2022/shared/index.mjs +2 -0
  33. package/esm2022/tool-header/components/tool-header/tool-header.component.mjs +227 -0
  34. package/esm2022/tool-header/components/tool-header-product-switch.component.mjs +102 -0
  35. package/esm2022/tool-header/directives/tool-header-action.directive.mjs +43 -0
  36. package/esm2022/tool-header/directives/tool-header-actions.directive.mjs +63 -0
  37. package/esm2022/tool-header/directives/tool-header-auto-mode.directive.mjs +114 -0
  38. package/esm2022/tool-header/directives/tool-header-button.directive.mjs +51 -0
  39. package/esm2022/tool-header/directives/tool-header-element.directive.mjs +17 -0
  40. package/esm2022/tool-header/directives/tool-header-group.directive.mjs +26 -0
  41. package/esm2022/tool-header/directives/tool-header-logo.directive.mjs +19 -0
  42. package/esm2022/tool-header/directives/tool-header-user.directive.mjs +14 -0
  43. package/esm2022/tool-header/fundamental-ngx-btp-tool-header.mjs +5 -0
  44. package/esm2022/tool-header/index.mjs +10 -0
  45. package/esm2022/tool-header/tool-header-action-button.type.mjs +2 -0
  46. package/esm2022/tool-header/tool-header-component.class.mjs +74 -0
  47. package/esm2022/tool-header/tool-header-state.type.mjs +2 -0
  48. package/esm2022/tool-layout/directives/tool-layout-container.directive.mjs +17 -0
  49. package/esm2022/tool-layout/directives/tool-layout-content-container.directive.mjs +50 -0
  50. package/esm2022/tool-layout/directives/tool-layout-header-container.directive.mjs +17 -0
  51. package/esm2022/tool-layout/directives/tool-layout-navigation-container.directive.mjs +37 -0
  52. package/esm2022/tool-layout/fundamental-ngx-btp-tool-layout.mjs +5 -0
  53. package/esm2022/tool-layout/index.mjs +7 -0
  54. package/esm2022/tool-layout/tool-layout.component.mjs +43 -0
  55. package/esm2022/tool-layout/tool-layout.module.mjs +40 -0
  56. package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs +130 -0
  57. package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs.map +1 -0
  58. package/fesm2022/fundamental-ngx-btp-navigation.mjs +1409 -0
  59. package/fesm2022/fundamental-ngx-btp-navigation.mjs.map +1 -0
  60. package/fesm2022/fundamental-ngx-btp-search-field.mjs +69 -0
  61. package/fesm2022/fundamental-ngx-btp-search-field.mjs.map +1 -0
  62. package/fesm2022/fundamental-ngx-btp-shared.mjs +4 -0
  63. package/fesm2022/fundamental-ngx-btp-shared.mjs.map +1 -0
  64. package/fesm2022/fundamental-ngx-btp-tool-header.mjs +717 -0
  65. package/fesm2022/fundamental-ngx-btp-tool-header.mjs.map +1 -0
  66. package/fesm2022/fundamental-ngx-btp-tool-layout.mjs +194 -0
  67. package/fesm2022/fundamental-ngx-btp-tool-layout.mjs.map +1 -0
  68. package/fesm2022/fundamental-ngx-btp.mjs +7 -0
  69. package/fesm2022/fundamental-ngx-btp.mjs.map +1 -0
  70. package/fundamental-ngx-btp-v0.46.0-rc.100.tgz +0 -0
  71. package/index.d.ts +2 -0
  72. package/navigation/README.md +3 -0
  73. package/navigation/directives/navigation-home.directive.d.ts +10 -0
  74. package/navigation/directives/navigation-list-spacer.directive.d.ts +8 -0
  75. package/navigation/index.d.ts +10 -0
  76. package/navigation/navigation-component.token.d.ts +34 -0
  77. package/navigation/navigation-content-end.component.d.ts +23 -0
  78. package/navigation/navigation-content-start.component.d.ts +54 -0
  79. package/navigation/navigation-content.token.d.ts +11 -0
  80. package/navigation/navigation-link.component.d.ts +49 -0
  81. package/navigation/navigation-list/navigation-list-item.component.d.ts +142 -0
  82. package/navigation/navigation-list/navigation-list-overflow-item.component.d.ts +16 -0
  83. package/navigation/navigation-list/navigation-list.component.d.ts +60 -0
  84. package/navigation/navigation-list-component.token.d.ts +17 -0
  85. package/navigation/navigation-list-item-component.token.d.ts +68 -0
  86. package/navigation/navigation.component.d.ts +82 -0
  87. package/navigation/navigation.service.d.ts +8 -0
  88. package/navigation/navigation.types.d.ts +2 -0
  89. package/navigation-menu/README.md +3 -0
  90. package/navigation-menu/index.d.ts +5 -0
  91. package/navigation-menu/lib/navigation-menu-item.component.d.ts +13 -0
  92. package/navigation-menu/lib/navigation-menu-popover-control.directive.d.ts +10 -0
  93. package/navigation-menu/lib/navigation-menu-popover.component.d.ts +11 -0
  94. package/navigation-menu/lib/navigation-menu.component.d.ts +5 -0
  95. package/navigation-menu/lib/navigation-menu.module.d.ts +8 -0
  96. package/package.json +63 -0
  97. package/search-field/README.md +3 -0
  98. package/search-field/index.d.ts +1 -0
  99. package/search-field/search-field.component.d.ts +34 -0
  100. package/shared/README.md +3 -0
  101. package/shared/index.d.ts +1 -0
  102. package/tool-header/README.md +3 -0
  103. package/tool-header/components/tool-header/tool-header.component.d.ts +91 -0
  104. package/tool-header/components/tool-header-product-switch.component.d.ts +11 -0
  105. package/tool-header/directives/tool-header-action.directive.d.ts +35 -0
  106. package/tool-header/directives/tool-header-actions.directive.d.ts +27 -0
  107. package/tool-header/directives/tool-header-auto-mode.directive.d.ts +68 -0
  108. package/tool-header/directives/tool-header-button.directive.d.ts +22 -0
  109. package/tool-header/directives/tool-header-element.directive.d.ts +5 -0
  110. package/tool-header/directives/tool-header-group.directive.d.ts +12 -0
  111. package/tool-header/directives/tool-header-logo.directive.d.ts +5 -0
  112. package/tool-header/directives/tool-header-user.directive.d.ts +5 -0
  113. package/tool-header/index.d.ts +9 -0
  114. package/tool-header/tool-header-action-button.type.d.ts +10 -0
  115. package/tool-header/tool-header-component.class.d.ts +20 -0
  116. package/tool-header/tool-header-state.type.d.ts +14 -0
  117. package/tool-layout/README.md +3 -0
  118. package/tool-layout/directives/tool-layout-container.directive.d.ts +5 -0
  119. package/tool-layout/directives/tool-layout-content-container.directive.d.ts +29 -0
  120. package/tool-layout/directives/tool-layout-header-container.directive.d.ts +5 -0
  121. package/tool-layout/directives/tool-layout-navigation-container.directive.d.ts +13 -0
  122. package/tool-layout/index.d.ts +6 -0
  123. package/tool-layout/tool-layout.component.d.ts +27 -0
  124. package/tool-layout/tool-layout.module.d.ts +11 -0
@@ -0,0 +1,1409 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, computed, signal, inject, DestroyRef, effect, ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, HostBinding, HostListener, Injector, ChangeDetectorRef, TemplateRef, ContentChild, ContentChildren, Injectable, forwardRef } from '@angular/core';
3
+ import { __decorate, __metadata } from 'tslib';
4
+ import { FocusKeyManager } from '@angular/cdk/a11y';
5
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
6
+ import { DOWN_ARROW, UP_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';
7
+ import { NgIf, NgTemplateOutlet, AsyncPipe, NgForOf } from '@angular/common';
8
+ import { toSignal, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
9
+ import { RtlService, applyCssClass, TabbableElementService, KeyUtil, resizeObservable } from '@fundamental-ngx/cdk/utils';
10
+ import { of, filter, startWith, switchMap, merge, debounceTime, Subject, tap, observeOn, asyncScheduler, distinctUntilChanged } from 'rxjs';
11
+ import * as i1 from '@angular/router';
12
+ import { RouterLink, RouterLinkActive } from '@angular/router';
13
+ import { IconComponent } from '@fundamental-ngx/core/icon';
14
+ import { BasePopoverClass, PopoverService, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';
15
+ import * as i1$1 from '@angular/cdk/portal';
16
+ import { DomPortal, PortalModule } from '@angular/cdk/portal';
17
+ import { ButtonComponent } from '@fundamental-ngx/core/button';
18
+ import * as i1$2 from '@fundamental-ngx/core/scrollbar';
19
+ import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
20
+
21
+ class NavigationHomeDirective {
22
+ /** @hidden */
23
+ constructor(templateRef, _viewContainerRef) {
24
+ this.templateRef = templateRef;
25
+ this._viewContainerRef = _viewContainerRef;
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationHomeDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
28
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: NavigationHomeDirective, isStandalone: true, selector: "[fdbNavigationHome]", ngImport: i0 }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationHomeDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ selector: '[fdbNavigationHome]',
34
+ standalone: true
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
37
+
38
+ class FdbNavigationComponent {
39
+ constructor() {
40
+ /** @hidden */
41
+ this.isSnapped = computed(() => this.state() === 'snapped' && !this.isPhone());
42
+ /** @hidden */
43
+ this.isPopup = computed(() => this.state() === 'popup' || this.isPhone());
44
+ /** @hidden */
45
+ this.isExpanded = computed(() => this.state() === 'expanded' && !this.isPhone());
46
+ /** @hidden */
47
+ this.isHorizontal = computed(() => this.type() === 'horizontal');
48
+ /** @hidden */
49
+ this.isVertical = computed(() => this.type() === 'vertical');
50
+ /** @hidden */
51
+ this.isDesktop = computed(() => this.mode() === '');
52
+ /** @hidden */
53
+ this.isTablet = computed(() => this.mode() === 'tablet');
54
+ /** @hidden */
55
+ this.isPhone = computed(() => this.mode() === 'phone');
56
+ }
57
+ }
58
+
59
+ class NavigationContentComponent {
60
+ }
61
+
62
+ class FdbNavigationListComponent {
63
+ }
64
+
65
+ class FdbNavigationListItemComponent extends BasePopoverClass {
66
+ /** @hidden */
67
+ constructor() {
68
+ super();
69
+ /** @hidden */
70
+ this._hidden = signal(false);
71
+ /** @hidden */
72
+ this.hiddenItems = signal([]);
73
+ /** @hidden */
74
+ this.navigationComponent = inject(FdbNavigationComponent);
75
+ /** @hidden */
76
+ this.hasPortalChildren = signal(false);
77
+ /** @hidden */
78
+ this.childFocused = signal(false);
79
+ /** @hidden */
80
+ this.parentNavigationListComponent = inject(FdbNavigationListComponent);
81
+ /** @hidden */
82
+ this._rtl = inject(RtlService, { optional: true });
83
+ /** @hidden */
84
+ this._isRtl = toSignal(this._rtl?.rtl || of(false), { requireSync: true });
85
+ /** @hidden */
86
+ this._popoverService = inject(PopoverService);
87
+ /** @hidden */
88
+ this._destroyRef = inject(DestroyRef);
89
+ /** @hidden */
90
+ this._listenToSnappedExpandedState = true;
91
+ this._rtl?.rtl.pipe(takeUntilDestroyed()).subscribe((isRtl) => {
92
+ this.placement = isRtl ? 'left-start' : 'right-start';
93
+ this._popoverService.refreshConfiguration(this);
94
+ });
95
+ effect(() => {
96
+ this.isOpen = this.expanded();
97
+ });
98
+ effect(() => {
99
+ const hasChildren = this.childNavigationListComponent() || this.hasPortalChildren();
100
+ const isSnapped = this.navigationComponent.isSnapped();
101
+ const shouldDisable = !isSnapped || !hasChildren || this._hidden();
102
+ this._listenToSnappedExpandedState = true;
103
+ this._popoverService.setIgnoreTriggers(shouldDisable);
104
+ this._popoverService.disabled = shouldDisable;
105
+ });
106
+ effect(() => {
107
+ if (!this._listenToSnappedExpandedState && !this._hidden()) {
108
+ return;
109
+ }
110
+ if (this.navigationComponent.isSnapped() && this.expanded() && this.normalizedLevel() > 1) {
111
+ this.expanded.set(false);
112
+ this.isOpen = false;
113
+ this._popoverService.refreshConfiguration(this);
114
+ this._listenToSnappedExpandedState = false;
115
+ }
116
+ }, {
117
+ allowSignalWrites: true
118
+ });
119
+ effect(() => {
120
+ const activeRouterLink = this.routerLinkActive();
121
+ activeRouterLink?.isActiveChange.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((isActive) => {
122
+ this.parentListItemComponent?.setSnappedActiveState(isActive);
123
+ });
124
+ });
125
+ this.isOpenChange
126
+ .pipe(filter(() => this.navigationComponent.isSnapped()), takeUntilDestroyed(this._destroyRef))
127
+ .subscribe((isOpen) => {
128
+ this.isOpen = isOpen;
129
+ this.expanded.set(isOpen);
130
+ if (!this.isOpen) {
131
+ // this.focus();
132
+ }
133
+ });
134
+ }
135
+ /** @hidden */
136
+ ngOnDestroy() {
137
+ this._popoverService.close();
138
+ this._popoverService.onDestroy();
139
+ }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FdbNavigationListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
141
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: FdbNavigationListItemComponent, usesInheritance: true, ngImport: i0 }); }
142
+ }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FdbNavigationListItemComponent, decorators: [{
144
+ type: Directive
145
+ }], ctorParameters: function () { return []; } });
146
+
147
+ class NavigationLinkComponent {
148
+ /** @hidden */
149
+ constructor() {
150
+ /** Whether the link is for the external resource. */
151
+ this.external = false;
152
+ /** @hidden */
153
+ this._tabindex = 0;
154
+ /** @hidden */
155
+ this.elementRef = inject(ElementRef);
156
+ /** @hidden */
157
+ this._routerLink = inject(RouterLink, {
158
+ optional: true,
159
+ self: true
160
+ });
161
+ /** @hidden */
162
+ this._routerLinkActive = inject(RouterLinkActive, { optional: true });
163
+ /**
164
+ * If user applies RouterLink, we need to check if the link is active
165
+ * @hidden
166
+ **/
167
+ this.isActive = toSignal(inject(RouterLinkActive).isActiveChange);
168
+ /** @hidden */
169
+ this.navigationListItemComponent = inject(FdbNavigationListItemComponent);
170
+ /** @hidden */
171
+ this._navigationComponent = inject(FdbNavigationComponent);
172
+ this.navigationListItemComponent.linkComponent = this;
173
+ this.navigationListItemComponent.routerLink.set(this._routerLink);
174
+ this.navigationListItemComponent.routerLinkActive.set(this._routerLinkActive);
175
+ }
176
+ /** @hidden */
177
+ buildComponentCssClass() {
178
+ return [this.class || '', 'fd-navigation__link'];
179
+ }
180
+ /** @hidden */
181
+ _onClick() {
182
+ if (this.navigationListItemComponent.childNavigationListComponent()) {
183
+ this.navigationListItemComponent.toggle();
184
+ }
185
+ }
186
+ /** @hidden */
187
+ _focusHandler() {
188
+ this._navigationComponent.setActiveItem(this.navigationListItemComponent);
189
+ }
190
+ /** @hidden */
191
+ ngOnChanges() {
192
+ this.buildComponentCssClass();
193
+ }
194
+ /** @hidden */
195
+ ngOnInit() {
196
+ this.buildComponentCssClass();
197
+ }
198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
199
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationLinkComponent, isStandalone: true, selector: "a[fdb-navigation-link]", inputs: { class: "class", glyph: "glyph", label: "label", external: "external" }, host: { attributes: { "role": "link" }, listeners: { "click": "_onClick()", "focus": "_focusHandler()" }, properties: { "attr.tabindex": "this._tabindex" } }, viewQueries: [{ propertyName: "textRenderer", first: true, predicate: ["textRenderer"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: `
200
+ <ng-container *ngIf="glyph">
201
+ <fd-icon
202
+ [glyph]="glyph"
203
+ class="fd-navigation__icon"
204
+ [attr.role]="'presentation'"
205
+ [ariaHidden]="true"
206
+ ></fd-icon>
207
+ </ng-container>
208
+ <ng-template #textRenderer>
209
+ <span class="fd-navigation__text">{{ label }}</span>
210
+ <span
211
+ class="fd-navigation__external-link-indicator"
212
+ role="presentation"
213
+ aria-hidden="true"
214
+ aria-label="external link indicator"
215
+ *ngIf="external"
216
+ ></span>
217
+ </ng-template>
218
+ <ng-container *ngTemplateOutlet="textRenderer" />
219
+ <span
220
+ class="fd-navigation__selection-indicator"
221
+ role="presentation"
222
+ aria-hidden="true"
223
+ aria-label="selection indicator"
224
+ >
225
+ </span>
226
+ <span
227
+ *ngIf="
228
+ navigationListItemComponent?.childNavigationListComponent() &&
229
+ navigationListItemComponent?.normalizedLevel() !== 3 &&
230
+ !_routerLink
231
+ "
232
+ class="fd-navigation__has-children-indicator"
233
+ role="presentation"
234
+ aria-hidden="true"
235
+ aria-label="has children indicator, expanded"
236
+ >
237
+ </span>
238
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
239
+ }
240
+ __decorate([
241
+ applyCssClass,
242
+ __metadata("design:type", Function),
243
+ __metadata("design:paramtypes", []),
244
+ __metadata("design:returntype", Array)
245
+ ], NavigationLinkComponent.prototype, "buildComponentCssClass", null);
246
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationLinkComponent, decorators: [{
247
+ type: Component,
248
+ args: [{
249
+ // eslint-disable-next-line @angular-eslint/component-selector
250
+ selector: 'a[fdb-navigation-link]',
251
+ template: `
252
+ <ng-container *ngIf="glyph">
253
+ <fd-icon
254
+ [glyph]="glyph"
255
+ class="fd-navigation__icon"
256
+ [attr.role]="'presentation'"
257
+ [ariaHidden]="true"
258
+ ></fd-icon>
259
+ </ng-container>
260
+ <ng-template #textRenderer>
261
+ <span class="fd-navigation__text">{{ label }}</span>
262
+ <span
263
+ class="fd-navigation__external-link-indicator"
264
+ role="presentation"
265
+ aria-hidden="true"
266
+ aria-label="external link indicator"
267
+ *ngIf="external"
268
+ ></span>
269
+ </ng-template>
270
+ <ng-container *ngTemplateOutlet="textRenderer" />
271
+ <span
272
+ class="fd-navigation__selection-indicator"
273
+ role="presentation"
274
+ aria-hidden="true"
275
+ aria-label="selection indicator"
276
+ >
277
+ </span>
278
+ <span
279
+ *ngIf="
280
+ navigationListItemComponent?.childNavigationListComponent() &&
281
+ navigationListItemComponent?.normalizedLevel() !== 3 &&
282
+ !_routerLink
283
+ "
284
+ class="fd-navigation__has-children-indicator"
285
+ role="presentation"
286
+ aria-hidden="true"
287
+ aria-label="has children indicator, expanded"
288
+ >
289
+ </span>
290
+ `,
291
+ imports: [NgIf, IconComponent, AsyncPipe, NgTemplateOutlet],
292
+ hostDirectives: [RouterLinkActive],
293
+ standalone: true,
294
+ changeDetection: ChangeDetectionStrategy.OnPush,
295
+ encapsulation: ViewEncapsulation.None,
296
+ host: {
297
+ role: 'link'
298
+ }
299
+ }]
300
+ }], ctorParameters: function () { return []; }, propDecorators: { class: [{
301
+ type: Input
302
+ }], glyph: [{
303
+ type: Input
304
+ }], label: [{
305
+ type: Input,
306
+ args: [{ required: true }]
307
+ }], external: [{
308
+ type: Input
309
+ }], textRenderer: [{
310
+ type: ViewChild,
311
+ args: ['textRenderer']
312
+ }], _tabindex: [{
313
+ type: HostBinding,
314
+ args: ['attr.tabindex']
315
+ }], buildComponentCssClass: [], _onClick: [{
316
+ type: HostListener,
317
+ args: ['click']
318
+ }], _focusHandler: [{
319
+ type: HostListener,
320
+ args: ['focus']
321
+ }] } });
322
+
323
+ class NavigationListItemComponent extends FdbNavigationListItemComponent {
324
+ /** @hidden */
325
+ set group(group) {
326
+ this.isGroup.set(group);
327
+ }
328
+ /** @hidden */
329
+ set _expanded(expanded) {
330
+ this.expanded.set(expanded);
331
+ }
332
+ /** @hidden */
333
+ set _navigationListComponent(navigationListComponent) {
334
+ this.childNavigationListComponent.set(navigationListComponent);
335
+ }
336
+ /** @hidden */
337
+ set _routerLinkActive(routerLinkActive) {
338
+ this.routerLinkActive.set(routerLinkActive);
339
+ }
340
+ /** @hidden */
341
+ set _routerLink(routerLink) {
342
+ this.routerLink.set(routerLink);
343
+ }
344
+ /** @hidden */
345
+ set _childrenTemplate(templateRef) {
346
+ this.childrenTemplate.set(templateRef);
347
+ }
348
+ /**
349
+ * Used in attribute only. For actual calculation of level of nesting use `normalizedLevel`.
350
+ */
351
+ get level() {
352
+ return this.parentNavigationListComponent.level;
353
+ }
354
+ /** @hidden */
355
+ constructor() {
356
+ super();
357
+ /** @hidden */
358
+ this.alwaysFocusable = false;
359
+ /** @hidden */
360
+ this.injector = inject(Injector);
361
+ /** @hidden */
362
+ this.elementRef = inject(ElementRef);
363
+ /** @hidden */
364
+ this.parentListItemComponent = inject(FdbNavigationListItemComponent, { optional: true, skipSelf: true });
365
+ /** @hidden */
366
+ this.noArrow = false;
367
+ /** @hidden */
368
+ this.additionalBodyClass = 'fd-navigation__list-container';
369
+ /** @hidden */
370
+ this.routerLink = signal(null);
371
+ /** @hidden */
372
+ this.routerLinkActive = signal(null);
373
+ /** @hidden */
374
+ this.isRouterLinkActive = computed(() => {
375
+ const routerLinkActive = this.routerLinkActive();
376
+ if (routerLinkActive) {
377
+ return toSignal(routerLinkActive.isActiveChange, {
378
+ initialValue: routerLinkActive.isActive,
379
+ injector: this.injector
380
+ })();
381
+ }
382
+ return false;
383
+ });
384
+ /** @hidden */
385
+ this.childNavigationListComponent = signal(null);
386
+ /** @hidden */
387
+ this.expanded = signal(false);
388
+ /** @hidden */
389
+ this.fullPathExpanded = computed(() => (this.parentListItemComponent ? this.parentListItemComponent.expanded() : true) && this.expanded());
390
+ /** @hidden */
391
+ this.isGroup = signal(false);
392
+ /** @hidden */
393
+ this.childrenTemplate = signal(null);
394
+ /** @hidden */
395
+ this.childrenActive = signal(false);
396
+ /** @hidden */
397
+ this.inPortal = computed(() => this.parentInPortal() || this._selfInPortal());
398
+ /** @hidden */
399
+ this.parentInPortal = computed(() => this.parentListItemComponent?.inPortal() || false);
400
+ /**
401
+ * Used for calculation of the level of inclusion. Can be different than the actual level due to ability to mix grouped lists with ungrouped.
402
+ * For ungrouped lists will add +1 for the first list in the hierarchy to mimic group existence.
403
+ */
404
+ this.normalizedLevel = computed(() => {
405
+ if (this.parentNavigationListComponent.isInGroup() || this.isGroup()) {
406
+ return this.level();
407
+ }
408
+ return this.level() + 1;
409
+ });
410
+ /** @hidden */
411
+ this._isInPopover = computed(() => this.navigationComponent.isSnapped() && (this.normalizedLevel() > 2 || this._hidden()));
412
+ /** @hidden */
413
+ // eslint-disable-next-line max-len
414
+ this.expandedAttr = computed(() => (this.expanded() ||
415
+ (this.normalizedLevel() === 1 &&
416
+ !!this.childNavigationListComponent() &&
417
+ this.navigationComponent.isSnapped())) &&
418
+ !this._hidden());
419
+ /**
420
+ * Icon which should be used for the toggle button.
421
+ **/
422
+ this.toggleIcon = computed(() => {
423
+ if (this.expandedAttr()) {
424
+ return 'slim-arrow-down';
425
+ }
426
+ return this._isRtl() ? 'slim-arrow-left' : 'slim-arrow-right';
427
+ });
428
+ /** @hidden */
429
+ this._selfInPortal = signal(false);
430
+ /** @hidden */
431
+ this._cdr = inject(ChangeDetectorRef);
432
+ /** @hidden */
433
+ this._tabbableService = inject(TabbableElementService);
434
+ /** @hidden */
435
+ this._navigationComponent = inject(FdbNavigationComponent);
436
+ effect(() => {
437
+ this.additionalBodyComponentClasses = [
438
+ 'fd-navigation',
439
+ 'fd-navigation--snapped',
440
+ `fd-navigation--${this.navigationComponent.mode()}`
441
+ ]
442
+ .filter((klass) => !!klass)
443
+ .join(' ');
444
+ this._popoverService.updateContent(null, this.childrenTemplate());
445
+ });
446
+ }
447
+ /** @hidden */
448
+ buildComponentCssClass() {
449
+ return [this.class || '', 'fd-navigation__list-item'];
450
+ }
451
+ /** @hidden */
452
+ _keydownHandler(event) {
453
+ if (this._isInPopover() && KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {
454
+ event.stopImmediatePropagation();
455
+ if (this._hidden() || this.parentListItemComponent?._hidden()) {
456
+ const hiddenItems = this.navigationComponent.getMoreButton()?.hiddenItems() || [];
457
+ const firstLevelHiddenElementCondition = hiddenItems &&
458
+ ((KeyUtil.isKeyCode(event, UP_ARROW) &&
459
+ this.elementRef.nativeElement === hiddenItems[0]?.elementRef.nativeElement) ||
460
+ (KeyUtil.isKeyCode(event, DOWN_ARROW) &&
461
+ this.elementRef.nativeElement ===
462
+ hiddenItems[hiddenItems.length - 1]?.elementRef.nativeElement));
463
+ const secondLevelHiddenElementCondition = this.normalizedLevel() > 2 &&
464
+ ((KeyUtil.isKeyCode(event, UP_ARROW) &&
465
+ this.parentNavigationListComponent.listItems.first === this) ||
466
+ (KeyUtil.isKeyCode(event, DOWN_ARROW) &&
467
+ this.parentNavigationListComponent.listItems.last === this));
468
+ if (firstLevelHiddenElementCondition || secondLevelHiddenElementCondition) {
469
+ return;
470
+ }
471
+ this.navigationComponent.keyDownHandler(event);
472
+ return;
473
+ }
474
+ if (KeyUtil.isKeyCode(event, UP_ARROW) && this.parentNavigationListComponent.listItems.first === this) {
475
+ this.parentListItemComponent?.focusOnClonedLink();
476
+ }
477
+ if ((KeyUtil.isKeyCode(event, UP_ARROW) && this.parentNavigationListComponent.listItems.first === this) ||
478
+ (KeyUtil.isKeyCode(event, DOWN_ARROW) && this.parentNavigationListComponent.listItems.last === this)) {
479
+ return;
480
+ }
481
+ this.navigationComponent.keyDownHandler(event);
482
+ return;
483
+ }
484
+ if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {
485
+ return;
486
+ }
487
+ event.stopImmediatePropagation();
488
+ const shouldExpand = !this._isCollapseAction(event);
489
+ if (!this.navigationComponent.isSnapped()) {
490
+ this._expandedStateKeyboardHandler(shouldExpand);
491
+ }
492
+ else {
493
+ this._snappedStateKeyboardHandler(shouldExpand);
494
+ }
495
+ }
496
+ /** @hidden */
497
+ clonedMainLinkKeydown(event) {
498
+ if (this._isCollapseAction(event)) {
499
+ this._popoverService.close();
500
+ this.focus();
501
+ return;
502
+ }
503
+ if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {
504
+ this._childNavigationListItems.first?.focus();
505
+ }
506
+ }
507
+ /** @hidden */
508
+ calculateExpanded() {
509
+ this._cdr.detectChanges();
510
+ }
511
+ /** @hidden */
512
+ focus() {
513
+ if (this.linkComponent) {
514
+ this.linkComponent.elementRef.nativeElement.focus();
515
+ }
516
+ else {
517
+ this._tabbableService.getTabbableElement(this.elementRef.nativeElement, false, true)?.focus();
518
+ }
519
+ }
520
+ /** @hidden */
521
+ ngAfterViewInit() {
522
+ this._popoverService.updateTriggerElement(this._navigationItem);
523
+ }
524
+ /** @hidden */
525
+ ngOnChanges() {
526
+ this.buildComponentCssClass();
527
+ this._popoverService.refreshConfiguration(this);
528
+ }
529
+ /** @hidden */
530
+ ngOnInit() {
531
+ this.buildComponentCssClass();
532
+ }
533
+ /** @hidden */
534
+ collapse() {
535
+ this.expanded.set(false);
536
+ this._popoverService.close();
537
+ }
538
+ /** @hidden */
539
+ expand() {
540
+ this.expanded.set(true);
541
+ }
542
+ /** @hidden */
543
+ toggle() {
544
+ if (this._hidden()) {
545
+ return;
546
+ }
547
+ this.expanded.set(!this.expanded());
548
+ }
549
+ /** @hidden */
550
+ setSnappedActiveState(isActive) {
551
+ this.childrenActive.set(isActive);
552
+ }
553
+ /** @hidden */
554
+ hide() {
555
+ this._hidden.set(true);
556
+ this.buildComponentCssClass();
557
+ }
558
+ /** @hidden */
559
+ show() {
560
+ this._hidden.set(false);
561
+ this.elementRef.nativeElement.style.display = 'flex';
562
+ this.buildComponentCssClass();
563
+ }
564
+ /** @hidden */
565
+ checkSelfHidden() {
566
+ const shouldHide = this._childNavigationListItems
567
+ ?.filter((item) => item.normalizedLevel() === this.normalizedLevel() + 1)
568
+ .every((item) => item._hidden());
569
+ this._hidden.set(shouldHide);
570
+ this.isOpen = shouldHide;
571
+ this.elementRef.nativeElement.style.display = shouldHide ? 'none' : 'flex';
572
+ this.buildComponentCssClass();
573
+ }
574
+ /** @hidden */
575
+ focusOnClonedLink() {
576
+ if (this._clonedMainLink) {
577
+ this._clonedMainLink.nativeElement.focus();
578
+ return;
579
+ }
580
+ const hiddenItems = this.hiddenItems();
581
+ if (hiddenItems.length > 0) {
582
+ this._tabbableService.getTabbableElement(hiddenItems[0]?.elementRef.nativeElement)?.focus();
583
+ }
584
+ }
585
+ /** @hidden */
586
+ createPortal() {
587
+ this.domPortal = this.domPortal || new DomPortal(this.elementRef.nativeElement);
588
+ this._selfInPortal.set(true);
589
+ return this.domPortal;
590
+ }
591
+ /** @hidden */
592
+ destroyPortal() {
593
+ if (this.domPortal?.isAttached) {
594
+ this.domPortal.detach();
595
+ this.domPortal = null;
596
+ }
597
+ this._selfInPortal.set(false);
598
+ }
599
+ /** @hidden */
600
+ _isCollapseAction(event) {
601
+ const expandKey = this._rtl?.rtl.value ? RIGHT_ARROW : LEFT_ARROW;
602
+ return KeyUtil.isKeyCode(event, expandKey);
603
+ }
604
+ /** @hidden */
605
+ _expandedStateKeyboardHandler(shouldExpand) {
606
+ if (shouldExpand && this.expanded()) {
607
+ this.navigationComponent.setNextItemActive();
608
+ return;
609
+ }
610
+ if (!shouldExpand && !this.expanded() && this.parentListItemComponent) {
611
+ this.navigationComponent.setActiveItem(this.parentListItemComponent);
612
+ return;
613
+ }
614
+ if (!shouldExpand && this.childNavigationListComponent()) {
615
+ if (!this.expanded()) {
616
+ this.navigationComponent.setPreviousItemActive();
617
+ }
618
+ else {
619
+ this.expanded.set(false);
620
+ }
621
+ }
622
+ this.expanded.set(shouldExpand);
623
+ }
624
+ /** @hidden */
625
+ _snappedStateKeyboardHandler(shouldExpand) {
626
+ if (shouldExpand && this._hidden()) {
627
+ this.expanded.set(shouldExpand);
628
+ this._childNavigationListItems.first?.focus();
629
+ this.childFocused.set(true);
630
+ return;
631
+ }
632
+ if (shouldExpand) {
633
+ if (this.expanded()) {
634
+ this._childNavigationListItems.first?.focus();
635
+ return;
636
+ }
637
+ this.expanded.set(shouldExpand);
638
+ this._popoverService.open();
639
+ setTimeout(() => {
640
+ this.focusOnClonedLink();
641
+ });
642
+ }
643
+ else {
644
+ this.expanded.set(shouldExpand);
645
+ this._popoverService.close();
646
+ if (!this.inPortal()) {
647
+ this.focus();
648
+ }
649
+ if (this.inPortal() && this.normalizedLevel() === 2) {
650
+ this._navigationComponent.focusMoreButton();
651
+ }
652
+ else {
653
+ this.parentListItemComponent?.focus();
654
+ }
655
+ }
656
+ }
657
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
658
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationListItemComponent, isStandalone: true, selector: "li[fdb-navigation-list-item]", inputs: { class: "class", group: "group", _expanded: ["expanded", "_expanded"], linkTemplate: "linkTemplate", alwaysFocusable: "alwaysFocusable" }, host: { listeners: { "keydown": "_keydownHandler($event)" } }, providers: [
659
+ PopoverService,
660
+ {
661
+ provide: FdbNavigationListItemComponent,
662
+ useExisting: NavigationListItemComponent
663
+ }
664
+ ], queries: [{ propertyName: "_navigationListComponent", first: true, predicate: FdbNavigationListComponent, descendants: true }, { propertyName: "_routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }, { propertyName: "_routerLink", first: true, predicate: RouterLink, descendants: true }, { propertyName: "linkComponent", first: true, predicate: NavigationLinkComponent, descendants: true }, { propertyName: "_childNavigationListItems", predicate: FdbNavigationListItemComponent, descendants: true }], viewQueries: [{ propertyName: "_childrenTemplate", first: true, predicate: ["childrenTemplate"], descendants: true, read: TemplateRef }, { propertyName: "_navigationItem", first: true, predicate: ["navigationItem"], descendants: true }, { propertyName: "_clonedMainLink", first: true, predicate: ["clonedMainLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"fd-navigation__item\"\n [class.fd-navigation__item--group]=\"isGroup()\"\n [class.fd-navigation__item--overflow]=\"_hidden()\"\n [class.fd-navigation__item--child]=\"normalizedLevel() > 2\"\n [class.fd-navigation__item--with-expander]=\"\n childNavigationListComponent() && normalizedLevel() < 3 && linkComponent?._routerLink\n \"\n aria-current=\"page\"\n [attr.aria-selected]=\"isRouterLinkActive() || (childrenActive() && navigationComponent.isSnapped()) ? true : null\"\n [attr.aria-expanded]=\"expandedAttr()\"\n [attr.aria-level]=\"level()\"\n #navigationItem\n role=\"menuitem\"\n>\n <ng-container *ngIf=\"linkTemplate\">\n <ng-template [ngTemplateOutlet]=\"linkTemplate\" [ngTemplateOutletInjector]=\"injector\"></ng-template>\n </ng-container>\n <ng-content select=\"[fdb-navigation-link]\"></ng-content>\n <button\n (click)=\"toggle()\"\n *ngIf=\"childNavigationListComponent() && normalizedLevel() < 3 && linkComponent?._routerLink\"\n fd-button\n class=\"fd-button--nested fd-navigation__expander\"\n >\n <fd-icon [glyph]=\"toggleIcon()\"></fd-icon>\n </button>\n</div>\n<ng-container\n *ngIf=\"\n (childNavigationListComponent() && !navigationComponent.isSnapped()) ||\n (navigationComponent.isSnapped() && normalizedLevel() < 2) ||\n _hidden()\n \"\n>\n <ng-template [ngTemplateOutlet]=\"childrenTemplate\" [ngTemplateOutletInjector]=\"injector\"></ng-template>\n</ng-container>\n\n<ng-template #childrenTemplate>\n <ng-template #childNavigationLists>\n <ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n </ng-template>\n\n <ng-container *ngIf=\"isGroup(); else withWrapper\">\n <ng-template [ngTemplateOutlet]=\"childNavigationLists\" [ngTemplateOutletInjector]=\"injector\"></ng-template>\n </ng-container>\n <ng-template #withWrapper>\n <ng-template #popoverTemplate>\n <!-- fd-navigation__list-container -->\n <div\n *ngIf=\"childNavigationListComponent()\"\n [class.fd-navigation__list-container]=\"!navigationComponent.isSnapped()\"\n aria-hidden=\"true\"\n >\n <div class=\"fd-navigation__list-wrapper popover-wrapper\" aria-hidden=\"true\">\n <div\n *ngIf=\"linkComponent && navigationComponent.isSnapped()\"\n class=\"fd-navigation__item fd-navigation__item--title fd-navigation__item--child\"\n aria-level=\"1\"\n role=\"treeitem\"\n aria-expanded=\"true\"\n [attr.aria-selected]=\"isRouterLinkActive()\"\n >\n <a\n class=\"fd-navigation__link\"\n [routerLink]=\"$any(routerLink())?.commands\"\n role=\"button\"\n tabindex=\"0\"\n (keydown)=\"clonedMainLinkKeydown($event)\"\n #clonedMainLink\n >\n <span\n class=\"fd-navigation__icon sap-icon--basket\"\n role=\"presentation\"\n aria-hidden=\"true\"\n ></span>\n <ng-container *ngTemplateOutlet=\"linkComponent.textRenderer!\"></ng-container>\n <span class=\"fd-navigation__selection-indicator\"></span>\n </a>\n </div>\n <ng-template\n [ngTemplateOutlet]=\"childNavigationLists\"\n [ngTemplateOutletInjector]=\"injector\"\n ></ng-template>\n </div>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"_hidden()\" [ngIfElse]=\"popoverTemplate\">\n <div\n *ngIf=\"childNavigationListComponent()\"\n class=\"fd-navigation__list-container fd-navigation__list-container--submenu fd-menu__sublist\"\n >\n <div class=\"fd-navigation__list-wrapper\">\n <ng-template\n [ngTemplateOutlet]=\"childNavigationLists\"\n [ngTemplateOutletInjector]=\"injector\"\n ></ng-template>\n </div>\n </div>\n </ng-template>\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel", "ariaHidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
665
+ }
666
+ __decorate([
667
+ applyCssClass,
668
+ __metadata("design:type", Function),
669
+ __metadata("design:paramtypes", []),
670
+ __metadata("design:returntype", Array)
671
+ ], NavigationListItemComponent.prototype, "buildComponentCssClass", null);
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationListItemComponent, decorators: [{
673
+ type: Component,
674
+ args: [{ selector: 'li[fdb-navigation-list-item]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
675
+ PopoverService,
676
+ {
677
+ provide: FdbNavigationListItemComponent,
678
+ useExisting: NavigationListItemComponent
679
+ }
680
+ ], imports: [
681
+ AsyncPipe,
682
+ NgIf,
683
+ NgTemplateOutlet,
684
+ PopoverComponent,
685
+ PopoverControlComponent,
686
+ RouterLink,
687
+ ButtonComponent,
688
+ IconComponent
689
+ ], standalone: true, template: "<div\n class=\"fd-navigation__item\"\n [class.fd-navigation__item--group]=\"isGroup()\"\n [class.fd-navigation__item--overflow]=\"_hidden()\"\n [class.fd-navigation__item--child]=\"normalizedLevel() > 2\"\n [class.fd-navigation__item--with-expander]=\"\n childNavigationListComponent() && normalizedLevel() < 3 && linkComponent?._routerLink\n \"\n aria-current=\"page\"\n [attr.aria-selected]=\"isRouterLinkActive() || (childrenActive() && navigationComponent.isSnapped()) ? true : null\"\n [attr.aria-expanded]=\"expandedAttr()\"\n [attr.aria-level]=\"level()\"\n #navigationItem\n role=\"menuitem\"\n>\n <ng-container *ngIf=\"linkTemplate\">\n <ng-template [ngTemplateOutlet]=\"linkTemplate\" [ngTemplateOutletInjector]=\"injector\"></ng-template>\n </ng-container>\n <ng-content select=\"[fdb-navigation-link]\"></ng-content>\n <button\n (click)=\"toggle()\"\n *ngIf=\"childNavigationListComponent() && normalizedLevel() < 3 && linkComponent?._routerLink\"\n fd-button\n class=\"fd-button--nested fd-navigation__expander\"\n >\n <fd-icon [glyph]=\"toggleIcon()\"></fd-icon>\n </button>\n</div>\n<ng-container\n *ngIf=\"\n (childNavigationListComponent() && !navigationComponent.isSnapped()) ||\n (navigationComponent.isSnapped() && normalizedLevel() < 2) ||\n _hidden()\n \"\n>\n <ng-template [ngTemplateOutlet]=\"childrenTemplate\" [ngTemplateOutletInjector]=\"injector\"></ng-template>\n</ng-container>\n\n<ng-template #childrenTemplate>\n <ng-template #childNavigationLists>\n <ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n </ng-template>\n\n <ng-container *ngIf=\"isGroup(); else withWrapper\">\n <ng-template [ngTemplateOutlet]=\"childNavigationLists\" [ngTemplateOutletInjector]=\"injector\"></ng-template>\n </ng-container>\n <ng-template #withWrapper>\n <ng-template #popoverTemplate>\n <!-- fd-navigation__list-container -->\n <div\n *ngIf=\"childNavigationListComponent()\"\n [class.fd-navigation__list-container]=\"!navigationComponent.isSnapped()\"\n aria-hidden=\"true\"\n >\n <div class=\"fd-navigation__list-wrapper popover-wrapper\" aria-hidden=\"true\">\n <div\n *ngIf=\"linkComponent && navigationComponent.isSnapped()\"\n class=\"fd-navigation__item fd-navigation__item--title fd-navigation__item--child\"\n aria-level=\"1\"\n role=\"treeitem\"\n aria-expanded=\"true\"\n [attr.aria-selected]=\"isRouterLinkActive()\"\n >\n <a\n class=\"fd-navigation__link\"\n [routerLink]=\"$any(routerLink())?.commands\"\n role=\"button\"\n tabindex=\"0\"\n (keydown)=\"clonedMainLinkKeydown($event)\"\n #clonedMainLink\n >\n <span\n class=\"fd-navigation__icon sap-icon--basket\"\n role=\"presentation\"\n aria-hidden=\"true\"\n ></span>\n <ng-container *ngTemplateOutlet=\"linkComponent.textRenderer!\"></ng-container>\n <span class=\"fd-navigation__selection-indicator\"></span>\n </a>\n </div>\n <ng-template\n [ngTemplateOutlet]=\"childNavigationLists\"\n [ngTemplateOutletInjector]=\"injector\"\n ></ng-template>\n </div>\n </div>\n </ng-template>\n <ng-template [ngIf]=\"_hidden()\" [ngIfElse]=\"popoverTemplate\">\n <div\n *ngIf=\"childNavigationListComponent()\"\n class=\"fd-navigation__list-container fd-navigation__list-container--submenu fd-menu__sublist\"\n >\n <div class=\"fd-navigation__list-wrapper\">\n <ng-template\n [ngTemplateOutlet]=\"childNavigationLists\"\n [ngTemplateOutletInjector]=\"injector\"\n ></ng-template>\n </div>\n </div>\n </ng-template>\n </ng-template>\n</ng-template>\n" }]
690
+ }], ctorParameters: function () { return []; }, propDecorators: { class: [{
691
+ type: Input
692
+ }], group: [{
693
+ type: Input
694
+ }], _expanded: [{
695
+ type: Input,
696
+ args: ['expanded']
697
+ }], linkTemplate: [{
698
+ type: Input
699
+ }], alwaysFocusable: [{
700
+ type: Input
701
+ }], _navigationListComponent: [{
702
+ type: ContentChild,
703
+ args: [FdbNavigationListComponent]
704
+ }], _routerLinkActive: [{
705
+ type: ContentChild,
706
+ args: [RouterLinkActive]
707
+ }], _routerLink: [{
708
+ type: ContentChild,
709
+ args: [RouterLink]
710
+ }], _childrenTemplate: [{
711
+ type: ViewChild,
712
+ args: ['childrenTemplate', { read: TemplateRef }]
713
+ }], _navigationItem: [{
714
+ type: ViewChild,
715
+ args: ['navigationItem']
716
+ }], linkComponent: [{
717
+ type: ContentChild,
718
+ args: [NavigationLinkComponent]
719
+ }], _childNavigationListItems: [{
720
+ type: ContentChildren,
721
+ args: [FdbNavigationListItemComponent, { descendants: true }]
722
+ }], _clonedMainLink: [{
723
+ type: ViewChild,
724
+ args: ['clonedMainLink', { static: false, read: ElementRef }]
725
+ }], buildComponentCssClass: [], _keydownHandler: [{
726
+ type: HostListener,
727
+ args: ['keydown', ['$event']]
728
+ }] } });
729
+
730
+ class NavigationListComponent {
731
+ constructor() {
732
+ /** @hidden */
733
+ this.showHome = true;
734
+ /** @hidden */
735
+ this.navigationContentComponent = inject(NavigationContentComponent);
736
+ /** @hidden */
737
+ this.parentListItemComponent = inject(FdbNavigationListItemComponent, { optional: true });
738
+ /** @hidden */
739
+ this.parentListComponent = inject(FdbNavigationListComponent, { optional: true, skipSelf: true });
740
+ /** @hidden */
741
+ this.linkTemplate = computed(() => {
742
+ const homeLinkTemplate = this._navigationComponent.homeLinkTemplate();
743
+ return !this.parentListComponent && homeLinkTemplate;
744
+ });
745
+ /** @hidden */
746
+ this.elementRef = inject(ElementRef);
747
+ /** @hidden */
748
+ this.isParentGroupChild = computed(() => this.parentListItemComponent?.isGroup() ?? false);
749
+ /** @hidden */
750
+ this.isInGroup = computed(() => this.isParentGroupChild() || !!this.parentListComponent?.isParentGroupChild());
751
+ /** @hidden */
752
+ this.level = computed(() => (this.parentListComponent ? this.parentListComponent.level() + 1 : 1));
753
+ /** @hidden */
754
+ this.normalizedLevel = computed(() => (this.isInGroup() ? this.level() : this.level() + (this.level() === 2 ? 1 : 0)));
755
+ /** @hidden */
756
+ this.focused = false;
757
+ /** @hidden */
758
+ this._navigationComponent = inject(FdbNavigationComponent);
759
+ }
760
+ /** @hidden */
761
+ buildComponentCssClass() {
762
+ return [
763
+ this.class || '',
764
+ 'fd-navigation__list',
765
+ this.isParentGroupChild() ? 'fd-navigation__list--parent-items' : '',
766
+ this.parentListComponent?.isParentGroupChild() ? 'fd-navigation__list--child-items' : ''
767
+ ];
768
+ }
769
+ /** @hidden */
770
+ _focusIn() {
771
+ this.focused = true;
772
+ }
773
+ /** @hidden */
774
+ _focusOut() {
775
+ this.focused = false;
776
+ }
777
+ /** @hidden */
778
+ ngOnChanges() {
779
+ this.buildComponentCssClass();
780
+ }
781
+ /** @hidden */
782
+ ngOnInit() {
783
+ this.buildComponentCssClass();
784
+ }
785
+ /** @hidden */
786
+ getHomeElementSize() {
787
+ const sizePlaceholder = { width: 0, height: 0 };
788
+ const homeListItemSize = this._homeListItemElement?.nativeElement.getBoundingClientRect() || sizePlaceholder;
789
+ const homeListSeparatorSize = this._homeListSeparator?.nativeElement.getBoundingClientRect() || sizePlaceholder;
790
+ return {
791
+ width: homeListItemSize.width + homeListSeparatorSize.width,
792
+ height: homeListItemSize.height + homeListSeparatorSize.height
793
+ };
794
+ }
795
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
796
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationListComponent, isStandalone: true, selector: "ul[fdb-navigation-list]", inputs: { class: "class", showHome: "showHome" }, host: { attributes: { "role": "menubar" }, listeners: { "focusin": "_focusIn()", "focusout": "_focusOut()" }, properties: { "attr.aria-hidden": "true" } }, providers: [
797
+ {
798
+ provide: FdbNavigationListComponent,
799
+ useExisting: NavigationListComponent
800
+ }
801
+ ], queries: [{ propertyName: "listItems", predicate: FdbNavigationListItemComponent }], viewQueries: [{ propertyName: "homeListItem", first: true, predicate: ["homeListItem"], descendants: true, read: FdbNavigationListItemComponent }, { propertyName: "_homeListItemElement", first: true, predicate: ["homeListItem"], descendants: true, read: ElementRef }, { propertyName: "_homeListSeparator", first: true, predicate: ["homeListSeparator"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"showHome && navigationContentComponent.showHome\">\n <ng-container *ngIf=\"linkTemplate() as tmp\">\n <li\n fdb-navigation-list-item\n [linkTemplate]=\"tmp\"\n [alwaysFocusable]=\"true\"\n #homeListItem\n [class.fd-navigation-list-item--home-without-separator]=\"!_navigationComponent.homeSeparator()\"\n class=\"fd-navigation__list-item--home\"\n ></li>\n <li\n *ngIf=\"_navigationComponent.homeSeparator()\"\n #homeListSeparator\n class=\"fd-navigation__list-item fd-navigation__list-item--separator\"\n ></li>\n </ng-container>\n</ng-container>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NavigationListItemComponent, selector: "li[fdb-navigation-list-item]", inputs: ["class", "group", "expanded", "linkTemplate", "alwaysFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
802
+ }
803
+ __decorate([
804
+ applyCssClass,
805
+ __metadata("design:type", Function),
806
+ __metadata("design:paramtypes", []),
807
+ __metadata("design:returntype", Array)
808
+ ], NavigationListComponent.prototype, "buildComponentCssClass", null);
809
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationListComponent, decorators: [{
810
+ type: Component,
811
+ args: [{ selector: 'ul[fdb-navigation-list]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
812
+ role: 'menubar',
813
+ '[attr.aria-hidden]': 'true'
814
+ }, providers: [
815
+ {
816
+ provide: FdbNavigationListComponent,
817
+ useExisting: NavigationListComponent
818
+ }
819
+ ], imports: [NgIf, NavigationListItemComponent], template: "<ng-container *ngIf=\"showHome && navigationContentComponent.showHome\">\n <ng-container *ngIf=\"linkTemplate() as tmp\">\n <li\n fdb-navigation-list-item\n [linkTemplate]=\"tmp\"\n [alwaysFocusable]=\"true\"\n #homeListItem\n [class.fd-navigation-list-item--home-without-separator]=\"!_navigationComponent.homeSeparator()\"\n class=\"fd-navigation__list-item--home\"\n ></li>\n <li\n *ngIf=\"_navigationComponent.homeSeparator()\"\n #homeListSeparator\n class=\"fd-navigation__list-item fd-navigation__list-item--separator\"\n ></li>\n </ng-container>\n</ng-container>\n<ng-content></ng-content>\n" }]
820
+ }], propDecorators: { class: [{
821
+ type: Input
822
+ }], showHome: [{
823
+ type: Input
824
+ }], listItems: [{
825
+ type: ContentChildren,
826
+ args: [FdbNavigationListItemComponent]
827
+ }], homeListItem: [{
828
+ type: ViewChild,
829
+ args: ['homeListItem', { static: false, read: FdbNavigationListItemComponent }]
830
+ }], _homeListItemElement: [{
831
+ type: ViewChild,
832
+ args: ['homeListItem', { static: false, read: ElementRef }]
833
+ }], _homeListSeparator: [{
834
+ type: ViewChild,
835
+ args: ['homeListSeparator', { static: false, read: ElementRef }]
836
+ }], buildComponentCssClass: [], _focusIn: [{
837
+ type: HostListener,
838
+ args: ['focusin']
839
+ }], _focusOut: [{
840
+ type: HostListener,
841
+ args: ['focusout']
842
+ }] } });
843
+
844
+ class NavigationService {
845
+ constructor() {
846
+ /** @hidden */
847
+ this.hiddenItems = signal(new Map());
848
+ }
849
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
850
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationService }); }
851
+ }
852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationService, decorators: [{
853
+ type: Injectable
854
+ }] });
855
+
856
+ class NavigationComponent extends FdbNavigationComponent {
857
+ constructor() {
858
+ super(...arguments);
859
+ /** @hidden */
860
+ this.class = '';
861
+ /** @hidden */
862
+ this.elementRef = inject(ElementRef);
863
+ /**
864
+ * Whether to show a separator between home item and the rest of the navigation items.
865
+ * Default is true.
866
+ */
867
+ this.homeSeparator = signal(true);
868
+ /** @hidden */
869
+ this.mode = signal('');
870
+ /** @hidden */
871
+ this.state = signal('expanded');
872
+ /** @hidden */
873
+ this.type = signal('vertical');
874
+ /** @hidden */
875
+ this.homeDirective = signal(null);
876
+ /** @hidden */
877
+ this.defaultLinkTemplate = signal(null);
878
+ /** @hidden */
879
+ this.homeLinkTemplate = computed(() => {
880
+ const homeDirective = this.homeDirective();
881
+ return homeDirective ? homeDirective.templateRef : this.defaultLinkTemplate();
882
+ });
883
+ /** @hidden */
884
+ this._isSnapped$ = toObservable(this.isSnapped);
885
+ /** @hidden */
886
+ this._destroyRef = inject(DestroyRef);
887
+ }
888
+ /** @hidden */
889
+ set _state(state) {
890
+ this.state.set(state);
891
+ }
892
+ /** @hidden */
893
+ set _horizontal(horizontal) {
894
+ this.type.set(horizontal ? 'horizontal' : 'vertical');
895
+ }
896
+ /** @hidden */
897
+ set _mode(mode) {
898
+ this.mode.set(mode);
899
+ }
900
+ /** @hidden */
901
+ set _type(type) {
902
+ this.type.set(type);
903
+ }
904
+ /** @hidden */
905
+ set _homeSeparator(value) {
906
+ // It will always be a boolean, because of the transform
907
+ this.homeSeparator.set(value);
908
+ }
909
+ /** @hidden */
910
+ set _homeDirective(homeDirective) {
911
+ this.homeDirective.set(homeDirective);
912
+ }
913
+ /** @hidden */
914
+ set _defaultLinkTemplate(templateRef) {
915
+ this.defaultLinkTemplate.set(templateRef);
916
+ }
917
+ /** @hidden */
918
+ buildComponentCssClass() {
919
+ return [
920
+ this.class,
921
+ 'fd-navigation',
922
+ this.type() === 'horizontal' ? 'fd-navigation--horizontal' : 'fd-navigation--vertical',
923
+ this.mode() ? `fd-navigation--${this.mode()}` : '',
924
+ // Mobile mode should not support snapped state.
925
+ this.isSnapped() || this.state() !== 'snapped' ? `fd-navigation--${this.state()}` : ''
926
+ ];
927
+ }
928
+ /** @hidden */
929
+ keyDownHandler(event) {
930
+ if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {
931
+ this._keyboardEventsManager?.onKeydown(event);
932
+ }
933
+ }
934
+ /** @hidden */
935
+ ngOnChanges() {
936
+ this.buildComponentCssClass();
937
+ }
938
+ /** @hidden */
939
+ ngOnInit() {
940
+ this.buildComponentCssClass();
941
+ }
942
+ /** @hidden */
943
+ ngAfterViewInit() {
944
+ this._navigationContents.changes
945
+ .pipe(startWith(null), switchMap(() => merge(this._isSnapped$, ...this._navigationContents.map((content) => content.refresh$)).pipe(startWith(null), debounceTime(5))), takeUntilDestroyed(this._destroyRef))
946
+ .subscribe(() => {
947
+ const listItems = this._navigationContents.reduce((items, content) => {
948
+ items.push(...content.getNavigatableItems());
949
+ return items;
950
+ }, []);
951
+ // Reset keyboard manager.
952
+ this._keyboardEventsManager?.destroy();
953
+ const homeListItem = this._navigationLists.find((list) => !!list.homeListItem)?.homeListItem;
954
+ if (homeListItem) {
955
+ listItems.unshift(homeListItem);
956
+ }
957
+ this._keyboardEventsManager = new FocusKeyManager(listItems)
958
+ .withVerticalOrientation(true)
959
+ .skipPredicate((item) => {
960
+ if (!item.elementRef.nativeElement.isConnected) {
961
+ return true;
962
+ }
963
+ if (item.alwaysFocusable) {
964
+ return false;
965
+ }
966
+ const moreOpened = this._navigationContents.some((c) => c.showMoreOpened());
967
+ if (item.level() === 1) {
968
+ if (!this.isSnapped()) {
969
+ return false;
970
+ }
971
+ if (item.normalizedLevel() === 1) {
972
+ return true;
973
+ }
974
+ return item._hidden() && !moreOpened;
975
+ }
976
+ if (this.isSnapped()) {
977
+ if (item.inPortal() &&
978
+ (item.parentListItemComponent?.isOpen || item.parentNavigationListComponent.focused) &&
979
+ moreOpened) {
980
+ return false;
981
+ }
982
+ if (item._hidden()) {
983
+ return true;
984
+ }
985
+ return item.parentListItemComponent?.expandedAttr() !== true;
986
+ }
987
+ const navigatable = item.parentListItemComponent?.fullPathExpanded() === false;
988
+ return navigatable;
989
+ });
990
+ });
991
+ }
992
+ /** @hidden */
993
+ setNextItemActive() {
994
+ this._keyboardEventsManager?.setNextItemActive();
995
+ }
996
+ /** @hidden */
997
+ setPreviousItemActive() {
998
+ this._keyboardEventsManager?.setPreviousItemActive();
999
+ }
1000
+ /** @hidden */
1001
+ setActiveItem(item) {
1002
+ this._keyboardEventsManager?.setActiveItem(item);
1003
+ }
1004
+ /** @hidden */
1005
+ focusMoreButton() {
1006
+ const showMoreButton = this._navigationContents.find((c) => !!c.showMoreOverflowItem)?.showMoreOverflowItem;
1007
+ showMoreButton?.focus();
1008
+ showMoreButton?.collapse();
1009
+ }
1010
+ /** @hidden */
1011
+ getMoreButton() {
1012
+ return this._navigationContents.find((c) => !!c.showMoreOverflowItem)?.showMoreOverflowItem;
1013
+ }
1014
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1015
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "16.2.7", type: NavigationComponent, isStandalone: true, selector: "fdb-navigation", inputs: { class: "class", _state: ["state", "_state"], _horizontal: ["horizontal", "_horizontal"], _mode: ["mode", "_mode"], _type: ["type", "_type"], _homeSeparator: ["homeSeparator", "_homeSeparator", coerceBooleanProperty] }, host: { attributes: { "role": "navigation" }, listeners: { "keydown": "keyDownHandler($event)" } }, providers: [
1016
+ NavigationService,
1017
+ {
1018
+ provide: FdbNavigationComponent,
1019
+ useExisting: forwardRef(() => NavigationComponent)
1020
+ }
1021
+ ], queries: [{ propertyName: "_homeDirective", first: true, predicate: NavigationHomeDirective, descendants: true }, { propertyName: "_navigationItems", predicate: FdbNavigationListItemComponent, descendants: true }, { propertyName: "_navigationLists", predicate: FdbNavigationListComponent, descendants: true }, { propertyName: "_navigationContents", predicate: NavigationContentComponent, descendants: true }], viewQueries: [{ propertyName: "_defaultLinkTemplate", first: true, predicate: ["defaultLinkTemplate"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
1022
+ <ng-content></ng-content>
1023
+ <ng-template #defaultLinkTemplate>
1024
+ <a fdb-navigation-link glyph="home" label="Home"></a>
1025
+ </ng-template>
1026
+ `, isInline: true, styles: ["@charset \"UTF-8\";/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-navigation{--fdNavigation_Height:100%;--fdNavigation_Padding_X:.75rem;--fdNavigation_Padding_Top:1.25rem;--fdNavigation_Item_Spacing:.25rem;--fdNavigation_Padding_Bottom:.5rem;--fdNavigation_Horizontal_Height:3.5rem;--fdNavigation_Expander_Position_Right:.5rem;--fdNavigation_Border_Radius:.5rem .5rem 0 0;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow1);--fdNavigation_Link_Icon_Size:1rem;--fdNavigation_Link_Min_Height:2rem;--fdNavigation_Link_Font_Weight:bold;--fdNavigation_Link_Spacing:.4375rem;--fdNavigation_Link_Text_Color:inherit;--fdNavigation_Link_Padding_Left:.5rem;--fdNavigation_Link_Padding_Right:.5rem;--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Font_Size:var(--sapFontSize);--fdNavigation_Link_Selection_Indicator_Size:.5rem;--fdNavigation_Link_Has_Child_Indicator_Display:flex;--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Back_Indicator_Icon:\"\\e1ee\";--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\";--fdNavigation_Link_External_Link_Indicator_Icon:\"\\e04c\";--fdNavigation_Link_Background:var(--sapNavigation_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Normal);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Bottom_Color_Normal);--fdNavigation_Item_Group_Display:flex;--fdNavigation_Item_Title_Display:none;--fdNavigation_Item_Text_Display:inline-block;--fdNavigation_Item_Selected_Background:0 100%/100% .125rem no-repeat linear-gradient(0deg,var(--sapShell_Navigation_SelectedColor),var(--sapShell_Navigation_SelectedColor)),var(--sapNavigation_Selected_Background);--fdNavigation_List_Container_Display:none;--fdNavigation_List_Parent_Items_Display:none;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-navigation:after,.fd-navigation:before{box-sizing:inherit;font-size:inherit}.fd-navigation--vertical{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-shadow:var(--fdNavigation_Box_Shadow);background:var(--sapNavigation_Background);border-radius:var(--fdNavigation_Border_Radius);box-shadow:var(--fdNavigation_Box_Shadow);display:flex;flex-direction:column;height:var(--fdNavigation_Height);justify-content:space-between;min-width:16rem;padding-bottom:var(--fdNavigation_Padding_Bottom);padding-top:var(--fdNavigation_Padding_Top)}.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Height:auto;--fdNavigation_Padding_Top:.25rem;--fdNavigation_Border_Radius:.5rem;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow2)}.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--bottom,.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation--vertical.fd-navigation--snapped{--fdNavigation_Border_Radius:.5rem .5rem 0 0;max-width:3.5rem;min-width:3.5rem;width:3.5rem}.fd-navigation--horizontal{background:var(--sapNavigation_Background);height:var(--fdNavigation_Horizontal_Height);padding:.75rem 1.5rem;width:100%}.fd-navigation--horizontal .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);z-index:5}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-hover,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-hover,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:hover{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-expanded .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected[aria-expanded=true] .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-expanded .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true][aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:transparent}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items){--fdNavigation_Item_Spacing:.75rem;flex-direction:row}.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items) .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e287\"}.fd-navigation--horizontal .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:0}.fd-navigation--horizontal .fd-navigation__list-item--spacer{height:.75rem;width:100%}.fd-navigation--horizontal .fd-navigation__list-item--home{background:transparent;padding-top:0;position:relative}.fd-navigation--horizontal .fd-navigation__list-item--home:before{content:none}.fd-navigation--horizontal .fd-navigation__list-container{--fdPopover_Offset:calc(100% + .3875rem);-webkit-box-shadow:var(--sapMenu_Shadow2);background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;box-shadow:var(--sapMenu_Shadow2);padding:.05rem}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu{box-shadow:var(--sapMenu_Shadow1);padding:.5rem;position:absolute;right:-.5rem;top:calc(100% + .3875rem)}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu{left:-.5rem;right:auto}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding:0}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:0;box-shadow:none}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\"}[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:100%}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--submenu{box-shadow:var(--sapMenu_Shadow1);left:calc(-100% - .1875rem);margin:0;padding:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--submenu{left:auto;right:calc(-100% - .1875rem)}.fd-navigation--horizontal .fd-navigation__list-wrapper{padding:.7rem}.fd-navigation--horizontal .fd-navigation__item.is-expanded .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation--horizontal .fd-navigation__item.is-expanded .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item.is-expanded .fd-navigation__link:focus,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true] .fd-navigation__link:focus{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active);z-index:5}.fd-navigation--horizontal .fd-navigation__item.is-expanded.is-selected .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item.is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation--horizontal .fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Padding_Left:.5rem}.fd-navigation--snapped .fd-navigation__container--bottom,.fd-navigation--snapped .fd-navigation__container--top{overflow:visible}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title) .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded+.fd-navigation__list-container,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true]+.fd-navigation__list-container{display:flex}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded .fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true] .fd-navigation__link:focus{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active);z-index:5}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);z-index:5}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:hover{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-expanded .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected[aria-expanded=true] .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-expanded .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true][aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:transparent}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:.5rem}.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__expander{display:none}.fd-navigation--snapped .fd-navigation__item--group{--fdNavigation_Item_Group_Display:none}.fd-navigation--snapped .fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Padding_Left:.5rem}.fd-navigation--snapped .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:-moz-fit-content;width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus{width:-moz-fit-content;width:fit-content;z-index:5}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover{width:auto}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus{width:auto;z-index:5}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:100%}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus{width:100%;z-index:5}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover{width:100%}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus{width:100%;z-index:5}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container{-webkit-box-shadow:var(--sapMenu_Shadow2);background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;box-shadow:var(--sapMenu_Shadow2);padding:.05rem}.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:flex}.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:auto}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{box-shadow:var(--sapMenu_Shadow1);left:calc(100% + .1875rem);padding:.5rem;position:absolute;top:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:auto;right:calc(100% + .1875rem)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:0;box-shadow:none}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\"}[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:100%}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--submenu{box-shadow:var(--sapMenu_Shadow1);left:calc(100% + .1875rem);margin:0;padding:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--submenu{left:auto;right:calc(100% + .1875rem)}.fd-navigation--snapped .fd-navigation__list-wrapper{padding:.7rem}.fd-navigation--snapped .fd-navigation__item--title{display:flex;height:auto;margin-bottom:.75rem}.fd-navigation--snapped .fd-navigation__item--title .fd-navigation__text{--fdNavigation_Item_Title_Display:block;font-size:1.25rem;font-weight:700;line-height:1.5rem}.fd-navigation--snapped .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:0;height:auto}.fd-navigation--phone .fd-navigation__link,.fd-navigation--tablet .fd-navigation__link{--fdNavigation_Link_Min_Height:2.5rem;--fdNavigation_Link_Padding_Left:.6875rem;--fdNavigation_Link_Padding_Right:.6875rem}.fd-navigation--phone .fd-navigation__container--bottom,.fd-navigation--phone .fd-navigation__container--top,.fd-navigation--tablet .fd-navigation__container--bottom,.fd-navigation--tablet .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation--phone .fd-navigation__icon,.fd-navigation--tablet .fd-navigation__icon{--fdNavigation_Link_Icon_Size:1.125rem}.fd-navigation--phone .fd-navigation__item--with-expander .fd-navigation__link,.fd-navigation--tablet .fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:2.375rem}.fd-navigation--phone .fd-navigation__item--with-expander .fd-navigation__expander,.fd-navigation--tablet .fd-navigation__item--with-expander .fd-navigation__expander{--fdNavigation_Expander_Position_Right:.6875rem}.fd-navigation--phone .fd-navigation__list,.fd-navigation--phone .fd-navigation__list-item,.fd-navigation--tablet .fd-navigation__list,.fd-navigation--tablet .fd-navigation__list-item{--fdNavigation_Item_Spacing:.125rem}.fd-navigation--phone.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__link,.fd-navigation--tablet.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:.6875rem}.fd-navigation--phone.fd-navigation--horizontal,.fd-navigation--tablet.fd-navigation--horizontal{--fdNavigation_Horizontal_Height:4rem}.fd-navigation--phone.fd-navigation--horizontal .fd-navigation__list--child-items,.fd-navigation--tablet.fd-navigation--horizontal .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:0}.fd-navigation__container{position:relative}.fd-navigation__container--top{height:100%;overflow:scroll;padding-bottom:.25rem;position:relative}.fd-navigation__container--bottom,.fd-navigation__container--top{padding-left:var(--fdNavigation_Padding_X);padding-right:var(--fdNavigation_Padding_X)}.fd-navigation__container--bottom:before{background:var(--sapToolbar_SeparatorColor);content:\"\";display:inline-block;height:.0625rem;margin-bottom:.5625rem;margin-top:.5625rem;width:100%}.fd-navigation__list-container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:var(--fdNavigation_List_Container_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-navigation__list-container:after,.fd-navigation__list-container:before{box-sizing:inherit;font-size:inherit}.fd-navigation__list-wrapper{width:100%}.fd-navigation__list{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdNavigation_Item_Spacing);height:100%;line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;padding:0;position:relative}.fd-navigation__list:after,.fd-navigation__list:before{box-sizing:inherit;font-size:inherit}.fd-navigation__list--parent-items{display:var(--fdNavigation_List_Parent_Items_Display)}.fd-navigation__list-item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdNavigation_Item_Spacing);line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-navigation__list-item:after,.fd-navigation__list-item:before{box-sizing:inherit;font-size:inherit}.fd-navigation__list-item--spacer{background:transparent;height:100%;min-height:.25rem}.fd-navigation__list-item--separator{background:transparent;height:.75rem;max-height:.75rem;min-height:.75rem}.fd-navigation__list-item--home{background:var(--sapList_Background);padding-top:.25rem;position:sticky;top:0;z-index:10}.fd-navigation__list-item--home:before{background:var(--sapList_Background);content:\"\";height:calc(100% + .5rem);left:-.25rem;position:absolute;top:-.25rem;width:calc(100% + .5rem)}[dir=rtl] .fd-navigation__list-item--home:before{left:auto;right:-.25rem}.fd-navigation__list-item--overflow{position:relative}.fd-navigation__link{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-transition:var(--fdNavigation_Link_Transition);align-items:center;background:var(--fdNavigation_Link_Background);border:0;border-radius:var(--fdNavigation_Link_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdNavigation_Link_Spacing);line-height:var(--sapContent_LineHeight);margin:0;min-height:var(--fdNavigation_Link_Min_Height);padding:.5rem 0;padding-left:var(--fdNavigation_Link_Padding_Left);padding-right:var(--fdNavigation_Link_Padding_Right);position:relative;text-align:start;text-decoration:none;transition:var(--fdNavigation_Link_Transition);width:100%}.fd-navigation__link:after,.fd-navigation__link:before{box-sizing:inherit;font-size:inherit}.fd-navigation__link[dir=rtl],[dir=rtl] .fd-navigation__link{padding-left:var(--fdNavigation_Link_Padding_Right);padding-right:var(--fdNavigation_Link_Padding_Left)}.fd-navigation__link:before{border:.0625rem solid var(--fdNavigation_Link_Border_Color);border-bottom:.0625rem solid var(--fdNavigation_Link_Border_Color);border-bottom-color:var(--fdNavigation_Link_Border_Bottom_Color);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}[dir=rtl] .fd-navigation__link:before{left:auto;right:0}.fd-navigation__link.is-hover,.fd-navigation__link:hover{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapNavigation_Hover_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Hover);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Hover)}.fd-navigation__link.is-active,.fd-navigation__link.is-active.is-focus,.fd-navigation__link.is-active:focus,.fd-navigation__link:active,.fd-navigation__link:active.is-focus,.fd-navigation__link:active:focus{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapNavigation_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation__link.is-active.is-focus,.fd-navigation__link.is-active:focus,.fd-navigation__link:active.is-focus,.fd-navigation__link:active:focus{outline:none;z-index:5}.fd-navigation__link.is-focus,.fd-navigation__link:focus{--fdNavigation_Link_Border_Color:transparent;--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Border_Bottom_Color:transparent;--fdNavigation_Link_Background:var(--sapNavigation_Background);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);z-index:5}.fd-navigation__link:focus-visible{outline-offset:0}.fd-navigation__link.is-disabled,.fd-navigation__link:disabled,.fd-navigation__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-navigation__link[class*=-compact],[class*=-compact] .fd-navigation__link:not([class*=-cozy]){--fdNavigation_Link_Min_Height:2rem}.fd-navigation__item{-webkit-box-sizing:border-box;align-items:center;border:0;border-radius:var(--fdNavigation_Link_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative}.fd-navigation__item:after,.fd-navigation__item:before{box-sizing:inherit;font-size:inherit}.fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation__item.is-expanded .fd-navigation__has-children-indicator[dir=rtl],.fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator,.fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator[dir=rtl],[dir=rtl] .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ef\"}.fd-navigation__item.is-expanded+.fd-navigation__list-container,.fd-navigation__item[aria-expanded=true]+.fd-navigation__list-container{--fdNavigation_List_Container_Display:flex}.fd-navigation__item.is-expanded+.fd-navigation__list--parent-items,.fd-navigation__item[aria-expanded=true]+.fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.fd-navigation__item.is-selected,.fd-navigation__item[aria-selected=true]{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item.is-selected .fd-navigation__link.is-focus,.fd-navigation__item.is-selected .fd-navigation__link:focus,.fd-navigation__item[aria-selected=true] .fd-navigation__link.is-focus,.fd-navigation__item[aria-selected=true] .fd-navigation__link:focus{--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected);z-index:5}.fd-navigation__item.is-selected .fd-navigation__link.is-hover,.fd-navigation__item.is-selected .fd-navigation__link:hover,.fd-navigation__item[aria-selected=true] .fd-navigation__link.is-hover,.fd-navigation__item[aria-selected=true] .fd-navigation__link:hover{--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item--with-expander{position:relative}.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:2.1975rem}.fd-navigation__item--with-expander .fd-navigation__expander{position:absolute;right:var(--fdNavigation_Expander_Position_Right);z-index:20}.fd-navigation__item--with-expander .fd-navigation__expander[dir=rtl],[dir=rtl] .fd-navigation__item--with-expander .fd-navigation__expander{left:var(--fdNavigation_Expander_Position_Right);right:auto}.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Font_Weight:normal;--fdNavigation_Link_Padding_Left:2rem}.fd-navigation__item--group{--fdNavigation_Link_Child_Indicator_Opacity:0;display:var(--fdNavigation_Item_Group_Display)}.fd-navigation__item--group .fd-navigation__link{--fdNavigation_Link_Spacing:.4375rem;--fdNavigation_Link_Text_Color:var(--sapContent_LabelColor);--fdNavigation_Link_Font_Weight:600;--fdNavigation_Link_Font_Size:var(--sapFontSmallSize)}.fd-navigation__item--title{display:var(--fdNavigation_Item_Title_Display);height:auto}.fd-navigation__item--title .fd-navigation__text{--fdNavigation_Item_Title_Display:block;font-size:1.25rem;font-weight:700;line-height:1.5rem}.fd-navigation__item--title .fd-navigation__icon[class*=sap-icon]{display:none}.fd-navigation__item--menu.is-expanded,.fd-navigation__item--menu[aria-expanded=true]{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapNavigation_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation__item--menu.is-expanded .fd-navigation__has-children-indicator,.fd-navigation__item--menu[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\"}.fd-navigation__item--menu.is-expanded .fd-navigation__has-children-indicator[dir=rtl],.fd-navigation__item--menu[aria-expanded=true] .fd-navigation__has-children-indicator[dir=rtl],[dir=rtl] .fd-navigation__item--menu.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation__item--menu[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation__item--menu.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Padding_Left:.5rem}.fd-navigation__icon{height:var(--fdNavigation_Link_Icon_Size);max-height:var(--fdNavigation_Link_Icon_Size);max-width:var(--fdNavigation_Link_Icon_Size);min-height:var(--fdNavigation_Link_Icon_Size);min-width:var(--fdNavigation_Link_Icon_Size);width:var(--fdNavigation_Link_Icon_Size)}.fd-navigation__icon [class*=sap-icon],.fd-navigation__icon[class*=sap-icon]{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:inherit;display:flex;font-size:var(--fdNavigation_Link_Icon_Size);justify-content:center}.fd-navigation__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdNavigation_Link_Text_Color);display:var(--fdNavigation_Item_Text_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdNavigation_Link_Font_Size);font-weight:400;font-weight:var(--fdNavigation_Link_Font_Weight);forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1rem;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap;width:100%}.fd-navigation__text:after,.fd-navigation__text:before{box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator{-webkit-box-sizing:border-box;background:var(--sapList_SelectionBorderColor);border:0;border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);display:var(--fdNavigation_Link_Selection_Indicator_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdNavigation_Link_Selection_Indicator_Size);line-height:var(--sapContent_LineHeight);margin:0;max-height:var(--fdNavigation_Link_Selection_Indicator_Size);max-width:var(--fdNavigation_Link_Selection_Indicator_Size);min-height:var(--fdNavigation_Link_Selection_Indicator_Size);min-width:var(--fdNavigation_Link_Selection_Indicator_Size);padding:0;width:var(--fdNavigation_Link_Selection_Indicator_Size)}.fd-navigation__selection-indicator:after,.fd-navigation__selection-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__has-children-indicator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-transition:opacity .3s ease-in-out;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:var(--fdNavigation_Link_Has_Child_Indicator_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;opacity:var(--fdNavigation_Link_Child_Indicator_Opacity);padding:0;transition:opacity .3s ease-in-out;width:.75rem}.fd-navigation__has-children-indicator:after,.fd-navigation__has-children-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__has-children-indicator:before{content:var(--fdNavigation_Link_Has_Child_Indicator_Icon);font-family:SAP-icons;font-size:.75rem}[dir=rtl] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation__external-link-indicator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding:0;width:.75rem}.fd-navigation__external-link-indicator:after,.fd-navigation__external-link-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__external-link-indicator:before{content:var(--fdNavigation_Link_External_Link_Indicator_Icon);font-family:SAP-icons;font-size:.75rem}.fd-navigation__external-link-indicator[dir=rtl],[dir=rtl] .fd-navigation__external-link-indicator{--fdNavigation_Link_External_Link_Indicator_Icon:\"\\e04d\"}.fd-navigation__back-indicator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding:0;width:.75rem}.fd-navigation__back-indicator:after,.fd-navigation__back-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__back-indicator:before{content:var(--fdNavigation_Link_Back_Indicator_Icon);font-family:SAP-icons;font-size:.75rem}.fd-navigation__back-indicator[dir=rtl],[dir=rtl] .fd-navigation__back-indicator{--fdNavigation_Link_Back_Indicator_Icon:\"\\e1ed\"}.fd-navigation .fd-navigation__container--top{padding-left:var(--fdNavigation_Padding_X);padding-right:var(--fdNavigation_Padding_X);padding-bottom:.25rem}.fd-navigation__list{min-height:100%;height:auto}.fd-navigation--snapped .fd-navigation__list-item--home{position:relative}.fd-navigation--snapped .fd-navigation__container--top{overflow:visible!important;display:flex;flex-direction:column}.fd-navigation--snapped .fd-navigation__container--top .fd-navigation__list{flex-grow:1;height:auto;min-height:0}.fd-navigation--snapped .fd-navigation__container--top .fd-navigation__list--no-grow{flex-grow:0}.fd-navigation--snapped .fd-navigation__container--hidden-overflow{overflow:hidden!important}.fd-navigation--expanded .fd-navigation__list-item--home,.fd-navigation--popup .fd-navigation__list-item--home{z-index:21}.fd-navigation__list-container--custom-menu{box-shadow:var(--sapMenu_Shadow1)}.fd-navigation__list-item--spacer--hidden{display:none!important}.fd-navigation .fd-navigation-list-item--home-without-separator{margin-bottom:.09rem}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{position:relative;transition:none}.fd-navigation__list-item:not(.fd-navigation__list-item--home){position:relative}.fd-navigation__list-container--menu>.fd-scrollbar{overflow:visible!important}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:before{content:\"\";position:absolute;top:0;bottom:0;left:-1rem;right:-1rem}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item>.fd-navigation__list-container{display:none;top:-.5rem}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:hover>.fd-navigation__list-container,.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:focus>.fd-navigation__list-container,.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:focus-within>.fd-navigation__list-container{display:block}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item .fd-navigation__list-container--submenu:before{content:\"\";position:absolute;top:-2rem;bottom:0;right:0;left:0}.fd-popover__body.fd-navigation__list-container{display:block}\n"], dependencies: [{ kind: "component", type: NavigationLinkComponent, selector: "a[fdb-navigation-link]", inputs: ["class", "glyph", "label", "external"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1027
+ }
1028
+ __decorate([
1029
+ applyCssClass,
1030
+ __metadata("design:type", Function),
1031
+ __metadata("design:paramtypes", []),
1032
+ __metadata("design:returntype", Array)
1033
+ ], NavigationComponent.prototype, "buildComponentCssClass", null);
1034
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationComponent, decorators: [{
1035
+ type: Component,
1036
+ args: [{ selector: 'fdb-navigation', template: `
1037
+ <ng-content></ng-content>
1038
+ <ng-template #defaultLinkTemplate>
1039
+ <a fdb-navigation-link glyph="home" label="Home"></a>
1040
+ </ng-template>
1041
+ `, standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
1042
+ role: 'navigation'
1043
+ }, providers: [
1044
+ NavigationService,
1045
+ {
1046
+ provide: FdbNavigationComponent,
1047
+ useExisting: forwardRef(() => NavigationComponent)
1048
+ }
1049
+ ], imports: [NgIf, NgTemplateOutlet, NavigationListComponent, NavigationListItemComponent, NavigationLinkComponent], styles: ["@charset \"UTF-8\";/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-navigation{--fdNavigation_Height:100%;--fdNavigation_Padding_X:.75rem;--fdNavigation_Padding_Top:1.25rem;--fdNavigation_Item_Spacing:.25rem;--fdNavigation_Padding_Bottom:.5rem;--fdNavigation_Horizontal_Height:3.5rem;--fdNavigation_Expander_Position_Right:.5rem;--fdNavigation_Border_Radius:.5rem .5rem 0 0;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow1);--fdNavigation_Link_Icon_Size:1rem;--fdNavigation_Link_Min_Height:2rem;--fdNavigation_Link_Font_Weight:bold;--fdNavigation_Link_Spacing:.4375rem;--fdNavigation_Link_Text_Color:inherit;--fdNavigation_Link_Padding_Left:.5rem;--fdNavigation_Link_Padding_Right:.5rem;--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Font_Size:var(--sapFontSize);--fdNavigation_Link_Selection_Indicator_Size:.5rem;--fdNavigation_Link_Has_Child_Indicator_Display:flex;--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Back_Indicator_Icon:\"\\e1ee\";--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\";--fdNavigation_Link_External_Link_Indicator_Icon:\"\\e04c\";--fdNavigation_Link_Background:var(--sapNavigation_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Normal);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Bottom_Color_Normal);--fdNavigation_Item_Group_Display:flex;--fdNavigation_Item_Title_Display:none;--fdNavigation_Item_Text_Display:inline-block;--fdNavigation_Item_Selected_Background:0 100%/100% .125rem no-repeat linear-gradient(0deg,var(--sapShell_Navigation_SelectedColor),var(--sapShell_Navigation_SelectedColor)),var(--sapNavigation_Selected_Background);--fdNavigation_List_Container_Display:none;--fdNavigation_List_Parent_Items_Display:none;-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-navigation:after,.fd-navigation:before{box-sizing:inherit;font-size:inherit}.fd-navigation--vertical{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-box-shadow:var(--fdNavigation_Box_Shadow);background:var(--sapNavigation_Background);border-radius:var(--fdNavigation_Border_Radius);box-shadow:var(--fdNavigation_Box_Shadow);display:flex;flex-direction:column;height:var(--fdNavigation_Height);justify-content:space-between;min-width:16rem;padding-bottom:var(--fdNavigation_Padding_Bottom);padding-top:var(--fdNavigation_Padding_Top)}.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Height:auto;--fdNavigation_Padding_Top:.25rem;--fdNavigation_Border_Radius:.5rem;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow2)}.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--bottom,.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation--vertical.fd-navigation--snapped{--fdNavigation_Border_Radius:.5rem .5rem 0 0;max-width:3.5rem;min-width:3.5rem;width:3.5rem}.fd-navigation--horizontal{background:var(--sapNavigation_Background);height:var(--fdNavigation_Horizontal_Height);padding:.75rem 1.5rem;width:100%}.fd-navigation--horizontal .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);z-index:5}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-hover,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-hover,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:hover{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-expanded .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected[aria-expanded=true] .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-expanded .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true][aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:transparent}.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items){--fdNavigation_Item_Spacing:.75rem;flex-direction:row}.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items) .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e287\"}.fd-navigation--horizontal .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:0}.fd-navigation--horizontal .fd-navigation__list-item--spacer{height:.75rem;width:100%}.fd-navigation--horizontal .fd-navigation__list-item--home{background:transparent;padding-top:0;position:relative}.fd-navigation--horizontal .fd-navigation__list-item--home:before{content:none}.fd-navigation--horizontal .fd-navigation__list-container{--fdPopover_Offset:calc(100% + .3875rem);-webkit-box-shadow:var(--sapMenu_Shadow2);background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;box-shadow:var(--sapMenu_Shadow2);padding:.05rem}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu{box-shadow:var(--sapMenu_Shadow1);padding:.5rem;position:absolute;right:-.5rem;top:calc(100% + .3875rem)}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu{left:-.5rem;right:auto}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding:0}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:0;box-shadow:none}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\"}[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:100%}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--submenu{box-shadow:var(--sapMenu_Shadow1);left:calc(-100% - .1875rem);margin:0;padding:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation--horizontal .fd-navigation__list-container.fd-navigation__list-container--submenu{left:auto;right:calc(-100% - .1875rem)}.fd-navigation--horizontal .fd-navigation__list-wrapper{padding:.7rem}.fd-navigation--horizontal .fd-navigation__item.is-expanded .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation--horizontal .fd-navigation__item.is-expanded .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item.is-expanded .fd-navigation__link:focus,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true] .fd-navigation__link:focus{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active);z-index:5}.fd-navigation--horizontal .fd-navigation__item.is-expanded.is-selected .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item.is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation--horizontal .fd-navigation__item[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation--horizontal .fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Padding_Left:.5rem}.fd-navigation--snapped .fd-navigation__container--bottom,.fd-navigation--snapped .fd-navigation__container--top{overflow:visible}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title) .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded+.fd-navigation__list-container,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true]+.fd-navigation__list-container{display:flex}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded .fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true] .fd-navigation__link:focus{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapMenu_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active);z-index:5}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);z-index:5}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:hover{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-expanded .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected[aria-expanded=true] .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-expanded .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true][aria-expanded=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:none;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before{--fdNavigation_Link_Border_Bottom_Color:transparent}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before{--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color)}.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:.5rem}.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__expander{display:none}.fd-navigation--snapped .fd-navigation__item--group{--fdNavigation_Item_Group_Display:none}.fd-navigation--snapped .fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Padding_Left:.5rem}.fd-navigation--snapped .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:-moz-fit-content;width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus{width:-moz-fit-content;width:fit-content;z-index:5}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover{width:auto}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus{width:auto;z-index:5}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:100%}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus{width:100%;z-index:5}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover{width:100%}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus{width:100%;z-index:5}.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link.is-focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container{-webkit-box-shadow:var(--sapMenu_Shadow2);background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;box-shadow:var(--sapMenu_Shadow2);padding:.05rem}.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:flex}.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:auto}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{box-shadow:var(--sapMenu_Shadow1);left:calc(100% + .1875rem);padding:.5rem;position:absolute;top:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:auto;right:calc(100% + .1875rem)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:0;box-shadow:none}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\"}[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__item .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover{width:100%}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--submenu{box-shadow:var(--sapMenu_Shadow1);left:calc(100% + .1875rem);margin:0;padding:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--submenu{left:auto;right:calc(100% + .1875rem)}.fd-navigation--snapped .fd-navigation__list-wrapper{padding:.7rem}.fd-navigation--snapped .fd-navigation__item--title{display:flex;height:auto;margin-bottom:.75rem}.fd-navigation--snapped .fd-navigation__item--title .fd-navigation__text{--fdNavigation_Item_Title_Display:block;font-size:1.25rem;font-weight:700;line-height:1.5rem}.fd-navigation--snapped .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:0;height:auto}.fd-navigation--phone .fd-navigation__link,.fd-navigation--tablet .fd-navigation__link{--fdNavigation_Link_Min_Height:2.5rem;--fdNavigation_Link_Padding_Left:.6875rem;--fdNavigation_Link_Padding_Right:.6875rem}.fd-navigation--phone .fd-navigation__container--bottom,.fd-navigation--phone .fd-navigation__container--top,.fd-navigation--tablet .fd-navigation__container--bottom,.fd-navigation--tablet .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation--phone .fd-navigation__icon,.fd-navigation--tablet .fd-navigation__icon{--fdNavigation_Link_Icon_Size:1.125rem}.fd-navigation--phone .fd-navigation__item--with-expander .fd-navigation__link,.fd-navigation--tablet .fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:2.375rem}.fd-navigation--phone .fd-navigation__item--with-expander .fd-navigation__expander,.fd-navigation--tablet .fd-navigation__item--with-expander .fd-navigation__expander{--fdNavigation_Expander_Position_Right:.6875rem}.fd-navigation--phone .fd-navigation__list,.fd-navigation--phone .fd-navigation__list-item,.fd-navigation--tablet .fd-navigation__list,.fd-navigation--tablet .fd-navigation__list-item{--fdNavigation_Item_Spacing:.125rem}.fd-navigation--phone.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__link,.fd-navigation--tablet.fd-navigation--snapped .fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:.6875rem}.fd-navigation--phone.fd-navigation--horizontal,.fd-navigation--tablet.fd-navigation--horizontal{--fdNavigation_Horizontal_Height:4rem}.fd-navigation--phone.fd-navigation--horizontal .fd-navigation__list--child-items,.fd-navigation--tablet.fd-navigation--horizontal .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:0}.fd-navigation__container{position:relative}.fd-navigation__container--top{height:100%;overflow:scroll;padding-bottom:.25rem;position:relative}.fd-navigation__container--bottom,.fd-navigation__container--top{padding-left:var(--fdNavigation_Padding_X);padding-right:var(--fdNavigation_Padding_X)}.fd-navigation__container--bottom:before{background:var(--sapToolbar_SeparatorColor);content:\"\";display:inline-block;height:.0625rem;margin-bottom:.5625rem;margin-top:.5625rem;width:100%}.fd-navigation__list-container{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:var(--fdNavigation_List_Container_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-navigation__list-container:after,.fd-navigation__list-container:before{box-sizing:inherit;font-size:inherit}.fd-navigation__list-wrapper{width:100%}.fd-navigation__list{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdNavigation_Item_Spacing);height:100%;line-height:var(--sapContent_LineHeight);list-style-type:none;margin:0;padding:0;position:relative}.fd-navigation__list:after,.fd-navigation__list:before{box-sizing:inherit;font-size:inherit}.fd-navigation__list--parent-items{display:var(--fdNavigation_List_Parent_Items_Display)}.fd-navigation__list-item{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdNavigation_Item_Spacing);line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-navigation__list-item:after,.fd-navigation__list-item:before{box-sizing:inherit;font-size:inherit}.fd-navigation__list-item--spacer{background:transparent;height:100%;min-height:.25rem}.fd-navigation__list-item--separator{background:transparent;height:.75rem;max-height:.75rem;min-height:.75rem}.fd-navigation__list-item--home{background:var(--sapList_Background);padding-top:.25rem;position:sticky;top:0;z-index:10}.fd-navigation__list-item--home:before{background:var(--sapList_Background);content:\"\";height:calc(100% + .5rem);left:-.25rem;position:absolute;top:-.25rem;width:calc(100% + .5rem)}[dir=rtl] .fd-navigation__list-item--home:before{left:auto;right:-.25rem}.fd-navigation__list-item--overflow{position:relative}.fd-navigation__link{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;-webkit-transition:var(--fdNavigation_Link_Transition);align-items:center;background:var(--fdNavigation_Link_Background);border:0;border-radius:var(--fdNavigation_Link_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapList_TextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:var(--fdNavigation_Link_Spacing);line-height:var(--sapContent_LineHeight);margin:0;min-height:var(--fdNavigation_Link_Min_Height);padding:.5rem 0;padding-left:var(--fdNavigation_Link_Padding_Left);padding-right:var(--fdNavigation_Link_Padding_Right);position:relative;text-align:start;text-decoration:none;transition:var(--fdNavigation_Link_Transition);width:100%}.fd-navigation__link:after,.fd-navigation__link:before{box-sizing:inherit;font-size:inherit}.fd-navigation__link[dir=rtl],[dir=rtl] .fd-navigation__link{padding-left:var(--fdNavigation_Link_Padding_Right);padding-right:var(--fdNavigation_Link_Padding_Left)}.fd-navigation__link:before{border:.0625rem solid var(--fdNavigation_Link_Border_Color);border-bottom:.0625rem solid var(--fdNavigation_Link_Border_Color);border-bottom-color:var(--fdNavigation_Link_Border_Bottom_Color);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}[dir=rtl] .fd-navigation__link:before{left:auto;right:0}.fd-navigation__link.is-hover,.fd-navigation__link:hover{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapNavigation_Hover_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Hover);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Hover)}.fd-navigation__link.is-active,.fd-navigation__link.is-active.is-focus,.fd-navigation__link.is-active:focus,.fd-navigation__link:active,.fd-navigation__link:active.is-focus,.fd-navigation__link:active:focus{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapNavigation_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation__link.is-active.is-focus,.fd-navigation__link.is-active:focus,.fd-navigation__link:active.is-focus,.fd-navigation__link:active:focus{outline:none;z-index:5}.fd-navigation__link.is-focus,.fd-navigation__link:focus{--fdNavigation_Link_Border_Color:transparent;--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Border_Bottom_Color:transparent;--fdNavigation_Link_Background:var(--sapNavigation_Background);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);z-index:5}.fd-navigation__link:focus-visible{outline-offset:0}.fd-navigation__link.is-disabled,.fd-navigation__link:disabled,.fd-navigation__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-navigation__link[class*=-compact],[class*=-compact] .fd-navigation__link:not([class*=-cozy]){--fdNavigation_Link_Min_Height:2rem}.fd-navigation__item{-webkit-box-sizing:border-box;align-items:center;border:0;border-radius:var(--fdNavigation_Link_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative}.fd-navigation__item:after,.fd-navigation__item:before{box-sizing:inherit;font-size:inherit}.fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation__item.is-expanded .fd-navigation__has-children-indicator[dir=rtl],.fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator,.fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator[dir=rtl],[dir=rtl] .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ef\"}.fd-navigation__item.is-expanded+.fd-navigation__list-container,.fd-navigation__item[aria-expanded=true]+.fd-navigation__list-container{--fdNavigation_List_Container_Display:flex}.fd-navigation__item.is-expanded+.fd-navigation__list--parent-items,.fd-navigation__item[aria-expanded=true]+.fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.fd-navigation__item.is-selected,.fd-navigation__item[aria-selected=true]{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item.is-selected .fd-navigation__link.is-focus,.fd-navigation__item.is-selected .fd-navigation__link:focus,.fd-navigation__item[aria-selected=true] .fd-navigation__link.is-focus,.fd-navigation__item[aria-selected=true] .fd-navigation__link:focus{--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected);z-index:5}.fd-navigation__item.is-selected .fd-navigation__link.is-hover,.fd-navigation__item.is-selected .fd-navigation__link:hover,.fd-navigation__item[aria-selected=true] .fd-navigation__link.is-hover,.fd-navigation__item[aria-selected=true] .fd-navigation__link:hover{--fdNavigation_Link_Background:var(--sapNavigation_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item--with-expander{position:relative}.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:2.1975rem}.fd-navigation__item--with-expander .fd-navigation__expander{position:absolute;right:var(--fdNavigation_Expander_Position_Right);z-index:20}.fd-navigation__item--with-expander .fd-navigation__expander[dir=rtl],[dir=rtl] .fd-navigation__item--with-expander .fd-navigation__expander{left:var(--fdNavigation_Expander_Position_Right);right:auto}.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Font_Weight:normal;--fdNavigation_Link_Padding_Left:2rem}.fd-navigation__item--group{--fdNavigation_Link_Child_Indicator_Opacity:0;display:var(--fdNavigation_Item_Group_Display)}.fd-navigation__item--group .fd-navigation__link{--fdNavigation_Link_Spacing:.4375rem;--fdNavigation_Link_Text_Color:var(--sapContent_LabelColor);--fdNavigation_Link_Font_Weight:600;--fdNavigation_Link_Font_Size:var(--sapFontSmallSize)}.fd-navigation__item--title{display:var(--fdNavigation_Item_Title_Display);height:auto}.fd-navigation__item--title .fd-navigation__text{--fdNavigation_Item_Title_Display:block;font-size:1.25rem;font-weight:700;line-height:1.5rem}.fd-navigation__item--title .fd-navigation__icon[class*=sap-icon]{display:none}.fd-navigation__item--menu.is-expanded,.fd-navigation__item--menu[aria-expanded=true]{--fdNavigation_Link_Child_Indicator_Opacity:1;--fdNavigation_Link_Background:var(--sapNavigation_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation__item--menu.is-expanded .fd-navigation__has-children-indicator,.fd-navigation__item--menu[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ed\"}.fd-navigation__item--menu.is-expanded .fd-navigation__has-children-indicator[dir=rtl],.fd-navigation__item--menu[aria-expanded=true] .fd-navigation__has-children-indicator[dir=rtl],[dir=rtl] .fd-navigation__item--menu.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation__item--menu[aria-expanded=true] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation__item--menu.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Padding_Left:.5rem}.fd-navigation__icon{height:var(--fdNavigation_Link_Icon_Size);max-height:var(--fdNavigation_Link_Icon_Size);max-width:var(--fdNavigation_Link_Icon_Size);min-height:var(--fdNavigation_Link_Icon_Size);min-width:var(--fdNavigation_Link_Icon_Size);width:var(--fdNavigation_Link_Icon_Size)}.fd-navigation__icon [class*=sap-icon],.fd-navigation__icon[class*=sap-icon]{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:inherit;display:flex;font-size:var(--fdNavigation_Link_Icon_Size);justify-content:center}.fd-navigation__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdNavigation_Link_Text_Color);display:var(--fdNavigation_Item_Text_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--fdNavigation_Link_Font_Size);font-weight:400;font-weight:var(--fdNavigation_Link_Font_Weight);forced-color-adjust:none;line-height:var(--sapContent_LineHeight);line-height:1rem;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap;width:100%}.fd-navigation__text:after,.fd-navigation__text:before{box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator{-webkit-box-sizing:border-box;background:var(--sapList_SelectionBorderColor);border:0;border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);display:var(--fdNavigation_Link_Selection_Indicator_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdNavigation_Link_Selection_Indicator_Size);line-height:var(--sapContent_LineHeight);margin:0;max-height:var(--fdNavigation_Link_Selection_Indicator_Size);max-width:var(--fdNavigation_Link_Selection_Indicator_Size);min-height:var(--fdNavigation_Link_Selection_Indicator_Size);min-width:var(--fdNavigation_Link_Selection_Indicator_Size);padding:0;width:var(--fdNavigation_Link_Selection_Indicator_Size)}.fd-navigation__selection-indicator:after,.fd-navigation__selection-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__has-children-indicator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-transition:opacity .3s ease-in-out;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;display:var(--fdNavigation_Link_Has_Child_Indicator_Display);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;opacity:var(--fdNavigation_Link_Child_Indicator_Opacity);padding:0;transition:opacity .3s ease-in-out;width:.75rem}.fd-navigation__has-children-indicator:after,.fd-navigation__has-children-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__has-children-indicator:before{content:var(--fdNavigation_Link_Has_Child_Indicator_Icon);font-family:SAP-icons;font-size:.75rem}[dir=rtl] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\"\\e1ee\"}.fd-navigation__external-link-indicator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding:0;width:.75rem}.fd-navigation__external-link-indicator:after,.fd-navigation__external-link-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__external-link-indicator:before{content:var(--fdNavigation_Link_External_Link_Indicator_Icon);font-family:SAP-icons;font-size:.75rem}.fd-navigation__external-link-indicator[dir=rtl],[dir=rtl] .fd-navigation__external-link-indicator{--fdNavigation_Link_External_Link_Indicator_Icon:\"\\e04d\"}.fd-navigation__back-indicator{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_LabelColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.75rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;padding:0;width:.75rem}.fd-navigation__back-indicator:after,.fd-navigation__back-indicator:before{box-sizing:inherit;font-size:inherit}.fd-navigation__back-indicator:before{content:var(--fdNavigation_Link_Back_Indicator_Icon);font-family:SAP-icons;font-size:.75rem}.fd-navigation__back-indicator[dir=rtl],[dir=rtl] .fd-navigation__back-indicator{--fdNavigation_Link_Back_Indicator_Icon:\"\\e1ed\"}.fd-navigation .fd-navigation__container--top{padding-left:var(--fdNavigation_Padding_X);padding-right:var(--fdNavigation_Padding_X);padding-bottom:.25rem}.fd-navigation__list{min-height:100%;height:auto}.fd-navigation--snapped .fd-navigation__list-item--home{position:relative}.fd-navigation--snapped .fd-navigation__container--top{overflow:visible!important;display:flex;flex-direction:column}.fd-navigation--snapped .fd-navigation__container--top .fd-navigation__list{flex-grow:1;height:auto;min-height:0}.fd-navigation--snapped .fd-navigation__container--top .fd-navigation__list--no-grow{flex-grow:0}.fd-navigation--snapped .fd-navigation__container--hidden-overflow{overflow:hidden!important}.fd-navigation--expanded .fd-navigation__list-item--home,.fd-navigation--popup .fd-navigation__list-item--home{z-index:21}.fd-navigation__list-container--custom-menu{box-shadow:var(--sapMenu_Shadow1)}.fd-navigation__list-item--spacer--hidden{display:none!important}.fd-navigation .fd-navigation-list-item--home-without-separator{margin-bottom:.09rem}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{position:relative;transition:none}.fd-navigation__list-item:not(.fd-navigation__list-item--home){position:relative}.fd-navigation__list-container--menu>.fd-scrollbar{overflow:visible!important}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:before{content:\"\";position:absolute;top:0;bottom:0;left:-1rem;right:-1rem}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item>.fd-navigation__list-container{display:none;top:-.5rem}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:hover>.fd-navigation__list-container,.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:focus>.fd-navigation__list-container,.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item:focus-within>.fd-navigation__list-container{display:block}.fd-navigation__list-container--menu .fd-navigation__list--parent-items .fd-navigation__list-item .fd-navigation__list-container--submenu:before{content:\"\";position:absolute;top:-2rem;bottom:0;right:0;left:0}.fd-popover__body.fd-navigation__list-container{display:block}\n"] }]
1050
+ }], propDecorators: { class: [{
1051
+ type: Input
1052
+ }], _state: [{
1053
+ type: Input,
1054
+ args: ['state']
1055
+ }], _horizontal: [{
1056
+ type: Input,
1057
+ args: ['horizontal']
1058
+ }], _mode: [{
1059
+ type: Input,
1060
+ args: ['mode']
1061
+ }], _type: [{
1062
+ type: Input,
1063
+ args: ['type']
1064
+ }], _homeSeparator: [{
1065
+ type: Input,
1066
+ args: [{ alias: 'homeSeparator', transform: coerceBooleanProperty }]
1067
+ }], _homeDirective: [{
1068
+ type: ContentChild,
1069
+ args: [NavigationHomeDirective]
1070
+ }], _defaultLinkTemplate: [{
1071
+ type: ViewChild,
1072
+ args: ['defaultLinkTemplate']
1073
+ }], _navigationItems: [{
1074
+ type: ContentChildren,
1075
+ args: [FdbNavigationListItemComponent, { descendants: true }]
1076
+ }], _navigationLists: [{
1077
+ type: ContentChildren,
1078
+ args: [FdbNavigationListComponent, { descendants: true }]
1079
+ }], _navigationContents: [{
1080
+ type: ContentChildren,
1081
+ args: [NavigationContentComponent, { descendants: true }]
1082
+ }], buildComponentCssClass: [], keyDownHandler: [{
1083
+ type: HostListener,
1084
+ args: ['keydown', ['$event']]
1085
+ }] } });
1086
+
1087
+ class NavigationItemSpacerDirective {
1088
+ constructor() {
1089
+ /** @hidden */
1090
+ this._navigationComponent = inject(NavigationComponent);
1091
+ }
1092
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationItemSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1093
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: NavigationItemSpacerDirective, isStandalone: true, selector: "li[fdb-navigation-list-spacer]", host: { properties: { "class.fd-navigation__list-item--spacer--hidden": "_navigationComponent.isSnapped()" }, classAttribute: "fd-navigation__list-item fd-navigation__list-item--spacer" }, ngImport: i0 }); }
1094
+ }
1095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationItemSpacerDirective, decorators: [{
1096
+ type: Directive,
1097
+ args: [{
1098
+ // eslint-disable-next-line @angular-eslint/directive-selector
1099
+ selector: 'li[fdb-navigation-list-spacer]',
1100
+ standalone: true,
1101
+ host: {
1102
+ class: 'fd-navigation__list-item fd-navigation__list-item--spacer',
1103
+ '[class.fd-navigation__list-item--spacer--hidden]': '_navigationComponent.isSnapped()'
1104
+ }
1105
+ }]
1106
+ }] });
1107
+
1108
+ class NavigationContentEndComponent extends NavigationContentComponent {
1109
+ constructor() {
1110
+ super(...arguments);
1111
+ /** @hidden */
1112
+ this.showHome = false;
1113
+ /** @hidden */
1114
+ this.refresh$ = new Subject();
1115
+ /** @hidden */
1116
+ this._destroyRef = inject(DestroyRef);
1117
+ }
1118
+ /** @hidden */
1119
+ ngAfterViewInit() {
1120
+ this._listItems.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {
1121
+ this.refresh$.next();
1122
+ });
1123
+ }
1124
+ /** @hidden */
1125
+ getNavigatableItems() {
1126
+ return this._listItems.toArray();
1127
+ }
1128
+ /** @hidden */
1129
+ showMoreOpened() {
1130
+ return false;
1131
+ }
1132
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationContentEndComponent, isStandalone: true, selector: "fdb-navigation-content-end", host: { classAttribute: "fd-navigation__container fd-navigation__container--bottom" }, providers: [
1134
+ {
1135
+ provide: NavigationContentComponent,
1136
+ useExisting: NavigationContentEndComponent
1137
+ }
1138
+ ], queries: [{ propertyName: "_listItems", predicate: FdbNavigationListItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1139
+ }
1140
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentEndComponent, decorators: [{
1141
+ type: Component,
1142
+ args: [{
1143
+ selector: 'fdb-navigation-content-end',
1144
+ template: ` <ng-content></ng-content> `,
1145
+ standalone: true,
1146
+ changeDetection: ChangeDetectionStrategy.OnPush,
1147
+ encapsulation: ViewEncapsulation.None,
1148
+ providers: [
1149
+ {
1150
+ provide: NavigationContentComponent,
1151
+ useExisting: NavigationContentEndComponent
1152
+ }
1153
+ ],
1154
+ // eslint-disable-next-line @angular-eslint/no-host-metadata-property
1155
+ host: {
1156
+ class: 'fd-navigation__container fd-navigation__container--bottom'
1157
+ }
1158
+ }]
1159
+ }], propDecorators: { _listItems: [{
1160
+ type: ContentChildren,
1161
+ args: [FdbNavigationListItemComponent, { descendants: true }]
1162
+ }] } });
1163
+
1164
+ class NavigationListOverflowItemComponent extends NavigationListItemComponent {
1165
+ /** @hidden */
1166
+ // eslint-disable-next-line @angular-eslint/no-input-rename
1167
+ set _hiddenItems(items) {
1168
+ this.hiddenItems().forEach((item) => item.destroyPortal());
1169
+ items.forEach((item) => item.createPortal());
1170
+ this.hiddenItems.set(items);
1171
+ }
1172
+ /** @hidden */
1173
+ constructor() {
1174
+ super();
1175
+ /** @hidden */
1176
+ this.additionalBodyClass = 'fd-navigation__list-container fd-navigation__list-container--menu';
1177
+ effect(() => {
1178
+ const items = this.hiddenItems();
1179
+ this.hasPortalChildren.set(items.length > 0);
1180
+ if (items.length === 0) {
1181
+ return;
1182
+ }
1183
+ }, {
1184
+ allowSignalWrites: true
1185
+ });
1186
+ }
1187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationListOverflowItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationListOverflowItemComponent, isStandalone: true, selector: "li[fdb-navigation-list-overflow-item]", inputs: { _hiddenItems: ["hiddenItems", "_hiddenItems"] }, providers: [
1189
+ PopoverService,
1190
+ {
1191
+ provide: FdbNavigationListItemComponent,
1192
+ useExisting: NavigationListOverflowItemComponent
1193
+ }
1194
+ ], viewQueries: [{ propertyName: "_portal", first: true, predicate: ["childrenTemplate"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"fd-navigation__item\"\n [class.fd-navigation__item--group]=\"isGroup()\"\n [class.fd-navigation__item--child]=\"parentNavigationListComponent.parentListComponent?.isParentGroupChild()\"\n aria-current=\"page\"\n [attr.aria-selected]=\"childrenActive() && navigationComponent.isSnapped() ? true : null\"\n [attr.aria-expanded]=\"expandedAttr()\"\n [attr.aria-level]=\"1\"\n #navigationItem\n role=\"menuitem\"\n>\n <ng-content select=\"[fdb-navigation-link]\"></ng-content>\n</div>\n<!-- Detach elements from their hosts immediately to fix issue with flickering elements. -->\n<ul hidden>\n <ng-template *ngFor=\"let item of hiddenItems()\" [cdkPortalOutlet]=\"item.domPortal\"></ng-template>\n</ul>\n<ng-template #childrenTemplate>\n <div class=\"fd-navigation__list-container--menu\">\n <ul class=\"fd-navigation__list fd-navigation__list--parent-items fd-menu__list\">\n <ng-template *ngFor=\"let item of hiddenItems()\" [cdkPortalOutlet]=\"item.domPortal\"></ng-template>\n </ul>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1195
+ }
1196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationListOverflowItemComponent, decorators: [{
1197
+ type: Component,
1198
+ args: [{ selector: 'li[fdb-navigation-list-overflow-item]', standalone: true, imports: [PortalModule, AsyncPipe, NgForOf], providers: [
1199
+ PopoverService,
1200
+ {
1201
+ provide: FdbNavigationListItemComponent,
1202
+ useExisting: NavigationListOverflowItemComponent
1203
+ }
1204
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"fd-navigation__item\"\n [class.fd-navigation__item--group]=\"isGroup()\"\n [class.fd-navigation__item--child]=\"parentNavigationListComponent.parentListComponent?.isParentGroupChild()\"\n aria-current=\"page\"\n [attr.aria-selected]=\"childrenActive() && navigationComponent.isSnapped() ? true : null\"\n [attr.aria-expanded]=\"expandedAttr()\"\n [attr.aria-level]=\"1\"\n #navigationItem\n role=\"menuitem\"\n>\n <ng-content select=\"[fdb-navigation-link]\"></ng-content>\n</div>\n<!-- Detach elements from their hosts immediately to fix issue with flickering elements. -->\n<ul hidden>\n <ng-template *ngFor=\"let item of hiddenItems()\" [cdkPortalOutlet]=\"item.domPortal\"></ng-template>\n</ul>\n<ng-template #childrenTemplate>\n <div class=\"fd-navigation__list-container--menu\">\n <ul class=\"fd-navigation__list fd-navigation__list--parent-items fd-menu__list\">\n <ng-template *ngFor=\"let item of hiddenItems()\" [cdkPortalOutlet]=\"item.domPortal\"></ng-template>\n </ul>\n </div>\n</ng-template>\n" }]
1205
+ }], ctorParameters: function () { return []; }, propDecorators: { _hiddenItems: [{
1206
+ type: Input,
1207
+ args: ['hiddenItems']
1208
+ }], _portal: [{
1209
+ type: ViewChild,
1210
+ args: ['childrenTemplate', { read: TemplateRef }]
1211
+ }] } });
1212
+
1213
+ /* eslint-disable no-unused-vars */
1214
+ const FD_NAVIGATION_OVERFLOW_ITEM_CLASS = 'fd-navigation__container--hidden-overflow';
1215
+ class NavigationContentStartComponent extends NavigationContentComponent {
1216
+ /** @hidden */
1217
+ set _showMoreOverflowItemCmp(value) {
1218
+ this.showMoreOverflowItem = value;
1219
+ this.refresh$.next();
1220
+ }
1221
+ /** @hidden */
1222
+ constructor() {
1223
+ super();
1224
+ /** @hidden */
1225
+ this.linkTemplate = inject(FdbNavigationComponent).homeLinkTemplate;
1226
+ /** @hidden */
1227
+ this.showHome = true;
1228
+ /** @hidden */
1229
+ this.showOverflowButton = signal(false);
1230
+ /** @hidden */
1231
+ this._hiddenItems = [];
1232
+ /** @hidden */
1233
+ this.refresh$ = new Subject();
1234
+ /** @hidden */
1235
+ this._calculationInProgress = false;
1236
+ /** @hidden */
1237
+ this._canTrackItems = signal(false);
1238
+ /** @hidden */
1239
+ this._navigationComponent = inject(FdbNavigationComponent);
1240
+ /** @hidden */
1241
+ this._elementRef = inject((ElementRef));
1242
+ /** @hidden */
1243
+ this._cdr = inject(ChangeDetectorRef);
1244
+ /** @hidden */
1245
+ this._scrollbar = inject(ScrollbarDirective);
1246
+ /** @hidden */
1247
+ this._destroyRef = inject(DestroyRef);
1248
+ this._scrollbar.overrideTabindex = false;
1249
+ effect(() => {
1250
+ if (!this._canTrackItems()) {
1251
+ return;
1252
+ }
1253
+ // We need to also listen to snapped state.
1254
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
1255
+ const snapped = this._navigationComponent.isSnapped();
1256
+ this._elementRef.nativeElement.scrollTop = 0;
1257
+ setTimeout(() => {
1258
+ this._calculateVisibleItems();
1259
+ });
1260
+ }, {
1261
+ allowSignalWrites: true
1262
+ });
1263
+ }
1264
+ /** @hidden */
1265
+ ngAfterViewInit() {
1266
+ this._canTrackItems.set(true);
1267
+ this._navigationItems.changes
1268
+ .pipe(startWith(null))
1269
+ .pipe(tap(() => {
1270
+ this.refresh$.next();
1271
+ }), filter(() => this._navigationItems?.length > 0), observeOn(asyncScheduler), takeUntilDestroyed(this._destroyRef))
1272
+ .subscribe(() => {
1273
+ this._calculateVisibleItems();
1274
+ });
1275
+ resizeObservable(this._elementRef.nativeElement)
1276
+ .pipe(debounceTime(30), distinctUntilChanged((prev, current) => prev[0].contentRect.height === current[0].contentRect.height), filter(() => !this._calculationInProgress), takeUntilDestroyed(this._destroyRef))
1277
+ .subscribe(() => {
1278
+ this._calculateVisibleItems();
1279
+ });
1280
+ }
1281
+ /** @hidden */
1282
+ getNavigatableItems() {
1283
+ const items = this._navigationItems.toArray();
1284
+ if (this.showMoreOverflowItem) {
1285
+ items.push(this.showMoreOverflowItem);
1286
+ }
1287
+ return items;
1288
+ }
1289
+ /** @hidden */
1290
+ showMoreOpened() {
1291
+ return !!this.showMoreOverflowItem?.isOpen;
1292
+ }
1293
+ /** @hidden */
1294
+ _calculateVisibleItems() {
1295
+ if (this._calculationInProgress) {
1296
+ return;
1297
+ }
1298
+ this._calculationInProgress = true;
1299
+ this._hiddenItems = [];
1300
+ this._cdr.detectChanges();
1301
+ if (!this._navigationComponent.isSnapped()) {
1302
+ this._navigationItems.forEach((item) => {
1303
+ item.show();
1304
+ });
1305
+ this.showOverflowButton.set(false);
1306
+ setTimeout(() => {
1307
+ this._calculationInProgress = false;
1308
+ });
1309
+ return;
1310
+ }
1311
+ this._elementRef.nativeElement.classList.add(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);
1312
+ this.showOverflowButton.set(true);
1313
+ this._cdr.detectChanges();
1314
+ let canDisplayItems = true;
1315
+ const containerHeight = this._elementRef.nativeElement.getBoundingClientRect().height;
1316
+ const showMoreHeight = (this.showMoreOverflowItem?.elementRef.nativeElement.getBoundingClientRect().height || 0) * 2;
1317
+ const homeElementSize = this._navigationLists.toArray().reduce((height, list) => {
1318
+ height += list.getHomeElementSize().height;
1319
+ return height;
1320
+ }, 0);
1321
+ let totalAvailableHeight = containerHeight - showMoreHeight - homeElementSize;
1322
+ const hiddenElements = [];
1323
+ const navigationItemGroups = this._navigationItems.reduce((acc, item) => {
1324
+ const itemLevel = item.normalizedLevel();
1325
+ if (itemLevel > 2) {
1326
+ return acc;
1327
+ }
1328
+ acc[itemLevel === 1 ? 'root' : 'children'].push(item);
1329
+ return acc;
1330
+ }, { root: [], children: [] });
1331
+ this._navigationItems.forEach((item) => {
1332
+ item.show();
1333
+ });
1334
+ navigationItemGroups.children.forEach((item) => {
1335
+ item.calculateExpanded();
1336
+ if (!canDisplayItems) {
1337
+ item.hide();
1338
+ hiddenElements.push(item);
1339
+ return;
1340
+ }
1341
+ // item.show();
1342
+ totalAvailableHeight -= item.elementRef.nativeElement.getBoundingClientRect().height;
1343
+ if (totalAvailableHeight <= 0) {
1344
+ canDisplayItems = false;
1345
+ item.hide();
1346
+ hiddenElements.push(item);
1347
+ return;
1348
+ }
1349
+ });
1350
+ navigationItemGroups.root.forEach((item) => {
1351
+ item.checkSelfHidden();
1352
+ });
1353
+ this._elementRef.nativeElement.classList.remove(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);
1354
+ this._handleOverflowItems(hiddenElements);
1355
+ setTimeout(() => {
1356
+ this._calculationInProgress = false;
1357
+ }, 5);
1358
+ }
1359
+ /** @hidden */
1360
+ _handleOverflowItems(items) {
1361
+ this.showOverflowButton.set(items.length > 0);
1362
+ this._hiddenItems = items;
1363
+ this._cdr.detectChanges();
1364
+ }
1365
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentStartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1366
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationContentStartComponent, isStandalone: true, selector: "fdb-navigation-content-start", host: { properties: { "style.flex-grow": "1" }, classAttribute: "fd-navigation__container fd-navigation__container--top" }, providers: [
1367
+ {
1368
+ provide: NavigationContentComponent,
1369
+ useExisting: NavigationContentStartComponent
1370
+ }
1371
+ ], queries: [{ propertyName: "_navigationItems", predicate: FdbNavigationListItemComponent, descendants: true }, { propertyName: "_navigationLists", predicate: FdbNavigationListComponent }], viewQueries: [{ propertyName: "_showMoreOverflow", first: true, predicate: ["showMoreOverflowMenu"], descendants: true, read: ElementRef }, { propertyName: "_showMoreOverflowItemCmp", first: true, predicate: ["showMoreOverflowItem"], descendants: true, read: FdbNavigationListItemComponent }], usesInheritance: true, hostDirectives: [{ directive: i1$2.ScrollbarDirective }], ngImport: i0, template: "<ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n\n<ng-container *ngIf=\"showOverflowButton()\">\n <ul fdb-navigation-list class=\"fd-navigation__list--no-grow\" [showHome]=\"false\" #showMoreOverflowMenu>\n <li\n fdb-navigation-list-overflow-item\n [alwaysFocusable]=\"true\"\n #showMoreOverflowItem\n [hiddenItems]=\"_hiddenItems\"\n >\n <a fdb-navigation-link glyph=\"overflow\" label=\"More Items\"></a>\n </li>\n </ul>\n</ng-container>\n", dependencies: [{ kind: "component", type: NavigationListComponent, selector: "ul[fdb-navigation-list]", inputs: ["class", "showHome"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NavigationLinkComponent, selector: "a[fdb-navigation-link]", inputs: ["class", "glyph", "label", "external"] }, { kind: "component", type: NavigationListOverflowItemComponent, selector: "li[fdb-navigation-list-overflow-item]", inputs: ["hiddenItems"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1372
+ }
1373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentStartComponent, decorators: [{
1374
+ type: Component,
1375
+ args: [{ selector: 'fdb-navigation-content-start', standalone: true, imports: [
1376
+ NavigationListComponent,
1377
+ NavigationListItemComponent,
1378
+ NgIf,
1379
+ NavigationLinkComponent,
1380
+ NavigationListOverflowItemComponent
1381
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
1382
+ {
1383
+ provide: NavigationContentComponent,
1384
+ useExisting: NavigationContentStartComponent
1385
+ }
1386
+ ], host: {
1387
+ class: 'fd-navigation__container fd-navigation__container--top',
1388
+ '[style.flex-grow]': '1'
1389
+ }, hostDirectives: [ScrollbarDirective], template: "<ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n\n<ng-container *ngIf=\"showOverflowButton()\">\n <ul fdb-navigation-list class=\"fd-navigation__list--no-grow\" [showHome]=\"false\" #showMoreOverflowMenu>\n <li\n fdb-navigation-list-overflow-item\n [alwaysFocusable]=\"true\"\n #showMoreOverflowItem\n [hiddenItems]=\"_hiddenItems\"\n >\n <a fdb-navigation-link glyph=\"overflow\" label=\"More Items\"></a>\n </li>\n </ul>\n</ng-container>\n" }]
1390
+ }], ctorParameters: function () { return []; }, propDecorators: { _navigationItems: [{
1391
+ type: ContentChildren,
1392
+ args: [FdbNavigationListItemComponent, { descendants: true }]
1393
+ }], _navigationLists: [{
1394
+ type: ContentChildren,
1395
+ args: [FdbNavigationListComponent]
1396
+ }], _showMoreOverflow: [{
1397
+ type: ViewChild,
1398
+ args: ['showMoreOverflowMenu', { static: false, read: ElementRef }]
1399
+ }], _showMoreOverflowItemCmp: [{
1400
+ type: ViewChild,
1401
+ args: ['showMoreOverflowItem', { static: false, read: FdbNavigationListItemComponent }]
1402
+ }] } });
1403
+
1404
+ /**
1405
+ * Generated bundle index. Do not edit.
1406
+ */
1407
+
1408
+ export { NavigationComponent, NavigationContentEndComponent, NavigationContentStartComponent, NavigationHomeDirective, NavigationItemSpacerDirective, NavigationLinkComponent, NavigationListComponent, NavigationListItemComponent, NavigationListOverflowItemComponent };
1409
+ //# sourceMappingURL=fundamental-ngx-btp-navigation.mjs.map