@fundamental-ngx/btp 0.58.0-rc.6 → 0.58.0-rc.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-btp-navigation.mjs","sources":["../tmp-esm2022/navigation/models/navigation-content-container.class.js","../tmp-esm2022/navigation/models/navigation.class.js","../tmp-esm2022/navigation/models/navigation-list-item.class.js","../tmp-esm2022/navigation/services/navigation.service.js","../tmp-esm2022/navigation/components/navigation-list/navigation-list.component.js","../tmp-esm2022/navigation/components/navigation-end/navigation-content-end.component.js","../tmp-esm2022/navigation/directives/navigation-list-item-ref.directive.js","../tmp-esm2022/navigation/models/navigation-item-link.class.js","../tmp-esm2022/navigation/components/navigation-link/navigation-link.component.js","../tmp-esm2022/navigation/components/navigation-item/navigation-list-item.component.js","../tmp-esm2022/navigation/components/navigation-more-button/navigation-more-button.component.js","../tmp-esm2022/navigation/components/navigation-start/navigation-content-start.component.js","../tmp-esm2022/navigation/models/navigation-data-source-item.model.js","../tmp-esm2022/navigation/directives/navigation-list-data-source.directive.js","../tmp-esm2022/navigation/components/navigation/navigation.component.js","../tmp-esm2022/navigation/index.js","../tmp-esm2022/navigation/fundamental-ngx-btp-navigation.js"],"sourcesContent":["import { DestroyRef, inject, signal } from '@angular/core';\nexport class FdbNavigationContentContainer {\n constructor() {\n /**\n * List containing all child navigation list items.\n */\n this.allListItems$ = signal([], ...(ngDevMode ? [{ debugName: \"allListItems$\" }] : []));\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n /**\n * @hidden\n * List of registered navigation list items.\n * Used only with data-driven navigation component.\n */\n this._registeredListItems = [];\n }\n /**\n * Registers navigation list item.\n */\n registerItem(item) {\n if (this._registeredListItems.indexOf(item) > -1) {\n return;\n }\n this._registeredListItems.push(item);\n this.allListItems$.set(this._registeredListItems);\n }\n /**\n * Unregisters navigation list item.\n */\n unregisterItem(item) {\n const foundIndex = this._registeredListItems.indexOf(item);\n if (foundIndex === -1) {\n return;\n }\n this._registeredListItems.splice(foundIndex, 1);\n this.allListItems$.set(this._registeredListItems);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LWNvbnRhaW5lci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25FLE1BQU0sT0FBZ0IsNkJBQTZCO0lBQW5EO1FBU0k7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLE1BQU0sQ0FBMEIsRUFBRSx5REFBQyxDQUFDO1FBRTdELGNBQWM7UUFDSyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwRDs7OztXQUlHO1FBQ2MseUJBQW9CLEdBQTRCLEVBQUUsQ0FBQztJQTRCeEUsQ0FBQztJQTFCRzs7T0FFRztJQUNILFlBQVksQ0FBQyxJQUEyQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLElBQTJCO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIFNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB9IGZyb20gJy4vbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIge1xuICAgIC8qKlxuICAgICAqIExpc3QgY29udGFpbmluZyBjaGlsZCBsaXN0IGl0ZW1zIHRoYXQgbmVlZHMgdG8gYmUgcmVuZGVyZWQuIENhbiBiZSBkaWZmZXJlbnQgdGhhbiBgYWxsTGlzdEl0ZW1zJGAuXG4gICAgICovXG4gICAgYWJzdHJhY3QgbGlzdEl0ZW1zJDogU2lnbmFsPEZkYk5hdmlnYXRpb25MaXN0SXRlbVtdPjtcbiAgICAvKipcbiAgICAgKiBDb250YWluZXIgcGxhY2VtZW50IGluIE5hdmlnYXRpb24gY29tcG9uZW50LlxuICAgICAqL1xuICAgIGFic3RyYWN0IHBsYWNlbWVudDogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgIC8qKlxuICAgICAqIExpc3QgY29udGFpbmluZyBhbGwgY2hpbGQgbmF2aWdhdGlvbiBsaXN0IGl0ZW1zLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsbExpc3RJdGVtcyQgPSBzaWduYWw8RmRiTmF2aWdhdGlvbkxpc3RJdGVtW10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2YgcmVnaXN0ZXJlZCBuYXZpZ2F0aW9uIGxpc3QgaXRlbXMuXG4gICAgICogVXNlZCBvbmx5IHdpdGggZGF0YS1kcml2ZW4gbmF2aWdhdGlvbiBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVnaXN0ZXJlZExpc3RJdGVtczogRmRiTmF2aWdhdGlvbkxpc3RJdGVtW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBuYXZpZ2F0aW9uIGxpc3QgaXRlbS5cbiAgICAgKi9cbiAgICByZWdpc3Rlckl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9yZWdpc3RlcmVkTGlzdEl0ZW1zLmluZGV4T2YoaXRlbSkgPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVnaXN0ZXJlZExpc3RJdGVtcy5wdXNoKGl0ZW0pO1xuXG4gICAgICAgIHRoaXMuYWxsTGlzdEl0ZW1zJC5zZXQodGhpcy5fcmVnaXN0ZXJlZExpc3RJdGVtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlcnMgbmF2aWdhdGlvbiBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgdW5yZWdpc3Rlckl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSB0aGlzLl9yZWdpc3RlcmVkTGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVnaXN0ZXJlZExpc3RJdGVtcy5zcGxpY2UoZm91bmRJbmRleCwgMSk7XG5cbiAgICAgICAgdGhpcy5hbGxMaXN0SXRlbXMkLnNldCh0aGlzLl9yZWdpc3RlcmVkTGlzdEl0ZW1zKTtcbiAgICB9XG59XG4iXX0=","export class FdbNavigation {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbW9kZWxzL25hdmlnYXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFnQixhQUFhO0NBU2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZkYk5hdmlnYXRpb24ge1xuICAgIGFic3RyYWN0IGNsYXNzTGlzdCQ6IFNpZ25hbDxzdHJpbmdbXT47XG4gICAgYWJzdHJhY3QgaXNTbmFwcGVkJDogU2lnbmFsPGJvb2xlYW4+O1xuICAgIGFic3RyYWN0IHNob3dNb3JlQnV0dG9uJDogV3JpdGFibGVTaWduYWw8TnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj47XG4gICAgYWJzdHJhY3QgX25hdmlnYXRpb25JdGVtUmVuZGVyZXI6IFNpZ25hbDxhbnk+O1xuICAgIGFic3RyYWN0IGNsb3NlQWxsUG9wdXBzOiBTdWJqZWN0PHZvaWQ+O1xuICAgIGFic3RyYWN0IHNldEFjdGl2ZUl0ZW0odmFsdWU6IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB8IG51bGwpOiB2b2lkO1xuICAgIGFic3RyYWN0IGdldEFjdGl2ZUl0ZW0oKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbDtcbiAgICBhYnN0cmFjdCBjbG9zZVBvcHVwcygpOiB2b2lkO1xufVxuIl19","import { computed, inject, signal } from '@angular/core';\nimport { FdbNavigation } from './navigation.class';\nexport const LIST_ITEM_CLASS = 'fd-navigation__list-item';\nexport class FdbNavigationListItem {\n constructor() {\n /** @hidden */\n this.listItems$ = signal([], ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** Whether item has child items. */\n this.hasChildren$ = computed(() => this.listItems$().length > 0, ...(ngDevMode ? [{ debugName: \"hasChildren$\" }] : []));\n /** Whether popover is open. Applicable for snapped navigation state. */\n this.popoverOpen$ = signal(false, ...(ngDevMode ? [{ debugName: \"popoverOpen$\" }] : []));\n /**\n * Link reference.\n */\n this.link$ = signal(null, ...(ngDevMode ? [{ debugName: \"link$\" }] : []));\n /**\n * Item content renderer.\n */\n this.renderer$ = signal(null, ...(ngDevMode ? [{ debugName: \"renderer$\" }] : []));\n /**\n * Whether the item should be hidden under \"More\" button.\n */\n this.hidden$ = signal(false, ...(ngDevMode ? [{ debugName: \"hidden$\" }] : []));\n /**\n * Whether the item is in overflow menu. Applicable only when the navigation is in snapped mode.\n */\n this.isOverflow$ = computed(() => this.navigation.isSnapped$() && this.hidden$(), ...(ngDevMode ? [{ debugName: \"isOverflow$\" }] : []));\n /**\n * Item Hierarchy level in navigation tree.\n */\n this.level$ = computed(() => (this.parentListItem?.level$() || 0) + 1, ...(ngDevMode ? [{ debugName: \"level$\" }] : []));\n /**\n * Normalized level. Calculated based on location of the item, whether it is inside group or not.\n * Can be different than `level$`.\n */\n this.normalizedLevel$ = computed(() => {\n if (!this.parentListItem) {\n return this.inGroup$() ? this.level$() : this.level$() + 1;\n }\n return this.parentListItem.normalizedLevel$() + 1;\n }, ...(ngDevMode ? [{ debugName: \"normalizedLevel$\" }] : []));\n /**\n * Whether the List item should be marked as selected.\n * Based on a `snapped` state will determine whether to highlight the link if it, or it's child links are active.\n */\n this.isActiveAttr$ = computed(() => this.selected$() ||\n this.link$()?.isActive$() ||\n (this.navigation.isSnapped$() && this.listItems$().some((item) => item?.isActiveAttr$())), ...(ngDevMode ? [{ debugName: \"isActiveAttr$\" }] : []));\n /**\n * Whether the item is inside group.\n */\n this.inGroup$ = computed(() => (this.parentListItem ? this.parentListItem.inGroup$() : this.isGroup$()), ...(ngDevMode ? [{ debugName: \"inGroup$\" }] : []));\n /** @hidden */\n this.expanded$ = signal(false, ...(ngDevMode ? [{ debugName: \"expanded$\" }] : []));\n /** @hidden */\n this.isGroup$ = signal(false, ...(ngDevMode ? [{ debugName: \"isGroup$\" }] : []));\n /** Navigation container reference. */\n this.navigation = inject(FdbNavigation);\n }\n}\nexport class FdbNavigationListItemCmp extends FdbNavigationListItem {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL21vZGVscy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsTUFBTSxPQUFnQixxQkFBcUI7SUFBM0M7UUEwQkksY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQW9DLEVBQUUsc0RBQUMsQ0FBQztRQUVwRSxvQ0FBb0M7UUFDM0IsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLHdEQUFDLENBQUM7UUFFckUsd0VBQXdFO1FBQy9ELGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssd0RBQUMsQ0FBQztRQUV0Qzs7V0FFRztRQUNNLFVBQUssR0FBRyxNQUFNLENBQWtDLElBQUksaURBQUMsQ0FBQztRQUUvRDs7V0FFRztRQUNNLGNBQVMsR0FBRyxNQUFNLENBQTBCLElBQUkscURBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNNLFlBQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxtREFBQyxDQUFDO1FBRWpDOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLHVEQUFDLENBQUM7UUFFdEY7O1dBRUc7UUFDTSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGtEQUFDLENBQUM7UUFFM0U7OztXQUdHO1FBQ00scUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEQsQ0FBQyw0REFBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ00sa0JBQWEsR0FBRyxRQUFRLENBQzdCLEdBQUcsRUFBRSxDQUNELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRTtZQUN6QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMseURBQ2hHLENBQUM7UUFFRjs7V0FFRztRQUNNLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsb0RBQUMsQ0FBQztRQUU3RyxjQUFjO1FBQ0wsY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLHFEQUFDLENBQUM7UUFFNUMsY0FBYztRQUNMLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxvREFBQyxDQUFDO1FBRWxDLHNDQUFzQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBZ0Isd0JBQXlCLFNBQVEscUJBQXFCO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c09yaWdpbiwgRm9jdXNhYmxlT3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU2lnbmFsLCBUZW1wbGF0ZVJlZiwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0SXRlbU1hcmtlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1pdGVtL25hdmlnYXRpb24tbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIgfSBmcm9tICcuL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkl0ZW1MaW5rIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLmNsYXNzJztcblxuZXhwb3J0IGNvbnN0IExJU1RfSVRFTV9DTEFTUyA9ICdmZC1uYXZpZ2F0aW9uX19saXN0LWl0ZW0nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmRiTmF2aWdhdGlvbkxpc3RJdGVtIGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICBhYnN0cmFjdCB0eXBlOiAnaXRlbScgfCAnc2hvd01vcmUnO1xuICAgIGFic3RyYWN0IHNlcGFyYXRvcjogYm9vbGVhbjtcbiAgICBhYnN0cmFjdCBzcGFjZXI6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgaG9tZTogYm9vbGVhbjtcbiAgICBhYnN0cmFjdCBpc1Zpc2libGUkOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgYWJzdHJhY3Qgc2tpcE5hdmlnYXRpb246IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgcGxhY2VtZW50Q29udGFpbmVyPzogRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXI7XG4gICAgYWJzdHJhY3QgcGFyZW50TGlzdEl0ZW1Db21wb25lbnQ6IEZkYk5hdmlnYXRpb25MaXN0SXRlbUNtcCB8IG51bGw7XG4gICAgYWJzdHJhY3QgcGFyZW50TGlzdEl0ZW06IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB8IG51bGw7XG4gICAgYWJzdHJhY3QgY2xhc3MkOiBTaWduYWw8c3RyaW5nPjtcbiAgICBhYnN0cmFjdCBzZWxlY3RlZCQ6IFNpZ25hbDxib29sZWFuPjtcbiAgICBhYnN0cmFjdCBmb2N1cyhvcmlnaW4/OiBGb2N1c09yaWdpbiB8IHVuZGVmaW5lZCk6IHZvaWQ7XG4gICAgYWJzdHJhY3QgdG9nZ2xlRXhwYW5kZWQoKTogdm9pZDtcbiAgICBhYnN0cmFjdCBrZXlib2FyZEV4cGFuZGVkKHNob3VsZEV4cGFuZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgYWJzdHJhY3QgcG9wb3ZlckxpbmtBcnJvd0Rvd24oKTogdm9pZDtcbiAgICBhYnN0cmFjdCByZWdpc3RlckxpbmsobGluazogRmRiTmF2aWdhdGlvbkl0ZW1MaW5rKTogdm9pZDtcbiAgICBhYnN0cmFjdCB1bnJlZ2lzdGVyTGluayhsaW5rOiBGZGJOYXZpZ2F0aW9uSXRlbUxpbmspOiB2b2lkO1xuICAgIGFic3RyYWN0IHJlZ2lzdGVyQ2hpbGRMaXN0KGxpc3Q6IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50KTogdm9pZDtcbiAgICBhYnN0cmFjdCB1bnJlZ2lzdGVyQ2hpbGRMaXN0KGxpc3Q6IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50KTogdm9pZDtcbiAgICBhYnN0cmFjdCBoYW5kbGVIb3Jpem9udGFsTmF2aWdhdGlvbihpc0V4cGFuZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgYWJzdHJhY3QgZm9jdXNMaW5rKGNsb3NlUG9wb3Zlcj86IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIE1hcmtlciBkaXJlY3RpdmUgdGhhdCBpcyBhdHRhY2hlZCB0byB0aGUgcmVuZGVyZWQgbGlzdCBpdGVtLiAqL1xuICAgIG1hcmtlcjogTnVsbGFibGU8TmF2aWdhdGlvbkxpc3RJdGVtTWFya2VyRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IHNpZ25hbDxOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+W10+KFtdKTtcblxuICAgIC8qKiBXaGV0aGVyIGl0ZW0gaGFzIGNoaWxkIGl0ZW1zLiAqL1xuICAgIHJlYWRvbmx5IGhhc0NoaWxkcmVuJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubGlzdEl0ZW1zJCgpLmxlbmd0aCA+IDApO1xuXG4gICAgLyoqIFdoZXRoZXIgcG9wb3ZlciBpcyBvcGVuLiBBcHBsaWNhYmxlIGZvciBzbmFwcGVkIG5hdmlnYXRpb24gc3RhdGUuICovXG4gICAgcmVhZG9ubHkgcG9wb3Zlck9wZW4kID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIExpbmsgcmVmZXJlbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxpbmskID0gc2lnbmFsPE51bGxhYmxlPEZkYk5hdmlnYXRpb25JdGVtTGluaz4+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogSXRlbSBjb250ZW50IHJlbmRlcmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlbmRlcmVyJCA9IHNpZ25hbDxUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBpdGVtIHNob3VsZCBiZSBoaWRkZW4gdW5kZXIgXCJNb3JlXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhpZGRlbiQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgaXRlbSBpcyBpbiBvdmVyZmxvdyBtZW51LiBBcHBsaWNhYmxlIG9ubHkgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBpbiBzbmFwcGVkIG1vZGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNPdmVyZmxvdyQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmIHRoaXMuaGlkZGVuJCgpKTtcblxuICAgIC8qKlxuICAgICAqIEl0ZW0gSGllcmFyY2h5IGxldmVsIGluIG5hdmlnYXRpb24gdHJlZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBsZXZlbCQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5wYXJlbnRMaXN0SXRlbT8ubGV2ZWwkKCkgfHwgMCkgKyAxKTtcblxuICAgIC8qKlxuICAgICAqIE5vcm1hbGl6ZWQgbGV2ZWwuIENhbGN1bGF0ZWQgYmFzZWQgb24gbG9jYXRpb24gb2YgdGhlIGl0ZW0sIHdoZXRoZXIgaXQgaXMgaW5zaWRlIGdyb3VwIG9yIG5vdC5cbiAgICAgKiBDYW4gYmUgZGlmZmVyZW50IHRoYW4gYGxldmVsJGAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbm9ybWFsaXplZExldmVsJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudExpc3RJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbkdyb3VwJCgpID8gdGhpcy5sZXZlbCQoKSA6IHRoaXMubGV2ZWwkKCkgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50TGlzdEl0ZW0ubm9ybWFsaXplZExldmVsJCgpICsgMTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIExpc3QgaXRlbSBzaG91bGQgYmUgbWFya2VkIGFzIHNlbGVjdGVkLlxuICAgICAqIEJhc2VkIG9uIGEgYHNuYXBwZWRgIHN0YXRlIHdpbGwgZGV0ZXJtaW5lIHdoZXRoZXIgdG8gaGlnaGxpZ2h0IHRoZSBsaW5rIGlmIGl0LCBvciBpdCdzIGNoaWxkIGxpbmtzIGFyZSBhY3RpdmUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNBY3RpdmVBdHRyJCA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCQoKSB8fFxuICAgICAgICAgICAgdGhpcy5saW5rJCgpPy5pc0FjdGl2ZSQoKSB8fFxuICAgICAgICAgICAgKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkgJiYgdGhpcy5saXN0SXRlbXMkKCkuc29tZSgoaXRlbSkgPT4gaXRlbT8uaXNBY3RpdmVBdHRyJCgpKSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgaXRlbSBpcyBpbnNpZGUgZ3JvdXAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5Hcm91cCQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5wYXJlbnRMaXN0SXRlbSA/IHRoaXMucGFyZW50TGlzdEl0ZW0uaW5Hcm91cCQoKSA6IHRoaXMuaXNHcm91cCQoKSkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBleHBhbmRlZCQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBpc0dyb3VwJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogTmF2aWdhdGlvbiBjb250YWluZXIgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IG5hdmlnYXRpb24gPSBpbmplY3QoRmRiTmF2aWdhdGlvbik7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1DbXAgZXh0ZW5kcyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0ge31cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class NavigationService {\n constructor() {\n /** Currently active list item. */\n this.currentItem$ = new Subject();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUkvQixNQUFNLE9BQU8saUJBQWlCO0lBRDlCO1FBRUksa0NBQWtDO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7S0FDdkQ7OEdBSFksaUJBQWlCO2tIQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblNlcnZpY2Uge1xuICAgIC8qKiBDdXJyZW50bHkgYWN0aXZlIGxpc3QgaXRlbS4gKi9cbiAgICBjdXJyZW50SXRlbSQgPSBuZXcgU3ViamVjdDxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+KCk7XG59XG4iXX0=","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation, booleanAttribute, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { NavigationService } from '../../services/navigation.service';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListComponent {\n /** @hidden */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _listItems(value) {\n this._listItemsArray = value;\n this.listItems$.set(value);\n this._setupKeyManager();\n }\n get _listItems() {\n return this._listItemsArray;\n }\n /** @hidden */\n get _activeItemIndex() {\n return this._keyManager?.activeItemIndex ?? -1;\n }\n /** @hidden */\n constructor() {\n /** List Role. */\n this.role = 'tree';\n /** Whether the list is for parent items. */\n this.parentItems = false;\n /** Whether the list is for child items. */\n this.childItems = false;\n /** Whether the list should not grow in height. */\n this.noGrow = false;\n /** Whether the list should handle keyboard navigation. */\n this.withKeyboardNavigation = false;\n /** Event emitted when user tries to navigate to the item before the list itself. */\n this.focusBefore = new EventEmitter();\n /** Event emitted when user tries to navigate to the item after the list itself. */\n this.focusAfter = new EventEmitter();\n /** List items. */\n this.listItems$ = signal([], ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** @hidden */\n this._listItemsArray = [];\n /** @hidden */\n this._navigationService = inject(NavigationService, {\n optional: true\n });\n /**\n * @hidden\n * Parent list item.\n */\n this._listItem = inject(FdbNavigationListItem, {\n optional: true\n });\n /** @hidden */\n this._rtl = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n this._listItem?.registerChildList(this);\n }\n /**\n * @hidden\n * Handler for keyboard navigation.\n */\n _keydownHandler(event) {\n if (!this.withKeyboardNavigation) {\n return;\n }\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n event.stopImmediatePropagation();\n }\n if (KeyUtil.isKeyCode(event, UP_ARROW) && this._activeItemIndex <= 0) {\n this.focusBefore.emit();\n return;\n }\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) && this._activeItemIndex === this._listItemsArray.length - 1) {\n this.focusAfter.emit();\n return;\n }\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n this._keyManager?.onKeydown(event);\n return;\n }\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n // We need to cancel event bubbling since we may have parent list that will also try to focus it's parent list item.\n event.stopImmediatePropagation();\n const isExpandAction = KeyUtil.isKeyCode(event, this._rtl?.rtl.value ? LEFT_ARROW : RIGHT_ARROW);\n if (!isExpandAction) {\n this._listItem?.focusLink(true);\n }\n }\n /** @hidden */\n setActiveItemIndex(index) {\n this._keyManager?.setActiveItem(index);\n }\n /** @hidden */\n ngAfterViewInit() {\n this._navigationService?.currentItem$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((item) => {\n this._keyManager?.setActiveItem(item);\n });\n }\n /** @hidden */\n ngOnChanges(changes) {\n if ('withKeyboardNavigation' in changes) {\n this._setupKeyManager();\n }\n }\n /** @hidden */\n ngOnDestroy() {\n this._listItem?.unregisterChildList(this);\n this._keyManager?.destroy();\n }\n /** @hidden */\n _setupKeyManager() {\n this._keyManager?.destroy();\n if (!this.withKeyboardNavigation) {\n return;\n }\n this._keyManager = new FocusKeyManager(this._listItemsArray)\n .withVerticalOrientation()\n .skipPredicate((item) => item.skipNavigation);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationListComponent, isStandalone: true, selector: \"ul[fdb-navigation-list]\", inputs: { _listItems: [\"listItems\", \"_listItems\"], role: \"role\", parentItems: [\"parentItems\", \"parentItems\", booleanAttribute], childItems: [\"childItems\", \"childItems\", booleanAttribute], noGrow: [\"noGrow\", \"noGrow\", booleanAttribute], withKeyboardNavigation: [\"withKeyboardNavigation\", \"withKeyboardNavigation\", booleanAttribute] }, outputs: { focusBefore: \"focusBefore\", focusAfter: \"focusAfter\" }, host: { attributes: { \"tabindex\": \"-1\" }, listeners: { \"keydown\": \"_keydownHandler($event)\" }, properties: { \"attr.role\": \"this.role\", \"class.fd-navigation__list--parent-items\": \"this.parentItems\", \"class.fd-navigation__list--child-items\": \"this.childItems\", \"class.fd-navigation__list--no-grow\": \"this.noGrow\" }, classAttribute: \"fd-navigation__list\" }, usesOnChanges: true, ngImport: i0, template: \"@for (item of listItems$(); track item) {\\n @if (item) {\\n <li [class]=\\\"item.class$()\\\">\\n <ng-template [ngTemplateOutlet]=\\\"item.renderer$()\\\"></ng-template>\\n </li>\\n <!-- Add separator after home list item. -->\\n @if (item.home) {\\n <li class=\\\"fd-navigation__list-item fd-navigation__list-item--separator\\\"></li>\\n }\\n }\\n}\\n<!-- Keep this for \\\"More\\\" button -->\\n<ng-content></ng-content>\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ul[fdb-navigation-list]', imports: [NgTemplateOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n class: 'fd-navigation__list',\n tabindex: '-1'\n }, template: \"@for (item of listItems$(); track item) {\\n @if (item) {\\n <li [class]=\\\"item.class$()\\\">\\n <ng-template [ngTemplateOutlet]=\\\"item.renderer$()\\\"></ng-template>\\n </li>\\n <!-- Add separator after home list item. -->\\n @if (item.home) {\\n <li class=\\\"fd-navigation__list-item fd-navigation__list-item--separator\\\"></li>\\n }\\n }\\n}\\n<!-- Keep this for \\\"More\\\" button -->\\n<ng-content></ng-content>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { _listItems: [{\n type: Input,\n args: ['listItems']\n }], role: [{\n type: HostBinding,\n args: ['attr.role']\n }, {\n type: Input\n }], parentItems: [{\n type: HostBinding,\n args: ['class.fd-navigation__list--parent-items']\n }, {\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], childItems: [{\n type: HostBinding,\n args: ['class.fd-navigation__list--child-items']\n }, {\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], noGrow: [{\n type: HostBinding,\n args: ['class.fd-navigation__list--no-grow']\n }, {\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], withKeyboardNavigation: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], focusBefore: [{\n type: Output\n }], focusAfter: [{\n type: Output\n }], _keydownHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBY3RFLE1BQU0sT0FBTyx1QkFBdUI7SUFDaEMsY0FBYztJQUNkLDJEQUEyRDtJQUMzRCxJQUNJLFVBQVUsQ0FBQyxLQUF3QztRQUNuRCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFnRUQsY0FBYztJQUNkLElBQVksZ0JBQWdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELGNBQWM7SUFDZDtRQXBFQSxpQkFBaUI7UUFHakIsU0FBSSxHQUF1QixNQUFNLENBQUM7UUFFbEMsNENBQTRDO1FBRzVDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRXBCLDJDQUEyQztRQUczQyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGtEQUFrRDtRQUdsRCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsMERBQTBEO1FBRTFELDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUUvQixvRkFBb0Y7UUFFcEYsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZDLG1GQUFtRjtRQUVuRixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV0QyxrQkFBa0I7UUFDVCxlQUFVLEdBQUcsTUFBTSxDQUFvQyxFQUFFLHNEQUFDLENBQUM7UUFFcEUsY0FBYztRQUNOLG9CQUFlLEdBQXNDLEVBQUUsQ0FBQztRQUtoRSxjQUFjO1FBQ0csdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1lBQzVELFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVIOzs7V0FHRztRQUNjLGNBQVMsR0FBRyxNQUFNLENBQUMscUJBQXFCLEVBQUU7WUFDdkQsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUgsY0FBYztRQUNHLFNBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUVILGNBQWM7UUFDRyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVM5QyxJQUFJLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFFSCxlQUFlLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkQsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZELE9BQU87UUFDWCxDQUFDO1FBRUQsb0hBQW9IO1FBQ3BILEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWpDLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2Qsa0JBQWtCLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYztJQUNkLGVBQWU7UUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoRyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksd0JBQXdCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztJQUNOLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQTBDLENBQUM7YUFDbEYsdUJBQXVCLEVBQUU7YUFDekIsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs4R0FsS1EsdUJBQXVCO2tHQUF2Qix1QkFBdUIsd0tBcUJaLGdCQUFnQiw0Q0FLaEIsZ0JBQWdCLGdDQUtoQixnQkFBZ0IsZ0ZBSWhCLGdCQUFnQix3ZEN6RXhDLDhjQWFBLDRDRGdCYyxnQkFBZ0I7OzJGQVNqQix1QkFBdUI7a0JBWm5DLFNBQVM7K0JBRUkseUJBQXlCLFdBQzFCLENBQUMsZ0JBQWdCLENBQUMsaUJBRVosaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixRQUFRLEVBQUUsSUFBSTtxQkFDakI7d0RBTUcsVUFBVTtzQkFEYixLQUFLO3VCQUFDLFdBQVc7Z0JBY2xCLElBQUk7c0JBRkgsV0FBVzt1QkFBQyxXQUFXOztzQkFDdkIsS0FBSztnQkFNTixXQUFXO3NCQUZWLFdBQVc7dUJBQUMseUNBQXlDOztzQkFDckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNdEMsVUFBVTtzQkFGVCxXQUFXO3VCQUFDLHdDQUF3Qzs7c0JBQ3BELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTXRDLE1BQU07c0JBRkwsV0FBVzt1QkFBQyxvQ0FBb0M7O3NCQUNoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUt0QyxzQkFBc0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3RDLFdBQVc7c0JBRFYsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBZ0RQLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEtleVV0aWwsIE51bGxhYmxlLCBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3VsW2ZkYi1uYXZpZ2F0aW9uLWxpc3RdJyxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbmF2aWdhdGlvbl9fbGlzdCcsXG4gICAgICAgIHRhYmluZGV4OiAnLTEnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdsaXN0SXRlbXMnKVxuICAgIHNldCBfbGlzdEl0ZW1zKHZhbHVlOiBOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+W10pIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zQXJyYXkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5saXN0SXRlbXMkLnNldCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3NldHVwS2V5TWFuYWdlcigpO1xuICAgIH1cblxuICAgIGdldCBfbGlzdEl0ZW1zKCk6IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9saXN0SXRlbXNBcnJheTtcbiAgICB9XG5cbiAgICAvKiogTGlzdCBSb2xlLiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBASW5wdXQoKVxuICAgIHJvbGU6ICd0cmVlJyB8ICdtZW51YmFyJyA9ICd0cmVlJztcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGlzIGZvciBwYXJlbnQgaXRlbXMuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1uYXZpZ2F0aW9uX19saXN0LS1wYXJlbnQtaXRlbXMnKVxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHBhcmVudEl0ZW1zID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpcyBmb3IgY2hpbGQgaXRlbXMuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mZC1uYXZpZ2F0aW9uX19saXN0LS1jaGlsZC1pdGVtcycpXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgY2hpbGRJdGVtcyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3Qgc2hvdWxkIG5vdCBncm93IGluIGhlaWdodC4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW5hdmlnYXRpb25fX2xpc3QtLW5vLWdyb3cnKVxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIG5vR3JvdyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3Qgc2hvdWxkIGhhbmRsZSBrZXlib2FyZCBuYXZpZ2F0aW9uLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHdpdGhLZXlib2FyZE5hdmlnYXRpb24gPSBmYWxzZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdXNlciB0cmllcyB0byBuYXZpZ2F0ZSB0byB0aGUgaXRlbSBiZWZvcmUgdGhlIGxpc3QgaXRzZWxmLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvY3VzQmVmb3JlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIHRyaWVzIHRvIG5hdmlnYXRlIHRvIHRoZSBpdGVtIGFmdGVyIHRoZSBsaXN0IGl0c2VsZi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBmb2N1c0FmdGVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIExpc3QgaXRlbXMuICovXG4gICAgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IHNpZ25hbDxOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdEl0ZW1zQXJyYXk6IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT5bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBOdWxsYWJsZTxGb2N1c0tleU1hbmFnZXI8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFyZW50IGxpc3QgaXRlbS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXN0SXRlbSA9IGluamVjdChGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnRsID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2FjdGl2ZUl0ZW1JbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5TWFuYWdlcj8uYWN0aXZlSXRlbUluZGV4ID8/IC0xO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtPy5yZWdpc3RlckNoaWxkTGlzdCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSGFuZGxlciBmb3Iga2V5Ym9hcmQgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBfa2V5ZG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLndpdGhLZXlib2FyZE5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPV10pKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFVQX0FSUk9XKSAmJiB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPD0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb2N1c0JlZm9yZS5lbWl0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBET1dOX0FSUk9XKSAmJiB0aGlzLl9hY3RpdmVJdGVtSW5kZXggPT09IHRoaXMuX2xpc3RJdGVtc0FycmF5Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNBZnRlci5lbWl0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtET1dOX0FSUk9XLCBVUF9BUlJPV10pKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFJJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gY2FuY2VsIGV2ZW50IGJ1YmJsaW5nIHNpbmNlIHdlIG1heSBoYXZlIHBhcmVudCBsaXN0IHRoYXQgd2lsbCBhbHNvIHRyeSB0byBmb2N1cyBpdCdzIHBhcmVudCBsaXN0IGl0ZW0uXG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGlzRXhwYW5kQWN0aW9uID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIHRoaXMuX3J0bD8ucnRsLnZhbHVlID8gTEVGVF9BUlJPVyA6IFJJR0hUX0FSUk9XKTtcblxuICAgICAgICBpZiAoIWlzRXhwYW5kQWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9saXN0SXRlbT8uZm9jdXNMaW5rKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRBY3RpdmVJdGVtSW5kZXgoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvblNlcnZpY2U/LmN1cnJlbnRJdGVtJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGl0ZW0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCd3aXRoS2V5Ym9hcmROYXZpZ2F0aW9uJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXR1cEtleU1hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtPy51bnJlZ2lzdGVyQ2hpbGRMaXN0KHRoaXMpO1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXR1cEtleU1hbmFnZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcblxuICAgICAgICBpZiAoIXRoaXMud2l0aEtleWJvYXJkTmF2aWdhdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy5fbGlzdEl0ZW1zQXJyYXkgYXMgRmRiTmF2aWdhdGlvbkxpc3RJdGVtW10pXG4gICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKVxuICAgICAgICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uc2tpcE5hdmlnYXRpb24pO1xuICAgIH1cbn1cbiIsIkBmb3IgKGl0ZW0gb2YgbGlzdEl0ZW1zJCgpOyB0cmFjayBpdGVtKSB7XG4gICAgQGlmIChpdGVtKSB7XG4gICAgICAgIDxsaSBbY2xhc3NdPVwiaXRlbS5jbGFzcyQoKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0ucmVuZGVyZXIkKClcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8IS0tIEFkZCBzZXBhcmF0b3IgYWZ0ZXIgaG9tZSBsaXN0IGl0ZW0uIC0tPlxuICAgICAgICBAaWYgKGl0ZW0uaG9tZSkge1xuICAgICAgICAgICAgPGxpIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fbGlzdC1pdGVtIGZkLW5hdmlnYXRpb25fX2xpc3QtaXRlbS0tc2VwYXJhdG9yXCI+PC9saT5cbiAgICAgICAgfVxuICAgIH1cbn1cbjwhLS0gS2VlcCB0aGlzIGZvciBcIk1vcmVcIiBidXR0b24gLS0+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=","import { ChangeDetectionStrategy, Component, ContentChildren, Input, QueryList, ViewEncapsulation, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, filter, observeOn, startWith } from 'rxjs';\nimport { FdbNavigationContentContainer } from '../../models/navigation-content-container.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport * as i0 from \"@angular/core\";\nexport class NavigationContentEndComponent extends FdbNavigationContentContainer {\n constructor() {\n super(...arguments);\n /** Whether the list items are content-projected. Used only with data-driven navigation. */\n this.contentProjected = true;\n /** @hidden */\n this.listItems$ = signal([], ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** Whether the container is placed on the start position, or the end position of the navigation. */\n this.placement = 'end';\n }\n /** @hidden */\n ngAfterContentInit() {\n this._listItems.changes\n .pipe(startWith(null), observeOn(asyncScheduler), filter(() => this.contentProjected), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.allListItems$.set(this._listItems.toArray());\n this.listItems$.set(this._listItems.toArray());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationContentEndComponent, isStandalone: true, selector: \"fdb-navigation-content-end\", inputs: { contentProjected: \"contentProjected\" }, host: { classAttribute: \"fd-navigation__container fd-navigation__container--bottom\" }, providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentEndComponent\n }\n ], queries: [{ propertyName: \"_listItems\", predicate: FdbNavigationListItem }], usesInheritance: true, ngImport: i0, template: `<ul fdb-navigation-list [listItems]=\"allListItems$()\"></ul>`, isInline: true, dependencies: [{ kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\"], outputs: [\"focusBefore\", \"focusAfter\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentEndComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fdb-navigation-content-end',\n template: `<ul fdb-navigation-list [listItems]=\"allListItems$()\"></ul>`,\n imports: [NavigationListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-navigation__container fd-navigation__container--bottom'\n },\n providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentEndComponent\n }\n ]\n }]\n }], propDecorators: { contentProjected: [{\n type: Input\n }], _listItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LWVuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1lbmQvbmF2aWdhdGlvbi1jb250ZW50LWVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQWtCdkYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDZCQUE2QjtJQWhCaEY7O1FBaUJJLDJGQUEyRjtRQUUzRixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFLeEIsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQTBCLEVBQUUsc0RBQUMsQ0FBQztRQUUxRCxvR0FBb0c7UUFDM0YsY0FBUyxHQUFvQixLQUFLLENBQUM7S0FnQi9DO0lBZEcsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTzthQUNsQixJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFDekIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNuQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3ZDO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQTNCUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixrTkFQM0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxXQUFXLEVBQUUsNkJBQTZCO2FBQzdDO1NBQ0oscURBT2dCLHFCQUFxQixvREFuQjVCLDZEQUE2RCw0REFDN0QsdUJBQXVCOzsyRkFheEIsNkJBQTZCO2tCQWhCekMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxRQUFRLEVBQUUsNkRBQTZEO29CQUN2RSxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDbEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLDJEQUEyRDtxQkFDckU7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFdBQVcsK0JBQStCO3lCQUM3QztxQkFDSjtpQkFDSjs4QkFJRyxnQkFBZ0I7c0JBRGYsS0FBSztnQkFJVyxVQUFVO3NCQUQxQixlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIElucHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgZmlsdGVyLCBvYnNlcnZlT24sIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1jb250ZW50LWNvbnRhaW5lci5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRiLW5hdmlnYXRpb24tY29udGVudC1lbmQnLFxuICAgIHRlbXBsYXRlOiBgPHVsIGZkYi1uYXZpZ2F0aW9uLWxpc3QgW2xpc3RJdGVtc109XCJhbGxMaXN0SXRlbXMkKClcIj48L3VsPmAsXG4gICAgaW1wb3J0czogW05hdmlnYXRpb25MaXN0Q29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1uYXZpZ2F0aW9uX19jb250YWluZXIgZmQtbmF2aWdhdGlvbl9fY29udGFpbmVyLS1ib3R0b20nXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkNvbnRlbnRFbmRDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkNvbnRlbnRFbmRDb21wb25lbnQgZXh0ZW5kcyBGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW1zIGFyZSBjb250ZW50LXByb2plY3RlZC4gVXNlZCBvbmx5IHdpdGggZGF0YS1kcml2ZW4gbmF2aWdhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRlbnRQcm9qZWN0ZWQgPSB0cnVlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IHNpZ25hbDxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXT4oW10pO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbnRhaW5lciBpcyBwbGFjZWQgb24gdGhlIHN0YXJ0IHBvc2l0aW9uLCBvciB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICAgIHJlYWRvbmx5IHBsYWNlbWVudDogJ3N0YXJ0JyB8ICdlbmQnID0gJ2VuZCc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmNvbnRlbnRQcm9qZWN0ZWQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGxMaXN0SXRlbXMkLnNldCh0aGlzLl9saXN0SXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtcyQuc2V0KHRoaXMuX2xpc3RJdGVtcy50b0FycmF5KCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","import { Directive, Injector, Input, TemplateRef, inject, signal } from '@angular/core';\nimport { FdbNavigationContentContainer } from '../models/navigation-content-container.class';\nimport { FdbNavigationListItem } from '../models/navigation-list-item.class';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListItemDirective {\n /** @hidden */\n constructor() {\n /**\n * Injector used for rendering child list item component.\n * Allows list item component to inject parent list container and register itself as a child item.\n */\n this.injector = Injector.create({ providers: [], parent: inject(Injector) });\n /** @hidden */\n this.parentNavListItemDirective = inject(NavigationListItemDirective, {\n skipSelf: true,\n optional: true\n });\n /**\n * Set of child directives.\n * Used to build hierarchy tree.\n */\n this.childDirectives = signal(new Set(), ...(ngDevMode ? [{ debugName: \"childDirectives\" }] : []));\n /** @hidden */\n this._contentContainer = inject(FdbNavigationContentContainer, {\n optional: true\n });\n this.parentNavListItemDirective?.registerChildDirective(this);\n }\n /**\n * Registers child list item component for further usage.\n * @param item\n */\n registerItem(item) {\n this._item = item;\n this._contentContainer?.registerItem(this._item);\n }\n /**\n * Removes child list item.\n */\n unregisterItem() {\n this._item && this._contentContainer?.unregisterItem(this._item);\n this._item = null;\n }\n /**\n * Registers child directive.\n */\n registerChildDirective(directive) {\n this.childDirectives.update((list) => list.add(directive));\n }\n /** @hidden */\n ngOnDestroy() {\n this._item && this._contentContainer?.unregisterItem(this._item);\n this._item = null;\n this.childDirectives().clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListItemDirective, isStandalone: true, selector: \"[fdbNavigationListItem]\", inputs: { item: \"item\" }, providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemDirective\n }\n ], exportAs: [\"fdbListItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationListItem]',\n standalone: true,\n providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemDirective\n }\n ],\n exportAs: 'fdbListItem'\n }]\n }], ctorParameters: () => [], propDecorators: { item: [{\n type: Input\n }] } });\nexport class NavigationListItemRefDirective {\n constructor() {\n /** Template reference. */\n this.templateRef = inject(TemplateRef);\n }\n /** @hidden */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListItemRefDirective, isStandalone: true, selector: \"[fdbNavigationListItemRef]\", inputs: { fdbNavigationListItemRefAs: \"fdbNavigationListItemRefAs\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemRefDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationListItemRef]',\n standalone: true\n }]\n }], propDecorators: { fdbNavigationListItemRefAs: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWl0ZW0tcmVmLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFhN0UsTUFBTSxPQUFPLDJCQUEyQjtJQW9DcEMsY0FBYztJQUNkO1FBOUJBOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRixjQUFjO1FBQ0wsK0JBQTBCLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFO1lBQ3RFLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ00sb0JBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQStCLDJEQUFDLENBQUM7UUFRMUUsY0FBYztRQUNHLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRTtZQUN2RSxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFJQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxJQUEyQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ1YsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0IsQ0FBQyxTQUFzQztRQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBdEVRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdHQVJ6QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSwyQkFBMkI7YUFDM0M7U0FDSjs7MkZBR1EsMkJBQTJCO2tCQVh2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyw2QkFBNkI7eUJBQzNDO3FCQUNKO29CQUNELFFBQVEsRUFBRSxhQUFhO2lCQUMxQjt3REFNRyxJQUFJO3NCQURILEtBQUs7O0FBeUVWLE1BQU0sT0FBTyw4QkFBOEI7SUFKM0M7UUFRSSwwQkFBMEI7UUFDakIsZ0JBQVcsR0FBRyxNQUFNLENBQWlCLFdBQVcsQ0FBQyxDQUFDO0tBTTlEO0lBSkcsY0FBYztJQUNkLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBSSxHQUFzQyxFQUFFLEdBQVk7UUFDakYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs4R0FWUSw4QkFBOEI7a0dBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFKMUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBSUcsMEJBQTBCO3NCQUR6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyIH0gZnJvbSAnLi4vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRiTmF2aWdhdGlvbkxpc3RJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBleHBvcnRBczogJ2ZkYkxpc3RJdGVtJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEl0ZW0gZGVmaW5pdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGl0ZW06IGFueTtcblxuICAgIC8qKlxuICAgICAqIEluamVjdG9yIHVzZWQgZm9yIHJlbmRlcmluZyBjaGlsZCBsaXN0IGl0ZW0gY29tcG9uZW50LlxuICAgICAqIEFsbG93cyBsaXN0IGl0ZW0gY29tcG9uZW50IHRvIGluamVjdCBwYXJlbnQgbGlzdCBjb250YWluZXIgYW5kIHJlZ2lzdGVyIGl0c2VsZiBhcyBhIGNoaWxkIGl0ZW0uXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IFtdLCBwYXJlbnQ6IGluamVjdChJbmplY3RvcikgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IHBhcmVudE5hdkxpc3RJdGVtRGlyZWN0aXZlID0gaW5qZWN0KE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZSwge1xuICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFNldCBvZiBjaGlsZCBkaXJlY3RpdmVzLlxuICAgICAqIFVzZWQgdG8gYnVpbGQgaGllcmFyY2h5IHRyZWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2hpbGREaXJlY3RpdmVzID0gc2lnbmFsKG5ldyBTZXQ8TmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlPigpKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBOYXZpZ2F0aW9uIGxpc3QgaXRlbSBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgX2l0ZW06IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NvbnRlbnRDb250YWluZXIgPSBpbmplY3QoRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMucGFyZW50TmF2TGlzdEl0ZW1EaXJlY3RpdmU/LnJlZ2lzdGVyQ2hpbGREaXJlY3RpdmUodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGNoaWxkIGxpc3QgaXRlbSBjb21wb25lbnQgZm9yIGZ1cnRoZXIgdXNhZ2UuXG4gICAgICogQHBhcmFtIGl0ZW1cbiAgICAgKi9cbiAgICByZWdpc3Rlckl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW0gPSBpdGVtO1xuICAgICAgICB0aGlzLl9jb250ZW50Q29udGFpbmVyPy5yZWdpc3Rlckl0ZW0odGhpcy5faXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBjaGlsZCBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgdW5yZWdpc3Rlckl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW0gJiYgdGhpcy5fY29udGVudENvbnRhaW5lcj8udW5yZWdpc3Rlckl0ZW0odGhpcy5faXRlbSk7XG4gICAgICAgIHRoaXMuX2l0ZW0gPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBjaGlsZCBkaXJlY3RpdmUuXG4gICAgICovXG4gICAgcmVnaXN0ZXJDaGlsZERpcmVjdGl2ZShkaXJlY3RpdmU6IE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoaWxkRGlyZWN0aXZlcy51cGRhdGUoKGxpc3QpID0+IGxpc3QuYWRkKGRpcmVjdGl2ZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW0gJiYgdGhpcy5fY29udGVudENvbnRhaW5lcj8udW5yZWdpc3Rlckl0ZW0odGhpcy5faXRlbSk7XG4gICAgICAgIHRoaXMuX2l0ZW0gPSBudWxsO1xuICAgICAgICB0aGlzLmNoaWxkRGlyZWN0aXZlcygpLmNsZWFyKCk7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGJOYXZpZ2F0aW9uTGlzdEl0ZW1SZWZdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZTxUID0gYW55PiB7XG4gICAgLyoqIFR5cGUgYWxpYXMuICovXG4gICAgQElucHV0KClcbiAgICBmZGJOYXZpZ2F0aW9uTGlzdEl0ZW1SZWZBczogVDtcbiAgICAvKiogVGVtcGxhdGUgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IHRlbXBsYXRlUmVmID0gaW5qZWN0PFRlbXBsYXRlUmVmPFQ+PihUZW1wbGF0ZVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KGRpcjogTmF2aWdhdGlvbkxpc3RJdGVtUmVmRGlyZWN0aXZlPFQ+LCBjdHg6IHVua25vd24pOiBjdHggaXMgeyAkaW1wbGljaXQ6IFQgfSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiJdfQ==","export class FdbNavigationItemLink {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLWxpbmsuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL21vZGVscy9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLHFCQUFxQjtDQUsxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZkYk5hdmlnYXRpb25JdGVtTGluayBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWYge1xuICAgIGFic3RyYWN0IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTExpbmtFbGVtZW50PjtcbiAgICBhYnN0cmFjdCBpblBvcG92ZXI6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgaXNBY3RpdmUkOiBTaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG4gICAgYWJzdHJhY3Qgcm91dGVyTGluazogTnVsbGFibGU8Um91dGVyTGluaz47XG59XG4iXX0=","import { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, Directive, ElementRef, HostBinding, HostListener, Input, TemplateRef, ViewEncapsulation, booleanAttribute, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { of, startWith } from 'rxjs';\nimport { FdbNavigationItemLink } from '../../models/navigation-item-link.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class NavigationLinkRefDirective {\n constructor() {\n /** Link template ref. */\n this.templateRef = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationLinkRefDirective, isStandalone: true, selector: \"[fdbNavigationLinkRef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkRefDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationLinkRef]',\n standalone: true\n }]\n }] });\nexport class NavigationLinkComponent extends FdbNavigationItemLink {\n /** @hidden */\n get _tabIndex() {\n return this._listItemComponent?.popoverOpen$() || this._navigation.getActiveItem()?.link$() === this ? 0 : -1;\n }\n /** Whether the link is inside popover. */\n get inPopover() {\n return !!this.elementRef.nativeElement.parentElement?.classList.contains('fd-navigation__item--title');\n }\n /** @hidden */\n constructor() {\n super();\n /** Glyph font family */\n this.glyphFont = FD_DEFAULT_ICON_FONT_FAMILY;\n /** Whether the link is for the external resource. */\n this.external = false;\n /** Whether it's a quick create button. */\n this.quickCreate = false;\n /** Element reference. */\n this.elementRef = inject(ElementRef);\n /** @hidden */\n this._listItemComponent = inject(FdbNavigationListItem, {\n optional: true\n });\n /** Router link reference. Used to determine whether the list item should be rendered with external expansion button. */\n this.routerLink = inject(RouterLink, {\n optional: true,\n self: true\n });\n /** @hidden */\n this._routerLinkActive = inject(RouterLinkActive, {\n optional: true,\n self: true\n });\n /** @hidden */\n this._rtl = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._navigation = inject(FdbNavigation);\n this._listItemComponent?.registerLink(this);\n this.isActive$ = toSignal(this._routerLinkActive?.isActiveChange.pipe(startWith(this._routerLinkActive.isActive)) || of(false));\n }\n /** @hidden */\n _clickHandler() {\n if (this.inPopover || !this._listItemComponent?.isVisible$() || this._listItemComponent?.isOverflow$()) {\n this._navigation.closePopups();\n }\n // Ignore click if link has URL applied to it.\n if (this.routerLink) {\n return;\n }\n this._listItemComponent?.toggleExpanded();\n }\n /** @hidden */\n _keyDownHandler(event) {\n if (this.inPopover && KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n this._listItemComponent?.popoverLinkArrowDown();\n return;\n }\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n const expansionKey = this._rtl?.rtl.value ? RIGHT_ARROW : LEFT_ARROW;\n this._listItemComponent?.keyboardExpanded(KeyUtil.isKeyCode(event, expansionKey));\n }\n /** @hidden */\n ngOnDestroy() {\n this._listItemComponent?.unregisterLink(this);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationLinkComponent, isStandalone: true, selector: \"a[fdb-navigation-link], button[fdb-navigation-link]\", inputs: { class: \"class\", glyph: \"glyph\", glyphFont: \"glyphFont\", external: \"external\", quickCreate: [\"quickCreate\", \"quickCreate\", booleanAttribute] }, host: { listeners: { \"click\": \"_clickHandler()\", \"keydown\": \"_keyDownHandler($event)\" }, properties: { \"attr.role\": \"quickCreate ? \\\"button\\\" : \\\"link\\\"\", \"attr.tabindex\": \"this._tabIndex\" }, classAttribute: \"fd-navigation__link\" }, providers: [\n {\n provide: FdbNavigationItemLink,\n useExisting: NavigationLinkComponent\n }\n ], usesInheritance: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: \"@if (glyph) {\\n <fd-icon\\n [glyph]=\\\"glyph\\\"\\n [font]=\\\"glyphFont\\\"\\n class=\\\"fd-navigation__icon\\\"\\n [attr.role]=\\\"'presentation'\\\"\\n [ariaHidden]=\\\"true\\\"\\n ></fd-icon>\\n}\\n<span class=\\\"fd-navigation__text\\\">\\n <ng-content></ng-content>\\n</span>\\n@if (external) {\\n <span\\n class=\\\"fd-navigation__external-link-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"external link indicator\\\"\\n ></span>\\n}\\n<span\\n class=\\\"fd-navigation__selection-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"selection indicator\\\"\\n>\\n</span>\\n@if (_listItemComponent?.hasChildren$() && !inPopover && !routerLink) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"has children indicator, expanded\\\"\\n >\\n </span>\\n}\\n\", dependencies: [{ kind: \"component\", type: IconComponent, selector: \"fd-icon\", inputs: [\"glyph\", \"font\", \"color\", \"background\", \"class\", \"ariaLabel\", \"ariaHidden\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkComponent, decorators: [{\n type: Component,\n args: [{ selector: 'a[fdb-navigation-link], button[fdb-navigation-link]', imports: [IconComponent], hostDirectives: [RouterLinkActive], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n {\n provide: FdbNavigationItemLink,\n useExisting: NavigationLinkComponent\n }\n ], host: {\n class: 'fd-navigation__link',\n '[attr.role]': 'quickCreate ? \"button\" : \"link\"'\n }, template: \"@if (glyph) {\\n <fd-icon\\n [glyph]=\\\"glyph\\\"\\n [font]=\\\"glyphFont\\\"\\n class=\\\"fd-navigation__icon\\\"\\n [attr.role]=\\\"'presentation'\\\"\\n [ariaHidden]=\\\"true\\\"\\n ></fd-icon>\\n}\\n<span class=\\\"fd-navigation__text\\\">\\n <ng-content></ng-content>\\n</span>\\n@if (external) {\\n <span\\n class=\\\"fd-navigation__external-link-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"external link indicator\\\"\\n ></span>\\n}\\n<span\\n class=\\\"fd-navigation__selection-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"selection indicator\\\"\\n>\\n</span>\\n@if (_listItemComponent?.hasChildren$() && !inPopover && !routerLink) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"has children indicator, expanded\\\"\\n >\\n </span>\\n}\\n\" }]\n }], ctorParameters: () => [], propDecorators: { class: [{\n type: Input\n }], glyph: [{\n type: Input\n }], glyphFont: [{\n type: Input\n }], external: [{\n type: Input\n }], quickCreate: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], _tabIndex: [{\n type: HostBinding,\n args: ['attr.tabindex']\n }], _clickHandler: [{\n type: HostListener,\n args: ['click']\n }], _keyDownHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBWSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsYUFBYSxFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDbEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixD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aUM7cUJBQ25EO3dEQU1ELEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSzFCLFNBQVM7c0JBRHBCLFdBQVc7dUJBQUMsZUFBZTtnQkFvRHBCLGFBQWE7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTztnQkFjYixlQUFlO3NCQUR0QixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPV05fQVJST1csIExFRlRfQVJST1csIFJJR0hUX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgU2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEtleVV0aWwsIE51bGxhYmxlLCBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsnO1xuaW1wb3J0IHsgRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZLCBJY29uQ29tcG9uZW50LCBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IG9mLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25JdGVtTGluayB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRiTmF2aWdhdGlvbkxpbmtSZWZdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaW5rUmVmRGlyZWN0aXZlIHtcbiAgICAvKiogTGluayB0ZW1wbGF0ZSByZWYuICovXG4gICAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYVtmZGItbmF2aWdhdGlvbi1saW5rXSwgYnV0dG9uW2ZkYi1uYXZpZ2F0aW9uLWxpbmtdJyxcbiAgICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtSb3V0ZXJMaW5rQWN0aXZlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGZGJOYXZpZ2F0aW9uSXRlbUxpbmssXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkxpbmtDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLW5hdmlnYXRpb25fX2xpbmsnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAncXVpY2tDcmVhdGUgPyBcImJ1dHRvblwiIDogXCJsaW5rXCInXG4gICAgfSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlua0NvbXBvbmVudCBleHRlbmRzIEZkYk5hdmlnYXRpb25JdGVtTGluayBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIExpbmsgZ2x5cGggKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEdseXBoIGZvbnQgZmFtaWx5ICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaEZvbnQ6IEljb25Gb250ID0gRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpbmsgaXMgZm9yIHRoZSBleHRlcm5hbCByZXNvdXJjZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4dGVybmFsID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBpdCdzIGEgcXVpY2sgY3JlYXRlIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBxdWlja0NyZWF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIHByaXZhdGUgZ2V0IF90YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnBvcG92ZXJPcGVuJCgpIHx8IHRoaXMuX25hdmlnYXRpb24uZ2V0QWN0aXZlSXRlbSgpPy5saW5rJCgpID09PSB0aGlzID8gMCA6IC0xO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsaW5rIGlzIGluc2lkZSBwb3BvdmVyLiAqL1xuICAgIGdldCBpblBvcG92ZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucygnZmQtbmF2aWdhdGlvbl9faXRlbS0tdGl0bGUnKTtcbiAgICB9XG5cbiAgICAvKiogRWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxMaW5rRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBpc0FjdGl2ZSQ6IFNpZ25hbDxib29sZWFuIHwgdW5kZWZpbmVkPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2xpc3RJdGVtQ29tcG9uZW50ID0gaW5qZWN0KEZkYk5hdmlnYXRpb25MaXN0SXRlbSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIFJvdXRlciBsaW5rIHJlZmVyZW5jZS4gVXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgbGlzdCBpdGVtIHNob3VsZCBiZSByZW5kZXJlZCB3aXRoIGV4dGVybmFsIGV4cGFuc2lvbiBidXR0b24uICovXG4gICAgcmVhZG9ubHkgcm91dGVyTGluayA9IGluamVjdChSb3V0ZXJMaW5rLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBzZWxmOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlckxpbmtBY3RpdmUgPSBpbmplY3QoUm91dGVyTGlua0FjdGl2ZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGwgPSBpbmplY3QoUnRsU2VydmljZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uID0gaW5qZWN0KEZkYk5hdmlnYXRpb24pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnJlZ2lzdGVyTGluayh0aGlzKTtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSQgPSB0b1NpZ25hbChcbiAgICAgICAgICAgIHRoaXMuX3JvdXRlckxpbmtBY3RpdmU/LmlzQWN0aXZlQ2hhbmdlLnBpcGUoc3RhcnRXaXRoKHRoaXMuX3JvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmUpKSB8fCBvZihmYWxzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBwcml2YXRlIF9jbGlja0hhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluUG9wb3ZlciB8fCAhdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LmlzVmlzaWJsZSQoKSB8fCB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8uaXNPdmVyZmxvdyQoKSkge1xuICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5jbG9zZVBvcHVwcygpO1xuICAgICAgICB9XG4gICAgICAgIC8vIElnbm9yZSBjbGljayBpZiBsaW5rIGhhcyBVUkwgYXBwbGllZCB0byBpdC5cbiAgICAgICAgaWYgKHRoaXMucm91dGVyTGluaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py50b2dnbGVFeHBhbmRlZCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBfa2V5RG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5Qb3BvdmVyICYmIEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBET1dOX0FSUk9XKSkge1xuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnBvcG92ZXJMaW5rQXJyb3dEb3duKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFJJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4cGFuc2lvbktleSA9IHRoaXMuX3J0bD8ucnRsLnZhbHVlID8gUklHSFRfQVJST1cgOiBMRUZUX0FSUk9XO1xuXG4gICAgICAgIHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py5rZXlib2FyZEV4cGFuZGVkKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBleHBhbnNpb25LZXkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8udW5yZWdpc3RlckxpbmsodGhpcyk7XG4gICAgfVxufVxuIiwiQGlmIChnbHlwaCkge1xuICAgIDxmZC1pY29uXG4gICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgIFtmb250XT1cImdseXBoRm9udFwiXG4gICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9faWNvblwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwiJ3ByZXNlbnRhdGlvbidcIlxuICAgICAgICBbYXJpYUhpZGRlbl09XCJ0cnVlXCJcbiAgICA+PC9mZC1pY29uPlxufVxuPHNwYW4gY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX190ZXh0XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zcGFuPlxuQGlmIChleHRlcm5hbCkge1xuICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fZXh0ZXJuYWwtbGluay1pbmRpY2F0b3JcIlxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cImV4dGVybmFsIGxpbmsgaW5kaWNhdG9yXCJcbiAgICA+PC9zcGFuPlxufVxuPHNwYW5cbiAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX3NlbGVjdGlvbi1pbmRpY2F0b3JcIlxuICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgYXJpYS1sYWJlbD1cInNlbGVjdGlvbiBpbmRpY2F0b3JcIlxuPlxuPC9zcGFuPlxuQGlmIChfbGlzdEl0ZW1Db21wb25lbnQ/Lmhhc0NoaWxkcmVuJCgpICYmICFpblBvcG92ZXIgJiYgIXJvdXRlckxpbmspIHtcbiAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2hhcy1jaGlsZHJlbi1pbmRpY2F0b3JcIlxuICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cImhhcyBjaGlsZHJlbiBpbmRpY2F0b3IsIGV4cGFuZGVkXCJcbiAgICA+XG4gICAgPC9zcGFuPlxufVxuIl19","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, DestroyRef, Directive, ElementRef, Input, NgZone, QueryList, ViewChild, ViewEncapsulation, booleanAttribute, computed, effect, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NestedButtonDirective } from '@fundamental-ngx/btp/button';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { PopoverBodyComponent, PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { asyncScheduler, filter, observeOn, startWith, take } from 'rxjs';\nimport { NavigationListItemDirective } from '../../directives/navigation-list-item-ref.directive';\nimport { FdbNavigationContentContainer } from '../../models/navigation-content-container.class';\nimport { FdbNavigationItemLink } from '../../models/navigation-item-link.class';\nimport { FdbNavigationListItem, FdbNavigationListItemCmp, LIST_ITEM_CLASS } from '../../models/navigation-list-item.class';\nimport { NavigationService } from '../../services/navigation.service';\nimport { NavigationLinkRefDirective } from '../navigation-link/navigation-link.component';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListItemMarkerDirective {\n /** @hidden */\n constructor() {\n /** Element reference. */\n this.elementRef = inject(ElementRef);\n inject(NavigationListItemComponent).marker = this;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemMarkerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListItemMarkerDirective, isStandalone: true, selector: \"[fdbNavigationListItemMarker]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemMarkerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationListItemMarker]',\n standalone: true\n }]\n }], ctorParameters: () => [] });\nexport class NavigationListItemComponent extends FdbNavigationListItem {\n /** @hidden */\n set class(value) {\n this._class$.set(value);\n }\n get class() {\n return this._class$();\n }\n /** Whether the list item represents \"Home\" item. */\n set home(value) {\n this._home$.set(value);\n }\n get home() {\n return this._home$();\n }\n /** Whether the list item represents \"Quick create\" button. */\n set quickCreate(value) {\n this.quickCreate$.set(value);\n }\n get quickCreate() {\n return this.quickCreate$();\n }\n /** Whether the list item should be rendered as a separator */\n set separator(value) {\n this._separator$.set(value);\n }\n get separator() {\n return this._separator$();\n }\n /** Whether the list item should be rendered as a spacer */\n set spacer(value) {\n this._spacer$.set(value);\n }\n get spacer() {\n return this._spacer$();\n }\n /** Whether the list item should be rendered as a group. */\n set group(group) {\n this.isGroup$.set(group);\n }\n get group() {\n return this.isGroup$();\n }\n /** Whether the list item is expanded. */\n set expanded(expanded) {\n this.expanded$.set(expanded);\n }\n get expanded() {\n return this.expanded$();\n }\n /** Whether the item should be marked as selected. */\n set selected(selected) {\n this.selected$.set(selected);\n }\n get selected() {\n return this.selected$();\n }\n /** Link reference. */\n set link(value) {\n this.link$.set(value);\n }\n /** Renderer template reference. */\n set renderer(renderer) {\n this._onZoneStable().subscribe(() => {\n this.renderer$.set(renderer || null);\n });\n }\n /**\n * Whether the item is navigatable via the keyboard.\n */\n get skipNavigation() {\n return this.spacer || this.separator;\n }\n /** @hidden */\n get parentListItem() {\n return (this._parentNavigationListItemDirective?.parentNavListItemDirective?._item || this.parentListItemComponent);\n }\n /** @hidden */\n constructor() {\n super();\n /** Type of the list item. Whether its a standard item or a \"show more\" button container. */\n this.type = 'item';\n /** @hidden */\n this._toggleIcon$ = computed(() => {\n if (this.expandedAttr$()) {\n return 'slim-arrow-down';\n }\n return this._rtl$() ? 'slim-arrow-left' : 'slim-arrow-right';\n }, ...(ngDevMode ? [{ debugName: \"_toggleIcon$\" }] : []));\n /** List item placement container. */\n this.placementContainer = inject(FdbNavigationContentContainer, {\n skipSelf: true,\n optional: true\n }) || undefined;\n /**\n * Whether the list item is visible in the main navigation list container.\n */\n this.isVisible$ = computed(() => {\n if (this.isOverflow$()) {\n return false;\n }\n if (!this.parentListItem) {\n return this.isGroup$() ? !this.navigation.isSnapped$() : true;\n }\n if (this.navigation.isSnapped$()) {\n return this.normalizedLevel$() < 3;\n }\n return this.parentListItem.isVisible$() && this.parentListItem.expanded$();\n }, ...(ngDevMode ? [{ debugName: \"isVisible$\" }] : []));\n /** aria-expanded attribute value. */\n this.expandedAttr$ = computed(() => this.navigation.isSnapped$() ? this.popoverOpen$() && !this.isOverflow$() : this.expanded$(), ...(ngDevMode ? [{ debugName: \"expandedAttr$\" }] : []));\n /** CSS Class signal. */\n this.class$ = computed(() => [\n LIST_ITEM_CLASS,\n this._class$(),\n this._separator$() ? `${LIST_ITEM_CLASS}--separator` : '',\n this._spacer$() ? `${LIST_ITEM_CLASS}--spacer` : '',\n this._home$() ? `${LIST_ITEM_CLASS}--home` : ''\n ]\n .filter((k) => !!k)\n .join(' '), ...(ngDevMode ? [{ debugName: \"class$\" }] : []));\n /** Selected Signal. */\n this.selected$ = signal(false, ...(ngDevMode ? [{ debugName: \"selected$\" }] : []));\n /** @hidden */\n this.quickCreate$ = signal(false, ...(ngDevMode ? [{ debugName: \"quickCreate$\" }] : []));\n /**\n * @hidden\n * Popover position. Changes based on rtl value.\n */\n this._popoverPlacement$ = computed(() => (this._rtl$() ? 'left-start' : 'right-start'), ...(ngDevMode ? [{ debugName: \"_popoverPlacement$\" }] : []));\n /** Optional parent list component. */\n this.parentListItemComponent = inject(FdbNavigationListItemCmp, {\n optional: true,\n skipSelf: true\n });\n /** @hidden */\n this._home$ = signal(false, ...(ngDevMode ? [{ debugName: \"_home$\" }] : []));\n /** @hidden */\n this._class$ = signal(null, ...(ngDevMode ? [{ debugName: \"_class$\" }] : []));\n /** @hidden */\n this._separator$ = signal(false, ...(ngDevMode ? [{ debugName: \"_separator$\" }] : []));\n /** @hidden */\n this._spacer$ = signal(false, ...(ngDevMode ? [{ debugName: \"_spacer$\" }] : []));\n /** @hidden */\n this._links = [];\n /** @hidden */\n this._childLists = [];\n /** @hidden */\n this._zone = inject(NgZone);\n this._rtlService = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"_rtl$\" }] : []));\n /**\n * @hidden\n * Directive that used during data-driven rendering.\n */\n this._parentNavigationListItemDirective = inject(NavigationListItemDirective, { optional: true });\n /** @hidden */\n this._parentNavigationService = inject(NavigationService, {\n skipSelf: true,\n optional: true\n });\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n effect(() => {\n if (this.popoverOpen$()) {\n const listItems = this.listItems$().filter(Boolean);\n this._keyManager = new FocusKeyManager(listItems)\n .withVerticalOrientation()\n .skipPredicate((item) => item.skipNavigation);\n }\n else {\n this._keyManager?.destroy();\n }\n });\n // We need to track child directives change and set list items based on that.\n effect(() => {\n if (!this._parentNavigationListItemDirective?.childDirectives()) {\n return;\n }\n const children = this._parentNavigationListItemDirective.childDirectives();\n const mappedItems = Array.from(children).map((child) => child._item);\n this.listItems$.set(mappedItems);\n });\n this._parentNavigationListItemDirective?.registerItem(this);\n this.navigation.closeAllPopups.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.popoverOpen$.set(false);\n });\n }\n /** @hidden */\n ngOnDestroy() {\n this._keyManager?.destroy();\n }\n /** @hidden */\n _focusBeforeList() {\n if (this.popoverOpen$()) {\n this._focusPopoverLink();\n }\n }\n /**\n * @hidden\n * When item is focused, we notify list container about it to update active index in FocusKeyManager.\n */\n _focusInHandler() {\n if (!this.parentListItem?.popoverOpen$() && !this.isOverflow$()) {\n this.navigation.setActiveItem(this);\n return;\n }\n this._parentNavigationService?.currentItem$.next(this);\n }\n /** @hidden */\n ngAfterViewInit() {\n this.listItems.changes\n .pipe(filter(() => !this._parentNavigationListItemDirective), startWith(null), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.listItems$.set(this.listItems.toArray());\n });\n }\n /** @hidden */\n registerLink(link) {\n if (this._links.indexOf(link) === -1) {\n this._links.push(link);\n }\n }\n /** @hidden */\n unregisterLink(link) {\n this._links.splice(this._links.indexOf(link), 1);\n }\n /** @hidden */\n registerChildList(list) {\n if (this._childLists.includes(list)) {\n return;\n }\n this._childLists.push(list);\n }\n /** @hidden */\n unregisterChildList(list) {\n if (!this._childLists.includes(list)) {\n return;\n }\n this._childLists.splice(this._childLists.indexOf(list), 1);\n }\n /** @hidden */\n handleHorizontalNavigation(isExpand) {\n console.log(isExpand);\n }\n /**\n * Callback method when Arrow down is pressed on the link in popover.\n */\n popoverLinkArrowDown() {\n this._keyManager?.setActiveItem(0);\n }\n /** @Hidden */\n _innerListKeydown(event) {\n if (!this.popoverOpen$()) {\n return;\n }\n if (KeyUtil.isKeyCode(event, UP_ARROW) && this._keyManager?.activeItemIndex === 0) {\n this._focusPopoverLink();\n return;\n }\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n this._keyManager?.onKeydown(event);\n return;\n }\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n const isGoBack = KeyUtil.isKeyCode(event, this._rtl$() ? RIGHT_ARROW : LEFT_ARROW);\n if (!isGoBack) {\n return;\n }\n this._snappedItemKeyboardExpandedHandler(false);\n }\n /** Toggles expanded state of the item. */\n toggleExpanded() {\n if (!this.hasChildren$()) {\n return;\n }\n this.expanded$.update((expanded) => !expanded);\n }\n /** Callback method when user used keyboard arrows to expand/collapse list item. */\n keyboardExpanded(shouldExpand) {\n if (this.isOverflow$()) {\n this._overflowItemKeyboardExpandedHandler(shouldExpand);\n }\n else if (this.navigation.isSnapped$()) {\n this._snappedItemKeyboardExpandedHandler(shouldExpand);\n }\n else {\n this._visibleItemKeyboardExpandedHandler(shouldExpand);\n }\n }\n /**\n * Focus method implementation.\n * Used by main navigation component FocusKeyManager.\n * @param origin\n */\n focus() {\n // If popover is open, focus will be automatically shifted to cloned link.\n if (this.popoverOpen$() && !this.isOverflow$()) {\n return;\n }\n this.focusLink();\n }\n /**\n * Focuses inner link element.\n * Optionally closes the popover.\n */\n focusLink(closePopover = false) {\n this.link$()?.elementRef.nativeElement.focus();\n if (closePopover) {\n this.popoverOpen$.set(false);\n }\n }\n /** @hidden */\n _onPopoverOpen(isOpen, popover) {\n this.popoverOpen$.set(isOpen);\n if (!isOpen) {\n return;\n }\n this._onZoneStable().subscribe(() => {\n popover.popoverBody._focusFirstTabbableElement(true);\n });\n }\n _focusPopoverLink() {\n this._links.find((link) => link.inPopover)?.elementRef.nativeElement.focus();\n }\n /** @hidden */\n _visibleItemKeyboardExpandedHandler(shouldExpand) {\n if (!this.hasChildren$()) {\n if (!shouldExpand) {\n this.parentListItem?.focus();\n }\n return;\n }\n if (!shouldExpand) {\n // If item already collapsed, shift focus to parent link\n if (!this.expanded$()) {\n this.parentListItem?.focus();\n return;\n }\n this.expanded$.set(false);\n }\n else {\n if (this.expanded$()) {\n this.listItems.first?.focus();\n return;\n }\n this.expanded$.set(true);\n }\n }\n /** @hidden */\n _snappedItemKeyboardExpandedHandler(shouldExpand) {\n if (!this.hasChildren$()) {\n return;\n }\n if (shouldExpand && !this.popoverOpen$()) {\n this.popoverOpen$.set(true);\n }\n if (!shouldExpand && this.popoverOpen$()) {\n this.popoverOpen$.set(false);\n this.link$()?.elementRef.nativeElement.focus();\n }\n }\n /**\n * @hidden\n * Method used to handle keyboard navigation for list item that is inside overflow container.\n */\n _overflowItemKeyboardExpandedHandler(shouldExpand) {\n if (shouldExpand && this._childLists.length > 0) {\n const firstList = this._childLists[0];\n firstList.setActiveItemIndex(0);\n }\n if (shouldExpand && !this.popoverOpen$()) {\n this.popoverOpen$.set(true);\n }\n if (!shouldExpand && this.popoverOpen$()) {\n this.popoverOpen$.set(false);\n this.link?.elementRef.nativeElement.focus();\n }\n }\n /** @hidden */\n _onZoneStable() {\n return this._zone.onStable.pipe(startWith(this._zone.isStable), observeOn(asyncScheduler), take(1), takeUntilDestroyed(this._destroyRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationListItemComponent, isStandalone: true, selector: \"fdb-navigation-list-item\", inputs: { class: \"class\", home: [\"home\", \"home\", booleanAttribute], quickCreate: [\"quickCreate\", \"quickCreate\", booleanAttribute], separator: [\"separator\", \"separator\", booleanAttribute], spacer: [\"spacer\", \"spacer\", booleanAttribute], group: [\"group\", \"group\", booleanAttribute], expanded: [\"expanded\", \"expanded\", booleanAttribute], selected: [\"selected\", \"selected\", booleanAttribute] }, providers: [\n NavigationService,\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemComponent\n },\n {\n provide: FdbNavigationListItemCmp,\n useExisting: NavigationListItemComponent\n }\n ], queries: [{ propertyName: \"link\", first: true, predicate: FdbNavigationItemLink, descendants: true }, { propertyName: \"linkRef\", first: true, predicate: NavigationLinkRefDirective, descendants: true }, { propertyName: \"listItems\", predicate: FdbNavigationListItem }], viewQueries: [{ propertyName: \"renderer\", first: true, predicate: [\"renderer\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<!-- General renderer. -->\\n<ng-template #renderer>\\n @if (!separator) {\\n <div\\n class=\\\"fd-navigation__item\\\"\\n [class.fd-navigation__item--group]=\\\"isGroup$()\\\"\\n [class.fd-navigation__item--create]=\\\"quickCreate$()\\\"\\n [class.fd-navigation__item--child]=\\\"normalizedLevel$() > 2\\\"\\n [class.fd-navigation__item--overflow]=\\\"isOverflow$()\\\"\\n [class.fd-navigation__item--with-expander]=\\\"!!link$()?.routerLink && hasChildren$()\\\"\\n [attr.aria-level]=\\\"level$()\\\"\\n [attr.aria-selected]=\\\"isActiveAttr$()\\\"\\n [attr.aria-expanded]=\\\"expandedAttr$()\\\"\\n [attr.normalized-level]=\\\"normalizedLevel$()\\\"\\n (focusin)=\\\"_focusInHandler()\\\"\\n fdbNavigationListItemMarker\\n #itemContainer\\n >\\n @if (!navigation.isSnapped$() || !hasChildren$()) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"snappedNavigationItemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: itemContainer }\\\"\\n ></ng-template>\\n }\\n </div>\\n @if (isOverflow$() && hasChildren$()) {\\n <ng-template [ngTemplateOutlet]=\\\"overflowItemListRenderer\\\"></ng-template>\\n }\\n @if (!navigation.isSnapped$()) {\\n <ng-template [ngTemplateOutlet]=\\\"listRenderer\\\"></ng-template>\\n }\\n }\\n</ng-template>\\n<!-- Snapped navigation list item renderer. Implicit context points to the popover trigger element. -->\\n<ng-template #snappedNavigationItemRenderer let-itemContainer>\\n <ng-template [ngTemplateOutlet]=\\\"linkRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"></ng-template>\\n @if (!isOverflow$()) {\\n <fd-popover\\n #popover\\n [noArrow]=\\\"false\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"_onPopoverOpen($event, popover)\\\"\\n [trigger]=\\\"itemContainer\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [restoreFocusOnClose]=\\\"false\\\"\\n [focusTrapped]=\\\"true\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"navigation.classList$()\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n </fd-popover-body>\\n </fd-popover>\\n }\\n</ng-template>\\n<!-- Generic link renderer. -->\\n<ng-template #linkRenderer let-showToggleButton>\\n <ng-template [ngTemplateOutlet]=\\\"linkRef?.templateRef || null\\\"></ng-template>\\n @if (!!link$()?.routerLink && hasChildren$()) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"button\\\"\\n aria-label=\\\"expand/collapse children\\\"\\n (click)=\\\"toggleExpanded()\\\"\\n ></span>\\n }\\n</ng-template>\\n<!-- Generic list renderer. Used when navigation is not snapped. -->\\n<ng-template #listRenderer>\\n @if (isGroup$() && normalizedLevel$() === 1) {\\n <ul fdb-navigation-list [listItems]=\\\"listItems$()\\\" parentItems></ul>\\n } @else {\\n <div class=\\\"fd-navigation__list-container\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n</ng-template>\\n<!-- Template used for rendering sublist of items for the list item that is currently in overflow menu. -->\\n<ng-template #overflowItemListRenderer>\\n <div class=\\\"fd-navigation__list-container fd-navigation__list-container--submenu fd-menu__sublist\\\">\\n <ng-template [ngTemplateOutlet]=\\\"wrapperRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"></ng-template>\\n </div>\\n</ng-template>\\n<!-- Generic list renderer. Implicit context defines whether the inner list should handle keyboard navigation by its own. -->\\n<ng-template #wrapperRenderer let-keyboardNavigation>\\n <div class=\\\"fd-navigation__list-wrapper\\\">\\n @if (navigation.isSnapped$() && !isOverflow$()) {\\n <!-- If opener link itself is active, project aria-selected attribute to link repeater too. -->\\n <div\\n class=\\\"fd-navigation__item fd-navigation__item--title fd-navigation__item--child\\\"\\n [attr.aria-selected]=\\\"link$()?.isActive$() || selected$()\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n <ul\\n fdb-navigation-list\\n [listItems]=\\\"listItems$() || []\\\"\\n [childItems]=\\\"normalizedLevel$() > 2\\\"\\n (keydown)=\\\"(false)\\\"\\n (focusBefore)=\\\"_focusBeforeList()\\\"\\n [withKeyboardNavigation]=\\\"keyboardNavigation\\\"\\n ></ul>\\n </div>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\"], outputs: [\"focusBefore\", \"focusAfter\"] }, { kind: \"component\", type: PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: PopoverBodyComponent, selector: \"fd-popover-body\", inputs: [\"minWidth\", \"maxWidth\", \"minHeight\", \"maxHeight\"] }, { kind: \"directive\", type: NavigationListItemMarkerDirective, selector: \"[fdbNavigationListItemMarker]\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdb-navigation-list-item', imports: [\n NgTemplateOutlet,\n NavigationListComponent,\n PopoverComponent,\n PopoverBodyComponent,\n NavigationListItemMarkerDirective,\n IconComponent,\n ButtonComponent,\n NestedButtonDirective,\n NgClass\n ], providers: [\n NavigationService,\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemComponent\n },\n {\n provide: FdbNavigationListItemCmp,\n useExisting: NavigationListItemComponent\n }\n ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"<!-- General renderer. -->\\n<ng-template #renderer>\\n @if (!separator) {\\n <div\\n class=\\\"fd-navigation__item\\\"\\n [class.fd-navigation__item--group]=\\\"isGroup$()\\\"\\n [class.fd-navigation__item--create]=\\\"quickCreate$()\\\"\\n [class.fd-navigation__item--child]=\\\"normalizedLevel$() > 2\\\"\\n [class.fd-navigation__item--overflow]=\\\"isOverflow$()\\\"\\n [class.fd-navigation__item--with-expander]=\\\"!!link$()?.routerLink && hasChildren$()\\\"\\n [attr.aria-level]=\\\"level$()\\\"\\n [attr.aria-selected]=\\\"isActiveAttr$()\\\"\\n [attr.aria-expanded]=\\\"expandedAttr$()\\\"\\n [attr.normalized-level]=\\\"normalizedLevel$()\\\"\\n (focusin)=\\\"_focusInHandler()\\\"\\n fdbNavigationListItemMarker\\n #itemContainer\\n >\\n @if (!navigation.isSnapped$() || !hasChildren$()) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"snappedNavigationItemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: itemContainer }\\\"\\n ></ng-template>\\n }\\n </div>\\n @if (isOverflow$() && hasChildren$()) {\\n <ng-template [ngTemplateOutlet]=\\\"overflowItemListRenderer\\\"></ng-template>\\n }\\n @if (!navigation.isSnapped$()) {\\n <ng-template [ngTemplateOutlet]=\\\"listRenderer\\\"></ng-template>\\n }\\n }\\n</ng-template>\\n<!-- Snapped navigation list item renderer. Implicit context points to the popover trigger element. -->\\n<ng-template #snappedNavigationItemRenderer let-itemContainer>\\n <ng-template [ngTemplateOutlet]=\\\"linkRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"></ng-template>\\n @if (!isOverflow$()) {\\n <fd-popover\\n #popover\\n [noArrow]=\\\"false\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"_onPopoverOpen($event, popover)\\\"\\n [trigger]=\\\"itemContainer\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [restoreFocusOnClose]=\\\"false\\\"\\n [focusTrapped]=\\\"true\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"navigation.classList$()\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n </fd-popover-body>\\n </fd-popover>\\n }\\n</ng-template>\\n<!-- Generic link renderer. -->\\n<ng-template #linkRenderer let-showToggleButton>\\n <ng-template [ngTemplateOutlet]=\\\"linkRef?.templateRef || null\\\"></ng-template>\\n @if (!!link$()?.routerLink && hasChildren$()) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"button\\\"\\n aria-label=\\\"expand/collapse children\\\"\\n (click)=\\\"toggleExpanded()\\\"\\n ></span>\\n }\\n</ng-template>\\n<!-- Generic list renderer. Used when navigation is not snapped. -->\\n<ng-template #listRenderer>\\n @if (isGroup$() && normalizedLevel$() === 1) {\\n <ul fdb-navigation-list [listItems]=\\\"listItems$()\\\" parentItems></ul>\\n } @else {\\n <div class=\\\"fd-navigation__list-container\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n</ng-template>\\n<!-- Template used for rendering sublist of items for the list item that is currently in overflow menu. -->\\n<ng-template #overflowItemListRenderer>\\n <div class=\\\"fd-navigation__list-container fd-navigation__list-container--submenu fd-menu__sublist\\\">\\n <ng-template [ngTemplateOutlet]=\\\"wrapperRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"></ng-template>\\n </div>\\n</ng-template>\\n<!-- Generic list renderer. Implicit context defines whether the inner list should handle keyboard navigation by its own. -->\\n<ng-template #wrapperRenderer let-keyboardNavigation>\\n <div class=\\\"fd-navigation__list-wrapper\\\">\\n @if (navigation.isSnapped$() && !isOverflow$()) {\\n <!-- If opener link itself is active, project aria-selected attribute to link repeater too. -->\\n <div\\n class=\\\"fd-navigation__item fd-navigation__item--title fd-navigation__item--child\\\"\\n [attr.aria-selected]=\\\"link$()?.isActive$() || selected$()\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n <ul\\n fdb-navigation-list\\n [listItems]=\\\"listItems$() || []\\\"\\n [childItems]=\\\"normalizedLevel$() > 2\\\"\\n (keydown)=\\\"(false)\\\"\\n (focusBefore)=\\\"_focusBeforeList()\\\"\\n [withKeyboardNavigation]=\\\"keyboardNavigation\\\"\\n ></ul>\\n </div>\\n</ng-template>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { class: [{\n type: Input\n }], home: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], quickCreate: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], separator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], spacer: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], group: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], expanded: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selected: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], listItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: false }]\n }], link: [{\n type: ContentChild,\n args: [FdbNavigationItemLink]\n }], linkRef: [{\n type: ContentChild,\n args: [NavigationLinkRefDirective]\n }], renderer: [{\n type: ViewChild,\n args: ['renderer']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbS9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1pdGVtL25hdmlnYXRpb24tbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBaUIsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUs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Z0JBQWdCLEVBQUU7Z0JBVWxDLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFXbEMsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVdsQyxRQUFRO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBV3RDLFNBQVM7c0JBRFIsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7Z0JBSzFELElBQUk7c0JBRFAsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBU25DLE9BQU87c0JBRE4sWUFBWTt1QkFBQywwQkFBMEI7Z0JBS3BDLFFBQVE7c0JBRFgsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgY29tcHV0ZWQsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOZXN0ZWRCdXR0b25EaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2J0cC9idXR0b24nO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiwgS2V5VXRpbCwgTnVsbGFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvaWNvbic7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIsIGZpbHRlciwgb2JzZXJ2ZU9uLCBzdGFydFdpdGgsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi1saXN0LWl0ZW0tcmVmLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWNvbnRlbnQtY29udGFpbmVyLmNsYXNzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25JdGVtTGluayB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcyc7XG5pbXBvcnQge1xuICAgIEZkYk5hdmlnYXRpb25MaXN0SXRlbSxcbiAgICBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1DbXAsXG4gICAgTElTVF9JVEVNX0NMQVNTXG59IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jbGFzcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTGlua1JlZkRpcmVjdGl2ZSB9IGZyb20gJy4uL25hdmlnYXRpb24tbGluay9uYXZpZ2F0aW9uLWxpbmsuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGJOYXZpZ2F0aW9uTGlzdEl0ZW1NYXJrZXJdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaXN0SXRlbU1hcmtlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWYge1xuICAgIC8qKiBFbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGluamVjdChOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQpLm1hcmtlciA9IHRoaXM7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkYi1uYXZpZ2F0aW9uLWxpc3QtaXRlbScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICAgICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgICAgIE5hdmlnYXRpb25MaXN0SXRlbU1hcmtlckRpcmVjdGl2ZSxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBOZXN0ZWRCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3NcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZkYk5hdmlnYXRpb25MaXN0SXRlbSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ21wLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIEZkYk5hdmlnYXRpb25MaXN0SXRlbSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjbGFzcyh2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9jbGFzcyQuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgY2xhc3MoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzcyQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIHJlcHJlc2VudHMgXCJIb21lXCIgaXRlbS4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgaG9tZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9ob21lJC5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBob21lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faG9tZSQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIHJlcHJlc2VudHMgXCJRdWljayBjcmVhdGVcIiBidXR0b24uICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHF1aWNrQ3JlYXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMucXVpY2tDcmVhdGUkLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHF1aWNrQ3JlYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWlja0NyZWF0ZSQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIHNob3VsZCBiZSByZW5kZXJlZCBhcyBhIHNlcGFyYXRvciAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBzZXBhcmF0b3IodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2VwYXJhdG9yJC5zZXQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgc2VwYXJhdG9yKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VwYXJhdG9yJCgpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW0gc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGEgc3BhY2VyICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHNwYWNlcih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zcGFjZXIkLnNldCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzcGFjZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGFjZXIkKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3QgaXRlbSBzaG91bGQgYmUgcmVuZGVyZWQgYXMgYSBncm91cC4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgZ3JvdXAoZ3JvdXA6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0dyb3VwJC5zZXQoZ3JvdXApO1xuICAgIH1cblxuICAgIGdldCBncm91cCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNHcm91cCQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIGlzIGV4cGFuZGVkLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBleHBhbmRlZChleHBhbmRlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmV4cGFuZGVkJC5zZXQoZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kZWQkKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gc2hvdWxkIGJlIG1hcmtlZCBhcyBzZWxlY3RlZC4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCQuc2V0KHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkJCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKiBMaW5rIHJlZmVyZW5jZS4gKi9cbiAgICBAQ29udGVudENoaWxkKEZkYk5hdmlnYXRpb25JdGVtTGluaylcbiAgICBzZXQgbGluayh2YWx1ZTogTnVsbGFibGU8RmRiTmF2aWdhdGlvbkl0ZW1MaW5rPikge1xuICAgICAgICB0aGlzLmxpbmskLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTGluayB0ZW1wbGF0ZSByZWZlcmVuY2UuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChOYXZpZ2F0aW9uTGlua1JlZkRpcmVjdGl2ZSlcbiAgICBsaW5rUmVmOiBOdWxsYWJsZTxOYXZpZ2F0aW9uTGlua1JlZkRpcmVjdGl2ZT47XG5cbiAgICAvKiogUmVuZGVyZXIgdGVtcGxhdGUgcmVmZXJlbmNlLiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3JlbmRlcmVyJylcbiAgICBzZXQgcmVuZGVyZXIocmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fb25ab25lU3RhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIkLnNldChyZW5kZXJlciB8fCBudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIFR5cGUgb2YgdGhlIGxpc3QgaXRlbS4gV2hldGhlciBpdHMgYSBzdGFuZGFyZCBpdGVtIG9yIGEgXCJzaG93IG1vcmVcIiBidXR0b24gY29udGFpbmVyLiAqL1xuICAgIHJlYWRvbmx5IHR5cGU6ICdpdGVtJyB8ICdzaG93TW9yZScgPSAnaXRlbSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90b2dnbGVJY29uJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWRBdHRyJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NsaW0tYXJyb3ctZG93bic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bCQoKSA/ICdzbGltLWFycm93LWxlZnQnIDogJ3NsaW0tYXJyb3ctcmlnaHQnO1xuICAgIH0pO1xuXG4gICAgLyoqIExpc3QgaXRlbSBwbGFjZW1lbnQgY29udGFpbmVyLiAqL1xuICAgIHJlYWRvbmx5IHBsYWNlbWVudENvbnRhaW5lciA9XG4gICAgICAgIGluamVjdChGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciwge1xuICAgICAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgICAgICB9KSB8fCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW0gaXMgdmlzaWJsZSBpbiB0aGUgbWFpbiBuYXZpZ2F0aW9uIGxpc3QgY29udGFpbmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzVmlzaWJsZSQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRMaXN0SXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNHcm91cCQoKSA/ICF0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpIDogdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkTGV2ZWwkKCkgPCAzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50TGlzdEl0ZW0uaXNWaXNpYmxlJCgpICYmIHRoaXMucGFyZW50TGlzdEl0ZW0uZXhwYW5kZWQkKCk7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBpdGVtIGlzIG5hdmlnYXRhYmxlIHZpYSB0aGUga2V5Ym9hcmQuXG4gICAgICovXG4gICAgZ2V0IHNraXBOYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zcGFjZXIgfHwgdGhpcy5zZXBhcmF0b3I7XG4gICAgfVxuXG4gICAgLyoqIGFyaWEtZXhwYW5kZWQgYXR0cmlidXRlIHZhbHVlLiAqL1xuICAgIHJlYWRvbmx5IGV4cGFuZGVkQXR0ciQgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpID8gdGhpcy5wb3BvdmVyT3BlbiQoKSAmJiAhdGhpcy5pc092ZXJmbG93JCgpIDogdGhpcy5leHBhbmRlZCQoKVxuICAgICk7XG5cbiAgICAvKiogQ1NTIENsYXNzIHNpZ25hbC4gKi9cbiAgICByZWFkb25seSBjbGFzcyQgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICBbXG4gICAgICAgICAgICBMSVNUX0lURU1fQ0xBU1MsXG4gICAgICAgICAgICB0aGlzLl9jbGFzcyQoKSxcbiAgICAgICAgICAgIHRoaXMuX3NlcGFyYXRvciQoKSA/IGAke0xJU1RfSVRFTV9DTEFTU30tLXNlcGFyYXRvcmAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuX3NwYWNlciQoKSA/IGAke0xJU1RfSVRFTV9DTEFTU30tLXNwYWNlcmAgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuX2hvbWUkKCkgPyBgJHtMSVNUX0lURU1fQ0xBU1N9LS1ob21lYCA6ICcnXG4gICAgICAgIF1cbiAgICAgICAgICAgIC5maWx0ZXIoKGspID0+ICEhaylcbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICApO1xuXG4gICAgLyoqIFNlbGVjdGVkIFNpZ25hbC4gKi9cbiAgICByZWFkb25seSBzZWxlY3RlZCQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBxdWlja0NyZWF0ZSQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBvcG92ZXIgcG9zaXRpb24uIENoYW5nZXMgYmFzZWQgb24gcnRsIHZhbHVlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9wb3BvdmVyUGxhY2VtZW50JCA9IGNvbXB1dGVkPFBsYWNlbWVudD4oKCkgPT4gKHRoaXMuX3J0bCQoKSA/ICdsZWZ0LXN0YXJ0JyA6ICdyaWdodC1zdGFydCcpKTtcblxuICAgIC8qKiBPcHRpb25hbCBwYXJlbnQgbGlzdCBjb21wb25lbnQuICovXG4gICAgcmVhZG9ubHkgcGFyZW50TGlzdEl0ZW1Db21wb25lbnQgPSBpbmplY3QoRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ21wLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBza2lwU2VsZjogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgcGFyZW50TGlzdEl0ZW0oKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLl9wYXJlbnROYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmU/LnBhcmVudE5hdkxpc3RJdGVtRGlyZWN0aXZlPy5faXRlbSB8fCB0aGlzLnBhcmVudExpc3RJdGVtQ29tcG9uZW50XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ob21lJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsYXNzJCA9IHNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PihudWxsKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2VwYXJhdG9yJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NwYWNlciQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saW5rczogRmRiTmF2aWdhdGlvbkl0ZW1MaW5rW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hpbGRMaXN0czogTmF2aWdhdGlvbkxpc3RDb21wb25lbnRbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBOdWxsYWJsZTxGb2N1c0tleU1hbmFnZXI8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2UgPSBpbmplY3QoUnRsU2VydmljZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGwkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gISF0aGlzLl9ydGxTZXJ2aWNlPy5ydGxTaWduYWwoKSk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRGlyZWN0aXZlIHRoYXQgdXNlZCBkdXJpbmcgZGF0YS1kcml2ZW4gcmVuZGVyaW5nLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZSA9IGluamVjdChOYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE5hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlLCB7XG4gICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcG92ZXJPcGVuJCgpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1zID0gdGhpcy5saXN0SXRlbXMkKCkuZmlsdGVyKEJvb2xlYW4pIGFzIEZkYk5hdmlnYXRpb25MaXN0SXRlbVtdO1xuICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKGxpc3RJdGVtcylcbiAgICAgICAgICAgICAgICAgICAgLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uc2tpcE5hdmlnYXRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFdlIG5lZWQgdG8gdHJhY2sgY2hpbGQgZGlyZWN0aXZlcyBjaGFuZ2UgYW5kIHNldCBsaXN0IGl0ZW1zIGJhc2VkIG9uIHRoYXQuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3BhcmVudE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZT8uY2hpbGREaXJlY3RpdmVzKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5fcGFyZW50TmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlLmNoaWxkRGlyZWN0aXZlcygpO1xuICAgICAgICAgICAgY29uc3QgbWFwcGVkSXRlbXMgPSBBcnJheS5mcm9tKGNoaWxkcmVuKS5tYXAoKGNoaWxkKSA9PiBjaGlsZC5faXRlbSk7XG5cbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zJC5zZXQobWFwcGVkSXRlbXMpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9wYXJlbnROYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmU/LnJlZ2lzdGVySXRlbSh0aGlzKTtcblxuICAgICAgICB0aGlzLm5hdmlnYXRpb24uY2xvc2VBbGxQb3B1cHMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC5zZXQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXNCZWZvcmVMaXN0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNQb3BvdmVyTGluaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFdoZW4gaXRlbSBpcyBmb2N1c2VkLCB3ZSBub3RpZnkgbGlzdCBjb250YWluZXIgYWJvdXQgaXQgdG8gdXBkYXRlIGFjdGl2ZSBpbmRleCBpbiBGb2N1c0tleU1hbmFnZXIuXG4gICAgICovXG4gICAgX2ZvY3VzSW5IYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50TGlzdEl0ZW0/LnBvcG92ZXJPcGVuJCgpICYmICF0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbi5zZXRBY3RpdmVJdGVtKHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BhcmVudE5hdmlnYXRpb25TZXJ2aWNlPy5jdXJyZW50SXRlbSQubmV4dCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0SXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLl9wYXJlbnROYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmUpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zJC5zZXQodGhpcy5saXN0SXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJMaW5rKGxpbms6IEZkYk5hdmlnYXRpb25JdGVtTGluayk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fbGlua3MuaW5kZXhPZihsaW5rKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpbmtzLnB1c2gobGluayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVucmVnaXN0ZXJMaW5rKGxpbms6IEZkYk5hdmlnYXRpb25JdGVtTGluayk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saW5rcy5zcGxpY2UodGhpcy5fbGlua3MuaW5kZXhPZihsaW5rKSwgMSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3RlckNoaWxkTGlzdChsaXN0OiBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRMaXN0cy5pbmNsdWRlcyhsaXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoaWxkTGlzdHMucHVzaChsaXN0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVucmVnaXN0ZXJDaGlsZExpc3QobGlzdDogTmF2aWdhdGlvbkxpc3RDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jaGlsZExpc3RzLmluY2x1ZGVzKGxpc3QpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2hpbGRMaXN0cy5zcGxpY2UodGhpcy5fY2hpbGRMaXN0cy5pbmRleE9mKGxpc3QpLCAxKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUhvcml6b250YWxOYXZpZ2F0aW9uKGlzRXhwYW5kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKGlzRXhwYW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBtZXRob2Qgd2hlbiBBcnJvdyBkb3duIGlzIHByZXNzZWQgb24gdGhlIGxpbmsgaW4gcG9wb3Zlci5cbiAgICAgKi9cbiAgICBwb3BvdmVyTGlua0Fycm93RG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbSgwKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9pbm5lckxpc3RLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBVUF9BUlJPVykgJiYgdGhpcy5fa2V5TWFuYWdlcj8uYWN0aXZlSXRlbUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c1BvcG92ZXJMaW5rKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtVUF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFJJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzR29CYWNrID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIHRoaXMuX3J0bCQoKSA/IFJJR0hUX0FSUk9XIDogTEVGVF9BUlJPVyk7XG5cbiAgICAgICAgaWYgKCFpc0dvQmFjaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc25hcHBlZEl0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIFRvZ2dsZXMgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGl0ZW0uICovXG4gICAgdG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhwYW5kZWQkLnVwZGF0ZSgoZXhwYW5kZWQpID0+ICFleHBhbmRlZCk7XG4gICAgfVxuXG4gICAgLyoqIENhbGxiYWNrIG1ldGhvZCB3aGVuIHVzZXIgdXNlZCBrZXlib2FyZCBhcnJvd3MgdG8gZXhwYW5kL2NvbGxhcHNlIGxpc3QgaXRlbS4gKi9cbiAgICBrZXlib2FyZEV4cGFuZGVkKHNob3VsZEV4cGFuZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc092ZXJmbG93JCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9vdmVyZmxvd0l0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihzaG91bGRFeHBhbmQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NuYXBwZWRJdGVtS2V5Ym9hcmRFeHBhbmRlZEhhbmRsZXIoc2hvdWxkRXhwYW5kKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3Zpc2libGVJdGVtS2V5Ym9hcmRFeHBhbmRlZEhhbmRsZXIoc2hvdWxkRXhwYW5kKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvY3VzIG1ldGhvZCBpbXBsZW1lbnRhdGlvbi5cbiAgICAgKiBVc2VkIGJ5IG1haW4gbmF2aWdhdGlvbiBjb21wb25lbnQgRm9jdXNLZXlNYW5hZ2VyLlxuICAgICAqIEBwYXJhbSBvcmlnaW5cbiAgICAgKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgLy8gSWYgcG9wb3ZlciBpcyBvcGVuLCBmb2N1cyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgc2hpZnRlZCB0byBjbG9uZWQgbGluay5cbiAgICAgICAgaWYgKHRoaXMucG9wb3Zlck9wZW4kKCkgJiYgIXRoaXMuaXNPdmVyZmxvdyQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9jdXNMaW5rKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXNlcyBpbm5lciBsaW5rIGVsZW1lbnQuXG4gICAgICogT3B0aW9uYWxseSBjbG9zZXMgdGhlIHBvcG92ZXIuXG4gICAgICovXG4gICAgZm9jdXNMaW5rKGNsb3NlUG9wb3ZlciA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGluayQoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgaWYgKGNsb3NlUG9wb3Zlcikge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUG9wb3Zlck9wZW4oaXNPcGVuOiBib29sZWFuLCBwb3BvdmVyOiBQb3BvdmVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChpc09wZW4pO1xuICAgICAgICBpZiAoIWlzT3Blbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25ab25lU3RhYmxlKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHBvcG92ZXIucG9wb3ZlckJvZHkuX2ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ZvY3VzUG9wb3ZlckxpbmsoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpbmtzLmZpbmQoKGxpbmspID0+IGxpbmsuaW5Qb3BvdmVyKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92aXNpYmxlSXRlbUtleWJvYXJkRXhwYW5kZWRIYW5kbGVyKHNob3VsZEV4cGFuZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRyZW4kKCkpIHtcbiAgICAgICAgICAgIGlmICghc2hvdWxkRXhwYW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRMaXN0SXRlbT8uZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2hvdWxkRXhwYW5kKSB7XG4gICAgICAgICAgICAvLyBJZiBpdGVtIGFscmVhZHkgY29sbGFwc2VkLCBzaGlmdCBmb2N1cyB0byBwYXJlbnQgbGlua1xuICAgICAgICAgICAgaWYgKCF0aGlzLmV4cGFuZGVkJCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnRMaXN0SXRlbT8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkJC5zZXQoZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtcy5maXJzdD8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV4cGFuZGVkJC5zZXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NuYXBwZWRJdGVtS2V5Ym9hcmRFeHBhbmRlZEhhbmRsZXIoc2hvdWxkRXhwYW5kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRFeHBhbmQgJiYgIXRoaXMucG9wb3Zlck9wZW4kKCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNob3VsZEV4cGFuZCAmJiB0aGlzLnBvcG92ZXJPcGVuJCgpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5saW5rJCgpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdXNlZCB0byBoYW5kbGUga2V5Ym9hcmQgbmF2aWdhdGlvbiBmb3IgbGlzdCBpdGVtIHRoYXQgaXMgaW5zaWRlIG92ZXJmbG93IGNvbnRhaW5lci5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vdmVyZmxvd0l0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihzaG91bGRFeHBhbmQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHNob3VsZEV4cGFuZCAmJiB0aGlzLl9jaGlsZExpc3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0TGlzdCA9IHRoaXMuX2NoaWxkTGlzdHNbMF07XG4gICAgICAgICAgICBmaXJzdExpc3Quc2V0QWN0aXZlSXRlbUluZGV4KDApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzaG91bGRFeHBhbmQgJiYgIXRoaXMucG9wb3Zlck9wZW4kKCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNob3VsZEV4cGFuZCAmJiB0aGlzLnBvcG92ZXJPcGVuJCgpKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5saW5rPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb25ab25lU3RhYmxlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fem9uZS5vblN0YWJsZS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuX3pvbmUuaXNTdGFibGUpLFxuICAgICAgICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8IS0tIEdlbmVyYWwgcmVuZGVyZXIuIC0tPlxuPG5nLXRlbXBsYXRlICNyZW5kZXJlcj5cbiAgICBAaWYgKCFzZXBhcmF0b3IpIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC1uYXZpZ2F0aW9uX19pdGVtLS1ncm91cF09XCJpc0dyb3VwJCgpXCJcbiAgICAgICAgICAgIFtjbGFzcy5mZC1uYXZpZ2F0aW9uX19pdGVtLS1jcmVhdGVdPVwicXVpY2tDcmVhdGUkKClcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLW5hdmlnYXRpb25fX2l0ZW0tLWNoaWxkXT1cIm5vcm1hbGl6ZWRMZXZlbCQoKSA+IDJcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLW5hdmlnYXRpb25fX2l0ZW0tLW92ZXJmbG93XT1cImlzT3ZlcmZsb3ckKClcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLW5hdmlnYXRpb25fX2l0ZW0tLXdpdGgtZXhwYW5kZXJdPVwiISFsaW5rJCgpPy5yb3V0ZXJMaW5rICYmIGhhc0NoaWxkcmVuJCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGV2ZWxdPVwibGV2ZWwkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0FjdGl2ZUF0dHIkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZEF0dHIkKClcIlxuICAgICAgICAgICAgW2F0dHIubm9ybWFsaXplZC1sZXZlbF09XCJub3JtYWxpemVkTGV2ZWwkKClcIlxuICAgICAgICAgICAgKGZvY3VzaW4pPVwiX2ZvY3VzSW5IYW5kbGVyKClcIlxuICAgICAgICAgICAgZmRiTmF2aWdhdGlvbkxpc3RJdGVtTWFya2VyXG4gICAgICAgICAgICAjaXRlbUNvbnRhaW5lclxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKCFuYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSB8fCAhaGFzQ2hpbGRyZW4kKCkpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlua1JlbmRlcmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNuYXBwZWROYXZpZ2F0aW9uSXRlbVJlbmRlcmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtQ29udGFpbmVyIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChpc092ZXJmbG93JCgpICYmIGhhc0NoaWxkcmVuJCgpKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3ZlcmZsb3dJdGVtTGlzdFJlbmRlcmVyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKCFuYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSkge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RSZW5kZXJlclwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPCEtLSBTbmFwcGVkIG5hdmlnYXRpb24gbGlzdCBpdGVtIHJlbmRlcmVyLiBJbXBsaWNpdCBjb250ZXh0IHBvaW50cyB0byB0aGUgcG9wb3ZlciB0cmlnZ2VyIGVsZW1lbnQuIC0tPlxuPG5nLXRlbXBsYXRlICNzbmFwcGVkTmF2aWdhdGlvbkl0ZW1SZW5kZXJlciBsZXQtaXRlbUNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlua1JlbmRlcmVyXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBmYWxzZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICBAaWYgKCFpc092ZXJmbG93JCgpKSB7XG4gICAgICAgIDxmZC1wb3BvdmVyXG4gICAgICAgICAgICAjcG9wb3ZlclxuICAgICAgICAgICAgW25vQXJyb3ddPVwiZmFsc2VcIlxuICAgICAgICAgICAgYWRkaXRpb25hbEJvZHlDbGFzcz1cImZkLW5hdmlnYXRpb25fX2xpc3QtY29udGFpbmVyXCJcbiAgICAgICAgICAgIFtpc09wZW5dPVwicG9wb3Zlck9wZW4kKClcIlxuICAgICAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJfb25Qb3BvdmVyT3BlbigkZXZlbnQsIHBvcG92ZXIpXCJcbiAgICAgICAgICAgIFt0cmlnZ2VyXT1cIml0ZW1Db250YWluZXJcIlxuICAgICAgICAgICAgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcmVzdG9yZUZvY3VzT25DbG9zZV09XCJmYWxzZVwiXG4gICAgICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW3BsYWNlbWVudF09XCJfcG9wb3ZlclBsYWNlbWVudCQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgW25nQ2xhc3NdPVwibmF2aWdhdGlvbi5jbGFzc0xpc3QkKClcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid3JhcHBlclJlbmRlcmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgIDwvZmQtcG9wb3Zlcj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPCEtLSBHZW5lcmljIGxpbmsgcmVuZGVyZXIuIC0tPlxuPG5nLXRlbXBsYXRlICNsaW5rUmVuZGVyZXIgbGV0LXNob3dUb2dnbGVCdXR0b24+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpbmtSZWY/LnRlbXBsYXRlUmVmIHx8IG51bGxcIj48L25nLXRlbXBsYXRlPlxuICAgIEBpZiAoISFsaW5rJCgpPy5yb3V0ZXJMaW5rICYmIGhhc0NoaWxkcmVuJCgpKSB7XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2hhcy1jaGlsZHJlbi1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiZXhwYW5kL2NvbGxhcHNlIGNoaWxkcmVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPCEtLSBHZW5lcmljIGxpc3QgcmVuZGVyZXIuIFVzZWQgd2hlbiBuYXZpZ2F0aW9uIGlzIG5vdCBzbmFwcGVkLiAtLT5cbjxuZy10ZW1wbGF0ZSAjbGlzdFJlbmRlcmVyPlxuICAgIEBpZiAoaXNHcm91cCQoKSAmJiBub3JtYWxpemVkTGV2ZWwkKCkgPT09IDEpIHtcbiAgICAgICAgPHVsIGZkYi1uYXZpZ2F0aW9uLWxpc3QgW2xpc3RJdGVtc109XCJsaXN0SXRlbXMkKClcIiBwYXJlbnRJdGVtcz48L3VsPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fbGlzdC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndyYXBwZXJSZW5kZXJlclwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBmYWxzZSB9XCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuPCEtLSBUZW1wbGF0ZSB1c2VkIGZvciByZW5kZXJpbmcgc3VibGlzdCBvZiBpdGVtcyBmb3IgdGhlIGxpc3QgaXRlbSB0aGF0IGlzIGN1cnJlbnRseSBpbiBvdmVyZmxvdyBtZW51LiAtLT5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmZsb3dJdGVtTGlzdFJlbmRlcmVyPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19saXN0LWNvbnRhaW5lciBmZC1uYXZpZ2F0aW9uX19saXN0LWNvbnRhaW5lci0tc3VibWVudSBmZC1tZW51X19zdWJsaXN0XCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ3cmFwcGVyUmVuZGVyZXJcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRydWUgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPCEtLSBHZW5lcmljIGxpc3QgcmVuZGVyZXIuIEltcGxpY2l0IGNvbnRleHQgZGVmaW5lcyB3aGV0aGVyIHRoZSBpbm5lciBsaXN0IHNob3VsZCBoYW5kbGUga2V5Ym9hcmQgbmF2aWdhdGlvbiBieSBpdHMgb3duLiAtLT5cbjxuZy10ZW1wbGF0ZSAjd3JhcHBlclJlbmRlcmVyIGxldC1rZXlib2FyZE5hdmlnYXRpb24+XG4gICAgPGRpdiBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2xpc3Qtd3JhcHBlclwiPlxuICAgICAgICBAaWYgKG5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmICFpc092ZXJmbG93JCgpKSB7XG4gICAgICAgICAgICA8IS0tIElmIG9wZW5lciBsaW5rIGl0c2VsZiBpcyBhY3RpdmUsIHByb2plY3QgYXJpYS1zZWxlY3RlZCBhdHRyaWJ1dGUgdG8gbGluayByZXBlYXRlciB0b28uIC0tPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9faXRlbSBmZC1uYXZpZ2F0aW9uX19pdGVtLS10aXRsZSBmZC1uYXZpZ2F0aW9uX19pdGVtLS1jaGlsZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJsaW5rJCgpPy5pc0FjdGl2ZSQoKSB8fCBzZWxlY3RlZCQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpbmtSZW5kZXJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8dWxcbiAgICAgICAgICAgIGZkYi1uYXZpZ2F0aW9uLWxpc3RcbiAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwibGlzdEl0ZW1zJCgpIHx8IFtdXCJcbiAgICAgICAgICAgIFtjaGlsZEl0ZW1zXT1cIm5vcm1hbGl6ZWRMZXZlbCQoKSA+IDJcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwiKGZhbHNlKVwiXG4gICAgICAgICAgICAoZm9jdXNCZWZvcmUpPVwiX2ZvY3VzQmVmb3JlTGlzdCgpXCJcbiAgICAgICAgICAgIFt3aXRoS2V5Ym9hcmROYXZpZ2F0aW9uXT1cImtleWJvYXJkTmF2aWdhdGlvblwiXG4gICAgICAgID48L3VsPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==","import { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, Input, ViewChild, ViewEncapsulation, computed, effect, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk';\nimport { PopoverBodyComponent, PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { FdbNavigationItemLink } from '../../models/navigation-item-link.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationLinkComponent } from '../navigation-link/navigation-link.component';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport * as i0 from \"@angular/core\";\nexport class NavigationMoreButtonComponent {\n /** @hidden */\n constructor() {\n /** @hidden */\n this.listItems = [];\n /** Whether the show more is visible. */\n this.isVisible$ = signal(true, ...(ngDevMode ? [{ debugName: \"isVisible$\" }] : []));\n /** Whether popover is open. Applicable for snapped navigation state. */\n this.popoverOpen$ = signal(false, ...(ngDevMode ? [{ debugName: \"popoverOpen$\" }] : []));\n /** @hidden */\n this.type = 'showMore';\n /** @hidden */\n this.placementContainer = undefined;\n /**\n * Whether the item is in overflow menu.\n */\n this.isOverflow$ = signal(false, ...(ngDevMode ? [{ debugName: \"isOverflow$\" }] : []));\n /** Whether item has child items. */\n this.hasChildren$ = signal(false, ...(ngDevMode ? [{ debugName: \"hasChildren$\" }] : []));\n /** @hidden */\n this._navigation = inject(FdbNavigation);\n /**\n * Link reference.\n */\n this.link$ = signal(null, ...(ngDevMode ? [{ debugName: \"link$\" }] : []));\n /**\n * @hidden\n * Popover position. Changes based on rtl value.\n */\n this._popoverPlacement$ = computed(() => (this._rtl$() ? 'left-start' : 'right-start'), ...(ngDevMode ? [{ debugName: \"_popoverPlacement$\" }] : []));\n /** @hidden */\n this._popoverClicked = false;\n /** @hidden */\n this._rtlService = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"_rtl$\" }] : []));\n effect(() => {\n if (this.popoverOpen$() && !this._popoverClicked) {\n setTimeout(() => {\n this.listItems[0]?.focus();\n });\n }\n this._popoverClicked = false;\n });\n this._navigation.closeAllPopups.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe(() => {\n this.popoverOpen$.set(false);\n });\n }\n /** @hidden */\n togglePopover(withClick = false) {\n this._popoverClicked = withClick;\n this.popoverOpen$.update((value) => !value);\n }\n /** @hidden */\n registerLink() { }\n /** @hidden */\n unregisterLink() { }\n /** @hidden */\n registerChildList() { }\n /** @hidden */\n unregisterChildList() { }\n /** @hidden */\n focus() {\n this.focusLink();\n }\n /**\n * Focuses inner link element.\n * Optionally closes the popover.\n */\n focusLink(closePopover = false) {\n this._link?.elementRef.nativeElement.focus();\n if (closePopover) {\n this.popoverOpen$.set(false);\n }\n }\n /** @hidden */\n toggleExpanded() { }\n /** @hidden */\n keyboardExpanded() { }\n /** @hidden */\n _keydownPopoverToggle(event) {\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n const isRtl = this._rtl$() || false;\n const isOpenAction = KeyUtil.isKeyCode(event, isRtl ? LEFT_ARROW : RIGHT_ARROW);\n // If user clicked on popover opener button, and then tried to use keyboard, simply shift focus to the first item in the popover menu.\n if (isOpenAction && this.popoverOpen$()) {\n this.listItems[0]?.focus();\n return;\n }\n this.popoverOpen$.set(isOpenAction);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationMoreButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationMoreButtonComponent, isStandalone: true, selector: \"li[fdb-navigation-more-button]\", inputs: { listItems: \"listItems\" }, host: { classAttribute: \"fd-navigation__list-item\" }, providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationMoreButtonComponent\n }\n ], viewQueries: [{ propertyName: \"_link\", first: true, predicate: FdbNavigationItemLink, descendants: true }], ngImport: i0, template: \"<div\\n aria-current=\\\"page\\\"\\n role=\\\"menuitem\\\"\\n class=\\\"fd-navigation__item\\\"\\n [attr.aria-expanded]=\\\"popoverOpen$()\\\"\\n aria-level=\\\"1\\\"\\n (click)=\\\"togglePopover(true)\\\"\\n (keydown)=\\\"_keydownPopoverToggle($event)\\\"\\n #trigger\\n>\\n <a fdb-navigation-link glyph=\\\"overflow\\\">More Items</a>\\n <fd-popover\\n [trigger]=\\\"trigger\\\"\\n [triggers]=\\\"[]\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"popoverOpen$.set($event)\\\"\\n [focusTrapped]=\\\"true\\\"\\n [noArrow]=\\\"false\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container fd-navigation__list-container--menu\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"_navigation.classList$()\\\">\\n <ul\\n fdb-navigation-list\\n withKeyboardNavigation\\n [parentItems]=\\\"true\\\"\\n class=\\\"fd-menu__list\\\"\\n [listItems]=\\\"listItems\\\"\\n ></ul>\\n </fd-popover-body>\\n </fd-popover>\\n</div>\\n\", dependencies: [{ kind: \"component\", type: NavigationLinkComponent, selector: \"a[fdb-navigation-link], button[fdb-navigation-link]\", inputs: [\"class\", \"glyph\", \"glyphFont\", \"external\", \"quickCreate\"] }, { kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\"], outputs: [\"focusBefore\", \"focusAfter\"] }, { kind: \"component\", type: PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: PopoverBodyComponent, selector: \"fd-popover-body\", inputs: [\"minWidth\", \"maxWidth\", \"minHeight\", \"maxHeight\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationMoreButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'li[fdb-navigation-more-button]', imports: [NavigationLinkComponent, NavigationListComponent, PopoverComponent, PopoverBodyComponent, NgClass], providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationMoreButtonComponent\n }\n ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n class: 'fd-navigation__list-item'\n }, template: \"<div\\n aria-current=\\\"page\\\"\\n role=\\\"menuitem\\\"\\n class=\\\"fd-navigation__item\\\"\\n [attr.aria-expanded]=\\\"popoverOpen$()\\\"\\n aria-level=\\\"1\\\"\\n (click)=\\\"togglePopover(true)\\\"\\n (keydown)=\\\"_keydownPopoverToggle($event)\\\"\\n #trigger\\n>\\n <a fdb-navigation-link glyph=\\\"overflow\\\">More Items</a>\\n <fd-popover\\n [trigger]=\\\"trigger\\\"\\n [triggers]=\\\"[]\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"popoverOpen$.set($event)\\\"\\n [focusTrapped]=\\\"true\\\"\\n [noArrow]=\\\"false\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container fd-navigation__list-container--menu\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"_navigation.classList$()\\\">\\n <ul\\n fdb-navigation-list\\n withKeyboardNavigation\\n [parentItems]=\\\"true\\\"\\n class=\\\"fd-menu__list\\\"\\n [listItems]=\\\"listItems\\\"\\n ></ul>\\n </fd-popover-body>\\n </fd-popover>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { listItems: [{\n type: Input\n }], _link: [{\n type: ViewChild,\n args: [FdbNavigationItemLink]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uL25hdmlnYXRpb24tbW9yZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FB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QyxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxhQUNqRzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLCtCQUErQjt5QkFDN0M7cUJBQ0osaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsMEJBQTBCO3FCQUNwQzt3REFLRCxTQUFTO3NCQURSLEtBQUs7Z0JBS1csS0FBSztzQkFEckIsU0FBUzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgSW5wdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgS2V5VXRpbCwgTnVsbGFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkayc7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkl0ZW1MaW5rIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24taXRlbS1saW5rLmNsYXNzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbGlzdC9uYXZpZ2F0aW9uLWxpc3QuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uTW9yZUJ1dHRvblJlZkNvbnRleHQge1xuICAgICRpbXBsaWNpdDogKCkgPT4gdm9pZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2xpW2ZkYi1uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uXScsXG4gICAgaW1wb3J0czogW05hdmlnYXRpb25MaW5rQ29tcG9uZW50LCBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCwgUG9wb3ZlckJvZHlDb21wb25lbnQsIE5nQ2xhc3NdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbk1vcmVCdXR0b25Db21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tbW9yZS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLW5hdmlnYXRpb25fX2xpc3QtaXRlbSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25Nb3JlQnV0dG9uQ29tcG9uZW50IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbGlzdEl0ZW1zOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEZkYk5hdmlnYXRpb25JdGVtTGluaylcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saW5rOiBOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uSXRlbUxpbms+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjdXN0b21Nb3JlUmVuZGVyZXI6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHNob3cgbW9yZSBpcyB2aXNpYmxlLiAqL1xuICAgIGlzVmlzaWJsZSQgPSBzaWduYWwodHJ1ZSk7XG5cbiAgICAvKiogV2hldGhlciBwb3BvdmVyIGlzIG9wZW4uIEFwcGxpY2FibGUgZm9yIHNuYXBwZWQgbmF2aWdhdGlvbiBzdGF0ZS4gKi9cbiAgICByZWFkb25seSBwb3BvdmVyT3BlbiQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSB0eXBlID0gJ3Nob3dNb3JlJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgcGxhY2VtZW50Q29udGFpbmVyID0gdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgaXRlbSBpcyBpbiBvdmVyZmxvdyBtZW51LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzT3ZlcmZsb3ckID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBXaGV0aGVyIGl0ZW0gaGFzIGNoaWxkIGl0ZW1zLiAqL1xuICAgIHJlYWRvbmx5IGhhc0NoaWxkcmVuJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9uYXZpZ2F0aW9uID0gaW5qZWN0KEZkYk5hdmlnYXRpb24pO1xuXG4gICAgLyoqXG4gICAgICogTGluayByZWZlcmVuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGluayQgPSBzaWduYWw8TnVsbGFibGU8RmRiTmF2aWdhdGlvbkl0ZW1MaW5rPj4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUG9wb3ZlciBwb3NpdGlvbi4gQ2hhbmdlcyBiYXNlZCBvbiBydGwgdmFsdWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgX3BvcG92ZXJQbGFjZW1lbnQkID0gY29tcHV0ZWQ8UGxhY2VtZW50PigoKSA9PiAodGhpcy5fcnRsJCgpID8gJ2xlZnQtc3RhcnQnIDogJ3JpZ2h0LXN0YXJ0JykpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wb3BvdmVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcnRsJCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+ICEhdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcG92ZXJPcGVuJCgpICYmICF0aGlzLl9wb3BvdmVyQ2xpY2tlZCkge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtc1swXT8uZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJDbGlja2VkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24uY2xvc2VBbGxQb3B1cHMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoaW5qZWN0KERlc3Ryb3lSZWYpKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdG9nZ2xlUG9wb3Zlcih3aXRoQ2xpY2sgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wb3BvdmVyQ2xpY2tlZCA9IHdpdGhDbGljaztcbiAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQudXBkYXRlKCh2YWx1ZSkgPT4gIXZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlZ2lzdGVyTGluaygpOiB2b2lkIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVucmVnaXN0ZXJMaW5rKCk6IHZvaWQge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJDaGlsZExpc3QoKTogdm9pZCB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB1bnJlZ2lzdGVyQ2hpbGRMaXN0KCk6IHZvaWQge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9jdXNMaW5rKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXNlcyBpbm5lciBsaW5rIGVsZW1lbnQuXG4gICAgICogT3B0aW9uYWxseSBjbG9zZXMgdGhlIHBvcG92ZXIuXG4gICAgICovXG4gICAgZm9jdXNMaW5rKGNsb3NlUG9wb3ZlciA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpbms/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICBpZiAoY2xvc2VQb3BvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0b2dnbGVFeHBhbmRlZCgpOiB2b2lkIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGtleWJvYXJkRXhwYW5kZWQoKTogdm9pZCB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfa2V5ZG93blBvcG92ZXJUb2dnbGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFJJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1J0bCA9IHRoaXMuX3J0bCQoKSB8fCBmYWxzZTtcblxuICAgICAgICBjb25zdCBpc09wZW5BY3Rpb24gPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgaXNSdGwgPyBMRUZUX0FSUk9XIDogUklHSFRfQVJST1cpO1xuXG4gICAgICAgIC8vIElmIHVzZXIgY2xpY2tlZCBvbiBwb3BvdmVyIG9wZW5lciBidXR0b24sIGFuZCB0aGVuIHRyaWVkIHRvIHVzZSBrZXlib2FyZCwgc2ltcGx5IHNoaWZ0IGZvY3VzIHRvIHRoZSBmaXJzdCBpdGVtIGluIHRoZSBwb3BvdmVyIG1lbnUuXG4gICAgICAgIGlmIChpc09wZW5BY3Rpb24gJiYgdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5saXN0SXRlbXNbMF0/LmZvY3VzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC5zZXQoaXNPcGVuQWN0aW9uKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgYXJpYS1jdXJyZW50PVwicGFnZVwiXG4gICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2l0ZW1cIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwicG9wb3Zlck9wZW4kKClcIlxuICAgIGFyaWEtbGV2ZWw9XCIxXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlUG9wb3Zlcih0cnVlKVwiXG4gICAgKGtleWRvd24pPVwiX2tleWRvd25Qb3BvdmVyVG9nZ2xlKCRldmVudClcIlxuICAgICN0cmlnZ2VyXG4+XG4gICAgPGEgZmRiLW5hdmlnYXRpb24tbGluayBnbHlwaD1cIm92ZXJmbG93XCI+TW9yZSBJdGVtczwvYT5cbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2VyXCJcbiAgICAgICAgW3RyaWdnZXJzXT1cIltdXCJcbiAgICAgICAgW2lzT3Blbl09XCJwb3BvdmVyT3BlbiQoKVwiXG4gICAgICAgIChpc09wZW5DaGFuZ2UpPVwicG9wb3Zlck9wZW4kLnNldCgkZXZlbnQpXCJcbiAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgW25vQXJyb3ddPVwiZmFsc2VcIlxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fbGlzdC1jb250YWluZXIgZmQtbmF2aWdhdGlvbl9fbGlzdC1jb250YWluZXItLW1lbnVcIlxuICAgICAgICBbcGxhY2VtZW50XT1cIl9wb3BvdmVyUGxhY2VtZW50JCgpXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgW25nQ2xhc3NdPVwiX25hdmlnYXRpb24uY2xhc3NMaXN0JCgpXCI+XG4gICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICBmZGItbmF2aWdhdGlvbi1saXN0XG4gICAgICAgICAgICAgICAgd2l0aEtleWJvYXJkTmF2aWdhdGlvblxuICAgICAgICAgICAgICAgIFtwYXJlbnRJdGVtc109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW1lbnVfX2xpc3RcIlxuICAgICAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwibGlzdEl0ZW1zXCJcbiAgICAgICAgICAgID48L3VsPlxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICA8L2ZkLXBvcG92ZXI+XG48L2Rpdj5cbiJdfQ==","import { PortalModule } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, Input, NgZone, QueryList, ViewChild, ViewEncapsulation, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { resizeObservable } from '@fundamental-ngx/cdk';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { asyncScheduler, debounceTime, filter, merge, observeOn, startWith, switchMap, take } from 'rxjs';\nimport { FdbNavigationContentContainer } from '../../models/navigation-content-container.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport { NavigationMoreButtonComponent } from '../navigation-more-button/navigation-more-button.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/scrollbar\";\nconst FD_NAVIGATION_OVERFLOW_ITEM_CLASS = 'fd-navigation__container--hidden-overflow';\nexport class NavigationContentStartComponent extends FdbNavigationContentContainer {\n constructor() {\n super(...arguments);\n /** Whether the list items are content-projected. Used only with data-driven navigation. */\n this.contentProjected = true;\n /** Whether the container is placed on the start position, or the end position of the navigation. */\n this.placement = 'start';\n /** Navigation component reference. */\n this.navigation = inject(FdbNavigation);\n /** Inner List items that should be rendered. */\n this.listItems$ = computed(() => {\n const isSnapped = this.navigation.isSnapped$();\n const totalItems = this.allListItems$().filter((item) => item.normalizedLevel$() < 3);\n return totalItems.filter((item) => {\n const normalizedLevel = item.normalizedLevel$();\n const level = item.level$();\n return isSnapped ? normalizedLevel === 2 : level === 1;\n });\n }, ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** @hidden */\n this._showMoreButton$ = signal(false, ...(ngDevMode ? [{ debugName: \"_showMoreButton$\" }] : []));\n /** @hidden */\n this.visibleItems$ = signal(this.listItems$(), ...(ngDevMode ? [{ debugName: \"visibleItems$\" }] : []));\n /** @hidden */\n this.hiddenItems$ = signal([], ...(ngDevMode ? [{ debugName: \"hiddenItems$\" }] : []));\n /** @hidden */\n this._calculationInProgress = false;\n /** @hidden */\n this._elementRef = inject(ElementRef);\n /** @hidden */\n this._isSnappedObservable = toObservable(this.navigation.isSnapped$).pipe(startWith(this.navigation.isSnapped$()));\n /** @hidden */\n this._listItemsObservable = toObservable(this.listItems$);\n /** @hidden */\n this._cdr = inject(ChangeDetectorRef);\n /** @hidden */\n this._zone = inject(NgZone);\n }\n /** @hidden */\n ngAfterContentInit() {\n this._listItems.changes\n .pipe(startWith(null), observeOn(asyncScheduler), filter(() => this.contentProjected), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.allListItems$.set(this._listItems.toArray());\n });\n const resize = resizeObservable(this._elementRef.nativeElement).pipe(debounceTime(30));\n merge(this._isSnappedObservable, this._listItemsObservable, resize)\n .pipe(switchMap(() => this._zone.onStable.pipe(startWith(this._zone.isStable), take(1))))\n .subscribe(() => {\n this._calculateVisibleItems();\n });\n }\n /**\n * @hidden\n * Calculates available space to fit the items.\n * Determines whether to show the \"More\" button if available space is not enough to fit all list items.\n */\n _calculateVisibleItems() {\n if (this._calculationInProgress) {\n return;\n }\n const items = [...this.listItems$()];\n items.forEach((item) => item.hidden$.set(false));\n this.visibleItems$.set([...items]);\n this._cdr.detectChanges();\n if (!this.navigation.isSnapped$()) {\n this._showMoreButton$.set(false);\n this._calculationInProgress = false;\n this.navigation.showMoreButton$.set(null);\n return;\n }\n this._elementRef.nativeElement.classList.add(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);\n let availableSpace = this._elementRef.nativeElement.clientHeight - this._elementRef.nativeElement.scrollHeight;\n if (availableSpace >= 0) {\n this._showMoreButton$.set(false);\n this._calculationInProgress = false;\n this.navigation.showMoreButton$.set(null);\n this._elementRef.nativeElement.classList.remove(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);\n this._cdr.detectChanges();\n return;\n }\n this._showMoreButton$.set(true);\n this._cdr.detectChanges();\n availableSpace = availableSpace - (this._moreContainer?.nativeElement.clientHeight || 0);\n const hiddenItems = [];\n // We are going from the bottom to the top and checking whether the available space is enough to fit the items.\n while (availableSpace < 0 && items.length > 0) {\n const item = items.pop();\n if (!item) {\n continue;\n }\n // Since we are going from the bottom to the top, we need to add item to the list as the first item of the array.\n hiddenItems.unshift(item);\n availableSpace = availableSpace + item?.marker?.elementRef.nativeElement.clientHeight;\n item.hidden$.set(true);\n }\n this._elementRef.nativeElement.classList.remove(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);\n this.visibleItems$.set([...items]);\n this.hiddenItems$.set([...hiddenItems]);\n this._showMoreButton$.set(hiddenItems.length > 0);\n this._cdr.detectChanges();\n this.navigation.showMoreButton$.set(this._showMoreButton);\n this._calculationInProgress = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentStartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationContentStartComponent, isStandalone: true, selector: \"fdb-navigation-content-start\", inputs: { contentProjected: \"contentProjected\" }, host: { properties: { \"style.flex-grow\": \"1\" }, classAttribute: \"fd-navigation__container fd-navigation__container--top\" }, providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentStartComponent\n }\n ], queries: [{ propertyName: \"_listItems\", predicate: FdbNavigationListItem, descendants: true }], viewQueries: [{ propertyName: \"_moreContainer\", first: true, predicate: [\"moreContainer\"], descendants: true, read: ElementRef }, { propertyName: \"_showMoreButton\", first: true, predicate: NavigationMoreButtonComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ScrollbarDirective }], ngImport: i0, template: \"<ul fdb-navigation-list [listItems]=\\\"visibleItems$()\\\"></ul>\\n@if (_showMoreButton$()) {\\n <ul noGrow fdb-navigation-list role=\\\"menubar\\\" #moreContainer>\\n <li fdb-navigation-more-button [listItems]=\\\"hiddenItems$()\\\"></li>\\n </ul>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: PortalModule }, { kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\"], outputs: [\"focusBefore\", \"focusAfter\"] }, { kind: \"component\", type: NavigationMoreButtonComponent, selector: \"li[fdb-navigation-more-button]\", inputs: [\"listItems\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentStartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdb-navigation-content-start', imports: [PortalModule, NavigationListComponent, NavigationMoreButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'fd-navigation__container fd-navigation__container--top',\n '[style.flex-grow]': '1'\n }, providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentStartComponent\n }\n ], hostDirectives: [ScrollbarDirective], template: \"<ul fdb-navigation-list [listItems]=\\\"visibleItems$()\\\"></ul>\\n@if (_showMoreButton$()) {\\n <ul noGrow fdb-navigation-list role=\\\"menubar\\\" #moreContainer>\\n <li fdb-navigation-more-button [listItems]=\\\"hiddenItems$()\\\"></li>\\n </ul>\\n}\\n\" }]\n }], propDecorators: { contentProjected: [{\n type: Input\n }], _listItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: true }]\n }], _moreContainer: [{\n type: ViewChild,\n args: ['moreContainer', { read: ElementRef, static: false }]\n }], _showMoreButton: [{\n type: ViewChild,\n args: [NavigationMoreButtonComponent, { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLXN0YXJ0L25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1zdGFydC9uYXZpZ2F0aW9uLWNvbnRlbnQtc3RhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBWSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8s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V0FFL0IsQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUUsNkJBQTZCLENBQUMsbUJBQzlELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLHdEQUF3RDt3QkFDL0QsbUJBQW1CLEVBQUUsR0FBRztxQkFDM0IsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNkJBQTZCOzRCQUN0QyxXQUFXLGlDQUFpQzt5QkFDL0M7cUJBQ0osa0JBQ2UsQ0FBQyxrQkFBa0IsQ0FBQzs4QkFLcEMsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBS1csVUFBVTtzQkFEMUIsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSzVDLGNBQWM7c0JBRDlCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUs5QyxlQUFlO3NCQUQvQixTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSwgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrJztcbmltcG9ydCB7IFNjcm9sbGJhckRpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zY3JvbGxiYXInO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZSwgb2JzZXJ2ZU9uLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1jb250ZW50LWNvbnRhaW5lci5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbk1vcmVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uL25hdmlnYXRpb24tbW9yZS1idXR0b24uY29tcG9uZW50JztcblxuY29uc3QgRkRfTkFWSUdBVElPTl9PVkVSRkxPV19JVEVNX0NMQVNTID0gJ2ZkLW5hdmlnYXRpb25fX2NvbnRhaW5lci0taGlkZGVuLW92ZXJmbG93JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZGItbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbUG9ydGFsTW9kdWxlLCBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCwgTmF2aWdhdGlvbk1vcmVCdXR0b25Db21wb25lbnRdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLW5hdmlnYXRpb25fX2NvbnRhaW5lciBmZC1uYXZpZ2F0aW9uX19jb250YWluZXItLXRvcCcsXG4gICAgICAgICdbc3R5bGUuZmxleC1ncm93XSc6ICcxJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5hdmlnYXRpb25Db250ZW50U3RhcnRDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtTY3JvbGxiYXJEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25Db250ZW50U3RhcnRDb21wb25lbnQgZXh0ZW5kcyBGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW1zIGFyZSBjb250ZW50LXByb2plY3RlZC4gVXNlZCBvbmx5IHdpdGggZGF0YS1kcml2ZW4gbmF2aWdhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRlbnRQcm9qZWN0ZWQgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZkYk5hdmlnYXRpb25MaXN0SXRlbSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RJdGVtczogUXVlcnlMaXN0PEZkYk5hdmlnYXRpb25MaXN0SXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ21vcmVDb250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tb3JlQ29udGFpbmVyOiBOdWxsYWJsZTxFbGVtZW50UmVmPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChOYXZpZ2F0aW9uTW9yZUJ1dHRvbkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2hvd01vcmVCdXR0b246IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT47XG5cbiAgICAvKiogV2hldGhlciB0aGUgY29udGFpbmVyIGlzIHBsYWNlZCBvbiB0aGUgc3RhcnQgcG9zaXRpb24sIG9yIHRoZSBlbmQgcG9zaXRpb24gb2YgdGhlIG5hdmlnYXRpb24uICovXG4gICAgcmVhZG9ubHkgcGxhY2VtZW50OiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gICAgLyoqIE5hdmlnYXRpb24gY29tcG9uZW50IHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBuYXZpZ2F0aW9uID0gaW5qZWN0KEZkYk5hdmlnYXRpb24pO1xuXG4gICAgLyoqIElubmVyIExpc3QgaXRlbXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQuICovXG4gICAgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgaXNTbmFwcGVkID0gdGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKTtcbiAgICAgICAgY29uc3QgdG90YWxJdGVtcyA9IHRoaXMuYWxsTGlzdEl0ZW1zJCgpLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5ub3JtYWxpemVkTGV2ZWwkKCkgPCAzKTtcbiAgICAgICAgcmV0dXJuIHRvdGFsSXRlbXMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub3JtYWxpemVkTGV2ZWwgPSBpdGVtLm5vcm1hbGl6ZWRMZXZlbCQoKTtcbiAgICAgICAgICAgIGNvbnN0IGxldmVsID0gaXRlbS5sZXZlbCQoKTtcbiAgICAgICAgICAgIHJldHVybiBpc1NuYXBwZWQgPyBub3JtYWxpemVkTGV2ZWwgPT09IDIgOiBsZXZlbCA9PT0gMTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9zaG93TW9yZUJ1dHRvbiQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSB2aXNpYmxlSXRlbXMkID0gc2lnbmFsPEZkYk5hdmlnYXRpb25MaXN0SXRlbVtdPih0aGlzLmxpc3RJdGVtcyQoKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGhpZGRlbkl0ZW1zJCA9IHNpZ25hbDxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2lzU25hcHBlZE9ic2VydmFibGUgPSB0b09ic2VydmFibGUodGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpKVxuICAgICk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpc3RJdGVtc09ic2VydmFibGUgPSB0b09ic2VydmFibGUodGhpcy5saXN0SXRlbXMkKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RJdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobnVsbCksXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5jb250ZW50UHJvamVjdGVkKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYWxsTGlzdEl0ZW1zJC5zZXQodGhpcy5fbGlzdEl0ZW1zLnRvQXJyYXkoKSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXNpemUgPSByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkucGlwZShkZWJvdW5jZVRpbWUoMzApKTtcblxuICAgICAgICBtZXJnZSh0aGlzLl9pc1NuYXBwZWRPYnNlcnZhYmxlLCB0aGlzLl9saXN0SXRlbXNPYnNlcnZhYmxlLCByZXNpemUpXG4gICAgICAgICAgICAucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fem9uZS5vblN0YWJsZS5waXBlKHN0YXJ0V2l0aCh0aGlzLl96b25lLmlzU3RhYmxlKSwgdGFrZSgxKSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2FsY3VsYXRlcyBhdmFpbGFibGUgc3BhY2UgdG8gZml0IHRoZSBpdGVtcy5cbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyB0aGUgXCJNb3JlXCIgYnV0dG9uIGlmIGF2YWlsYWJsZSBzcGFjZSBpcyBub3QgZW5vdWdoIHRvIGZpdCBhbGwgbGlzdCBpdGVtcy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpdGVtcyA9IFsuLi50aGlzLmxpc3RJdGVtcyQoKV07XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uaGlkZGVuJC5zZXQoZmFsc2UpKTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMkLnNldChbLi4uaXRlbXNdKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93TW9yZUJ1dHRvbiQuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLnNob3dNb3JlQnV0dG9uJC5zZXQobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChGRF9OQVZJR0FUSU9OX09WRVJGTE9XX0lURU1fQ0xBU1MpO1xuXG4gICAgICAgIGxldCBhdmFpbGFibGVTcGFjZSA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuXG4gICAgICAgIGlmIChhdmFpbGFibGVTcGFjZSA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93TW9yZUJ1dHRvbiQuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGN1bGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLnNob3dNb3JlQnV0dG9uJC5zZXQobnVsbCk7XG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShGRF9OQVZJR0FUSU9OX09WRVJGTE9XX0lURU1fQ0xBU1MpO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3Nob3dNb3JlQnV0dG9uJC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGF2YWlsYWJsZVNwYWNlID0gYXZhaWxhYmxlU3BhY2UgLSAodGhpcy5fbW9yZUNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgfHwgMCk7XG5cbiAgICAgICAgY29uc3QgaGlkZGVuSXRlbXM6IEZkYk5hdmlnYXRpb25MaXN0SXRlbVtdID0gW107XG5cbiAgICAgICAgLy8gV2UgYXJlIGdvaW5nIGZyb20gdGhlIGJvdHRvbSB0byB0aGUgdG9wIGFuZCBjaGVja2luZyB3aGV0aGVyIHRoZSBhdmFpbGFibGUgc3BhY2UgaXMgZW5vdWdoIHRvIGZpdCB0aGUgaXRlbXMuXG4gICAgICAgIHdoaWxlIChhdmFpbGFibGVTcGFjZSA8IDAgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zLnBvcCgpO1xuICAgICAgICAgICAgaWYgKCFpdGVtKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTaW5jZSB3ZSBhcmUgZ29pbmcgZnJvbSB0aGUgYm90dG9tIHRvIHRoZSB0b3AsIHdlIG5lZWQgdG8gYWRkIGl0ZW0gdG8gdGhlIGxpc3QgYXMgdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGFycmF5LlxuICAgICAgICAgICAgaGlkZGVuSXRlbXMudW5zaGlmdChpdGVtKTtcbiAgICAgICAgICAgIGF2YWlsYWJsZVNwYWNlID0gYXZhaWxhYmxlU3BhY2UgKyBpdGVtPy5tYXJrZXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBpdGVtLmhpZGRlbiQuc2V0KHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoRkRfTkFWSUdBVElPTl9PVkVSRkxPV19JVEVNX0NMQVNTKTtcblxuICAgICAgICB0aGlzLnZpc2libGVJdGVtcyQuc2V0KFsuLi5pdGVtc10pO1xuICAgICAgICB0aGlzLmhpZGRlbkl0ZW1zJC5zZXQoWy4uLmhpZGRlbkl0ZW1zXSk7XG5cbiAgICAgICAgdGhpcy5fc2hvd01vcmVCdXR0b24kLnNldChoaWRkZW5JdGVtcy5sZW5ndGggPiAwKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLm5hdmlnYXRpb24uc2hvd01vcmVCdXR0b24kLnNldCh0aGlzLl9zaG93TW9yZUJ1dHRvbik7XG5cbiAgICAgICAgdGhpcy5fY2FsY3VsYXRpb25JblByb2dyZXNzID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPHVsIGZkYi1uYXZpZ2F0aW9uLWxpc3QgW2xpc3RJdGVtc109XCJ2aXNpYmxlSXRlbXMkKClcIj48L3VsPlxuQGlmIChfc2hvd01vcmVCdXR0b24kKCkpIHtcbiAgICA8dWwgbm9Hcm93IGZkYi1uYXZpZ2F0aW9uLWxpc3Qgcm9sZT1cIm1lbnViYXJcIiAjbW9yZUNvbnRhaW5lcj5cbiAgICAgICAgPGxpIGZkYi1uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uIFtsaXN0SXRlbXNdPVwiaGlkZGVuSXRlbXMkKClcIj48L2xpPlxuICAgIDwvdWw+XG59XG4iXX0=","import { BaseDataSource, DataProvider, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nexport class FdbNavigationDataSource extends BaseDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n /** @hidden */\n this.limitless = false;\n }\n}\nexport class ArrayNavigationDataSource extends FdbNavigationDataSource {\n /** @hidden */\n constructor(data) {\n super(new DataProvider(data));\n }\n}\nexport class ObservableNavigationDataSDataSource extends FdbNavigationDataSource {\n /** @hidden */\n constructor(data) {\n super(new DataProvider(data));\n }\n}\nexport class NavigationDataSourceParser {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source) {\n if (isDataSource(source)) {\n return source;\n }\n if (Array.isArray(source)) {\n return new ArrayNavigationDataSource(source);\n }\n if (isObservable(source)) {\n return new ObservableNavigationDataSDataSource(source);\n }\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9tb2RlbHMvbmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxjQUFjLEVBQ2QsWUFBWSxFQUVaLFlBQVksRUFDZixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPaEQsTUFBTSxPQUFPLHVCQUE0RCxTQUFRLGNBQWlCO0lBRzlGLGNBQWM7SUFDZCxZQUFtQixZQUFxQztRQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFETCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFIeEQsY0FBYztRQUNkLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFJbEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHlCQUE4RCxTQUFRLHVCQUEwQjtJQUN6RyxjQUFjO0lBQ2QsWUFBWSxJQUFTO1FBQ2pCLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxtQ0FFWCxTQUFRLHVCQUEwQjtJQUNoQyxjQUFjO0lBQ2QsWUFBWSxJQUFxQjtRQUM3QixLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0o7QUFVRCxNQUFNLE9BQU8sMEJBQTBCO0lBR25DOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFpRDtRQUNuRCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sTUFBb0MsQ0FBQztRQUNoRCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLHlCQUF5QixDQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxtQ0FBbUMsQ0FBSSxNQUFNLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBYnN0cmFjdERhdGFQcm92aWRlcixcbiAgICBCYXNlRGF0YVNvdXJjZSxcbiAgICBEYXRhUHJvdmlkZXIsXG4gICAgRGF0YVNvdXJjZVBhcnNlcixcbiAgICBpc0RhdGFTb3VyY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICAgIHBsYWNlbWVudDogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgIGNoaWxkcmVuPzogTmF2aWdhdGlvbkRhdGFTb3VyY2VJdGVtPFQ+W107XG59ICYgVDtcblxuZXhwb3J0IGNsYXNzIEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQgZXh0ZW5kcyBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW0+IGV4dGVuZHMgQmFzZURhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGltaXRsZXNzID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBBYnN0cmFjdERhdGFQcm92aWRlcjxUPikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFycmF5TmF2aWdhdGlvbkRhdGFTb3VyY2U8VCBleHRlbmRzIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbT4gZXh0ZW5kcyBGZGJOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBUW10pIHtcbiAgICAgICAgc3VwZXIobmV3IERhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZU5hdmlnYXRpb25EYXRhU0RhdGFTb3VyY2U8XG4gICAgVCBleHRlbmRzIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbVxuPiBleHRlbmRzIEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBzdXBlcihuZXcgRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG5cbi8qKlxuICogVHlwZSBvZiBhY2NlcHRhYmxlIG9iamVjdHMgYXMgYSBkYXRhc291cmNlIGZvciB0aGUgTmF2aWdhdGlvbiBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIEZkYk5hdmlnYXRpb25EYXRhU0FjY2VwdGFibGVEYXRhU291cmNlPFQgZXh0ZW5kcyBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW0+ID1cbiAgICB8IEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQ+XG4gICAgfCBPYnNlcnZhYmxlPFRbXT5cbiAgICB8IFRbXTtcblxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25EYXRhU291cmNlUGFyc2VyPFQgZXh0ZW5kcyBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW0+XG4gICAgaW1wbGVtZW50cyBEYXRhU291cmNlUGFyc2VyPFQsIEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQ+Plxue1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgcGxhaW4gYXJyYXkgb3Igb2JzZXJ2YWJsZSBpbnRvIERhdGFTb3VyY2UgY2xhc3MuXG4gICAgICogQHBhcmFtIHNvdXJjZVxuICAgICAqL1xuICAgIHBhcnNlKHNvdXJjZTogRmRiTmF2aWdhdGlvbkRhdGFTQWNjZXB0YWJsZURhdGFTb3VyY2U8VD4pOiBGZGJOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0RhdGFTb3VyY2Uoc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBGZGJOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXlOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPihzb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVOYXZpZ2F0aW9uRGF0YVNEYXRhU291cmNlPFQ+KHNvdXJjZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==","import { Directive } from '@angular/core';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { NavigationDataSourceParser } from '../models/navigation-data-source-item.model';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListDataSourceDirective extends DataSourceDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListDataSourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListDataSourceDirective, isStandalone: true, selector: \"fdb-navigation[dataSource]\", providers: [\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: NavigationDataSourceParser\n }\n ], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListDataSourceDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fdb-navigation[dataSource]',\n standalone: true,\n providers: [\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: NavigationDataSourceParser\n }\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWRhdGEtc291cmNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkcsT0FBTyxFQUdILDBCQUEwQixFQUM3QixNQUFNLDZDQUE2QyxDQUFDOztBQWFyRCxNQUFNLE9BQU8saUNBQWlFLFNBQVEsbUJBR3JGOzhHQUhZLGlDQUFpQztrR0FBakMsaUNBQWlDLHlFQVAvQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSwwQkFBMEI7Z0JBQ25DLFFBQVEsRUFBRSwwQkFBMEI7YUFDdkM7U0FDSjs7MkZBRVEsaUNBQWlDO2tCQVg3QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxRQUFRLEVBQUUsMEJBQTBCO3lCQUN2QztxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURpcmVjdGl2ZSwgRkRfREFUQV9TT1VSQ0VfVFJBTlNGT1JNRVIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1xuICAgIEZkYk5hdmlnYXRpb25EYXRhU291cmNlLFxuICAgIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbSxcbiAgICBOYXZpZ2F0aW9uRGF0YVNvdXJjZVBhcnNlclxufSBmcm9tICcuLi9tb2RlbHMvbmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2ZkYi1uYXZpZ2F0aW9uW2RhdGFTb3VyY2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9EQVRBX1NPVVJDRV9UUkFOU0ZPUk1FUixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBOYXZpZ2F0aW9uRGF0YVNvdXJjZVBhcnNlclxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlzdERhdGFTb3VyY2VEaXJlY3RpdmU8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+IGV4dGVuZHMgRGF0YVNvdXJjZURpcmVjdGl2ZTxcbiAgICBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW08VD4sXG4gICAgRmRiTmF2aWdhdGlvbkRhdGFTb3VyY2U8TmF2aWdhdGlvbkRhdGFTb3VyY2VJdGVtPFQ+PlxuPiB7fVxuIl19","import { __decorate, __metadata } from \"tslib\";\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, HostListener, Input, QueryList, ViewEncapsulation, computed, effect, inject, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KeyUtil, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { Subject, map, of } from 'rxjs';\nimport { NavigationListDataSourceDirective } from '../../directives/navigation-list-data-source.directive';\nimport { NavigationListItemDirective, NavigationListItemRefDirective } from '../../directives/navigation-list-item-ref.directive';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationService } from '../../services/navigation.service';\nimport { NavigationContentEndComponent } from '../navigation-end/navigation-content-end.component';\nimport { NavigationContentStartComponent } from '../navigation-start/navigation-content-start.component';\nimport * as i0 from \"@angular/core\";\nexport class NavigationComponent extends FdbNavigation {\n /**\n * Navigation state.\n */\n set state(value) {\n this.state$.set(value);\n }\n get state() {\n return this.state$();\n }\n /** @hidden */\n set _navigationItemRef(value) {\n this._navigationItemRenderer.set(value || null);\n }\n /** @hidden */\n constructor() {\n super();\n /**\n * Navigation mode.\n */\n this.mode = '';\n /**\n * Navigation type.\n */\n this.type = 'vertical';\n /**\n * State signal.\n */\n this.state$ = signal('expanded', ...(ngDevMode ? [{ debugName: \"state$\" }] : []));\n /**\n * Whether the navigation is in snapped mode.\n */\n this.isSnapped$ = computed(() => this.state$() === 'snapped', ...(ngDevMode ? [{ debugName: \"isSnapped$\" }] : []));\n /**\n * Whether to show \"More\" button. Applicable for `snapped` state only.\n */\n this.showMoreButton$ = signal(null, ...(ngDevMode ? [{ debugName: \"showMoreButton$\" }] : []));\n /**\n * Signal for navigation classList.\n * Used by popover-based submenus.\n */\n this.classList$ = signal([], ...(ngDevMode ? [{ debugName: \"classList$\" }] : []));\n /** @hidden */\n this.elementRef = inject(ElementRef);\n /** @hidden */\n this._navigationItemRenderer = signal(null, ...(ngDevMode ? [{ debugName: \"_navigationItemRenderer\" }] : []));\n /** Stream notifies to close all popups in child list items. */\n this.closeAllPopups = new Subject();\n /** @hidden */\n this._viewInitiated$ = signal(false, ...(ngDevMode ? [{ debugName: \"_viewInitiated$\" }] : []));\n /**\n * @hidden\n * Data source directive.\n */\n this._dataSourceDirective = inject(NavigationListDataSourceDirective, {\n optional: true,\n self: true\n });\n this.dataSourceItems = toSignal(!this._dataSourceDirective\n ? of({ start: [], end: [] })\n : this._dataSourceDirective.dataChanged$.asObservable().pipe(map((data) => {\n const groupedItems = data.reduce((acc, item) => {\n acc[item.placement].push(item);\n return acc;\n }, { start: [], end: [] });\n return groupedItems;\n })));\n // When show more button is shown, reset items list with added \"More button\".\n effect(() => {\n if (this._viewInitiated$()) {\n this._resetItemsList(this.showMoreButton$());\n }\n });\n }\n /** @hidden */\n buildComponentCssClass() {\n this.classList$.set([\n this.class,\n 'fd-navigation',\n this.mode === '' ? 'fd-navigation--compact' : '',\n `fd-navigation--${this.state}`\n ].filter((k) => !!k));\n return [...this.classList$(), `fd-navigation--${this.type}`];\n }\n /**\n * @hidden\n * Main keyboard navigation handler.\n */\n _keyDownHandler(event) {\n if (!KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n return;\n }\n event.preventDefault();\n this._keyManager.onKeydown(event);\n }\n /** @hidden */\n ngOnInit() {\n this.buildComponentCssClass();\n this._dataSourceDirective?.dataSourceProvider?.match();\n }\n /** @hidden */\n ngOnChanges() {\n this.buildComponentCssClass();\n }\n /** @hidden */\n ngAfterViewInit() {\n this._keyManager = new FocusKeyManager(this._navigationItems)\n .withVerticalOrientation()\n .skipPredicate((item) => !item.isVisible$() || item.skipNavigation);\n this._keyManager.setActiveItem(0);\n this._viewInitiated$.set(true);\n }\n /** @hidden */\n ngOnDestroy() {\n this._keyManager?.destroy();\n }\n /**\n * Returns currently focused list item.\n */\n getActiveItem() {\n return this._keyManager.activeItem;\n }\n /**\n * Sets focused item.\n */\n setActiveItem(item) {\n this._keyManager.setActiveItem(item);\n }\n /** Notifies child list items that all popups should be closed. */\n closePopups() {\n this.closeAllPopups.next();\n }\n /**\n * Updates the list of items.\n * Optionally inserts \"More\" button if overflow menu should be rendered.\n * @param showMoreButton Whether to add \"More\" button.\n */\n _resetItemsList(showMoreButton) {\n const items = [...this._navigationItems.toArray()];\n const showMoreButtonIndex = items.findIndex((item) => item.type === 'showMore');\n if (!showMoreButton) {\n if (showMoreButtonIndex === -1) {\n return;\n }\n items.splice(showMoreButtonIndex, 1);\n this._navigationItems.reset(items);\n }\n else {\n if (showMoreButtonIndex > -1) {\n return;\n }\n // Find last list item from the `Start` container.\n const insertionIndex = items.findIndex((item) => {\n const listItems = item.placementContainer?.listItems$();\n if (!listItems) {\n return;\n }\n return item.placementContainer?.placement === 'start' && listItems[listItems.length - 1] === item;\n });\n if (insertionIndex === -1) {\n return;\n }\n items.splice(insertionIndex, 0, showMoreButton);\n this._navigationItems.reset(items);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationComponent, isStandalone: true, selector: \"fdb-navigation\", inputs: { class: \"class\", mode: \"mode\", state: \"state\", type: \"type\" }, host: { attributes: { \"role\": \"navigation\" }, listeners: { \"keydown\": \"_keyDownHandler($event)\" } }, providers: [\n NavigationService,\n {\n provide: FdbNavigation,\n useExisting: NavigationComponent\n }\n ], queries: [{ propertyName: \"_navigationItemRef\", first: true, predicate: NavigationListItemRefDirective, descendants: true }, { propertyName: \"_navigationItems\", predicate: FdbNavigationListItem, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"<ng-content></ng-content>\\n@if (_navigationItemRenderer()) {\\n @if (dataSourceItems()?.start; as startItems) {\\n <fdb-navigation-content-start [contentProjected]=\\\"false\\\">\\n @for (item of startItems; track item) {\\n <ng-container fdbNavigationListItem [item]=\\\"item\\\" #listItemDirective=\\\"fdbListItem\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"itemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item, injector: listItemDirective.injector }\\\"\\n [ngTemplateOutletInjector]=\\\"listItemDirective.injector\\\"\\n ></ng-template>\\n </ng-container>\\n }\\n </fdb-navigation-content-start>\\n }\\n @if (dataSourceItems()?.end; as endItems) {\\n <fdb-navigation-content-end [contentProjected]=\\\"false\\\">\\n @for (item of endItems; track item) {\\n <ng-container fdbNavigationListItem [item]=\\\"item\\\" #listItemDirective=\\\"fdbListItem\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"itemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item, injector: listItemDirective.injector }\\\"\\n [ngTemplateOutletInjector]=\\\"listItemDirective.injector\\\"\\n ></ng-template>\\n </ng-container>\\n }\\n </fdb-navigation-content-end>\\n }\\n}\\n\\n<ng-template #itemRenderer let-item let-injector=\\\"injector\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"_navigationItemRenderer()?.templateRef || null\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n [ngTemplateOutletInjector]=\\\"injector\\\"\\n ></ng-template>\\n @if (item.children && item.children.length > 0) {\\n @for (child of item.children; track child) {\\n <ng-container fdbNavigationListItem [item]=\\\"child\\\" #listItemDirective=\\\"fdbListItem\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"itemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: child, injector: listItemDirective.injector }\\\"\\n [ngTemplateOutletInjector]=\\\"listItemDirective.injector\\\"\\n ></ng-template>\\n </ng-container>\\n }\\n }\\n</ng-template>\\n\", styles: [\"@charset \\\"UTF-8\\\";.fd-navigation{--fdNavigation_Height:100%;--fdNavigation_Padding_X:.5rem;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Item_Spacing:.25rem;--fdNavigation_Padding_Bottom:.5rem;--fdNavigation_Horizontal_Height:3.5rem;--fdNavigation_Expander_Position_Right:.5rem;--fdNavigation_Border_Radius:0;--fdNavigation_Box_Shadow:var(--sapContent_Shadow0);--fdNavigation_Link_Icon_Size:1rem;--fdNavigation_Link_Icon_Color:var(--sapList_TextColor);--fdNavigation_Link_Min_Height:var(--sapElement_LineHeight);--fdNavigation_Link_Font_Family:var(--sapFontBoldFamily);--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Text_Color:inherit;--fdNavigation_Link_Shift_Left:1rem;--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left);--fdNavigation_Link_Padding_Right:.375rem;--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:var(--sapList_SelectionBackgroundColor);--fdNavigation_List_Container_Display:none;--fdNavigation_List_Parent_Items_Display:none;--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Controls_Height:2.25rem;--fdNavigation_Quick_Create_Border_Color:var(--sapButton_BorderColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation:after,.fd-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__container{position:relative}.fd-navigation__container--top{height:100%;overflow:scroll;padding-inline:var(--fdNavigation_Padding_X);position:relative;-webkit-padding-after:.25rem;padding-block-end:.25rem}.fd-navigation__container--bottom{padding-inline:var(--fdNavigation_Padding_X)}.fd-navigation__container--bottom:before{background:var(--sapToolbar_SeparatorColor);content:\\\"\\\";display:inline-block;height:.0625rem;margin-block:.5625rem;width:100%}.fd-navigation__list-container{border:0;-webkit-box-sizing:border-box;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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation__list-container:after,.fd-navigation__list-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list-wrapper{width:100%}.fd-navigation__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing);height:100%;list-style-type:none;position:relative}.fd-navigation__list:after,.fd-navigation__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list--parent-items{display:var(--fdNavigation_List_Parent_Items_Display)}.fd-navigation__list-item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing)}.fd-navigation__list-item:after,.fd-navigation__list-item:before{-webkit-box-sizing:inherit;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:.625rem;max-height:.625rem;min-height:.625rem}.fd-navigation__list-item--overflow{position:relative}.fd-navigation__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:var(--fdNavigation_Link_Padding_Left) var(--fdNavigation_Link_Padding_Right);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--fdNavigation_Link_Background);border-radius:var(--fdNavigation_Link_Border_Radius);color:var(--fdNavigation_Link_Text_Color);cursor:pointer;gap:var(--fdNavigation_Link_Spacing);min-height:var(--fdNavigation_Link_Min_Height);overflow:hidden;position:relative;text-align:start;text-decoration:none;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);width:100%}.fd-navigation__link:after,.fd-navigation__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__link:before{border-bottom:.0625rem solid var(--fdNavigation_Link_Border_Color);border:.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_Background:var(--sapList_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_Background:var(--sapList_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{z-index:5;--fdNavigation_Link_Border_Color:transparent;--fdNavigation_Link_Border_Bottom_Color:transparent;--fdNavigation_Link_Background:var(--sapList_Background);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:-.125rem}.fd-navigation__link.is-focus.is-hover,.fd-navigation__link.is-focus:hover,.fd-navigation__link:focus.is-hover,.fd-navigation__link:focus:hover{--fdNavigation_Link_Background:var(--sapList_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:focus-visible{outline-offset:-.125rem}.fd-navigation__link.is-disabled,.fd-navigation__link:disabled,.fd-navigation__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-navigation__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--fdNavigation_Link_Border_Radius);height:100%;position:relative}.fd-navigation__item:after,.fd-navigation__item:before{-webkit-box-sizing:inherit;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(--sapList_SelectionBackgroundColor);--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{z-index:5;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--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-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(--sapList_Hover_SelectionBackground);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Padding_Left:2.5rem}.fd-navigation__item--group{display:var(--fdNavigation_Item_Group_Display)}.fd-navigation__item--group .fd-navigation__link{--fdNavigation_Link_Text_Color:var(--sapContent_LabelColor);--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Font_Size:var(--sapFontSize)}.fd-navigation__item--title{height:auto;-webkit-margin-after:var(--fdNavigation_Item_Title_Margin_Bottom,0);display:var(--fdNavigation_Item_Title_Display);margin-block-end:var(--fdNavigation_Item_Title_Margin_Bottom,0)}.fd-navigation__item--title .fd-navigation__text{font-weight:700;--fdNavigation_Item_Title_Display:block}.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_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:var(--fdNavigation_Link_Shift_Left)}.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:flex;cursor:pointer;position:absolute;right:var(--fdNavigation_Link_Has_Child_Indicator_Pos_Right,.375rem);z-index:20}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator:after{background:var(--sapTextColor);content:\\\"\\\";display:var(--fdNavigation_Link_Has_Child_Indicator_Div_Display,inline-block);height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fd-navigation__item--with-expander.is-hover .fd-navigation__link,.fd-navigation__item--with-expander:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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__item--with-expander.is-active .fd-navigation__link,.fd-navigation__item--with-expander:active .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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--with-expander.is-selected.is-hover .fd-navigation__link,.fd-navigation__item--with-expander.is-selected:hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation__item--create{--fdNavigation_Link_Text_Color:var(--sapButton_TextColor);--fdNavigation_Link_Icon_Color:var(--sapButton_TextColor)}.fd-navigation__item--create .fd-navigation__link{border:var(--sapButton_BorderWidth) solid var(--fdNavigation_Quick_Create_Border_Color)}.fd-navigation__item--create .fd-navigation__link.is-active,.fd-navigation__item--create .fd-navigation__link:active{--fdNavigation_Quick_Create_Border_Color:var(--sapButton_Active_BorderColor);--fdNavigation_Link_Background:var(--sapButton_Active_Background)}.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]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdNavigation_Link_Icon_Color);font-family:var(--sapFontBoldFamily);font-size:var(--fdNavigation_Link_Icon_Size)}.fd-navigation__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdNavigation_Link_Text_Color);display:var(--fdNavigation_Item_Text_Display);font-family:var(--sapFontFamily);font-family:var(--fdNavigation_Link_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdNavigation_Link_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap;width:100%}.fd-navigation__text:after,.fd-navigation__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator{background:var(--sapList_SelectionBorderColor);border:0;-webkit-box-sizing:border-box;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:100%;left:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:0;width:.188rem}.fd-navigation__selection-indicator:after,.fd-navigation__selection-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator[dir=rtl],[dir=rtl] .fd-navigation__selection-indicator{left:auto;right:0}.fd-navigation__has-children-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_Has_Child_Indicator_Display);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:var(--fdNavigation_Controls_Width)}.fd-navigation__has-children-indicator:after,.fd-navigation__has-children-indicator:before{-webkit-box-sizing:inherit;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:1rem}[dir=rtl] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ee\\\"}.fd-navigation__external-link-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_External_Link_Indicator_Display,flex);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);width:var(--fdNavigation_Controls_Width)}.fd-navigation__external-link-indicator:after,.fd-navigation__external-link-indicator:before{-webkit-box-sizing:inherit;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:1rem}.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{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);height:.75rem;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;width:.75rem}.fd-navigation__back-indicator:after,.fd-navigation__back-indicator:before{-webkit-box-sizing:inherit;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--snapped .fd-navigation__container--bottom,.fd-navigation--snapped .fd-navigation__container--top{overflow:visible}.fd-navigation--snapped .fd-navigation__list-wrapper{padding-block:.5rem;padding-inline:.5rem}.fd-navigation--snapped .fd-navigation__list-container{background:var(--sapGroup_ContentBackground);border:none;border-radius:var(--sapPopover_BorderCornerRadius);-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:calc(100% + .1875rem);padding-block:.5rem;padding-inline:.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-block:0;padding-inline:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem;-webkit-box-shadow:none;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--submenu{left:calc(100% + .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.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-container .fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.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:1rem}.fd-navigation--snapped .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:.5rem;height:auto}.fd-navigation--snapped .fd-navigation__item--title{--fdNavigation_Item_Title_Display:block;--fdNavigation_Item_Title_Margin_Bottom:.5rem}.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_Background:var(--sapList_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active)}.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_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link{--fdNavigation_Link_Spacing:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:0;--fdNavigation_Link_External_Link_Indicator_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:1rem;--fdNavigation_Link_Spacing:.5rem;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:.375rem;--fdNavigation_Link_External_Link_Indicator_Display:flex}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow)>.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__item--overflow)>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link .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__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:.375rem;--fdNavigation_Link_Has_Child_Indicator_Div_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation.fd-navigation--vertical{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--sapList_Background);border-radius:var(--fdNavigation_Border_Radius);-webkit-box-shadow:var(--fdNavigation_Box_Shadow);box-shadow:var(--fdNavigation_Box_Shadow);height:var(--fdNavigation_Height);justify-content:space-between;min-width:16rem;padding-block:var(--fdNavigation_Padding_Top) var(--fdNavigation_Padding_Bottom)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Height:auto;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Border_Radius:.5rem;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow2)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--bottom,.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation.fd-navigation--vertical.fd-navigation--snapped{max-width:4rem;min-width:4rem;width:4rem}.fd-navigation.fd-navigation--horizontal{background:var(--sapNavigation_Background);height:var(--fdNavigation_Horizontal_Height);padding-block:calc((var(--fdNavigation_Horizontal_Height) - var(--fdNavigation_Link_Min_Height))*.5);padding-inline:1.5rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:1rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__link:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Selection_Indicator_Display:inline-block}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{z-index:5;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation.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.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.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.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.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.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:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items){--fdNavigation_Item_Spacing:.75rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list-item--spacer{height:.75rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu){--fdPopover_Offset: calc(100% + .3875rem) ;background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;-webkit-box-shadow:var(--sapMenu_Shadow2);box-shadow:var(--sapMenu_Shadow2);padding-block:.05rem;padding-inline:.05rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);padding-block:.5rem;padding-inline:.5rem;position:absolute;right:-.5rem;top:calc(100% + .3875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{left:-.5rem;right:auto}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding-block:0;padding-inline:0}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.25rem;-webkit-box-shadow:none;box-shadow:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.fd-navigation__item--overflow .fd-navigation__has-children-indicator{display:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);left:calc(-100% - .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{left:auto;right:calc(-100% - .1875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-wrapper{padding-block:.7rem;padding-inline:.7rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link{--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:focus{z-index:5;--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(1.6875rem + var(--fdNavigation_Controls_Width))}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--child:not(.fd-navigation__item--submenu-child) .fd-navigation__link{--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander{border:none;margin-block:0;margin-inline:.0625rem;outline-offset:-.0625rem;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:after{border-bottom:.0625rem solid var(--fdNavigation_Expander_Border_Color);border:.0625rem solid var(--fdNavigation_Expander_Border_Color);border-bottom-color:var(--fdNavigation_Expander_Border_Bottom_Color);content:\\\"\\\";inset:0;position:absolute}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:hover{--fdButton_Nested_Background:var(--sapList_Hover_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Hover);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Hover)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active{--fdButton_Nested_Background:var(--sapList_Active_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{z-index:5;--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander.is-expanded .fd-navigation__expander,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander[aria-expanded=true] .fd-navigation__expander{--fdButton_Nested_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem}.fd-navigation[class*=-compact],[class*=-compact] .fd-navigation:not([class*=-cozy]){--fdNavigation_Link_Min_Height:2rem;--fdNavigation_Controls_Width:2rem;--fdNavigation_Controls_Height:1.5625rem}.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:.125rem}.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}.fd-navigation__item .fd-popover-custom{max-width:none}.fd-navigation__item.fd-navigation__item--title .fd-navigation__has-children-indicator{display:none}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/navigation.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NavigationListItemDirective, selector: \"[fdbNavigationListItem]\", inputs: [\"item\"], exportAs: [\"fdbListItem\"] }, { kind: \"component\", type: NavigationContentStartComponent, selector: \"fdb-navigation-content-start\", inputs: [\"contentProjected\"] }, { kind: \"component\", type: NavigationContentEndComponent, selector: \"fdb-navigation-content-end\", inputs: [\"contentProjected\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\n__decorate([\n applyCssClass,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Array)\n], NavigationComponent.prototype, \"buildComponentCssClass\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdb-navigation', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n NavigationService,\n {\n provide: FdbNavigation,\n useExisting: NavigationComponent\n }\n ], host: {\n role: 'navigation'\n }, imports: [\n NgTemplateOutlet,\n NavigationListItemDirective,\n NavigationContentStartComponent,\n NavigationContentEndComponent\n ], template: \"<ng-content></ng-content>\\n@if (_navigationItemRenderer()) {\\n @if (dataSourceItems()?.start; as startItems) {\\n <fdb-navigation-content-start [contentProjected]=\\\"false\\\">\\n @for (item of startItems; track item) {\\n <ng-container fdbNavigationListItem [item]=\\\"item\\\" #listItemDirective=\\\"fdbListItem\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"itemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item, injector: listItemDirective.injector }\\\"\\n [ngTemplateOutletInjector]=\\\"listItemDirective.injector\\\"\\n ></ng-template>\\n </ng-container>\\n }\\n </fdb-navigation-content-start>\\n }\\n @if (dataSourceItems()?.end; as endItems) {\\n <fdb-navigation-content-end [contentProjected]=\\\"false\\\">\\n @for (item of endItems; track item) {\\n <ng-container fdbNavigationListItem [item]=\\\"item\\\" #listItemDirective=\\\"fdbListItem\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"itemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item, injector: listItemDirective.injector }\\\"\\n [ngTemplateOutletInjector]=\\\"listItemDirective.injector\\\"\\n ></ng-template>\\n </ng-container>\\n }\\n </fdb-navigation-content-end>\\n }\\n}\\n\\n<ng-template #itemRenderer let-item let-injector=\\\"injector\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"_navigationItemRenderer()?.templateRef || null\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: item }\\\"\\n [ngTemplateOutletInjector]=\\\"injector\\\"\\n ></ng-template>\\n @if (item.children && item.children.length > 0) {\\n @for (child of item.children; track child) {\\n <ng-container fdbNavigationListItem [item]=\\\"child\\\" #listItemDirective=\\\"fdbListItem\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"itemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: child, injector: listItemDirective.injector }\\\"\\n [ngTemplateOutletInjector]=\\\"listItemDirective.injector\\\"\\n ></ng-template>\\n </ng-container>\\n }\\n }\\n</ng-template>\\n\", styles: [\"@charset \\\"UTF-8\\\";.fd-navigation{--fdNavigation_Height:100%;--fdNavigation_Padding_X:.5rem;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Item_Spacing:.25rem;--fdNavigation_Padding_Bottom:.5rem;--fdNavigation_Horizontal_Height:3.5rem;--fdNavigation_Expander_Position_Right:.5rem;--fdNavigation_Border_Radius:0;--fdNavigation_Box_Shadow:var(--sapContent_Shadow0);--fdNavigation_Link_Icon_Size:1rem;--fdNavigation_Link_Icon_Color:var(--sapList_TextColor);--fdNavigation_Link_Min_Height:var(--sapElement_LineHeight);--fdNavigation_Link_Font_Family:var(--sapFontBoldFamily);--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Text_Color:inherit;--fdNavigation_Link_Shift_Left:1rem;--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left);--fdNavigation_Link_Padding_Right:.375rem;--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:var(--sapList_SelectionBackgroundColor);--fdNavigation_List_Container_Display:none;--fdNavigation_List_Parent_Items_Display:none;--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Controls_Height:2.25rem;--fdNavigation_Quick_Create_Border_Color:var(--sapButton_BorderColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation:after,.fd-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__container{position:relative}.fd-navigation__container--top{height:100%;overflow:scroll;padding-inline:var(--fdNavigation_Padding_X);position:relative;-webkit-padding-after:.25rem;padding-block-end:.25rem}.fd-navigation__container--bottom{padding-inline:var(--fdNavigation_Padding_X)}.fd-navigation__container--bottom:before{background:var(--sapToolbar_SeparatorColor);content:\\\"\\\";display:inline-block;height:.0625rem;margin-block:.5625rem;width:100%}.fd-navigation__list-container{border:0;-webkit-box-sizing:border-box;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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation__list-container:after,.fd-navigation__list-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list-wrapper{width:100%}.fd-navigation__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing);height:100%;list-style-type:none;position:relative}.fd-navigation__list:after,.fd-navigation__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list--parent-items{display:var(--fdNavigation_List_Parent_Items_Display)}.fd-navigation__list-item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing)}.fd-navigation__list-item:after,.fd-navigation__list-item:before{-webkit-box-sizing:inherit;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:.625rem;max-height:.625rem;min-height:.625rem}.fd-navigation__list-item--overflow{position:relative}.fd-navigation__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:var(--fdNavigation_Link_Padding_Left) var(--fdNavigation_Link_Padding_Right);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--fdNavigation_Link_Background);border-radius:var(--fdNavigation_Link_Border_Radius);color:var(--fdNavigation_Link_Text_Color);cursor:pointer;gap:var(--fdNavigation_Link_Spacing);min-height:var(--fdNavigation_Link_Min_Height);overflow:hidden;position:relative;text-align:start;text-decoration:none;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);width:100%}.fd-navigation__link:after,.fd-navigation__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__link:before{border-bottom:.0625rem solid var(--fdNavigation_Link_Border_Color);border:.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_Background:var(--sapList_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_Background:var(--sapList_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{z-index:5;--fdNavigation_Link_Border_Color:transparent;--fdNavigation_Link_Border_Bottom_Color:transparent;--fdNavigation_Link_Background:var(--sapList_Background);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:-.125rem}.fd-navigation__link.is-focus.is-hover,.fd-navigation__link.is-focus:hover,.fd-navigation__link:focus.is-hover,.fd-navigation__link:focus:hover{--fdNavigation_Link_Background:var(--sapList_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:focus-visible{outline-offset:-.125rem}.fd-navigation__link.is-disabled,.fd-navigation__link:disabled,.fd-navigation__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-navigation__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--fdNavigation_Link_Border_Radius);height:100%;position:relative}.fd-navigation__item:after,.fd-navigation__item:before{-webkit-box-sizing:inherit;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(--sapList_SelectionBackgroundColor);--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{z-index:5;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--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-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(--sapList_Hover_SelectionBackground);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Padding_Left:2.5rem}.fd-navigation__item--group{display:var(--fdNavigation_Item_Group_Display)}.fd-navigation__item--group .fd-navigation__link{--fdNavigation_Link_Text_Color:var(--sapContent_LabelColor);--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Font_Size:var(--sapFontSize)}.fd-navigation__item--title{height:auto;-webkit-margin-after:var(--fdNavigation_Item_Title_Margin_Bottom,0);display:var(--fdNavigation_Item_Title_Display);margin-block-end:var(--fdNavigation_Item_Title_Margin_Bottom,0)}.fd-navigation__item--title .fd-navigation__text{font-weight:700;--fdNavigation_Item_Title_Display:block}.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_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:var(--fdNavigation_Link_Shift_Left)}.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:flex;cursor:pointer;position:absolute;right:var(--fdNavigation_Link_Has_Child_Indicator_Pos_Right,.375rem);z-index:20}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator:after{background:var(--sapTextColor);content:\\\"\\\";display:var(--fdNavigation_Link_Has_Child_Indicator_Div_Display,inline-block);height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fd-navigation__item--with-expander.is-hover .fd-navigation__link,.fd-navigation__item--with-expander:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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__item--with-expander.is-active .fd-navigation__link,.fd-navigation__item--with-expander:active .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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--with-expander.is-selected.is-hover .fd-navigation__link,.fd-navigation__item--with-expander.is-selected:hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation__item--create{--fdNavigation_Link_Text_Color:var(--sapButton_TextColor);--fdNavigation_Link_Icon_Color:var(--sapButton_TextColor)}.fd-navigation__item--create .fd-navigation__link{border:var(--sapButton_BorderWidth) solid var(--fdNavigation_Quick_Create_Border_Color)}.fd-navigation__item--create .fd-navigation__link.is-active,.fd-navigation__item--create .fd-navigation__link:active{--fdNavigation_Quick_Create_Border_Color:var(--sapButton_Active_BorderColor);--fdNavigation_Link_Background:var(--sapButton_Active_Background)}.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]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdNavigation_Link_Icon_Color);font-family:var(--sapFontBoldFamily);font-size:var(--fdNavigation_Link_Icon_Size)}.fd-navigation__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdNavigation_Link_Text_Color);display:var(--fdNavigation_Item_Text_Display);font-family:var(--sapFontFamily);font-family:var(--fdNavigation_Link_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdNavigation_Link_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap;width:100%}.fd-navigation__text:after,.fd-navigation__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator{background:var(--sapList_SelectionBorderColor);border:0;-webkit-box-sizing:border-box;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:100%;left:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:0;width:.188rem}.fd-navigation__selection-indicator:after,.fd-navigation__selection-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator[dir=rtl],[dir=rtl] .fd-navigation__selection-indicator{left:auto;right:0}.fd-navigation__has-children-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_Has_Child_Indicator_Display);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:var(--fdNavigation_Controls_Width)}.fd-navigation__has-children-indicator:after,.fd-navigation__has-children-indicator:before{-webkit-box-sizing:inherit;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:1rem}[dir=rtl] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ee\\\"}.fd-navigation__external-link-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_External_Link_Indicator_Display,flex);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);width:var(--fdNavigation_Controls_Width)}.fd-navigation__external-link-indicator:after,.fd-navigation__external-link-indicator:before{-webkit-box-sizing:inherit;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:1rem}.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{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);height:.75rem;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;width:.75rem}.fd-navigation__back-indicator:after,.fd-navigation__back-indicator:before{-webkit-box-sizing:inherit;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--snapped .fd-navigation__container--bottom,.fd-navigation--snapped .fd-navigation__container--top{overflow:visible}.fd-navigation--snapped .fd-navigation__list-wrapper{padding-block:.5rem;padding-inline:.5rem}.fd-navigation--snapped .fd-navigation__list-container{background:var(--sapGroup_ContentBackground);border:none;border-radius:var(--sapPopover_BorderCornerRadius);-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:calc(100% + .1875rem);padding-block:.5rem;padding-inline:.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-block:0;padding-inline:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem;-webkit-box-shadow:none;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--submenu{left:calc(100% + .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.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-container .fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.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:1rem}.fd-navigation--snapped .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:.5rem;height:auto}.fd-navigation--snapped .fd-navigation__item--title{--fdNavigation_Item_Title_Display:block;--fdNavigation_Item_Title_Margin_Bottom:.5rem}.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_Background:var(--sapList_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active)}.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_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link{--fdNavigation_Link_Spacing:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:0;--fdNavigation_Link_External_Link_Indicator_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:1rem;--fdNavigation_Link_Spacing:.5rem;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:.375rem;--fdNavigation_Link_External_Link_Indicator_Display:flex}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow)>.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__item--overflow)>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link .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__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:.375rem;--fdNavigation_Link_Has_Child_Indicator_Div_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation.fd-navigation--vertical{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--sapList_Background);border-radius:var(--fdNavigation_Border_Radius);-webkit-box-shadow:var(--fdNavigation_Box_Shadow);box-shadow:var(--fdNavigation_Box_Shadow);height:var(--fdNavigation_Height);justify-content:space-between;min-width:16rem;padding-block:var(--fdNavigation_Padding_Top) var(--fdNavigation_Padding_Bottom)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Height:auto;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Border_Radius:.5rem;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow2)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--bottom,.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation.fd-navigation--vertical.fd-navigation--snapped{max-width:4rem;min-width:4rem;width:4rem}.fd-navigation.fd-navigation--horizontal{background:var(--sapNavigation_Background);height:var(--fdNavigation_Horizontal_Height);padding-block:calc((var(--fdNavigation_Horizontal_Height) - var(--fdNavigation_Link_Min_Height))*.5);padding-inline:1.5rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:1rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__link:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Selection_Indicator_Display:inline-block}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{z-index:5;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation.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.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.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.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.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.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:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items){--fdNavigation_Item_Spacing:.75rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list-item--spacer{height:.75rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu){--fdPopover_Offset: calc(100% + .3875rem) ;background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;-webkit-box-shadow:var(--sapMenu_Shadow2);box-shadow:var(--sapMenu_Shadow2);padding-block:.05rem;padding-inline:.05rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);padding-block:.5rem;padding-inline:.5rem;position:absolute;right:-.5rem;top:calc(100% + .3875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{left:-.5rem;right:auto}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding-block:0;padding-inline:0}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.25rem;-webkit-box-shadow:none;box-shadow:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.fd-navigation__item--overflow .fd-navigation__has-children-indicator{display:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);left:calc(-100% - .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{left:auto;right:calc(-100% - .1875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-wrapper{padding-block:.7rem;padding-inline:.7rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link{--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:focus{z-index:5;--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(1.6875rem + var(--fdNavigation_Controls_Width))}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--child:not(.fd-navigation__item--submenu-child) .fd-navigation__link{--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander{border:none;margin-block:0;margin-inline:.0625rem;outline-offset:-.0625rem;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:after{border-bottom:.0625rem solid var(--fdNavigation_Expander_Border_Color);border:.0625rem solid var(--fdNavigation_Expander_Border_Color);border-bottom-color:var(--fdNavigation_Expander_Border_Bottom_Color);content:\\\"\\\";inset:0;position:absolute}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:hover{--fdButton_Nested_Background:var(--sapList_Hover_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Hover);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Hover)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active{--fdButton_Nested_Background:var(--sapList_Active_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{z-index:5;--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander.is-expanded .fd-navigation__expander,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander[aria-expanded=true] .fd-navigation__expander{--fdButton_Nested_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem}.fd-navigation[class*=-compact],[class*=-compact] .fd-navigation:not([class*=-cozy]){--fdNavigation_Link_Min_Height:2rem;--fdNavigation_Controls_Width:2rem;--fdNavigation_Controls_Height:1.5625rem}.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:.125rem}.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}.fd-navigation__item .fd-popover-custom{max-width:none}.fd-navigation__item.fd-navigation__item--title .fd-navigation__has-children-indicator{display:none}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/navigation.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { class: [{\n type: Input\n }], mode: [{\n type: Input\n }], state: [{\n type: Input\n }], type: [{\n type: Input\n }], _navigationItemRef: [{\n type: ContentChild,\n args: [NavigationListItemRefDirective]\n }], _navigationItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: true }]\n }], buildComponentCssClass: [], _keyDownHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsU0FBUyxFQUVULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBbUIsT0FBTyxFQUFZLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUMzRyxPQUFPLEVBQ0gsMkJBQTJCLEVBQzNCLDhCQUE4QixFQUNqQyxNQUFNLHFEQUFxRCxDQUFDO0FBRTdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUE4QnpHLE1BQU0sT0FBTyxtQkFDVCxTQUFRLGFBQWE7SUFhckI7O09BRUc7SUFDSCxJQUNJLEtBQUssQ0FBQyxLQUF5QjtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQVFELGNBQWM7SUFDZCxJQUNJLGtCQUFrQixDQUFDLEtBQStDO1FBQ2xFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFzREQsY0FBYztJQUNkO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFuRlo7O1dBRUc7UUFFSCxTQUFJLEdBQWdCLEVBQUUsQ0FBQztRQWF2Qjs7V0FFRztRQUVILFNBQUksR0FBc0IsVUFBVSxDQUFDO1FBWXJDOztXQUVHO1FBQ00sV0FBTSxHQUFHLE1BQU0sQ0FBcUIsVUFBVSxrREFBQyxDQUFDO1FBRXpEOztXQUVHO1FBQ00sZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssU0FBUyxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ00sb0JBQWUsR0FBRyxNQUFNLENBQWtDLElBQUksMkRBQUMsQ0FBQztRQUV6RTs7O1dBR0c7UUFDTSxlQUFVLEdBQUcsTUFBTSxDQUFXLEVBQUUsc0RBQUMsQ0FBQztRQUUzQyxjQUFjO1FBQ0wsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUt6QyxjQUFjO1FBQ0wsNEJBQXVCLEdBQUcsTUFBTSxDQUF3QyxJQUFJLG1FQUFDLENBQUM7UUFFdkYsK0RBQStEO1FBQ3RELG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUU5QyxjQUFjO1FBQ0csb0JBQWUsR0FBRyxNQUFNLENBQUMsS0FBSywyREFBQyxDQUFDO1FBRWpEOzs7V0FHRztRQUNjLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRTtZQUM5RSxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDO1FBUUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQzNCLENBQUMsSUFBSSxDQUFDLG9CQUFvQjtZQUN0QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUE0QixDQUFDO1lBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDdEQsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxZQUFZLEdBQTJCLElBQUksQ0FBQyxNQUFNLENBQ3BELENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO29CQUNWLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixPQUFPLEdBQUcsQ0FBQztnQkFDZixDQUFDLEVBQ0QsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQTRCLENBQ25ELENBQUM7Z0JBQ0YsT0FBTyxZQUFZLENBQUM7WUFDeEIsQ0FBQyxDQUFDLENBQ0wsQ0FDVixDQUFDO1FBQ0YsNkVBQTZFO1FBQzdFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBRWQsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUNmO1lBQ0ksSUFBSSxDQUFDLEtBQUs7WUFDVixlQUFlO1lBQ2YsSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hELGtCQUFrQixJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ2pDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3ZCLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7O09BR0c7SUFFSyxlQUFlLENBQUMsS0FBb0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1gsQ0FBQztRQUVELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV2QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7YUFDeEQsdUJBQXVCLEVBQUU7YUFDekIsYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsSUFBMkI7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGtFQUFrRTtJQUNsRSxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FBQyxjQUErQztRQUNuRSxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNsQixJQUFJLG1CQUFtQixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdCLE9BQU87WUFDWCxDQUFDO1lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzQixPQUFPO1lBQ1gsQ0FBQztZQUVELGtEQUFrRDtZQUNsRCxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNiLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxTQUFTLEtBQUssT0FBTyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUN0RyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU87WUFDWCxDQUFDO1lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7OEdBbk9RLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDBPQWpCakI7WUFDUCxpQkFBaUI7WUFDakI7Z0JBQ0ksT0FBTyxFQUFFLGFBQWE7Z0JBQ3RCLFdBQVcsRUFBRSxtQkFBbUI7YUFDbkM7U0FDSiwwRUEyQ2EsOEJBQThCLHNFQU0zQixxQkFBcUIsNEZDMUcxQyxveUVBZ0RBLDJtbkVEY1EsZ0JBQWdCLG9KQUNoQiwyQkFBMkIsaUhBQzNCLCtCQUErQix1R0FDL0IsNkJBQTZCOztBQXlIakM7SUFEQyxhQUFhOzs7O2lFQVdiOzJGQWhJUSxtQkFBbUI7a0JBdkIvQixTQUFTOytCQUNJLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLGlCQUFpQjt3QkFDakI7NEJBQ0ksT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcscUJBQXFCO3lCQUNuQztxQkFDSixRQUNLO3dCQUNGLElBQUksRUFBRSxZQUFZO3FCQUNyQixXQUNRO3dCQUNMLGdCQUFnQjt3QkFDaEIsMkJBQTJCO3dCQUMzQiwrQkFBK0I7d0JBQy9CLDZCQUE2QjtxQkFDaEM7d0RBUUQsS0FBSztzQkFESixLQUFLO2dCQU9OLElBQUk7c0JBREgsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBWU4sSUFBSTtzQkFESCxLQUFLO2dCQUtGLGtCQUFrQjtzQkFEckIsWUFBWTt1QkFBQyw4QkFBOEI7Z0JBTzNCLGdCQUFnQjtzQkFEaEMsZUFBZTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBZ0Y3RCxzQkFBc0IsTUFpQmQsZUFBZTtzQkFEdEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGZGJWaWV3TW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvYnRwL3NoYXJlZCc7XG5pbXBvcnQgeyBDc3NDbGFzc0J1aWxkZXIsIEtleVV0aWwsIE51bGxhYmxlLCBhcHBseUNzc0NsYXNzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgU3ViamVjdCwgbWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3REYXRhU291cmNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgTmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlLFxuICAgIE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZVxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25hdmlnYXRpb24tbGlzdC1pdGVtLXJlZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkRhdGFTb3VyY2VJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24tZGF0YS1zb3VyY2UtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25TdGF0ZSwgRmRiTmF2aWdhdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29udGVudEVuZENvbXBvbmVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tZW5kL25hdmlnYXRpb24tY29udGVudC1lbmQuY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25Db250ZW50U3RhcnRDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLXN0YXJ0L25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgR3JvdXBlZERhdGFTb3VyY2VJdGVtcyB7XG4gICAgc3RhcnQ6IE5hdmlnYXRpb25EYXRhU291cmNlSXRlbVtdO1xuICAgIGVuZDogTmF2aWdhdGlvbkRhdGFTb3VyY2VJdGVtW107XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRiLW5hdmlnYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZkYk5hdmlnYXRpb24sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICduYXZpZ2F0aW9uJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmUsXG4gICAgICAgIE5hdmlnYXRpb25Db250ZW50U3RhcnRDb21wb25lbnQsXG4gICAgICAgIE5hdmlnYXRpb25Db250ZW50RW5kQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBGZGJOYXZpZ2F0aW9uXG4gICAgaW1wbGVtZW50cyBDc3NDbGFzc0J1aWxkZXIsIE9uQ2hhbmdlcywgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE5hdmlnYXRpb24gbW9kZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1vZGU6IEZkYlZpZXdNb2RlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0aW9uIHN0YXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHZhbHVlOiBGZGJOYXZpZ2F0aW9uU3RhdGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSQuc2V0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZkYk5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlJCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5hdmlnYXRpb24gdHlwZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGU6IEZkYk5hdmlnYXRpb25UeXBlID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChOYXZpZ2F0aW9uTGlzdEl0ZW1SZWZEaXJlY3RpdmUpXG4gICAgc2V0IF9uYXZpZ2F0aW9uSXRlbVJlZih2YWx1ZTogTnVsbGFibGU8TmF2aWdhdGlvbkxpc3RJdGVtUmVmRGlyZWN0aXZlPikge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uSXRlbVJlbmRlcmVyLnNldCh2YWx1ZSB8fCBudWxsKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRmRiTmF2aWdhdGlvbkxpc3RJdGVtLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkl0ZW1zOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKlxuICAgICAqIFN0YXRlIHNpZ25hbC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdGF0ZSQgPSBzaWduYWw8RmRiTmF2aWdhdGlvblN0YXRlPignZXhwYW5kZWQnKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIG5hdmlnYXRpb24gaXMgaW4gc25hcHBlZCBtb2RlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzU25hcHBlZCQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXRlJCgpID09PSAnc25hcHBlZCcpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBzaG93IFwiTW9yZVwiIGJ1dHRvbi4gQXBwbGljYWJsZSBmb3IgYHNuYXBwZWRgIHN0YXRlIG9ubHkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2hvd01vcmVCdXR0b24kID0gc2lnbmFsPE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT4+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogU2lnbmFsIGZvciBuYXZpZ2F0aW9uIGNsYXNzTGlzdC5cbiAgICAgKiBVc2VkIGJ5IHBvcG92ZXItYmFzZWQgc3VibWVudXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgY2xhc3NMaXN0JCA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBkYXRhU291cmNlSXRlbXM6IFNpZ25hbDxHcm91cGVkRGF0YVNvdXJjZUl0ZW1zIHwgdW5kZWZpbmVkPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX25hdmlnYXRpb25JdGVtUmVuZGVyZXIgPSBzaWduYWw8TmF2aWdhdGlvbkxpc3RJdGVtUmVmRGlyZWN0aXZlIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKiogU3RyZWFtIG5vdGlmaWVzIHRvIGNsb3NlIGFsbCBwb3B1cHMgaW4gY2hpbGQgbGlzdCBpdGVtcy4gKi9cbiAgICByZWFkb25seSBjbG9zZUFsbFBvcHVwcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdJbml0aWF0ZWQkID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBEYXRhIHNvdXJjZSBkaXJlY3RpdmUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGF0YVNvdXJjZURpcmVjdGl2ZSA9IGluamVjdChOYXZpZ2F0aW9uTGlzdERhdGFTb3VyY2VEaXJlY3RpdmUsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIHNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2V5TWFuYWdlcjogRm9jdXNLZXlNYW5hZ2VyPEZkYk5hdmlnYXRpb25MaXN0SXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2VJdGVtcyA9IHRvU2lnbmFsKFxuICAgICAgICAgICAgIXRoaXMuX2RhdGFTb3VyY2VEaXJlY3RpdmVcbiAgICAgICAgICAgICAgICA/IG9mKHsgc3RhcnQ6IFtdLCBlbmQ6IFtdIH0gYXMgR3JvdXBlZERhdGFTb3VyY2VJdGVtcylcbiAgICAgICAgICAgICAgICA6IHRoaXMuX2RhdGFTb3VyY2VEaXJlY3RpdmUuZGF0YUNoYW5nZWQkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwZWRJdGVtczogR3JvdXBlZERhdGFTb3VyY2VJdGVtcyA9IGRhdGEucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjYywgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY1tpdGVtLnBsYWNlbWVudF0ucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhcnQ6IFtdLCBlbmQ6IFtdIH0gYXMgR3JvdXBlZERhdGFTb3VyY2VJdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXBlZEl0ZW1zO1xuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIC8vIFdoZW4gc2hvdyBtb3JlIGJ1dHRvbiBpcyBzaG93biwgcmVzZXQgaXRlbXMgbGlzdCB3aXRoIGFkZGVkIFwiTW9yZSBidXR0b25cIi5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLl92aWV3SW5pdGlhdGVkJCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRJdGVtc0xpc3QodGhpcy5zaG93TW9yZUJ1dHRvbiQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQGFwcGx5Q3NzQ2xhc3NcbiAgICBidWlsZENvbXBvbmVudENzc0NsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgdGhpcy5jbGFzc0xpc3QkLnNldChcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICB0aGlzLmNsYXNzLFxuICAgICAgICAgICAgICAgICdmZC1uYXZpZ2F0aW9uJyxcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPT09ICcnID8gJ2ZkLW5hdmlnYXRpb24tLWNvbXBhY3QnIDogJycsXG4gICAgICAgICAgICAgICAgYGZkLW5hdmlnYXRpb24tLSR7dGhpcy5zdGF0ZX1gXG4gICAgICAgICAgICBdLmZpbHRlcigoaykgPT4gISFrKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMuY2xhc3NMaXN0JCgpLCBgZmQtbmF2aWdhdGlvbi0tJHt0aGlzLnR5cGV9YF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1haW4ga2V5Ym9hcmQgbmF2aWdhdGlvbiBoYW5kbGVyLlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIHByaXZhdGUgX2tleURvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtVUF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZURpcmVjdGl2ZT8uZGF0YVNvdXJjZVByb3ZpZGVyPy5tYXRjaCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLl9uYXZpZ2F0aW9uSXRlbXMpXG4gICAgICAgICAgICAud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKVxuICAgICAgICAgICAgLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+ICFpdGVtLmlzVmlzaWJsZSQoKSB8fCBpdGVtLnNraXBOYXZpZ2F0aW9uKTtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKDApO1xuICAgICAgICB0aGlzLl92aWV3SW5pdGlhdGVkJC5zZXQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgY3VycmVudGx5IGZvY3VzZWQgbGlzdCBpdGVtLlxuICAgICAqL1xuICAgIGdldEFjdGl2ZUl0ZW0oKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBmb2N1c2VkIGl0ZW0uXG4gICAgICovXG4gICAgc2V0QWN0aXZlSXRlbShpdGVtOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBOb3RpZmllcyBjaGlsZCBsaXN0IGl0ZW1zIHRoYXQgYWxsIHBvcHVwcyBzaG91bGQgYmUgY2xvc2VkLiAqL1xuICAgIGNsb3NlUG9wdXBzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlQWxsUG9wdXBzLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBsaXN0IG9mIGl0ZW1zLlxuICAgICAqIE9wdGlvbmFsbHkgaW5zZXJ0cyBcIk1vcmVcIiBidXR0b24gaWYgb3ZlcmZsb3cgbWVudSBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAgICogQHBhcmFtIHNob3dNb3JlQnV0dG9uIFdoZXRoZXIgdG8gYWRkIFwiTW9yZVwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9yZXNldEl0ZW1zTGlzdChzaG93TW9yZUJ1dHRvbjogTnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPik6IHZvaWQge1xuICAgICAgICBjb25zdCBpdGVtcyA9IFsuLi50aGlzLl9uYXZpZ2F0aW9uSXRlbXMudG9BcnJheSgpXTtcbiAgICAgICAgY29uc3Qgc2hvd01vcmVCdXR0b25JbmRleCA9IGl0ZW1zLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS50eXBlID09PSAnc2hvd01vcmUnKTtcbiAgICAgICAgaWYgKCFzaG93TW9yZUJ1dHRvbikge1xuICAgICAgICAgICAgaWYgKHNob3dNb3JlQnV0dG9uSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpdGVtcy5zcGxpY2Uoc2hvd01vcmVCdXR0b25JbmRleCwgMSk7XG5cbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5yZXNldChpdGVtcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2hvd01vcmVCdXR0b25JbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBGaW5kIGxhc3QgbGlzdCBpdGVtIGZyb20gdGhlIGBTdGFydGAgY29udGFpbmVyLlxuICAgICAgICAgICAgY29uc3QgaW5zZXJ0aW9uSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0SXRlbXMgPSBpdGVtLnBsYWNlbWVudENvbnRhaW5lcj8ubGlzdEl0ZW1zJCgpO1xuICAgICAgICAgICAgICAgIGlmICghbGlzdEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5wbGFjZW1lbnRDb250YWluZXI/LnBsYWNlbWVudCA9PT0gJ3N0YXJ0JyAmJiBsaXN0SXRlbXNbbGlzdEl0ZW1zLmxlbmd0aCAtIDFdID09PSBpdGVtO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChpbnNlcnRpb25JbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGl0ZW1zLnNwbGljZShpbnNlcnRpb25JbmRleCwgMCwgc2hvd01vcmVCdXR0b24pO1xuICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLnJlc2V0KGl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbkBpZiAoX25hdmlnYXRpb25JdGVtUmVuZGVyZXIoKSkge1xuICAgIEBpZiAoZGF0YVNvdXJjZUl0ZW1zKCk/LnN0YXJ0OyBhcyBzdGFydEl0ZW1zKSB7XG4gICAgICAgIDxmZGItbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0IFtjb250ZW50UHJvamVjdGVkXT1cImZhbHNlXCI+XG4gICAgICAgICAgICBAZm9yIChpdGVtIG9mIHN0YXJ0SXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZkYk5hdmlnYXRpb25MaXN0SXRlbSBbaXRlbV09XCJpdGVtXCIgI2xpc3RJdGVtRGlyZWN0aXZlPVwiZmRiTGlzdEl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtUmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBpbmplY3RvcjogbGlzdEl0ZW1EaXJlY3RpdmUuaW5qZWN0b3IgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImxpc3RJdGVtRGlyZWN0aXZlLmluamVjdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmRiLW5hdmlnYXRpb24tY29udGVudC1zdGFydD5cbiAgICB9XG4gICAgQGlmIChkYXRhU291cmNlSXRlbXMoKT8uZW5kOyBhcyBlbmRJdGVtcykge1xuICAgICAgICA8ZmRiLW5hdmlnYXRpb24tY29udGVudC1lbmQgW2NvbnRlbnRQcm9qZWN0ZWRdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgZW5kSXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZkYk5hdmlnYXRpb25MaXN0SXRlbSBbaXRlbV09XCJpdGVtXCIgI2xpc3RJdGVtRGlyZWN0aXZlPVwiZmRiTGlzdEl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtUmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBpbmplY3RvcjogbGlzdEl0ZW1EaXJlY3RpdmUuaW5qZWN0b3IgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImxpc3RJdGVtRGlyZWN0aXZlLmluamVjdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmRiLW5hdmlnYXRpb24tY29udGVudC1lbmQ+XG4gICAgfVxufVxuXG48bmctdGVtcGxhdGUgI2l0ZW1SZW5kZXJlciBsZXQtaXRlbSBsZXQtaW5qZWN0b3I9XCJpbmplY3RvclwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfbmF2aWdhdGlvbkl0ZW1SZW5kZXJlcigpPy50ZW1wbGF0ZVJlZiB8fCBudWxsXCJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICBAaWYgKGl0ZW0uY2hpbGRyZW4gJiYgaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW47IHRyYWNrIGNoaWxkKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGZkYk5hdmlnYXRpb25MaXN0SXRlbSBbaXRlbV09XCJjaGlsZFwiICNsaXN0SXRlbURpcmVjdGl2ZT1cImZkYkxpc3RJdGVtXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1SZW5kZXJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogY2hpbGQsIGluamVjdG9yOiBsaXN0SXRlbURpcmVjdGl2ZS5pbmplY3RvciB9XCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJsaXN0SXRlbURpcmVjdGl2ZS5pbmplY3RvclwiXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=","import { NavigationContentEndComponent } from './components/navigation-end/navigation-content-end.component';\nimport { NavigationListItemComponent } from './components/navigation-item/navigation-list-item.component';\nimport { NavigationLinkComponent, NavigationLinkRefDirective } from './components/navigation-link/navigation-link.component';\nimport { NavigationContentStartComponent } from './components/navigation-start/navigation-content-start.component';\nimport { NavigationComponent } from './components/navigation/navigation.component';\nimport { NavigationListDataSourceDirective } from './directives/navigation-list-data-source.directive';\nimport { NavigationListItemRefDirective } from './directives/navigation-list-item-ref.directive';\nexport * from './components/navigation-end/navigation-content-end.component';\nexport * from './components/navigation-item/navigation-list-item.component';\nexport * from './components/navigation-link/navigation-link.component';\nexport * from './components/navigation-start/navigation-content-start.component';\nexport * from './components/navigation/navigation.component';\nexport * from './directives/navigation-list-data-source.directive';\nexport * from './directives/navigation-list-item-ref.directive';\nexport * from './models/navigation-content-container.class';\nexport * from './models/navigation-data-source-item.model';\nexport * from './models/navigation-list-item.class';\nexport * from './models/navigation.types';\nexport * from './components/navigation-list/navigation-list.component';\nexport * from './components/navigation-more-button/navigation-more-button.component';\nexport const FDB_NAVIGATION = [\n NavigationComponent,\n NavigationContentStartComponent,\n NavigationContentEndComponent,\n NavigationLinkComponent,\n NavigationLinkRefDirective,\n NavigationListItemComponent,\n NavigationListItemRefDirective,\n NavigationListDataSourceDirective\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzFHLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQzdCLE1BQU0sd0RBQXdELENBQUM7QUFDaEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFakcsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyxzRUFBc0UsQ0FBQztBQUVyRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsbUJBQW1CO0lBQ25CLCtCQUErQjtJQUMvQiw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBQ3ZCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLGlDQUFpQztDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRlbnRFbmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1lbmQvbmF2aWdhdGlvbi1jb250ZW50LWVuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbS9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBOYXZpZ2F0aW9uTGlua0NvbXBvbmVudCxcbiAgICBOYXZpZ2F0aW9uTGlua1JlZkRpcmVjdGl2ZVxufSBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1saW5rL25hdmlnYXRpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLXN0YXJ0L25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0RGF0YVNvdXJjZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL25hdmlnYXRpb24tZW5kL25hdmlnYXRpb24tY29udGVudC1lbmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1zdGFydC9uYXZpZ2F0aW9uLWNvbnRlbnQtc3RhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24udHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBGREJfTkFWSUdBVElPTiA9IFtcbiAgICBOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIE5hdmlnYXRpb25Db250ZW50U3RhcnRDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbkNvbnRlbnRFbmRDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbkxpbmtSZWZEaXJlY3RpdmUsXG4gICAgTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50LFxuICAgIE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSxcbiAgICBOYXZpZ2F0aW9uTGlzdERhdGFTb3VyY2VEaXJlY3RpdmVcbl0gYXMgY29uc3Q7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWJ0cC1uYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9mdW5kYW1lbnRhbC1uZ3gtYnRwLW5hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["RtlService","KeyUtil","i1"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-btp-navigation.mjs","sources":["../tmp-esm2022/navigation/models/navigation-content-container.class.js","../tmp-esm2022/navigation/models/navigation.class.js","../tmp-esm2022/navigation/models/navigation-list-item.class.js","../tmp-esm2022/navigation/services/navigation.service.js","../tmp-esm2022/navigation/components/navigation-list/navigation-list.component.js","../tmp-esm2022/navigation/components/navigation-end/navigation-content-end.component.js","../tmp-esm2022/navigation/directives/navigation-list-item-ref.directive.js","../tmp-esm2022/navigation/models/navigation-item-link.class.js","../tmp-esm2022/navigation/components/navigation-link/navigation-link.component.js","../tmp-esm2022/navigation/components/navigation-item/navigation-list-item.component.js","../tmp-esm2022/navigation/components/navigation-more-button/navigation-more-button.component.js","../tmp-esm2022/navigation/components/navigation-start/navigation-content-start.component.js","../tmp-esm2022/navigation/components/navigation/navigation.component.js","../tmp-esm2022/navigation/models/navigation-data-source-item.model.js","../tmp-esm2022/navigation/directives/navigation-list-data-source.directive.js","../tmp-esm2022/navigation/index.js","../tmp-esm2022/navigation/fundamental-ngx-btp-navigation.js"],"sourcesContent":["import { DestroyRef, inject, signal } from '@angular/core';\nexport class FdbNavigationContentContainer {\n constructor() {\n /**\n * List containing all child navigation list items.\n */\n this.allListItems$ = signal([], ...(ngDevMode ? [{ debugName: \"allListItems$\" }] : []));\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n /**\n * @hidden\n * List of registered navigation list items.\n * Used only with data-driven navigation component.\n */\n this._registeredListItems = [];\n }\n /**\n * Registers navigation list item.\n */\n registerItem(item) {\n if (this._registeredListItems.indexOf(item) > -1) {\n return;\n }\n this._registeredListItems.push(item);\n this.allListItems$.set(this._registeredListItems);\n }\n /**\n * Unregisters navigation list item.\n */\n unregisterItem(item) {\n const foundIndex = this._registeredListItems.indexOf(item);\n if (foundIndex === -1) {\n return;\n }\n this._registeredListItems.splice(foundIndex, 1);\n this.allListItems$.set(this._registeredListItems);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LWNvbnRhaW5lci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25FLE1BQU0sT0FBZ0IsNkJBQTZCO0lBQW5EO1FBU0k7O1dBRUc7UUFDTSxrQkFBYSxHQUFHLE1BQU0sQ0FBMEIsRUFBRSx5REFBQyxDQUFDO1FBRTdELGNBQWM7UUFDSyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwRDs7OztXQUlHO1FBQ2MseUJBQW9CLEdBQTRCLEVBQUUsQ0FBQztJQTRCeEUsQ0FBQztJQTFCRzs7T0FFRztJQUNILFlBQVksQ0FBQyxJQUEyQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLElBQTJCO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIFNpZ25hbCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB9IGZyb20gJy4vbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIge1xuICAgIC8qKlxuICAgICAqIExpc3QgY29udGFpbmluZyBjaGlsZCBsaXN0IGl0ZW1zIHRoYXQgbmVlZHMgdG8gYmUgcmVuZGVyZWQuIENhbiBiZSBkaWZmZXJlbnQgdGhhbiBgYWxsTGlzdEl0ZW1zJGAuXG4gICAgICovXG4gICAgYWJzdHJhY3QgbGlzdEl0ZW1zJDogU2lnbmFsPEZkYk5hdmlnYXRpb25MaXN0SXRlbVtdPjtcbiAgICAvKipcbiAgICAgKiBDb250YWluZXIgcGxhY2VtZW50IGluIE5hdmlnYXRpb24gY29tcG9uZW50LlxuICAgICAqL1xuICAgIGFic3RyYWN0IHBsYWNlbWVudDogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgIC8qKlxuICAgICAqIExpc3QgY29udGFpbmluZyBhbGwgY2hpbGQgbmF2aWdhdGlvbiBsaXN0IGl0ZW1zLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsbExpc3RJdGVtcyQgPSBzaWduYWw8RmRiTmF2aWdhdGlvbkxpc3RJdGVtW10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIExpc3Qgb2YgcmVnaXN0ZXJlZCBuYXZpZ2F0aW9uIGxpc3QgaXRlbXMuXG4gICAgICogVXNlZCBvbmx5IHdpdGggZGF0YS1kcml2ZW4gbmF2aWdhdGlvbiBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVnaXN0ZXJlZExpc3RJdGVtczogRmRiTmF2aWdhdGlvbkxpc3RJdGVtW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBuYXZpZ2F0aW9uIGxpc3QgaXRlbS5cbiAgICAgKi9cbiAgICByZWdpc3Rlckl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9yZWdpc3RlcmVkTGlzdEl0ZW1zLmluZGV4T2YoaXRlbSkgPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVnaXN0ZXJlZExpc3RJdGVtcy5wdXNoKGl0ZW0pO1xuXG4gICAgICAgIHRoaXMuYWxsTGlzdEl0ZW1zJC5zZXQodGhpcy5fcmVnaXN0ZXJlZExpc3RJdGVtcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVW5yZWdpc3RlcnMgbmF2aWdhdGlvbiBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgdW5yZWdpc3Rlckl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSB0aGlzLl9yZWdpc3RlcmVkTGlzdEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVnaXN0ZXJlZExpc3RJdGVtcy5zcGxpY2UoZm91bmRJbmRleCwgMSk7XG5cbiAgICAgICAgdGhpcy5hbGxMaXN0SXRlbXMkLnNldCh0aGlzLl9yZWdpc3RlcmVkTGlzdEl0ZW1zKTtcbiAgICB9XG59XG4iXX0=","export class FdbNavigation {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbW9kZWxzL25hdmlnYXRpb24uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFnQixhQUFhO0NBV2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZkYk5hdmlnYXRpb24ge1xuICAgIGFic3RyYWN0IGNsYXNzTGlzdCQ6IFNpZ25hbDxzdHJpbmdbXT47XG4gICAgYWJzdHJhY3QgaXNTbmFwcGVkJDogU2lnbmFsPGJvb2xlYW4+O1xuICAgIGFic3RyYWN0IHNob3dNb3JlQnV0dG9uJDogV3JpdGFibGVTaWduYWw8TnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj47XG4gICAgYWJzdHJhY3QgX25hdmlnYXRpb25JdGVtUmVuZGVyZXI6IFNpZ25hbDxhbnk+O1xuICAgIGFic3RyYWN0IGNsb3NlQWxsUG9wdXBzOiBTdWJqZWN0PHZvaWQ+O1xuICAgIGFic3RyYWN0IHNlbGVjdGlvbk1vZGU6ICdyb3V0ZXInIHwgJ2NsaWNrJztcbiAgICBhYnN0cmFjdCBzZXJ2aWNlOiBOYXZpZ2F0aW9uU2VydmljZTtcbiAgICBhYnN0cmFjdCBzZXRBY3RpdmVJdGVtKHZhbHVlOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfCBudWxsKTogdm9pZDtcbiAgICBhYnN0cmFjdCBnZXRBY3RpdmVJdGVtKCk6IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB8IG51bGw7XG4gICAgYWJzdHJhY3QgY2xvc2VQb3B1cHMoKTogdm9pZDtcbn1cbiJdfQ==","import { computed, inject, signal } from '@angular/core';\nimport { FdbNavigation } from './navigation.class';\nexport const LIST_ITEM_CLASS = 'fd-navigation__list-item';\nexport class FdbNavigationListItem {\n constructor() {\n /** @hidden */\n this.listItems$ = signal([], ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** Whether item has child items. */\n this.hasChildren$ = computed(() => this.listItems$().length > 0, ...(ngDevMode ? [{ debugName: \"hasChildren$\" }] : []));\n /** Whether popover is open. Applicable for snapped navigation state. */\n this.popoverOpen$ = signal(false, ...(ngDevMode ? [{ debugName: \"popoverOpen$\" }] : []));\n /**\n * Link reference.\n */\n this.link$ = signal(null, ...(ngDevMode ? [{ debugName: \"link$\" }] : []));\n /**\n * Item content renderer.\n */\n this.renderer$ = signal(null, ...(ngDevMode ? [{ debugName: \"renderer$\" }] : []));\n /**\n * Whether the item should be hidden under \"More\" button.\n */\n this.hidden$ = signal(false, ...(ngDevMode ? [{ debugName: \"hidden$\" }] : []));\n /**\n * Whether the item is in overflow menu. Applicable only when the navigation is in snapped mode.\n */\n this.isOverflow$ = computed(() => this.navigation.isSnapped$() && this.hidden$(), ...(ngDevMode ? [{ debugName: \"isOverflow$\" }] : []));\n /**\n * Item Hierarchy level in navigation tree.\n */\n this.level$ = computed(() => (this.parentListItem?.level$() || 0) + 1, ...(ngDevMode ? [{ debugName: \"level$\" }] : []));\n /**\n * Normalized level. Calculated based on location of the item, whether it is inside group or not.\n * Can be different than `level$`.\n */\n this.normalizedLevel$ = computed(() => {\n if (!this.parentListItem) {\n return this.inGroup$() ? this.level$() : this.level$() + 1;\n }\n return this.parentListItem.normalizedLevel$() + 1;\n }, ...(ngDevMode ? [{ debugName: \"normalizedLevel$\" }] : []));\n /**\n * Whether the List item should be marked as selected.\n * Based on a `snapped` state will determine whether to highlight the link if it, or it's child links are active.\n */\n this.isActiveAttr$ = computed(() => this.selected$() ||\n this.link$()?.isActive$() ||\n (this.navigation.isSnapped$() && this.listItems$().some((item) => item?.isActiveAttr$())), ...(ngDevMode ? [{ debugName: \"isActiveAttr$\" }] : []));\n /**\n * Whether the item is inside group.\n */\n this.inGroup$ = computed(() => (this.parentListItem ? this.parentListItem.inGroup$() : this.isGroup$()), ...(ngDevMode ? [{ debugName: \"inGroup$\" }] : []));\n /** @hidden */\n this.expanded$ = signal(false, ...(ngDevMode ? [{ debugName: \"expanded$\" }] : []));\n /** @hidden */\n this.isGroup$ = signal(false, ...(ngDevMode ? [{ debugName: \"isGroup$\" }] : []));\n /** @hidden */\n this.disabled$ = signal(false, ...(ngDevMode ? [{ debugName: \"disabled$\" }] : []));\n /** Navigation container reference. */\n this.navigation = inject(FdbNavigation);\n }\n}\nexport class FdbNavigationListItemCmp extends FdbNavigationListItem {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL21vZGVscy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMEJBQTBCLENBQUM7QUFFMUQsTUFBTSxPQUFnQixxQkFBcUI7SUFBM0M7UUE0QkksY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQW9DLEVBQUUsc0RBQUMsQ0FBQztRQUVwRSxvQ0FBb0M7UUFDM0IsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLHdEQUFDLENBQUM7UUFFckUsd0VBQXdFO1FBQy9ELGlCQUFZLEdBQUcsTUFBTSxDQUFDLEtBQUssd0RBQUMsQ0FBQztRQUV0Qzs7V0FFRztRQUNNLFVBQUssR0FBRyxNQUFNLENBQWtDLElBQUksaURBQUMsQ0FBQztRQUUvRDs7V0FFRztRQUNNLGNBQVMsR0FBRyxNQUFNLENBQTBCLElBQUkscURBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNNLFlBQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxtREFBQyxDQUFDO1FBRWpDOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLHVEQUFDLENBQUM7UUFFdEY7O1dBRUc7UUFDTSxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGtEQUFDLENBQUM7UUFFM0U7OztXQUdHO1FBQ00scUJBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEQsQ0FBQyw0REFBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ00sa0JBQWEsR0FBRyxRQUFRLENBQzdCLEdBQUcsRUFBRSxDQUNELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRTtZQUN6QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMseURBQ2hHLENBQUM7UUFFRjs7V0FFRztRQUNNLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsb0RBQUMsQ0FBQztRQUU3RyxjQUFjO1FBQ0wsY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLHFEQUFDLENBQUM7UUFFNUMsY0FBYztRQUNMLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxvREFBQyxDQUFDO1FBRWxDLGNBQWM7UUFDTCxjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUsscURBQUMsQ0FBQztRQUVuQyxzQ0FBc0M7UUFDN0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQUE7QUFFRCxNQUFNLE9BQWdCLHdCQUF5QixTQUFRLHFCQUFxQjtDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNPcmlnaW4sIEZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFNpZ25hbCwgVGVtcGxhdGVSZWYsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTGlzdEl0ZW1NYXJrZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbS9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL25hdmlnYXRpb24tbGlzdC9uYXZpZ2F0aW9uLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbnRlbnQtY29udGFpbmVyLmNsYXNzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25JdGVtTGluayB9IGZyb20gJy4vbmF2aWdhdGlvbi1pdGVtLWxpbmsuY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4vbmF2aWdhdGlvbi5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBMSVNUX0lURU1fQ0xBU1MgPSAnZmQtbmF2aWdhdGlvbl9fbGlzdC1pdGVtJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZkYk5hdmlnYXRpb25MaXN0SXRlbSBpbXBsZW1lbnRzIEZvY3VzYWJsZU9wdGlvbiB7XG4gICAgYWJzdHJhY3QgdHlwZTogJ2l0ZW0nIHwgJ3Nob3dNb3JlJztcbiAgICBhYnN0cmFjdCBzZXBhcmF0b3I6IGJvb2xlYW47XG4gICAgYWJzdHJhY3Qgc3BhY2VyOiBib29sZWFuO1xuICAgIGFic3RyYWN0IGhvbWU6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgaXNWaXNpYmxlJDogU2lnbmFsPGJvb2xlYW4+O1xuICAgIGFic3RyYWN0IHNraXBOYXZpZ2F0aW9uOiBib29sZWFuO1xuICAgIGFic3RyYWN0IHBsYWNlbWVudENvbnRhaW5lcj86IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyO1xuICAgIGFic3RyYWN0IHBhcmVudExpc3RJdGVtQ29tcG9uZW50OiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1DbXAgfCBudWxsO1xuICAgIGFic3RyYWN0IHBhcmVudExpc3RJdGVtOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfCBudWxsO1xuICAgIGFic3RyYWN0IGNsYXNzJDogU2lnbmFsPHN0cmluZz47XG4gICAgYWJzdHJhY3Qgc2VsZWN0ZWQkOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgYWJzdHJhY3QgaWQ6IFNpZ25hbDxzdHJpbmc+O1xuICAgIGFic3RyYWN0IGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luIHwgdW5kZWZpbmVkKTogdm9pZDtcbiAgICBhYnN0cmFjdCB0b2dnbGVFeHBhbmRlZCgpOiB2b2lkO1xuICAgIGFic3RyYWN0IGtleWJvYXJkRXhwYW5kZWQoc2hvdWxkRXhwYW5kOiBib29sZWFuKTogdm9pZDtcbiAgICBhYnN0cmFjdCBwb3BvdmVyTGlua0Fycm93RG93bigpOiB2b2lkO1xuICAgIGFic3RyYWN0IHJlZ2lzdGVyTGluayhsaW5rOiBGZGJOYXZpZ2F0aW9uSXRlbUxpbmspOiB2b2lkO1xuICAgIGFic3RyYWN0IHVucmVnaXN0ZXJMaW5rKGxpbms6IEZkYk5hdmlnYXRpb25JdGVtTGluayk6IHZvaWQ7XG4gICAgYWJzdHJhY3QgcmVnaXN0ZXJDaGlsZExpc3QobGlzdDogTmF2aWdhdGlvbkxpc3RDb21wb25lbnQpOiB2b2lkO1xuICAgIGFic3RyYWN0IHVucmVnaXN0ZXJDaGlsZExpc3QobGlzdDogTmF2aWdhdGlvbkxpc3RDb21wb25lbnQpOiB2b2lkO1xuICAgIGFic3RyYWN0IGhhbmRsZUhvcml6b250YWxOYXZpZ2F0aW9uKGlzRXhwYW5kOiBib29sZWFuKTogdm9pZDtcbiAgICBhYnN0cmFjdCBmb2N1c0xpbmsoY2xvc2VQb3BvdmVyPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgYWJzdHJhY3QgY2FuSXRlbUJlU2VsZWN0ZWQoKTogYm9vbGVhbjtcblxuICAgIC8qKiBNYXJrZXIgZGlyZWN0aXZlIHRoYXQgaXMgYXR0YWNoZWQgdG8gdGhlIHJlbmRlcmVkIGxpc3QgaXRlbS4gKi9cbiAgICBtYXJrZXI6IE51bGxhYmxlPE5hdmlnYXRpb25MaXN0SXRlbU1hcmtlckRpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGxpc3RJdGVtcyQgPSBzaWduYWw8TnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPltdPihbXSk7XG5cbiAgICAvKiogV2hldGhlciBpdGVtIGhhcyBjaGlsZCBpdGVtcy4gKi9cbiAgICByZWFkb25seSBoYXNDaGlsZHJlbiQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxpc3RJdGVtcyQoKS5sZW5ndGggPiAwKTtcblxuICAgIC8qKiBXaGV0aGVyIHBvcG92ZXIgaXMgb3Blbi4gQXBwbGljYWJsZSBmb3Igc25hcHBlZCBuYXZpZ2F0aW9uIHN0YXRlLiAqL1xuICAgIHJlYWRvbmx5IHBvcG92ZXJPcGVuJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHJlZmVyZW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBsaW5rJCA9IHNpZ25hbDxOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uSXRlbUxpbms+PihudWxsKTtcblxuICAgIC8qKlxuICAgICAqIEl0ZW0gY29udGVudCByZW5kZXJlci5cbiAgICAgKi9cbiAgICByZWFkb25seSByZW5kZXJlciQgPSBzaWduYWw8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgaXRlbSBzaG91bGQgYmUgaGlkZGVuIHVuZGVyIFwiTW9yZVwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSBoaWRkZW4kID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgaW4gb3ZlcmZsb3cgbWVudS4gQXBwbGljYWJsZSBvbmx5IHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgaW4gc25hcHBlZCBtb2RlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzT3ZlcmZsb3ckID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSAmJiB0aGlzLmhpZGRlbiQoKSk7XG5cbiAgICAvKipcbiAgICAgKiBJdGVtIEhpZXJhcmNoeSBsZXZlbCBpbiBuYXZpZ2F0aW9uIHRyZWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGV2ZWwkID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucGFyZW50TGlzdEl0ZW0/LmxldmVsJCgpIHx8IDApICsgMSk7XG5cbiAgICAvKipcbiAgICAgKiBOb3JtYWxpemVkIGxldmVsLiBDYWxjdWxhdGVkIGJhc2VkIG9uIGxvY2F0aW9uIG9mIHRoZSBpdGVtLCB3aGV0aGVyIGl0IGlzIGluc2lkZSBncm91cCBvciBub3QuXG4gICAgICogQ2FuIGJlIGRpZmZlcmVudCB0aGFuIGBsZXZlbCRgLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5vcm1hbGl6ZWRMZXZlbCQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRMaXN0SXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5Hcm91cCQoKSA/IHRoaXMubGV2ZWwkKCkgOiB0aGlzLmxldmVsJCgpICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudExpc3RJdGVtLm5vcm1hbGl6ZWRMZXZlbCQoKSArIDE7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBMaXN0IGl0ZW0gc2hvdWxkIGJlIG1hcmtlZCBhcyBzZWxlY3RlZC5cbiAgICAgKiBCYXNlZCBvbiBhIGBzbmFwcGVkYCBzdGF0ZSB3aWxsIGRldGVybWluZSB3aGV0aGVyIHRvIGhpZ2hsaWdodCB0aGUgbGluayBpZiBpdCwgb3IgaXQncyBjaGlsZCBsaW5rcyBhcmUgYWN0aXZlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzQWN0aXZlQXR0ciQgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQkKCkgfHxcbiAgICAgICAgICAgIHRoaXMubGluayQoKT8uaXNBY3RpdmUkKCkgfHxcbiAgICAgICAgICAgICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmIHRoaXMubGlzdEl0ZW1zJCgpLnNvbWUoKGl0ZW0pID0+IGl0ZW0/LmlzQWN0aXZlQXR0ciQoKSkpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgaW5zaWRlIGdyb3VwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluR3JvdXAkID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucGFyZW50TGlzdEl0ZW0gPyB0aGlzLnBhcmVudExpc3RJdGVtLmluR3JvdXAkKCkgOiB0aGlzLmlzR3JvdXAkKCkpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZXhwYW5kZWQkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgaXNHcm91cCQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBkaXNhYmxlZCQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIE5hdmlnYXRpb24gY29udGFpbmVyIHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBuYXZpZ2F0aW9uID0gaW5qZWN0KEZkYk5hdmlnYXRpb24pO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ21wIGV4dGVuZHMgRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHt9XG4iXX0=","import { Injectable, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class NavigationService {\n constructor() {\n /** Currently active list item. */\n this.currentItem$ = new Subject();\n /** Currently selected item (for click-based selection mode). */\n this.selectedItem$ = signal(null, ...(ngDevMode ? [{ debugName: \"selectedItem$\" }] : []));\n /** Subject to notify when an overflow item is selected and should be promoted. */\n this.overflowItemSelected$ = new Subject();\n /** Subject to notify when selection changes to clear manual selections */\n this.selectionChanged$ = new Subject();\n }\n /**\n * Set the selected item.\n * @param item The item to select, or null to clear selection.\n */\n setSelectedItem(item) {\n this.selectedItem$.set(item);\n // Notify that selection has changed so other items can clear their manual selection\n this.selectionChanged$.next(item);\n // Handle smart overflow promotion logic\n if (item) {\n // Case 1: Child items promote their parent when the parent is in overflow\n if (item.parentListItem && item.parentListItem.isOverflow$()) {\n this.overflowItemSelected$.next(item.parentListItem);\n }\n // Case 2: Regular overflow items promote themselves\n else if (item.isOverflow$()) {\n this.overflowItemSelected$.next(item);\n }\n }\n }\n /**\n * Get the currently selected item.\n * @returns The currently selected item, or null if none is selected.\n */\n getSelectedItem() {\n return this.selectedItem$();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJL0IsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVJLGtDQUFrQztRQUNsQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1FBRXBELGdFQUFnRTtRQUNoRSxrQkFBYSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSx5REFBQyxDQUFDO1FBRTNELGtGQUFrRjtRQUNsRiwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBeUIsQ0FBQztRQUU3RCwwRUFBMEU7UUFDMUUsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQWdDLENBQUM7S0FnQ25FO0lBOUJHOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxJQUFrQztRQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixvRkFBb0Y7UUFDcEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQyx3Q0FBd0M7UUFDeEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLDBFQUEwRTtZQUMxRSxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUMzRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUN6RCxDQUFDO1lBQ0Qsb0RBQW9EO2lCQUMvQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWU7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQTFDUSxpQkFBaUI7a0hBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25TZXJ2aWNlIHtcbiAgICAvKiogQ3VycmVudGx5IGFjdGl2ZSBsaXN0IGl0ZW0uICovXG4gICAgY3VycmVudEl0ZW0kID0gbmV3IFN1YmplY3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPigpO1xuXG4gICAgLyoqIEN1cnJlbnRseSBzZWxlY3RlZCBpdGVtIChmb3IgY2xpY2stYmFzZWQgc2VsZWN0aW9uIG1vZGUpLiAqL1xuICAgIHNlbGVjdGVkSXRlbSQgPSBzaWduYWw8RmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbD4obnVsbCk7XG5cbiAgICAvKiogU3ViamVjdCB0byBub3RpZnkgd2hlbiBhbiBvdmVyZmxvdyBpdGVtIGlzIHNlbGVjdGVkIGFuZCBzaG91bGQgYmUgcHJvbW90ZWQuICovXG4gICAgb3ZlcmZsb3dJdGVtU2VsZWN0ZWQkID0gbmV3IFN1YmplY3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPigpO1xuXG4gICAgLyoqIFN1YmplY3QgdG8gbm90aWZ5IHdoZW4gc2VsZWN0aW9uIGNoYW5nZXMgdG8gY2xlYXIgbWFudWFsIHNlbGVjdGlvbnMgKi9cbiAgICBzZWxlY3Rpb25DaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PEZkYk5hdmlnYXRpb25MaXN0SXRlbSB8IG51bGw+KCk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHNlbGVjdGVkIGl0ZW0uXG4gICAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gc2VsZWN0LCBvciBudWxsIHRvIGNsZWFyIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3RlZEl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSQuc2V0KGl0ZW0pO1xuXG4gICAgICAgIC8vIE5vdGlmeSB0aGF0IHNlbGVjdGlvbiBoYXMgY2hhbmdlZCBzbyBvdGhlciBpdGVtcyBjYW4gY2xlYXIgdGhlaXIgbWFudWFsIHNlbGVjdGlvblxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQkLm5leHQoaXRlbSk7XG5cbiAgICAgICAgLy8gSGFuZGxlIHNtYXJ0IG92ZXJmbG93IHByb21vdGlvbiBsb2dpY1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgLy8gQ2FzZSAxOiBDaGlsZCBpdGVtcyBwcm9tb3RlIHRoZWlyIHBhcmVudCB3aGVuIHRoZSBwYXJlbnQgaXMgaW4gb3ZlcmZsb3dcbiAgICAgICAgICAgIGlmIChpdGVtLnBhcmVudExpc3RJdGVtICYmIGl0ZW0ucGFyZW50TGlzdEl0ZW0uaXNPdmVyZmxvdyQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dJdGVtU2VsZWN0ZWQkLm5leHQoaXRlbS5wYXJlbnRMaXN0SXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDYXNlIDI6IFJlZ3VsYXIgb3ZlcmZsb3cgaXRlbXMgcHJvbW90ZSB0aGVtc2VsdmVzXG4gICAgICAgICAgICBlbHNlIGlmIChpdGVtLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93SXRlbVNlbGVjdGVkJC5uZXh0KGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0sIG9yIG51bGwgaWYgbm9uZSBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBnZXRTZWxlY3RlZEl0ZW0oKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbSQoKTtcbiAgICB9XG59XG4iXX0=","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, Renderer2, ViewEncapsulation, booleanAttribute, computed, effect, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationService } from '../../services/navigation.service';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListComponent {\n /** @hidden */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n set _listItems(value) {\n this._listItemsArray = value;\n this.listItems$.set(value);\n this._setupKeyManager();\n }\n get _listItems() {\n return this._listItemsArray;\n }\n /** List Role. */\n get _role() {\n return this.computedRole();\n }\n /** @hidden */\n get _activeItemIndex() {\n return this._keyManager?.activeItemIndex ?? -1;\n }\n /** @hidden */\n constructor() {\n this.role = 'tree';\n /**\n * aria-label for the navigation list.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n this.ariaLabel = null;\n /**\n * aria-roledescription for the navigation list.\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n this.ariaRoleDescription = null;\n /** Whether the list is for parent items. */\n this.parentItems = false;\n /** Whether the list is for child items. */\n this.childItems = false;\n /** Whether the list should not grow in height. */\n this.noGrow = false;\n /** Whether the list should handle keyboard navigation. */\n this.withKeyboardNavigation = false;\n /** Event emitted when user tries to navigate to the item before the list itself. */\n this.focusBefore = new EventEmitter();\n /** Event emitted when user tries to navigate to the item after the list itself. */\n this.focusAfter = new EventEmitter();\n /** Computed role based on navigation state and input role. */\n this.computedRole = computed(() => {\n // Prioritize explicit role input\n if (this.role && this.role !== 'tree') {\n return this.role;\n }\n // Check if this is in an overflow menu context (More button popover)\n const navigation = this._navigation;\n if (navigation?.isSnapped$() && this.moreButtonRef) {\n // In overflow menu, lists should have role=\"menu\"\n return 'menu';\n }\n // If this is a child items list or parent items list, it should have role=\"group\"\n if (this.childItems || this.parentItems) {\n return 'group';\n }\n if (navigation?.isSnapped$()) {\n return 'menubar';\n }\n return this.role || 'tree';\n }, ...(ngDevMode ? [{ debugName: \"computedRole\" }] : []));\n /** Computed aria-label for group lists based on parent item's text content. */\n this.computedAriaLabel = computed(() => {\n try {\n // Only provide aria-label for group role lists\n if (this.computedRole() === 'group' && this._listItem) {\n const parentLink = this._listItem.link$();\n if (parentLink?.elementRef?.nativeElement) {\n // Get text content directly from the navigation link element\n // The .fd-navigation__text span contains the projected content, but we can access\n // the text content directly from the link element itself\n const linkElement = parentLink.elementRef.nativeElement;\n const textContent = linkElement.textContent?.trim();\n if (textContent) {\n return textContent;\n }\n }\n }\n return this.ariaLabel;\n }\n catch {\n // Fallback to default ariaLabel if DOM is not ready or there's any error\n return this.ariaLabel;\n }\n }, ...(ngDevMode ? [{ debugName: \"computedAriaLabel\" }] : []));\n /** List items. */\n this.listItems$ = signal([], ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** @hidden */\n this._listItemsArray = [];\n /** @hidden */\n this._navigationService = inject(NavigationService, {\n optional: true\n });\n /**\n * @hidden\n * Parent navigation component.\n */\n this._navigation = inject(FdbNavigation, {\n optional: true\n });\n /**\n * @hidden\n * Parent list item.\n */\n this._listItem = inject(FdbNavigationListItem, {\n optional: true\n });\n /** @hidden */\n this._rtl = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n /** @hidden */\n this._renderer = inject(Renderer2);\n /** @hidden */\n this._elementRef = inject(ElementRef);\n /** @hidden */\n this._ariaLabelEffect = effect(() => {\n // This effect runs whenever the signals change, but we need to ensure\n // it doesn't run during the initial change detection cycle\n setTimeout(() => {\n this._updateAriaLabel();\n }, 0);\n }, ...(ngDevMode ? [{ debugName: \"_ariaLabelEffect\" }] : []));\n this._listItem?.registerChildList(this);\n }\n /**\n * @hidden\n * Handler for keyboard navigation.\n */\n _keydownHandler(event) {\n if (!this.withKeyboardNavigation) {\n return;\n }\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n event.stopImmediatePropagation();\n }\n if (KeyUtil.isKeyCode(event, UP_ARROW) && this._activeItemIndex <= 0) {\n this.focusBefore.emit();\n return;\n }\n if (KeyUtil.isKeyCode(event, DOWN_ARROW) && this._activeItemIndex === this._listItemsArray.length - 1) {\n this.focusAfter.emit();\n return;\n }\n if (KeyUtil.isKeyCode(event, [DOWN_ARROW, UP_ARROW])) {\n this._keyManager?.onKeydown(event);\n return;\n }\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n // We need to cancel event bubbling since we may have parent list that will also try to focus it's parent list item.\n event.stopImmediatePropagation();\n // All navigation lists use the same swapped arrow logic:\n // RIGHT arrow = expand action, LEFT arrow = collapse/go back action\n const isExpandAction = KeyUtil.isKeyCode(event, this._rtl?.rtl.value ? LEFT_ARROW : RIGHT_ARROW);\n if (!isExpandAction) {\n if (this.moreButtonRef) {\n if (this._listItem) {\n this._listItem.focusLink(true);\n }\n else {\n this.moreButtonRef.popoverOpen$.set(false);\n this.moreButtonRef.focusLink();\n }\n }\n else {\n this._listItem?.focusLink(true);\n }\n }\n }\n /** @hidden */\n setActiveItemIndex(index) {\n this._keyManager?.setActiveItem(index);\n }\n /** @hidden */\n ngAfterViewInit() {\n this._navigationService?.currentItem$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((item) => {\n this._keyManager?.setActiveItem(item);\n });\n }\n /** @hidden */\n ngOnChanges(changes) {\n if ('withKeyboardNavigation' in changes) {\n this._setupKeyManager();\n }\n }\n /** @hidden */\n ngOnDestroy() {\n this._listItem?.unregisterChildList(this);\n this._keyManager?.destroy();\n }\n /**\n * Updates aria-label attribute manually to avoid expression changed errors\n */\n _updateAriaLabel() {\n try {\n const ariaLabel = this.computedAriaLabel();\n if (ariaLabel !== null && ariaLabel !== undefined) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-label', ariaLabel);\n }\n else {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-label');\n }\n }\n catch {\n if (this.ariaLabel) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-label', this.ariaLabel);\n }\n }\n }\n /** @hidden */\n _setupKeyManager() {\n this._keyManager?.destroy();\n if (!this.withKeyboardNavigation) {\n return;\n }\n this._keyManager = new FocusKeyManager(this._listItemsArray)\n .withVerticalOrientation()\n .skipPredicate((item) => item.skipNavigation);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationListComponent, isStandalone: true, selector: \"ul[fdb-navigation-list]\", inputs: { _listItems: [\"listItems\", \"_listItems\"], role: \"role\", ariaLabel: \"ariaLabel\", ariaRoleDescription: \"ariaRoleDescription\", parentItems: [\"parentItems\", \"parentItems\", booleanAttribute], childItems: [\"childItems\", \"childItems\", booleanAttribute], noGrow: [\"noGrow\", \"noGrow\", booleanAttribute], withKeyboardNavigation: [\"withKeyboardNavigation\", \"withKeyboardNavigation\", booleanAttribute], moreButtonRef: \"moreButtonRef\" }, outputs: { focusBefore: \"focusBefore\", focusAfter: \"focusAfter\" }, host: { attributes: { \"tabindex\": \"-1\" }, listeners: { \"keydown\": \"_keydownHandler($event)\" }, properties: { \"attr.role\": \"this._role\", \"attr.aria-roledescription\": \"this.ariaRoleDescription\", \"class.fd-navigation__list--parent-items\": \"this.parentItems\", \"class.fd-navigation__list--child-items\": \"this.childItems\", \"class.fd-navigation__list--no-grow\": \"this.noGrow\" }, classAttribute: \"fd-navigation__list\" }, usesOnChanges: true, ngImport: i0, template: \"@for (item of listItems$(); track item) {\\n @if (item) {\\n <li [class]=\\\"item.class$()\\\" role=\\\"none\\\">\\n <ng-template [ngTemplateOutlet]=\\\"item.renderer$()\\\"></ng-template>\\n </li>\\n <!-- Add separator after home list item. -->\\n @if (item.home) {\\n <li class=\\\"fd-navigation__list-item fd-navigation__list-item--separator\\\" role=\\\"separator\\\"></li>\\n }\\n }\\n}\\n<!-- Keep this for \\\"More\\\" button -->\\n<ng-content></ng-content>\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ul[fdb-navigation-list]', imports: [NgTemplateOutlet], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n class: 'fd-navigation__list',\n tabindex: '-1'\n }, template: \"@for (item of listItems$(); track item) {\\n @if (item) {\\n <li [class]=\\\"item.class$()\\\" role=\\\"none\\\">\\n <ng-template [ngTemplateOutlet]=\\\"item.renderer$()\\\"></ng-template>\\n </li>\\n <!-- Add separator after home list item. -->\\n @if (item.home) {\\n <li class=\\\"fd-navigation__list-item fd-navigation__list-item--separator\\\" role=\\\"separator\\\"></li>\\n }\\n }\\n}\\n<!-- Keep this for \\\"More\\\" button -->\\n<ng-content></ng-content>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { _listItems: [{\n type: Input,\n args: ['listItems']\n }], _role: [{\n type: HostBinding,\n args: ['attr.role']\n }], role: [{\n type: Input\n }], ariaLabel: [{\n type: Input,\n args: ['ariaLabel']\n }], ariaRoleDescription: [{\n type: Input,\n args: ['ariaRoleDescription']\n }, {\n type: HostBinding,\n args: ['attr.aria-roledescription']\n }], parentItems: [{\n type: HostBinding,\n args: ['class.fd-navigation__list--parent-items']\n }, {\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], childItems: [{\n type: HostBinding,\n args: ['class.fd-navigation__list--child-items']\n }, {\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], noGrow: [{\n type: HostBinding,\n args: ['class.fd-navigation__list--no-grow']\n }, {\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], withKeyboardNavigation: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], moreButtonRef: [{\n type: Input\n }], focusBefore: [{\n type: Output\n }], focusAfter: [{\n type: Output\n }], _keydownHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFZLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFjdEUs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QU07c0JBRkwsV0FBVzt1QkFBQyxvQ0FBb0M7O3NCQUNoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUt0QyxzQkFBc0I7c0JBRHJCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3RDLGFBQWE7c0JBRFosS0FBSztnQkFLTixXQUFXO3NCQURWLE1BQU07Z0JBS1AsVUFBVTtzQkFEVCxNQUFNO2dCQXdIUCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgTEVGVF9BUlJPVywgUklHSFRfQVJST1csIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgS2V5VXRpbCwgTnVsbGFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkayc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3VsW2ZkYi1uYXZpZ2F0aW9uLWxpc3RdJyxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbmF2aWdhdGlvbl9fbGlzdCcsXG4gICAgICAgIHRhYmluZGV4OiAnLTEnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdsaXN0SXRlbXMnKVxuICAgIHNldCBfbGlzdEl0ZW1zKHZhbHVlOiBOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+W10pIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zQXJyYXkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5saXN0SXRlbXMkLnNldCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX3NldHVwS2V5TWFuYWdlcigpO1xuICAgIH1cblxuICAgIGdldCBfbGlzdEl0ZW1zKCk6IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9saXN0SXRlbXNBcnJheTtcbiAgICB9XG5cbiAgICAvKiogTGlzdCBSb2xlLiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBnZXQgX3JvbGUoKTogJ3RyZWUnIHwgJ21lbnViYXInIHwgJ2dyb3VwJyB8ICdtZW51JyB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXB1dGVkUm9sZSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcm9sZTogJ3RyZWUnIHwgJ21lbnViYXInIHwgJ2dyb3VwJyB8ICdtZW51JyA9ICd0cmVlJztcblxuICAgIC8qKlxuICAgICAqIGFyaWEtbGFiZWwgZm9yIHRoZSBuYXZpZ2F0aW9uIGxpc3QuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2FyaWFMYWJlbCcpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGFyaWEtcm9sZWRlc2NyaXB0aW9uIGZvciB0aGUgbmF2aWdhdGlvbiBsaXN0LlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdhcmlhUm9sZURlc2NyaXB0aW9uJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1yb2xlZGVzY3JpcHRpb24nKVxuICAgIGFyaWFSb2xlRGVzY3JpcHRpb246IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3QgaXMgZm9yIHBhcmVudCBpdGVtcy4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW5hdmlnYXRpb25fX2xpc3QtLXBhcmVudC1pdGVtcycpXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgcGFyZW50SXRlbXMgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGlzIGZvciBjaGlsZCBpdGVtcy4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZkLW5hdmlnYXRpb25fX2xpc3QtLWNoaWxkLWl0ZW1zJylcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBjaGlsZEl0ZW1zID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBzaG91bGQgbm90IGdyb3cgaW4gaGVpZ2h0LiAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtbmF2aWdhdGlvbl9fbGlzdC0tbm8tZ3JvdycpXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgbm9Hcm93ID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBzaG91bGQgaGFuZGxlIGtleWJvYXJkIG5hdmlnYXRpb24uICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgd2l0aEtleWJvYXJkTmF2aWdhdGlvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aGUgTW9yZSBidXR0b24gY29tcG9uZW50IGlmIHRoaXMgbGlzdCBpcyBpbnNpZGUgYSBNb3JlIGJ1dHRvbiBwb3BvdmVyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9yZUJ1dHRvblJlZjogYW55O1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB1c2VyIHRyaWVzIHRvIG5hdmlnYXRlIHRvIHRoZSBpdGVtIGJlZm9yZSB0aGUgbGlzdCBpdHNlbGYuICovXG4gICAgQE91dHB1dCgpXG4gICAgZm9jdXNCZWZvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHVzZXIgdHJpZXMgdG8gbmF2aWdhdGUgdG8gdGhlIGl0ZW0gYWZ0ZXIgdGhlIGxpc3QgaXRzZWxmLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvY3VzQWZ0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQ29tcHV0ZWQgcm9sZSBiYXNlZCBvbiBuYXZpZ2F0aW9uIHN0YXRlIGFuZCBpbnB1dCByb2xlLiAqL1xuICAgIHJlYWRvbmx5IGNvbXB1dGVkUm9sZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgLy8gUHJpb3JpdGl6ZSBleHBsaWNpdCByb2xlIGlucHV0XG4gICAgICAgIGlmICh0aGlzLnJvbGUgJiYgdGhpcy5yb2xlICE9PSAndHJlZScpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvbGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGluIGFuIG92ZXJmbG93IG1lbnUgY29udGV4dCAoTW9yZSBidXR0b24gcG9wb3ZlcilcbiAgICAgICAgY29uc3QgbmF2aWdhdGlvbiA9IHRoaXMuX25hdmlnYXRpb247XG4gICAgICAgIGlmIChuYXZpZ2F0aW9uPy5pc1NuYXBwZWQkKCkgJiYgdGhpcy5tb3JlQnV0dG9uUmVmKSB7XG4gICAgICAgICAgICAvLyBJbiBvdmVyZmxvdyBtZW51LCBsaXN0cyBzaG91bGQgaGF2ZSByb2xlPVwibWVudVwiXG4gICAgICAgICAgICByZXR1cm4gJ21lbnUnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhpcyBpcyBhIGNoaWxkIGl0ZW1zIGxpc3Qgb3IgcGFyZW50IGl0ZW1zIGxpc3QsIGl0IHNob3VsZCBoYXZlIHJvbGU9XCJncm91cFwiXG4gICAgICAgIGlmICh0aGlzLmNoaWxkSXRlbXMgfHwgdGhpcy5wYXJlbnRJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuICdncm91cCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmF2aWdhdGlvbj8uaXNTbmFwcGVkJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ21lbnViYXInO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJvbGUgfHwgJ3RyZWUnO1xuICAgIH0pO1xuXG4gICAgLyoqIENvbXB1dGVkIGFyaWEtbGFiZWwgZm9yIGdyb3VwIGxpc3RzIGJhc2VkIG9uIHBhcmVudCBpdGVtJ3MgdGV4dCBjb250ZW50LiAqL1xuICAgIHJlYWRvbmx5IGNvbXB1dGVkQXJpYUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gT25seSBwcm92aWRlIGFyaWEtbGFiZWwgZm9yIGdyb3VwIHJvbGUgbGlzdHNcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXB1dGVkUm9sZSgpID09PSAnZ3JvdXAnICYmIHRoaXMuX2xpc3RJdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50TGluayA9IHRoaXMuX2xpc3RJdGVtLmxpbmskKCk7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudExpbms/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gR2V0IHRleHQgY29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBuYXZpZ2F0aW9uIGxpbmsgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAvLyBUaGUgLmZkLW5hdmlnYXRpb25fX3RleHQgc3BhbiBjb250YWlucyB0aGUgcHJvamVjdGVkIGNvbnRlbnQsIGJ1dCB3ZSBjYW4gYWNjZXNzXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoZSB0ZXh0IGNvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgbGluayBlbGVtZW50IGl0c2VsZlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5rRWxlbWVudCA9IHBhcmVudExpbmsuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0Q29udGVudCA9IGxpbmtFbGVtZW50LnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0Q29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRDb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJpYUxhYmVsO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgYXJpYUxhYmVsIGlmIERPTSBpcyBub3QgcmVhZHkgb3IgdGhlcmUncyBhbnkgZXJyb3JcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbDtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLyoqIExpc3QgaXRlbXMuICovXG4gICAgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IHNpZ25hbDxOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+W10+KFtdKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdEl0ZW1zQXJyYXk6IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT5bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBOdWxsYWJsZTxGb2N1c0tleU1hbmFnZXI8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUGFyZW50IG5hdmlnYXRpb24gY29tcG9uZW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb24gPSBpbmplY3QoRmRiTmF2aWdhdGlvbiwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBhcmVudCBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEl0ZW0gPSBpbmplY3QoRmRiTmF2aWdhdGlvbkxpc3RJdGVtLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bCA9IGluamVjdChSdGxTZXJ2aWNlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9hY3RpdmVJdGVtSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleU1hbmFnZXI/LmFjdGl2ZUl0ZW1JbmRleCA/PyAtMTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FyaWFMYWJlbEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFRoaXMgZWZmZWN0IHJ1bnMgd2hlbmV2ZXIgdGhlIHNpZ25hbHMgY2hhbmdlLCBidXQgd2UgbmVlZCB0byBlbnN1cmVcbiAgICAgICAgLy8gaXQgZG9lc24ndCBydW4gZHVyaW5nIHRoZSBpbml0aWFsIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGVcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVBcmlhTGFiZWwoKTtcbiAgICAgICAgfSwgMCk7XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9saXN0SXRlbT8ucmVnaXN0ZXJDaGlsZExpc3QodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEhhbmRsZXIgZm9yIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgX2tleWRvd25IYW5kbGVyKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy53aXRoS2V5Ym9hcmROYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPVywgVVBfQVJST1ddKSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBVUF9BUlJPVykgJiYgdGhpcy5fYWN0aXZlSXRlbUluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNCZWZvcmUuZW1pdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgRE9XTl9BUlJPVykgJiYgdGhpcy5fYWN0aXZlSXRlbUluZGV4ID09PSB0aGlzLl9saXN0SXRlbXNBcnJheS5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzQWZ0ZXIuZW1pdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRE9XTl9BUlJPVywgVVBfQVJST1ddKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBuZWVkIHRvIGNhbmNlbCBldmVudCBidWJibGluZyBzaW5jZSB3ZSBtYXkgaGF2ZSBwYXJlbnQgbGlzdCB0aGF0IHdpbGwgYWxzbyB0cnkgdG8gZm9jdXMgaXQncyBwYXJlbnQgbGlzdCBpdGVtLlxuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAvLyBBbGwgbmF2aWdhdGlvbiBsaXN0cyB1c2UgdGhlIHNhbWUgc3dhcHBlZCBhcnJvdyBsb2dpYzpcbiAgICAgICAgLy8gUklHSFQgYXJyb3cgPSBleHBhbmQgYWN0aW9uLCBMRUZUIGFycm93ID0gY29sbGFwc2UvZ28gYmFjayBhY3Rpb25cbiAgICAgICAgY29uc3QgaXNFeHBhbmRBY3Rpb24gPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgdGhpcy5fcnRsPy5ydGwudmFsdWUgPyBMRUZUX0FSUk9XIDogUklHSFRfQVJST1cpO1xuXG4gICAgICAgIGlmICghaXNFeHBhbmRBY3Rpb24pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vcmVCdXR0b25SZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fbGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW0uZm9jdXNMaW5rKHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9yZUJ1dHRvblJlZi5wb3BvdmVyT3BlbiQuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3JlQnV0dG9uUmVmLmZvY3VzTGluaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW0/LmZvY3VzTGluayh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0QWN0aXZlSXRlbUluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpbmRleCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25TZXJ2aWNlPy5jdXJyZW50SXRlbSQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpLnN1YnNjcmliZSgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnd2l0aEtleWJvYXJkTmF2aWdhdGlvbicgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5fc2V0dXBLZXlNYW5hZ2VyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0SXRlbT8udW5yZWdpc3RlckNoaWxkTGlzdCh0aGlzKTtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgbWFudWFsbHkgdG8gYXZvaWQgZXhwcmVzc2lvbiBjaGFuZ2VkIGVycm9yc1xuICAgICAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZUFyaWFMYWJlbCgpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGFyaWFMYWJlbCA9IHRoaXMuY29tcHV0ZWRBcmlhTGFiZWwoKTtcbiAgICAgICAgICAgIGlmIChhcmlhTGFiZWwgIT09IG51bGwgJiYgYXJpYUxhYmVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnYXJpYS1sYWJlbCcsIGFyaWFMYWJlbCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdhcmlhLWxhYmVsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXJpYUxhYmVsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2FyaWEtbGFiZWwnLCB0aGlzLmFyaWFMYWJlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldHVwS2V5TWFuYWdlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpO1xuXG4gICAgICAgIGlmICghdGhpcy53aXRoS2V5Ym9hcmROYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLl9saXN0SXRlbXNBcnJheSBhcyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXSlcbiAgICAgICAgICAgIC53aXRoVmVydGljYWxPcmllbnRhdGlvbigpXG4gICAgICAgICAgICAuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gaXRlbS5za2lwTmF2aWdhdGlvbik7XG4gICAgfVxufVxuIiwiQGZvciAoaXRlbSBvZiBsaXN0SXRlbXMkKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgPGxpIFtjbGFzc109XCJpdGVtLmNsYXNzJCgpXCIgcm9sZT1cIm5vbmVcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnJlbmRlcmVyJCgpXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPCEtLSBBZGQgc2VwYXJhdG9yIGFmdGVyIGhvbWUgbGlzdCBpdGVtLiAtLT5cbiAgICAgICAgQGlmIChpdGVtLmhvbWUpIHtcbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2xpc3QtaXRlbSBmZC1uYXZpZ2F0aW9uX19saXN0LWl0ZW0tLXNlcGFyYXRvclwiIHJvbGU9XCJzZXBhcmF0b3JcIj48L2xpPlxuICAgICAgICB9XG4gICAgfVxufVxuPCEtLSBLZWVwIHRoaXMgZm9yIFwiTW9yZVwiIGJ1dHRvbiAtLT5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==","import { ChangeDetectionStrategy, Component, ContentChildren, Input, QueryList, ViewEncapsulation, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, filter, observeOn, startWith } from 'rxjs';\nimport { FdbNavigationContentContainer } from '../../models/navigation-content-container.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport * as i0 from \"@angular/core\";\nexport class NavigationContentEndComponent extends FdbNavigationContentContainer {\n constructor() {\n super(...arguments);\n /** Whether the list items are content-projected. Used only with data-driven navigation. */\n this.contentProjected = true;\n /**\n * aria-label for the navigation list.\n */\n this.ariaLabel = null;\n /**\n * aria-roledescription for the navigation list.\n */\n this.ariaRoleDescription = null;\n /** @hidden */\n this.listItems$ = signal([], ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** Whether the container is placed on the start position, or the end position of the navigation. */\n this.placement = 'end';\n }\n /** @hidden */\n ngAfterContentInit() {\n this._listItems.changes\n .pipe(startWith(null), observeOn(asyncScheduler), filter(() => this.contentProjected), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.allListItems$.set(this._listItems.toArray());\n this.listItems$.set(this._listItems.toArray());\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationContentEndComponent, isStandalone: true, selector: \"fdb-navigation-content-end\", inputs: { contentProjected: \"contentProjected\", ariaLabel: \"ariaLabel\", ariaRoleDescription: \"ariaRoleDescription\" }, host: { classAttribute: \"fd-navigation__container fd-navigation__container--bottom\" }, providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentEndComponent\n }\n ], queries: [{ propertyName: \"_listItems\", predicate: FdbNavigationListItem }], usesInheritance: true, ngImport: i0, template: `<ul\n fdb-navigation-list\n [listItems]=\"allListItems$()\"\n [ariaLabel]=\"ariaLabel\"\n [ariaRoleDescription]=\"ariaRoleDescription\"\n ></ul>`, isInline: true, dependencies: [{ kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"ariaLabel\", \"ariaRoleDescription\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\", \"moreButtonRef\"], outputs: [\"focusBefore\", \"focusAfter\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentEndComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'fdb-navigation-content-end',\n template: `<ul\n fdb-navigation-list\n [listItems]=\"allListItems$()\"\n [ariaLabel]=\"ariaLabel\"\n [ariaRoleDescription]=\"ariaRoleDescription\"\n ></ul>`,\n imports: [NavigationListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'fd-navigation__container fd-navigation__container--bottom'\n },\n providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentEndComponent\n }\n ]\n }]\n }], propDecorators: { contentProjected: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaRoleDescription: [{\n type: Input\n }], _listItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LWVuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1lbmQvbmF2aWdhdGlvbi1jb250ZW50LWVuZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQXVCdkYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDZCQUE2QjtJQXJCaEY7O1FBc0JJLDJGQUEyRjtRQUUzRixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFeEI7O1dBRUc7UUFFSCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUVuQzs7V0FFRztRQUVILHdCQUFtQixHQUFxQixJQUFJLENBQUM7UUFNN0MsY0FBYztRQUNMLGVBQVUsR0FBRyxNQUFNLENBQTBCLEVBQUUsc0RBQUMsQ0FBQztRQUUxRCxvR0FBb0c7UUFDM0YsY0FBUyxHQUFvQixLQUFLLENBQUM7S0FnQi9DO0lBZEcsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTzthQUNsQixJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFDekIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNuQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3ZDO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQXhDUSw2QkFBNkI7a0dBQTdCLDZCQUE2QixzUkFQM0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsNkJBQTZCO2dCQUN0QyxXQUFXLEVBQUUsNkJBQTZCO2FBQzdDO1NBQ0oscURBb0JnQixxQkFBcUIsb0RBckM1Qjs7Ozs7V0FLSCw0REFDRyx1QkFBdUI7OzJGQWF4Qiw2QkFBNkI7a0JBckJ6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRTs7Ozs7V0FLSDtvQkFDUCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDbEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLDJEQUEyRDtxQkFDckU7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSw2QkFBNkI7NEJBQ3RDLFdBQVcsK0JBQStCO3lCQUM3QztxQkFDSjtpQkFDSjs4QkFJRyxnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixTQUFTO3NCQURSLEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUtXLFVBQVU7c0JBRDFCLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgSW5wdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsnO1xuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGZpbHRlciwgb2JzZXJ2ZU9uLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkYi1uYXZpZ2F0aW9uLWNvbnRlbnQtZW5kJyxcbiAgICB0ZW1wbGF0ZTogYDx1bFxuICAgICAgICBmZGItbmF2aWdhdGlvbi1saXN0XG4gICAgICAgIFtsaXN0SXRlbXNdPVwiYWxsTGlzdEl0ZW1zJCgpXCJcbiAgICAgICAgW2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuICAgICAgICBbYXJpYVJvbGVEZXNjcmlwdGlvbl09XCJhcmlhUm9sZURlc2NyaXB0aW9uXCJcbiAgICA+PC91bD5gLFxuICAgIGltcG9ydHM6IFtOYXZpZ2F0aW9uTGlzdENvbXBvbmVudF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbmF2aWdhdGlvbl9fY29udGFpbmVyIGZkLW5hdmlnYXRpb25fX2NvbnRhaW5lci0tYm90dG9tJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5hdmlnYXRpb25Db250ZW50RW5kQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25Db250ZW50RW5kQ29tcG9uZW50IGV4dGVuZHMgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtcyBhcmUgY29udGVudC1wcm9qZWN0ZWQuIFVzZWQgb25seSB3aXRoIGRhdGEtZHJpdmVuIG5hdmlnYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50UHJvamVjdGVkID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIGFyaWEtbGFiZWwgZm9yIHRoZSBuYXZpZ2F0aW9uIGxpc3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogYXJpYS1yb2xlZGVzY3JpcHRpb24gZm9yIHRoZSBuYXZpZ2F0aW9uIGxpc3QuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sIHsgZGVzY2VuZGFudHM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgbGlzdEl0ZW1zJCA9IHNpZ25hbDxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXT4oW10pO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGNvbnRhaW5lciBpcyBwbGFjZWQgb24gdGhlIHN0YXJ0IHBvc2l0aW9uLCBvciB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBuYXZpZ2F0aW9uLiAqL1xuICAgIHJlYWRvbmx5IHBsYWNlbWVudDogJ3N0YXJ0JyB8ICdlbmQnID0gJ2VuZCc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmNvbnRlbnRQcm9qZWN0ZWQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGxMaXN0SXRlbXMkLnNldCh0aGlzLl9saXN0SXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3RJdGVtcyQuc2V0KHRoaXMuX2xpc3RJdGVtcy50b0FycmF5KCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19","import { Directive, Injector, Input, TemplateRef, inject, signal } from '@angular/core';\nimport { FdbNavigationContentContainer } from '../models/navigation-content-container.class';\nimport { FdbNavigationListItem } from '../models/navigation-list-item.class';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListItemDirective {\n /** @hidden */\n constructor() {\n /**\n * Injector used for rendering child list item component.\n * Allows list item component to inject parent list container and register itself as a child item.\n */\n this.injector = Injector.create({ providers: [], parent: inject(Injector) });\n /** @hidden */\n this.parentNavListItemDirective = inject(NavigationListItemDirective, {\n skipSelf: true,\n optional: true\n });\n /**\n * Set of child directives.\n * Used to build hierarchy tree.\n */\n this.childDirectives = signal(new Set(), ...(ngDevMode ? [{ debugName: \"childDirectives\" }] : []));\n /** @hidden */\n this._contentContainer = inject(FdbNavigationContentContainer, {\n optional: true\n });\n this.parentNavListItemDirective?.registerChildDirective(this);\n }\n /**\n * Registers child list item component for further usage.\n * @param item\n */\n registerItem(item) {\n this._item = item;\n this._contentContainer?.registerItem(this._item);\n }\n /**\n * Removes child list item.\n */\n unregisterItem() {\n this._item && this._contentContainer?.unregisterItem(this._item);\n this._item = null;\n }\n /**\n * Registers child directive.\n */\n registerChildDirective(directive) {\n this.childDirectives.update((list) => list.add(directive));\n }\n /** @hidden */\n ngOnDestroy() {\n this._item && this._contentContainer?.unregisterItem(this._item);\n this._item = null;\n this.childDirectives().clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListItemDirective, isStandalone: true, selector: \"[fdbNavigationListItem]\", providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemDirective\n }\n ], exportAs: [\"fdbListItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationListItem]',\n standalone: true,\n providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemDirective\n }\n ],\n exportAs: 'fdbListItem'\n }]\n }], ctorParameters: () => [] });\nexport class NavigationListItemRefDirective {\n constructor() {\n /** Template reference. */\n this.templateRef = inject(TemplateRef);\n }\n /** @hidden */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListItemRefDirective, isStandalone: true, selector: \"[fdbNavigationListItemRef]\", inputs: { fdbNavigationListItemRefAs: \"fdbNavigationListItemRefAs\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemRefDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationListItemRef]',\n standalone: true\n }]\n }], propDecorators: { fdbNavigationListItemRefAs: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWl0ZW0tcmVmLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFhN0UsTUFBTSxPQUFPLDJCQUEyQjtJQThCcEMsY0FBYztJQUNkO1FBOUJBOzs7V0FHRztRQUNNLGFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRixjQUFjO1FBQ0wsK0JBQTBCLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFO1lBQ3RFLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUg7OztXQUdHO1FBQ00sb0JBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQStCLDJEQUFDLENBQUM7UUFRMUUsY0FBYztRQUNHLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRTtZQUN2RSxRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7UUFJQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxJQUEyQjtRQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ1YsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0IsQ0FBQyxTQUFzQztRQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25DLENBQUM7OEdBaEVRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLHNFQVJ6QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxxQkFBcUI7Z0JBQzlCLFdBQVcsRUFBRSwyQkFBMkI7YUFDM0M7U0FDSjs7MkZBR1EsMkJBQTJCO2tCQVh2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsV0FBVyw2QkFBNkI7eUJBQzNDO3FCQUNKO29CQUNELFFBQVEsRUFBRSxhQUFhO2lCQUMxQjs7QUF3RUQsTUFBTSxPQUFPLDhCQUE4QjtJQUozQztRQVFJLDBCQUEwQjtRQUNqQixnQkFBVyxHQUFHLE1BQU0sQ0FBaUIsV0FBVyxDQUFDLENBQUM7S0FNOUQ7SUFKRyxjQUFjO0lBQ2QsTUFBTSxDQUFDLHNCQUFzQixDQUFJLEdBQXNDLEVBQUUsR0FBWTtRQUNqRixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzhHQVZRLDhCQUE4QjtrR0FBOUIsOEJBQThCOzsyRkFBOUIsOEJBQThCO2tCQUoxQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFJRywwQkFBMEI7c0JBRHpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIgfSBmcm9tICcuLi9tb2RlbHMvbmF2aWdhdGlvbi1jb250ZW50LWNvbnRhaW5lci5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGJOYXZpZ2F0aW9uTGlzdEl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnZmRiTGlzdEl0ZW0nXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogSW5qZWN0b3IgdXNlZCBmb3IgcmVuZGVyaW5nIGNoaWxkIGxpc3QgaXRlbSBjb21wb25lbnQuXG4gICAgICogQWxsb3dzIGxpc3QgaXRlbSBjb21wb25lbnQgdG8gaW5qZWN0IHBhcmVudCBsaXN0IGNvbnRhaW5lciBhbmQgcmVnaXN0ZXIgaXRzZWxmIGFzIGEgY2hpbGQgaXRlbS5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogW10sIHBhcmVudDogaW5qZWN0KEluamVjdG9yKSB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgcGFyZW50TmF2TGlzdEl0ZW1EaXJlY3RpdmUgPSBpbmplY3QoTmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlLCB7XG4gICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogU2V0IG9mIGNoaWxkIGRpcmVjdGl2ZXMuXG4gICAgICogVXNlZCB0byBidWlsZCBoaWVyYXJjaHkgdHJlZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBjaGlsZERpcmVjdGl2ZXMgPSBzaWduYWwobmV3IFNldDxOYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmU+KCkpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE5hdmlnYXRpb24gbGlzdCBpdGVtIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBfaXRlbTogTnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudENvbnRhaW5lciA9IGluamVjdChGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5wYXJlbnROYXZMaXN0SXRlbURpcmVjdGl2ZT8ucmVnaXN0ZXJDaGlsZERpcmVjdGl2ZSh0aGlzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlcnMgY2hpbGQgbGlzdCBpdGVtIGNvbXBvbmVudCBmb3IgZnVydGhlciB1c2FnZS5cbiAgICAgKiBAcGFyYW0gaXRlbVxuICAgICAqL1xuICAgIHJlZ2lzdGVySXRlbShpdGVtOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbSA9IGl0ZW07XG4gICAgICAgIHRoaXMuX2NvbnRlbnRDb250YWluZXI/LnJlZ2lzdGVySXRlbSh0aGlzLl9pdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGNoaWxkIGxpc3QgaXRlbS5cbiAgICAgKi9cbiAgICB1bnJlZ2lzdGVySXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbSAmJiB0aGlzLl9jb250ZW50Q29udGFpbmVyPy51bnJlZ2lzdGVySXRlbSh0aGlzLl9pdGVtKTtcbiAgICAgICAgdGhpcy5faXRlbSA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGNoaWxkIGRpcmVjdGl2ZS5cbiAgICAgKi9cbiAgICByZWdpc3RlckNoaWxkRGlyZWN0aXZlKGRpcmVjdGl2ZTogTmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hpbGREaXJlY3RpdmVzLnVwZGF0ZSgobGlzdCkgPT4gbGlzdC5hZGQoZGlyZWN0aXZlKSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXRlbSAmJiB0aGlzLl9jb250ZW50Q29udGFpbmVyPy51bnJlZ2lzdGVySXRlbSh0aGlzLl9pdGVtKTtcbiAgICAgICAgdGhpcy5faXRlbSA9IG51bGw7XG4gICAgICAgIHRoaXMuY2hpbGREaXJlY3RpdmVzKCkuY2xlYXIoKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkYk5hdmlnYXRpb25MaXN0SXRlbVJlZl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkxpc3RJdGVtUmVmRGlyZWN0aXZlPFQgPSBhbnk+IHtcbiAgICAvKiogVHlwZSBhbGlhcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGZkYk5hdmlnYXRpb25MaXN0SXRlbVJlZkFzOiBUO1xuICAgIC8qKiBUZW1wbGF0ZSByZWZlcmVuY2UuICovXG4gICAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3Q8VGVtcGxhdGVSZWY8VD4+KFRlbXBsYXRlUmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8VD4oZGlyOiBOYXZpZ2F0aW9uTGlzdEl0ZW1SZWZEaXJlY3RpdmU8VD4sIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogVCB9IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19","export class FdbNavigationItemLink {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1pdGVtLWxpbmsuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL21vZGVscy9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQWdCLHFCQUFxQjtDQUsxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmLCBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZkYk5hdmlnYXRpb25JdGVtTGluayBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWYge1xuICAgIGFic3RyYWN0IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTExpbmtFbGVtZW50PjtcbiAgICBhYnN0cmFjdCBpblBvcG92ZXI6IGJvb2xlYW47XG4gICAgYWJzdHJhY3QgaXNBY3RpdmUkOiBTaWduYWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XG4gICAgYWJzdHJhY3Qgcm91dGVyTGluazogTnVsbGFibGU8Um91dGVyTGluaz47XG59XG4iXX0=","import { DOWN_ARROW, ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, Directive, ElementRef, HostListener, Input, Renderer2, TemplateRef, ViewEncapsulation, booleanAttribute, effect, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { of, startWith } from 'rxjs';\nimport { FdbNavigationItemLink } from '../../models/navigation-item-link.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nexport class NavigationLinkRefDirective {\n constructor() {\n /** Link template ref. */\n this.templateRef = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationLinkRefDirective, isStandalone: true, selector: \"[fdbNavigationLinkRef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkRefDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationLinkRef]',\n standalone: true\n }]\n }] });\nexport class NavigationLinkComponent extends FdbNavigationItemLink {\n /** Whether the link is inside popover. */\n get inPopover() {\n return !!this.elementRef.nativeElement.parentElement?.classList.contains('fd-navigation__item--title');\n }\n /** @hidden */\n constructor() {\n super();\n /** Glyph font family */\n this.glyphFont = FD_DEFAULT_ICON_FONT_FAMILY;\n /** Whether the link is for the external resource. */\n this.external = false;\n /** Whether it's a quick create button. */\n this.quickCreate = false;\n /** Element reference. */\n this.elementRef = inject(ElementRef);\n /** @hidden */\n this._listItemComponent = inject(FdbNavigationListItem, {\n optional: true\n });\n /** Router link reference. Used to determine whether the list item should be rendered with external expansion button. */\n this.routerLink = inject(RouterLink, {\n optional: true,\n self: true\n });\n /** @hidden */\n this._routerLinkActive = inject(RouterLinkActive, {\n optional: true,\n self: true\n });\n /** @hidden */\n this._rtl = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._navigation = inject(FdbNavigation);\n /** @hidden */\n this._renderer = inject(Renderer2);\n /** @hidden */\n this._tabIndexEffect = effect(() => {\n // Track all the signals that affect tabindex computation\n this._navigation.getActiveItem(); // Track active item changes\n const isParentPopoverOpen = this._listItemComponent?.popoverOpen$();\n const isGrandparentPopoverOpen = this._listItemComponent?.parentListItem?.popoverOpen$();\n const hasOpenPopover = isParentPopoverOpen || isGrandparentPopoverOpen;\n if (hasOpenPopover) {\n // For popover cases, update immediately to ensure tabindex is set before focus management\n this._updateTabIndex();\n }\n else {\n // For other cases, use setTimeout to avoid expression changed errors\n setTimeout(() => {\n this._updateTabIndex();\n }, 0);\n }\n }, ...(ngDevMode ? [{ debugName: \"_tabIndexEffect\" }] : []));\n this._listItemComponent?.registerLink(this);\n this.isActive$ = toSignal(this._routerLinkActive?.isActiveChange.pipe(startWith(this._routerLinkActive.isActive)) || of(false));\n }\n /** @hidden */\n _clickHandler(event) {\n // Check if this is a NavigationMoreButtonComponent (More button itself)\n if (this._listItemComponent &&\n 'type' in this._listItemComponent &&\n this._listItemComponent.type === 'showMore') {\n return;\n }\n const disabled = this._listItemComponent?.disabled$?.() || false;\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n if (this.inPopover || !this._listItemComponent?.isVisible$() || this._listItemComponent?.isOverflow$()) {\n this._navigation.closePopups();\n }\n if (this.routerLink) {\n return;\n }\n // Handle selection directly if in click mode\n if (this._navigation.selectionMode === 'click' && this._listItemComponent) {\n const canSelect = this._canItemBeSelected();\n if (canSelect) {\n this._navigation.service.setSelectedItem(this._listItemComponent);\n }\n else {\n // Handle expansion for items with children\n this._listItemComponent?.toggleExpanded();\n }\n }\n else {\n // Handle expansion for items with children\n this._listItemComponent?.toggleExpanded();\n }\n }\n /** @hidden */\n _keyDownHandler(event) {\n const keyboardEvent = event;\n const isDisabled = this._listItemComponent?.disabled$?.() || false;\n if (isDisabled) {\n return;\n }\n // Handle Space and Enter for selection (same as click behavior)\n if (KeyUtil.isKeyCode(keyboardEvent, [SPACE, ENTER])) {\n // Check if this is a NavigationMoreButtonComponent (More button itself)\n if (this._listItemComponent &&\n 'type' in this._listItemComponent &&\n this._listItemComponent.type === 'showMore') {\n return;\n }\n // Prevent default scrolling behavior for Space\n keyboardEvent.preventDefault();\n if (this.inPopover || !this._listItemComponent?.isVisible$() || this._listItemComponent?.isOverflow$()) {\n this._navigation.closePopups();\n }\n // Ignore if link has URL applied to it (let router handle it)\n if (this.routerLink) {\n return;\n }\n // Handle selection directly if in click mode\n if (this._navigation.selectionMode === 'click' && this._listItemComponent) {\n const canSelect = this._canItemBeSelected();\n if (canSelect) {\n this._navigation.service.setSelectedItem(this._listItemComponent);\n }\n else {\n // Handle expansion for items with children\n this._listItemComponent?.toggleExpanded();\n }\n }\n else {\n // Handle expansion for items with children\n this._listItemComponent?.toggleExpanded();\n }\n return;\n }\n if (this.inPopover && KeyUtil.isKeyCode(keyboardEvent, DOWN_ARROW)) {\n this._listItemComponent?.popoverLinkArrowDown();\n return;\n }\n if (!KeyUtil.isKeyCode(keyboardEvent, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n // Skip keyboard expansion for More buttons - they handle their own keyboard events\n if (this._listItemComponent.type === 'showMore') {\n return;\n }\n const expansionKey = this._rtl?.rtl.value ? LEFT_ARROW : RIGHT_ARROW;\n this._listItemComponent?.keyboardExpanded(KeyUtil.isKeyCode(keyboardEvent, expansionKey));\n }\n /** @hidden */\n ngOnDestroy() {\n this._listItemComponent?.unregisterLink(this);\n }\n /** @hidden */\n _updateTabIndex() {\n try {\n // Check if this link should have tabindex=0\n const isActiveItem = this._navigation.getActiveItem()?.link$() === this;\n // Check if any ancestor has an open popover\n const isParentPopoverOpen = this._listItemComponent?.popoverOpen$();\n const isGrandparentPopoverOpen = this._listItemComponent?.parentListItem?.popoverOpen$();\n // Check if the navigation is inside any popover body (not just navigation item popovers)\n const isInsidePopoverBody = this.elementRef.nativeElement.closest('.fd-popover__body');\n // When a popover is open, all links in the popover hierarchy should be focusable\n if (isParentPopoverOpen || isGrandparentPopoverOpen || isInsidePopoverBody) {\n // All links in popover context should be focusable (except disabled ones)\n const tabIndex = 0;\n this._renderer.setAttribute(this.elementRef.nativeElement, 'tabindex', tabIndex.toString());\n }\n else {\n // Normal case: active item gets tabindex=0, others get -1\n const tabIndex = isActiveItem ? 0 : -1;\n this._renderer.setAttribute(this.elementRef.nativeElement, 'tabindex', tabIndex.toString());\n }\n }\n catch {\n // Fallback to -1 if there's any issue during evaluation\n this._renderer.setAttribute(this.elementRef.nativeElement, 'tabindex', '-1');\n }\n }\n /** @hidden */\n _canItemBeSelected() {\n if (!this._listItemComponent) {\n return false;\n }\n // Group items (headers) cannot be selected\n if (this._listItemComponent.isGroup$()) {\n return false;\n }\n // Items with children that don't have a router link cannot be selected\n // (they should only expand/collapse)\n if (this._listItemComponent.hasChildren$() && !this.routerLink) {\n return false;\n }\n // Separator and spacer items cannot be selected\n if (this._listItemComponent.separator || this._listItemComponent.spacer) {\n return false;\n }\n // All other items (leaf items and items with both links and children) can be selected\n return true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationLinkComponent, isStandalone: true, selector: \"a[fdb-navigation-link], button[fdb-navigation-link]\", inputs: { class: \"class\", glyph: \"glyph\", glyphFont: \"glyphFont\", external: \"external\", quickCreate: [\"quickCreate\", \"quickCreate\", booleanAttribute] }, host: { listeners: { \"click\": \"_clickHandler($event)\", \"keydown\": \"_keyDownHandler($event)\" }, properties: { \"attr.role\": \"quickCreate ? \\\"button\\\" : \\\"link\\\"\" }, classAttribute: \"fd-navigation__link\" }, providers: [\n {\n provide: FdbNavigationItemLink,\n useExisting: NavigationLinkComponent\n }\n ], usesInheritance: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: \"@if (glyph) {\\n <fd-icon\\n [glyph]=\\\"glyph\\\"\\n [font]=\\\"glyphFont\\\"\\n class=\\\"fd-navigation__icon\\\"\\n [attr.role]=\\\"'presentation'\\\"\\n [ariaHidden]=\\\"true\\\"\\n ></fd-icon>\\n}\\n<span class=\\\"fd-navigation__text\\\">\\n <ng-content></ng-content>\\n</span>\\n@if (external) {\\n <span\\n class=\\\"fd-navigation__external-link-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"external link indicator\\\"\\n ></span>\\n}\\n<span\\n class=\\\"fd-navigation__selection-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"selection indicator\\\"\\n>\\n</span>\\n@if (_listItemComponent?.hasChildren$() && !inPopover && !routerLink) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"has children indicator, expanded\\\"\\n >\\n </span>\\n}\\n\", dependencies: [{ kind: \"component\", type: IconComponent, selector: \"fd-icon\", inputs: [\"glyph\", \"font\", \"color\", \"background\", \"class\", \"ariaLabel\", \"ariaHidden\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationLinkComponent, decorators: [{\n type: Component,\n args: [{ selector: 'a[fdb-navigation-link], button[fdb-navigation-link]', imports: [IconComponent], hostDirectives: [RouterLinkActive], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n {\n provide: FdbNavigationItemLink,\n useExisting: NavigationLinkComponent\n }\n ], host: {\n class: 'fd-navigation__link',\n '[attr.role]': 'quickCreate ? \"button\" : \"link\"'\n }, template: \"@if (glyph) {\\n <fd-icon\\n [glyph]=\\\"glyph\\\"\\n [font]=\\\"glyphFont\\\"\\n class=\\\"fd-navigation__icon\\\"\\n [attr.role]=\\\"'presentation'\\\"\\n [ariaHidden]=\\\"true\\\"\\n ></fd-icon>\\n}\\n<span class=\\\"fd-navigation__text\\\">\\n <ng-content></ng-content>\\n</span>\\n@if (external) {\\n <span\\n class=\\\"fd-navigation__external-link-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"external link indicator\\\"\\n ></span>\\n}\\n<span\\n class=\\\"fd-navigation__selection-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"selection indicator\\\"\\n>\\n</span>\\n@if (_listItemComponent?.hasChildren$() && !inPopover && !routerLink) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"presentation\\\"\\n aria-hidden=\\\"true\\\"\\n aria-label=\\\"has children indicator, expanded\\\"\\n >\\n </span>\\n}\\n\" }]\n }], ctorParameters: () => [], propDecorators: { class: [{\n type: Input\n }], glyph: [{\n type: Input\n }], glyphFont: [{\n type: Input\n }], external: [{\n type: Input\n }], quickCreate: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], _clickHandler: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], _keyDownHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUYsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBWSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsYUFBYSxFQUFZLE1BQU0sNEJBQTRCLENBQUM7QUFDbEcsT0FBTyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FB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LG1CQUNqQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcseUJBQXlCO3lCQUN2QztxQkFDSixRQUNLO3dCQUNGLEtBQUssRUFBRSxxQkFBcUI7d0JBQzVCLGFBQWEsRUFBRSxpQ0FBaUM7cUJBQ25EO3dEQU1ELEtBQUs7c0JBREosS0FBSztnQkFLTixLQUFLO3NCQURKLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixXQUFXO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBeUU1QixhQUFhO3NCQUR0QixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE2Q3ZCLGVBQWU7c0JBRHhCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIExFRlRfQVJST1csIFJJR0hUX0FSUk9XLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBlZmZlY3QsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEtleVV0aWwsIE51bGxhYmxlLCBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsnO1xuaW1wb3J0IHsgRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZLCBJY29uQ29tcG9uZW50LCBJY29uRm9udCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IG9mLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25JdGVtTGluayB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRiTmF2aWdhdGlvbkxpbmtSZWZdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaW5rUmVmRGlyZWN0aXZlIHtcbiAgICAvKiogTGluayB0ZW1wbGF0ZSByZWYuICovXG4gICAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYVtmZGItbmF2aWdhdGlvbi1saW5rXSwgYnV0dG9uW2ZkYi1uYXZpZ2F0aW9uLWxpbmtdJyxcbiAgICBpbXBvcnRzOiBbSWNvbkNvbXBvbmVudF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtSb3V0ZXJMaW5rQWN0aXZlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGZGJOYXZpZ2F0aW9uSXRlbUxpbmssXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkxpbmtDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZkLW5hdmlnYXRpb25fX2xpbmsnLFxuICAgICAgICAnW2F0dHIucm9sZV0nOiAncXVpY2tDcmVhdGUgPyBcImJ1dHRvblwiIDogXCJsaW5rXCInXG4gICAgfSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlua0NvbXBvbmVudCBleHRlbmRzIEZkYk5hdmlnYXRpb25JdGVtTGluayBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIExpbmsgZ2x5cGggKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIEdseXBoIGZvbnQgZmFtaWx5ICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaEZvbnQ6IEljb25Gb250ID0gRkRfREVGQVVMVF9JQ09OX0ZPTlRfRkFNSUxZO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpbmsgaXMgZm9yIHRoZSBleHRlcm5hbCByZXNvdXJjZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4dGVybmFsID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBpdCdzIGEgcXVpY2sgY3JlYXRlIGJ1dHRvbi4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBxdWlja0NyZWF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpbmsgaXMgaW5zaWRlIHBvcG92ZXIuICovXG4gICAgZ2V0IGluUG9wb3ZlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdmZC1uYXZpZ2F0aW9uX19pdGVtLS10aXRsZScpO1xuICAgIH1cblxuICAgIC8qKiBFbGVtZW50IHJlZmVyZW5jZS4gKi9cbiAgICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTExpbmtFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGlzQWN0aXZlJDogU2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbGlzdEl0ZW1Db21wb25lbnQgPSBpbmplY3QoRmRiTmF2aWdhdGlvbkxpc3RJdGVtLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogUm91dGVyIGxpbmsgcmVmZXJlbmNlLiBVc2VkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBsaXN0IGl0ZW0gc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGggZXh0ZXJuYWwgZXhwYW5zaW9uIGJ1dHRvbi4gKi9cbiAgICByZWFkb25seSByb3V0ZXJMaW5rID0gaW5qZWN0KFJvdXRlckxpbmssIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIHNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcm91dGVyTGlua0FjdGl2ZSA9IGluamVjdChSb3V0ZXJMaW5rQWN0aXZlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBzZWxmOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bCA9IGluamVjdChSdGxTZXJ2aWNlLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb24gPSBpbmplY3QoRmRiTmF2aWdhdGlvbik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYkluZGV4RWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gVHJhY2sgYWxsIHRoZSBzaWduYWxzIHRoYXQgYWZmZWN0IHRhYmluZGV4IGNvbXB1dGF0aW9uXG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24uZ2V0QWN0aXZlSXRlbSgpOyAvLyBUcmFjayBhY3RpdmUgaXRlbSBjaGFuZ2VzXG4gICAgICAgIGNvbnN0IGlzUGFyZW50UG9wb3Zlck9wZW4gPSB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8ucG9wb3Zlck9wZW4kKCk7XG4gICAgICAgIGNvbnN0IGlzR3JhbmRwYXJlbnRQb3BvdmVyT3BlbiA9IHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py5wYXJlbnRMaXN0SXRlbT8ucG9wb3Zlck9wZW4kKCk7XG5cbiAgICAgICAgY29uc3QgaGFzT3BlblBvcG92ZXIgPSBpc1BhcmVudFBvcG92ZXJPcGVuIHx8IGlzR3JhbmRwYXJlbnRQb3BvdmVyT3BlbjtcblxuICAgICAgICBpZiAoaGFzT3BlblBvcG92ZXIpIHtcbiAgICAgICAgICAgIC8vIEZvciBwb3BvdmVyIGNhc2VzLCB1cGRhdGUgaW1tZWRpYXRlbHkgdG8gZW5zdXJlIHRhYmluZGV4IGlzIHNldCBiZWZvcmUgZm9jdXMgbWFuYWdlbWVudFxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlVGFiSW5kZXgoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEZvciBvdGhlciBjYXNlcywgdXNlIHNldFRpbWVvdXQgdG8gYXZvaWQgZXhwcmVzc2lvbiBjaGFuZ2VkIGVycm9yc1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVGFiSW5kZXgoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8ucmVnaXN0ZXJMaW5rKHRoaXMpO1xuICAgICAgICB0aGlzLmlzQWN0aXZlJCA9IHRvU2lnbmFsKFxuICAgICAgICAgICAgdGhpcy5fcm91dGVyTGlua0FjdGl2ZT8uaXNBY3RpdmVDaGFuZ2UucGlwZShzdGFydFdpdGgodGhpcy5fcm91dGVyTGlua0FjdGl2ZS5pc0FjdGl2ZSkpIHx8IG9mKGZhbHNlKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHByb3RlY3RlZCBfY2xpY2tIYW5kbGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgTmF2aWdhdGlvbk1vcmVCdXR0b25Db21wb25lbnQgKE1vcmUgYnV0dG9uIGl0c2VsZilcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQgJiZcbiAgICAgICAgICAgICd0eXBlJyBpbiB0aGlzLl9saXN0SXRlbUNvbXBvbmVudCAmJlxuICAgICAgICAgICAgKHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50IGFzIGFueSkudHlwZSA9PT0gJ3Nob3dNb3JlJ1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LmRpc2FibGVkJD8uKCkgfHwgZmFsc2U7XG5cbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pblBvcG92ZXIgfHwgIXRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py5pc1Zpc2libGUkKCkgfHwgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb24uY2xvc2VQb3B1cHMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhhbmRsZSBzZWxlY3Rpb24gZGlyZWN0bHkgaWYgaW4gY2xpY2sgbW9kZVxuICAgICAgICBpZiAodGhpcy5fbmF2aWdhdGlvbi5zZWxlY3Rpb25Nb2RlID09PSAnY2xpY2snICYmIHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjYW5TZWxlY3QgPSB0aGlzLl9jYW5JdGVtQmVTZWxlY3RlZCgpO1xuXG4gICAgICAgICAgICBpZiAoY2FuU2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5zZXJ2aWNlLnNldFNlbGVjdGVkSXRlbSh0aGlzLl9saXN0SXRlbUNvbXBvbmVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBleHBhbnNpb24gZm9yIGl0ZW1zIHdpdGggY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8udG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBleHBhbnNpb24gZm9yIGl0ZW1zIHdpdGggY2hpbGRyZW5cbiAgICAgICAgICAgIHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py50b2dnbGVFeHBhbmRlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgX2tleURvd25IYW5kbGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCBrZXlib2FyZEV2ZW50ID0gZXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcbiAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py5kaXNhYmxlZCQ/LigpIHx8IGZhbHNlO1xuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIFNwYWNlIGFuZCBFbnRlciBmb3Igc2VsZWN0aW9uIChzYW1lIGFzIGNsaWNrIGJlaGF2aW9yKVxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoa2V5Ym9hcmRFdmVudCwgW1NQQUNFLCBFTlRFUl0pKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgTmF2aWdhdGlvbk1vcmVCdXR0b25Db21wb25lbnQgKE1vcmUgYnV0dG9uIGl0c2VsZilcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbUNvbXBvbmVudCAmJlxuICAgICAgICAgICAgICAgICd0eXBlJyBpbiB0aGlzLl9saXN0SXRlbUNvbXBvbmVudCAmJlxuICAgICAgICAgICAgICAgICh0aGlzLl9saXN0SXRlbUNvbXBvbmVudCBhcyBhbnkpLnR5cGUgPT09ICdzaG93TW9yZSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gUHJldmVudCBkZWZhdWx0IHNjcm9sbGluZyBiZWhhdmlvciBmb3IgU3BhY2VcbiAgICAgICAgICAgIGtleWJvYXJkRXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuaW5Qb3BvdmVyIHx8ICF0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8uaXNWaXNpYmxlJCgpIHx8IHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50Py5pc092ZXJmbG93JCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5jbG9zZVBvcHVwcygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZ25vcmUgaWYgbGluayBoYXMgVVJMIGFwcGxpZWQgdG8gaXQgKGxldCByb3V0ZXIgaGFuZGxlIGl0KVxuICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyTGluaykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSGFuZGxlIHNlbGVjdGlvbiBkaXJlY3RseSBpZiBpbiBjbGljayBtb2RlXG4gICAgICAgICAgICBpZiAodGhpcy5fbmF2aWdhdGlvbi5zZWxlY3Rpb25Nb2RlID09PSAnY2xpY2snICYmIHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FuU2VsZWN0ID0gdGhpcy5fY2FuSXRlbUJlU2VsZWN0ZWQoKTtcblxuICAgICAgICAgICAgICAgIGlmIChjYW5TZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbmF2aWdhdGlvbi5zZXJ2aWNlLnNldFNlbGVjdGVkSXRlbSh0aGlzLl9saXN0SXRlbUNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIGV4cGFuc2lvbiBmb3IgaXRlbXMgd2l0aCBjaGlsZHJlblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8udG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEhhbmRsZSBleHBhbnNpb24gZm9yIGl0ZW1zIHdpdGggY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB0aGlzLl9saXN0SXRlbUNvbXBvbmVudD8udG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmluUG9wb3ZlciAmJiBLZXlVdGlsLmlzS2V5Q29kZShrZXlib2FyZEV2ZW50LCBET1dOX0FSUk9XKSkge1xuICAgICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnBvcG92ZXJMaW5rQXJyb3dEb3duKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGtleWJvYXJkRXZlbnQsIFtMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTa2lwIGtleWJvYXJkIGV4cGFuc2lvbiBmb3IgTW9yZSBidXR0b25zIC0gdGhleSBoYW5kbGUgdGhlaXIgb3duIGtleWJvYXJkIGV2ZW50c1xuICAgICAgICBpZiAoKHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50IGFzIGFueSkudHlwZSA9PT0gJ3Nob3dNb3JlJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXhwYW5zaW9uS2V5ID0gdGhpcy5fcnRsPy5ydGwudmFsdWUgPyBMRUZUX0FSUk9XIDogUklHSFRfQVJST1c7XG5cbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LmtleWJvYXJkRXhwYW5kZWQoS2V5VXRpbC5pc0tleUNvZGUoa2V5Ym9hcmRFdmVudCwgZXhwYW5zaW9uS2V5KSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnVucmVnaXN0ZXJMaW5rKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlVGFiSW5kZXgoKTogdm9pZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiB0aGlzIGxpbmsgc2hvdWxkIGhhdmUgdGFiaW5kZXg9MFxuICAgICAgICAgICAgY29uc3QgaXNBY3RpdmVJdGVtID0gdGhpcy5fbmF2aWdhdGlvbi5nZXRBY3RpdmVJdGVtKCk/LmxpbmskKCkgPT09IHRoaXM7XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIGFueSBhbmNlc3RvciBoYXMgYW4gb3BlbiBwb3BvdmVyXG4gICAgICAgICAgICBjb25zdCBpc1BhcmVudFBvcG92ZXJPcGVuID0gdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnBvcG92ZXJPcGVuJCgpO1xuICAgICAgICAgICAgY29uc3QgaXNHcmFuZHBhcmVudFBvcG92ZXJPcGVuID0gdGhpcy5fbGlzdEl0ZW1Db21wb25lbnQ/LnBhcmVudExpc3RJdGVtPy5wb3BvdmVyT3BlbiQoKTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIG5hdmlnYXRpb24gaXMgaW5zaWRlIGFueSBwb3BvdmVyIGJvZHkgKG5vdCBqdXN0IG5hdmlnYXRpb24gaXRlbSBwb3BvdmVycylcbiAgICAgICAgICAgIGNvbnN0IGlzSW5zaWRlUG9wb3ZlckJvZHkgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuZmQtcG9wb3Zlcl9fYm9keScpO1xuXG4gICAgICAgICAgICAvLyBXaGVuIGEgcG9wb3ZlciBpcyBvcGVuLCBhbGwgbGlua3MgaW4gdGhlIHBvcG92ZXIgaGllcmFyY2h5IHNob3VsZCBiZSBmb2N1c2FibGVcbiAgICAgICAgICAgIGlmIChpc1BhcmVudFBvcG92ZXJPcGVuIHx8IGlzR3JhbmRwYXJlbnRQb3BvdmVyT3BlbiB8fCBpc0luc2lkZVBvcG92ZXJCb2R5KSB7XG4gICAgICAgICAgICAgICAgLy8gQWxsIGxpbmtzIGluIHBvcG92ZXIgY29udGV4dCBzaG91bGQgYmUgZm9jdXNhYmxlIChleGNlcHQgZGlzYWJsZWQgb25lcylcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCB0YWJJbmRleC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTm9ybWFsIGNhc2U6IGFjdGl2ZSBpdGVtIGdldHMgdGFiaW5kZXg9MCwgb3RoZXJzIGdldCAtMVxuICAgICAgICAgICAgICAgIGNvbnN0IHRhYkluZGV4ID0gaXNBY3RpdmVJdGVtID8gMCA6IC0xO1xuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgdGFiSW5kZXgudG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRmFsbGJhY2sgdG8gLTEgaWYgdGhlcmUncyBhbnkgaXNzdWUgZHVyaW5nIGV2YWx1YXRpb25cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JywgJy0xJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Nhbkl0ZW1CZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX2xpc3RJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHcm91cCBpdGVtcyAoaGVhZGVycykgY2Fubm90IGJlIHNlbGVjdGVkXG4gICAgICAgIGlmICh0aGlzLl9saXN0SXRlbUNvbXBvbmVudC5pc0dyb3VwJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJdGVtcyB3aXRoIGNoaWxkcmVuIHRoYXQgZG9uJ3QgaGF2ZSBhIHJvdXRlciBsaW5rIGNhbm5vdCBiZSBzZWxlY3RlZFxuICAgICAgICAvLyAodGhleSBzaG91bGQgb25seSBleHBhbmQvY29sbGFwc2UpXG4gICAgICAgIGlmICh0aGlzLl9saXN0SXRlbUNvbXBvbmVudC5oYXNDaGlsZHJlbiQoKSAmJiAhdGhpcy5yb3V0ZXJMaW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXBhcmF0b3IgYW5kIHNwYWNlciBpdGVtcyBjYW5ub3QgYmUgc2VsZWN0ZWRcbiAgICAgICAgaWYgKHRoaXMuX2xpc3RJdGVtQ29tcG9uZW50LnNlcGFyYXRvciB8fCB0aGlzLl9saXN0SXRlbUNvbXBvbmVudC5zcGFjZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFsbCBvdGhlciBpdGVtcyAobGVhZiBpdGVtcyBhbmQgaXRlbXMgd2l0aCBib3RoIGxpbmtzIGFuZCBjaGlsZHJlbikgY2FuIGJlIHNlbGVjdGVkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cbiIsIkBpZiAoZ2x5cGgpIHtcbiAgICA8ZmQtaWNvblxuICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICBbZm9udF09XCJnbHlwaEZvbnRcIlxuICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2ljb25cIlxuICAgICAgICBbYXR0ci5yb2xlXT1cIidwcmVzZW50YXRpb24nXCJcbiAgICAgICAgW2FyaWFIaWRkZW5dPVwidHJ1ZVwiXG4gICAgPjwvZmQtaWNvbj5cbn1cbjxzcGFuIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fdGV4dFwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbkBpZiAoZXh0ZXJuYWwpIHtcbiAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2V4dGVybmFsLWxpbmstaW5kaWNhdG9yXCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJleHRlcm5hbCBsaW5rIGluZGljYXRvclwiXG4gICAgPjwvc3Bhbj5cbn1cbjxzcGFuXG4gICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19zZWxlY3Rpb24taW5kaWNhdG9yXCJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIGFyaWEtbGFiZWw9XCJzZWxlY3Rpb24gaW5kaWNhdG9yXCJcbj5cbjwvc3Bhbj5cbkBpZiAoX2xpc3RJdGVtQ29tcG9uZW50Py5oYXNDaGlsZHJlbiQoKSAmJiAhaW5Qb3BvdmVyICYmICFyb3V0ZXJMaW5rKSB7XG4gICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19oYXMtY2hpbGRyZW4taW5kaWNhdG9yXCJcbiAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJoYXMgY2hpbGRyZW4gaW5kaWNhdG9yLCBleHBhbmRlZFwiXG4gICAgPlxuICAgIDwvc3Bhbj5cbn1cbiJdfQ==","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, DestroyRef, Directive, ElementRef, Input, NgZone, QueryList, ViewChild, ViewEncapsulation, booleanAttribute, computed, effect, inject, input, signal } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyComponent, PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { asyncScheduler, filter, map, observeOn, startWith, take } from 'rxjs';\nimport { NavigationListItemDirective } from '../../directives/navigation-list-item-ref.directive';\nimport { FdbNavigationContentContainer } from '../../models/navigation-content-container.class';\nimport { FdbNavigationItemLink } from '../../models/navigation-item-link.class';\nimport { FdbNavigationListItem, FdbNavigationListItemCmp, LIST_ITEM_CLASS } from '../../models/navigation-list-item.class';\nimport { NavigationService } from '../../services/navigation.service';\nimport { NavigationLinkRefDirective } from '../navigation-link/navigation-link.component';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport * as i0 from \"@angular/core\";\nlet navListItemUniqueId = 0;\nexport class NavigationListItemMarkerDirective {\n /** @hidden */\n constructor() {\n /** Element reference. */\n this.elementRef = inject(ElementRef);\n inject(NavigationListItemComponent).marker = this;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemMarkerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListItemMarkerDirective, isStandalone: true, selector: \"[fdbNavigationListItemMarker]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemMarkerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdbNavigationListItemMarker]',\n standalone: true\n }]\n }], ctorParameters: () => [] });\nexport class NavigationListItemComponent extends FdbNavigationListItem {\n /** @hidden */\n set class(value) {\n this._class$.set(value);\n }\n get class() {\n return this._class$();\n }\n /** Whether the list item represents \"Home\" item. */\n set home(value) {\n this._home$.set(value);\n }\n get home() {\n return this._home$();\n }\n /** Whether the list item represents \"Quick create\" button. */\n set quickCreate(value) {\n this.quickCreate$.set(value);\n }\n get quickCreate() {\n return this.quickCreate$();\n }\n /** Whether the list item should be rendered as a separator */\n set separator(value) {\n this._separator$.set(value);\n }\n get separator() {\n return this._separator$();\n }\n /** Whether the list item should be rendered as a spacer */\n set spacer(value) {\n this._spacer$.set(value);\n }\n get spacer() {\n return this._spacer$();\n }\n /** Whether the list item should be rendered as a group. */\n set group(group) {\n this.isGroup$.set(group);\n }\n get group() {\n return this.isGroup$();\n }\n /** Whether the list item is expanded. */\n set expanded(expanded) {\n this.expanded$.set(expanded);\n }\n get expanded() {\n return this.expanded$();\n }\n /** Whether the item should be marked as selected. */\n set selected(selected) {\n this._manuallySelected$.set(selected);\n }\n get selected() {\n return this.selected$();\n }\n /** Whether the item is disabled. */\n set disabled(disabled) {\n this.disabled$.set(disabled);\n }\n get disabled() {\n return this.disabled$();\n }\n /** Link reference. */\n set link(value) {\n this.link$.set(value);\n }\n /** Renderer template reference. */\n set renderer(renderer) {\n this._onZoneStable().subscribe(() => {\n this.renderer$.set(renderer || null);\n });\n }\n /**\n * Whether the item is navigatable via the keyboard.\n */\n get skipNavigation() {\n return this.spacer || this.separator || this._isDisabledCached$();\n }\n /** @hidden */\n get parentListItem() {\n return (this._parentNavigationListItemDirective?.parentNavListItemDirective?._item || this.parentListItemComponent);\n }\n /** @hidden */\n constructor() {\n super();\n /** ID for the navigation list item. Default one is assigned if not provided. */\n this.id = input(`fdb-nav-list-item-${++navListItemUniqueId}`, ...(ngDevMode ? [{ debugName: \"id\" }] : []));\n /** Type of the list item. Whether its a standard item or a \"show more\" button container. */\n this.type = 'item';\n /** @hidden */\n this._toggleIcon$ = computed(() => {\n if (this.expandedAttr$()) {\n return 'slim-arrow-down';\n }\n return this._rtl$() ? 'slim-arrow-left' : 'slim-arrow-right';\n }, ...(ngDevMode ? [{ debugName: \"_toggleIcon$\" }] : []));\n /** List item placement container. */\n this.placementContainer = inject(FdbNavigationContentContainer, {\n skipSelf: true,\n optional: true\n }) || undefined;\n /**\n * Whether the list item is visible in the main navigation list container.\n */\n this.isVisible$ = computed(() => {\n if (this.isOverflow$()) {\n return false;\n }\n if (!this.parentListItem) {\n return this.isGroup$() ? !this.navigation.isSnapped$() : true;\n }\n if (this.navigation.isSnapped$()) {\n return this.normalizedLevel$() < 3;\n }\n return this.parentListItem.isVisible$() && this.parentListItem.expanded$();\n }, ...(ngDevMode ? [{ debugName: \"isVisible$\" }] : []));\n /** Whether the item is disabled. Cached to avoid repeated signal calls. */\n this._isDisabledCached$ = computed(() => this.disabled$(), ...(ngDevMode ? [{ debugName: \"_isDisabledCached$\" }] : []));\n /** aria-expanded attribute value. */\n this.expandedAttr$ = computed(() => this.navigation.isSnapped$() ? this.popoverOpen$() && !this.isOverflow$() : this.expanded$(), ...(ngDevMode ? [{ debugName: \"expandedAttr$\" }] : []));\n /** Role attribute value based on navigation state. */\n this.roleAttr$ = computed(() => {\n if (this.navigation.isSnapped$()) {\n // In popover context (when parent list item exists), child items should be treeitem\n if (this.parentListItem && this.parentListItem.popoverOpen$()) {\n return 'treeitem';\n }\n // In overflow menu context (More button popover), items should be menuitem\n if (this.isOverflow$()) {\n return 'menuitem';\n }\n return 'menuitemradio';\n }\n return 'treeitem';\n }, ...(ngDevMode ? [{ debugName: \"roleAttr$\" }] : []));\n /** aria-checked attribute value for menuitemradio role. */\n this.ariaCheckedAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && this.roleAttr$() === 'menuitemradio') {\n return this.isActiveAttr$();\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"ariaCheckedAttr$\" }] : []));\n /** aria-selected attribute value - kept in both expanded and snapped modes. */\n this.ariaSelectedAttr$ = computed(() => this.isActiveAttr$(), ...(ngDevMode ? [{ debugName: \"ariaSelectedAttr$\" }] : []));\n /** aria-level attribute value - only for treeitem role. */\n this.ariaLevelAttr$ = computed(() => {\n if (!this.navigation.isSnapped$()) {\n return this.level$();\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"ariaLevelAttr$\" }] : []));\n /** aria-owns attribute value for items with children. */\n this.ariaOwnsAttr$ = computed(() => {\n if (this.hasChildren$()) {\n return `${this.id()}-list`;\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"ariaOwnsAttr$\" }] : []));\n /** ID attribute for child lists. */\n this.childListIdAttr$ = computed(() => {\n if (this.hasChildren$()) {\n return `${this.id()}-list`;\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"childListIdAttr$\" }] : []));\n /** aria-label attribute value for snapped mode menuitemradio. */\n this.ariaLabelAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && this.roleAttr$() === 'menuitemradio') {\n const link = this.link$();\n if (link?.elementRef?.nativeElement) {\n const linkElement = link.elementRef.nativeElement;\n const textContent = linkElement.textContent?.trim();\n if (textContent) {\n return textContent;\n }\n }\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"ariaLabelAttr$\" }] : []));\n /** Expander aria-label attribute value. */\n this.expanderAriaLabelAttr$ = computed(() => this._expanderAriaLabel$(), ...(ngDevMode ? [{ debugName: \"expanderAriaLabelAttr$\" }] : []));\n /** aria-haspopup attribute value for snapped mode items with children. */\n this.ariaHasPopupAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && this.hasChildren$()) {\n // In overflow menu, items with submenus should have aria-haspopup=\"menu\"\n if (this.isOverflow$()) {\n return 'menu';\n }\n // Regular navigation items should have aria-haspopup=\"dialog\"\n return 'dialog';\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"ariaHasPopupAttr$\" }] : []));\n /** aria-current attribute value for snapped mode items with children. */\n this.ariaCurrentAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && this.hasChildren$()) {\n return 'page';\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"ariaCurrentAttr$\" }] : []));\n /** Wrapper role attribute for snapped mode popovers. */\n this.wrapperRoleAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && this.hasChildren$() && !this.isOverflow$()) {\n return 'tree';\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"wrapperRoleAttr$\" }] : []));\n /** Wrapper aria-roledescription for snapped mode popovers. */\n this.wrapperAriaRoleDescriptionAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && this.hasChildren$() && !this.isOverflow$()) {\n return this._snappedPopoverRoleDescription$();\n }\n return undefined;\n }, ...(ngDevMode ? [{ debugName: \"wrapperAriaRoleDescriptionAttr$\" }] : []));\n /** Title item role for snapped mode - should be treeitem in popovers. */\n this.titleItemRoleAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && !this.isOverflow$()) {\n return 'treeitem';\n }\n return this.roleAttr$();\n }, ...(ngDevMode ? [{ debugName: \"titleItemRoleAttr$\" }] : []));\n /** Title item aria-selected for snapped mode - should not be selected if children are selected. */\n this.titleItemAriaSelectedAttr$ = computed(() => {\n if (this.navigation.isSnapped$() && !this.isOverflow$()) {\n // In popover, if any child is selected, the parent should not have aria-selected\n const hasSelectedChild = this.listItems$().some((item) => item?.isActiveAttr$());\n if (hasSelectedChild) {\n return false;\n }\n // Otherwise use the normal selected state\n return this.ariaSelectedAttr$();\n }\n return this.ariaSelectedAttr$();\n }, ...(ngDevMode ? [{ debugName: \"titleItemAriaSelectedAttr$\" }] : []));\n this.titleItemFocusable$ = computed(() => {\n if (this.navigation.isSnapped$() && !this.isOverflow$()) {\n // Check if the parent item has the with-expander class (two-click area)\n const parentItemElement = this.marker?.elementRef?.nativeElement;\n if (parentItemElement) {\n return parentItemElement.classList.contains('fd-navigation__item--with-expander');\n }\n return false; // Default to not focusable for one-click areas\n }\n return true;\n }, ...(ngDevMode ? [{ debugName: \"titleItemFocusable$\" }] : []));\n /** CSS Class signal. */\n this.class$ = computed(() => [\n LIST_ITEM_CLASS,\n this._class$(),\n this._separator$() ? `${LIST_ITEM_CLASS}--separator` : '',\n this._spacer$() ? `${LIST_ITEM_CLASS}--spacer` : '',\n this._home$() ? `${LIST_ITEM_CLASS}--home` : ''\n ]\n .filter((k) => !!k)\n .join(' '), ...(ngDevMode ? [{ debugName: \"class$\" }] : []));\n /** Combined selected state - considers both manual selection and service selection. */\n this.selected$ = computed(() => {\n // In router mode, only consider manual selection\n if (this.navigation.selectionMode === 'router') {\n return this._manuallySelected$();\n }\n // In click mode, check both manual selection and service selection\n // But manual selection should only be considered if no item is selected via service\n if (this.navigation.selectionMode === 'click') {\n const serviceSelected = this.navigation.service.selectedItem$() === this;\n const manuallySelected = this._manuallySelected$() && this.navigation.service.selectedItem$() === null;\n return serviceSelected || manuallySelected;\n }\n return false;\n }, ...(ngDevMode ? [{ debugName: \"selected$\" }] : []));\n /** @hidden */\n this.quickCreate$ = signal(false, ...(ngDevMode ? [{ debugName: \"quickCreate$\" }] : []));\n /**\n * @hidden\n * Popover position. Changes based on rtl value.\n */\n this._popoverPlacement$ = computed(() => (this._rtl$() ? 'left-start' : 'right-start'), ...(ngDevMode ? [{ debugName: \"_popoverPlacement$\" }] : []));\n /** @hidden */\n this._moreButtonRef$ = computed(() => this._parentNavigationList?.moreButtonRef || null, ...(ngDevMode ? [{ debugName: \"_moreButtonRef$\" }] : []));\n /** Optional parent list component. */\n this.parentListItemComponent = inject(FdbNavigationListItemCmp, {\n optional: true,\n skipSelf: true\n });\n /** @hidden */\n this._home$ = signal(false, ...(ngDevMode ? [{ debugName: \"_home$\" }] : []));\n /** Manual selection state signal (for router-based selection mode). */\n this._manuallySelected$ = signal(false, ...(ngDevMode ? [{ debugName: \"_manuallySelected$\" }] : []));\n /** @hidden */\n this._class$ = signal(null, ...(ngDevMode ? [{ debugName: \"_class$\" }] : []));\n /** @hidden */\n this._separator$ = signal(false, ...(ngDevMode ? [{ debugName: \"_separator$\" }] : []));\n /** @hidden */\n this._spacer$ = signal(false, ...(ngDevMode ? [{ debugName: \"_spacer$\" }] : []));\n /** @hidden */\n this._links = [];\n /** @hidden */\n this._childLists = [];\n /** @hidden */\n this._zone = inject(NgZone);\n /** @hidden */\n this._lang$ = inject(FD_LANGUAGE);\n /** @hidden */\n this._translationResolver = inject(TranslationResolver);\n /** Translation signal for snapped popover role description. */\n this._snappedPopoverRoleDescription$ = toSignal(this._lang$.pipe(map((lang) => this._translationResolver.resolve(lang, 'btpNavigation.snappedPopoverRoleDescription'))), { initialValue: 'Navigation List Tree' });\n /** Translation signal for expander aria-label. */\n this._expanderAriaLabel$ = toSignal(this._lang$.pipe(map((lang) => this._translationResolver.resolve(lang, 'btpNavigation.expanderAriaLabel'))), { initialValue: 'expand/collapse sub-items' });\n this._rtlService = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this._rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"_rtl$\" }] : []));\n /**\n * @hidden\n * Directive that used during data-driven rendering.\n */\n this._parentNavigationListItemDirective = inject(NavigationListItemDirective, { optional: true });\n /** @hidden */\n this._parentNavigationService = inject(NavigationService, {\n skipSelf: true,\n optional: true\n });\n /** @hidden */\n this._parentNavigationList = inject(NavigationListComponent, {\n skipSelf: true,\n optional: true\n });\n /** @hidden */\n this._destroyRef = inject(DestroyRef);\n effect(() => {\n if (this.popoverOpen$()) {\n const listItems = this.listItems$().filter(Boolean);\n this._keyManager = new FocusKeyManager(listItems)\n .withVerticalOrientation()\n .skipPredicate((item) => item.skipNavigation);\n }\n else {\n this._keyManager?.destroy();\n }\n });\n // We need to track child directives change and set list items based on that.\n effect(() => {\n if (!this._parentNavigationListItemDirective?.childDirectives()) {\n return;\n }\n const children = this._parentNavigationListItemDirective.childDirectives();\n const mappedItems = Array.from(children).map((child) => child._item);\n this.listItems$.set(mappedItems);\n });\n this._parentNavigationListItemDirective?.registerItem(this);\n this.navigation.closeAllPopups.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.popoverOpen$.set(false);\n });\n // Listen for selection changes to implement single-selection behavior\n this.navigation.service.selectionChanged$\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((selectedItem) => {\n // If another item was selected and we're in click mode, clear our manual selection\n if (this.navigation.selectionMode === 'click' && selectedItem !== this && this._manuallySelected$()) {\n this._manuallySelected$.set(false);\n }\n });\n }\n /** @hidden */\n ngOnDestroy() {\n this._keyManager?.destroy();\n }\n /** @hidden */\n _focusBeforeList() {\n if (this.popoverOpen$()) {\n this._focusPopoverLink();\n }\n }\n /**\n * @hidden\n * When item is focused, we notify list container about it to update active index in FocusKeyManager.\n */\n _focusInHandler() {\n if (!this.parentListItem?.popoverOpen$() && !this.isOverflow$()) {\n this.navigation.setActiveItem(this);\n return;\n }\n this._parentNavigationService?.currentItem$.next(this);\n }\n /** @hidden */\n ngAfterViewInit() {\n this.listItems.changes\n .pipe(filter(() => !this._parentNavigationListItemDirective), startWith(null), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.listItems$.set(this.listItems.toArray());\n });\n }\n /** @hidden */\n registerLink(link) {\n if (this._links.indexOf(link) === -1) {\n this._links.push(link);\n }\n }\n /** @hidden */\n unregisterLink(link) {\n this._links.splice(this._links.indexOf(link), 1);\n }\n /** @hidden */\n registerChildList(list) {\n if (this._childLists.includes(list)) {\n return;\n }\n this._childLists.push(list);\n }\n /** @hidden */\n unregisterChildList(list) {\n if (!this._childLists.includes(list)) {\n return;\n }\n this._childLists.splice(this._childLists.indexOf(list), 1);\n }\n /** @hidden */\n handleHorizontalNavigation(isExpand) {\n console.log(isExpand);\n }\n /**\n * Callback method when Arrow down is pressed on the link in popover.\n */\n popoverLinkArrowDown() {\n this._keyManager?.setActiveItem(0);\n }\n /** @Hidden */\n _innerListKeydown(event) {\n if (!this.popoverOpen$()) {\n return;\n }\n if (KeyUtil.isKeyCode(event, UP_ARROW) && this._keyManager?.activeItemIndex === 0) {\n this._focusPopoverLink();\n return;\n }\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n this._keyManager?.onKeydown(event);\n return;\n }\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n const isGoBack = KeyUtil.isKeyCode(event, this._rtl$() ? LEFT_ARROW : RIGHT_ARROW);\n if (!isGoBack) {\n return;\n }\n this._snappedItemKeyboardExpandedHandler(false);\n }\n /** Toggles expanded state of the item. */\n toggleExpanded() {\n if (this.disabled$()) {\n return;\n }\n if (!this.hasChildren$()) {\n return;\n }\n this.expanded$.update((expanded) => !expanded);\n }\n /** Handles item click for both selection and expansion based on item type and navigation mode. */\n handleItemClick() {\n if (this.disabled$()) {\n return;\n }\n // Let the navigation link handle expansion for items with links\n // Only handle expansion here for items without any links\n if (this.hasChildren$() && !this.link$()) {\n this.toggleExpanded();\n return;\n }\n // Handle selection in click mode for selectable items\n if (this.navigation.selectionMode === 'click' && this.canItemBeSelected()) {\n this.navigation.service.setSelectedItem(this);\n }\n }\n /** Handles keydown events for navigation item actions. */\n handleItemKeydown(event) {\n // For quick create items, execute the click action on Enter/Space\n if (this.quickCreate$() && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n event.preventDefault();\n event.stopPropagation();\n // Trigger click on the link element if it exists\n const linkElement = this.link$()?.elementRef?.nativeElement;\n if (linkElement) {\n linkElement.click();\n }\n }\n }\n /** Callback method when user used keyboard arrows to expand/collapse list item. */\n keyboardExpanded(shouldExpand) {\n if (this.isOverflow$()) {\n this._overflowItemKeyboardExpandedHandler(shouldExpand);\n }\n else if (this.navigation.isSnapped$()) {\n this._snappedItemKeyboardExpandedHandler(shouldExpand);\n }\n else {\n this._visibleItemKeyboardExpandedHandler(shouldExpand);\n }\n }\n /**\n * Focus method implementation.\n * Used by main navigation component FocusKeyManager.\n * @param origin\n */\n focus() {\n // If popover is open, focus will be automatically shifted to cloned link.\n if (this.popoverOpen$() && !this.isOverflow$()) {\n return;\n }\n this.focusLink();\n }\n /**\n * Focuses inner link element.\n * Optionally closes the popover.\n */\n focusLink(closePopover = false) {\n this.link$()?.elementRef.nativeElement.focus();\n if (closePopover) {\n this.popoverOpen$.set(false);\n }\n }\n /** @hidden */\n _onPopoverOpen(isOpen, popover) {\n this.popoverOpen$.set(isOpen);\n if (isOpen) {\n this._onZoneStable().subscribe(() => {\n // Force update of tabindex for all child links before focusing\n this._ensureChildTabindexUpdated();\n setTimeout(() => {\n // Try to use the FocusKeyManager first\n if (this._keyManager) {\n this._keyManager.setActiveItem(0);\n return;\n }\n // Fallback: Use component data structures to find the first focusable link\n const firstFocusableLink = this._links.find((link) => link.inPopover && link.elementRef?.nativeElement);\n if (firstFocusableLink) {\n firstFocusableLink.elementRef.nativeElement.focus();\n return;\n }\n // Alternative: Use listItems to find first item's link\n const firstListItem = this.listItems$().find((item) => item && !item.skipNavigation);\n if (firstListItem) {\n const link = firstListItem.link$();\n if (link?.elementRef?.nativeElement) {\n link.elementRef.nativeElement.focus();\n return;\n }\n }\n // Last resort: use the popover's built-in focus management\n try {\n popover.popoverBody._focusFirstTabbableElement(true);\n }\n catch (error) {\n console.error('Error focusing in popover:', error);\n const popoverBodyElement = popover.popoverBody?._elementRef?.nativeElement;\n if (popoverBodyElement) {\n const firstFocusableElement = popoverBodyElement.querySelector('a, button, [tabindex]:not([tabindex=\"-1\"])');\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n }\n }\n }\n }, 0);\n });\n }\n else {\n // When popover closes, return focus to the parent link (for snapped state)\n if (this.navigation.isSnapped$()) {\n this._onZoneStable().subscribe(() => {\n this.focusLink();\n });\n }\n }\n }\n /**\n * Determines if this item can be selected based on its type and structure.\n * @returns true if the item can be selected, false otherwise\n */\n canItemBeSelected() {\n // Group items (headers) cannot be selected\n if (this.isGroup$()) {\n return false;\n }\n // Quick create items cannot be selected (they execute actions instead)\n if (this.quickCreate$()) {\n return false;\n }\n // Items with children that don't have a router link cannot be selected\n // (they should only expand/collapse)\n if (this.hasChildren$() && !this.link$()?.routerLink) {\n return false;\n }\n // Separator and spacer items cannot be selected\n if (this.separator || this.spacer) {\n return false;\n }\n // All other items (leaf items and items with both links and children) can be selected\n return true;\n }\n _focusPopoverLink() {\n this._links.find((link) => link.inPopover)?.elementRef.nativeElement.focus();\n }\n /** @hidden */\n _ensureChildTabindexUpdated() {\n // When popover is open, all links should be focusable\n this._links.forEach((link) => {\n if (link.elementRef?.nativeElement) {\n // Simple logic: if any popover is open in the hierarchy, all links are focusable\n const tabIndex = this.popoverOpen$() ? 0 : -1;\n link.elementRef.nativeElement.setAttribute('tabindex', tabIndex.toString());\n }\n });\n }\n /** @hidden */\n _visibleItemKeyboardExpandedHandler(shouldExpand) {\n if (!this.hasChildren$()) {\n if (!shouldExpand) {\n this.parentListItem?.focus();\n }\n return;\n }\n if (!shouldExpand) {\n // If item already collapsed, shift focus to parent link\n if (!this.expanded$()) {\n this.parentListItem?.focus();\n return;\n }\n this.expanded$.set(false);\n }\n else {\n if (this.expanded$()) {\n this.listItems.first?.focus();\n return;\n }\n this.expanded$.set(true);\n }\n }\n /** @hidden */\n _snappedItemKeyboardExpandedHandler(shouldExpand) {\n if (!this.hasChildren$()) {\n return;\n }\n if (shouldExpand && !this.popoverOpen$()) {\n this.popoverOpen$.set(true);\n }\n if (!shouldExpand && this.popoverOpen$()) {\n this.popoverOpen$.set(false);\n this.link$()?.elementRef.nativeElement.focus();\n }\n }\n /**\n * @hidden\n * Method used to handle keyboard navigation for list item that is inside overflow container.\n */\n _overflowItemKeyboardExpandedHandler(shouldExpand) {\n if (shouldExpand && this._childLists.length > 0) {\n const firstList = this._childLists[0];\n firstList.setActiveItemIndex(0);\n }\n if (shouldExpand && !this.popoverOpen$()) {\n this.popoverOpen$.set(true);\n }\n if (!shouldExpand && this.popoverOpen$()) {\n this.popoverOpen$.set(false);\n this.link?.elementRef.nativeElement.focus();\n }\n }\n /** @hidden */\n _onZoneStable() {\n return this._zone.onStable.pipe(startWith(this._zone.isStable), observeOn(asyncScheduler), take(1), takeUntilDestroyed(this._destroyRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationListItemComponent, isStandalone: true, selector: \"fdb-navigation-list-item\", inputs: { class: { classPropertyName: \"class\", publicName: \"class\", isSignal: false, isRequired: false, transformFunction: null }, home: { classPropertyName: \"home\", publicName: \"home\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, quickCreate: { classPropertyName: \"quickCreate\", publicName: \"quickCreate\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, separator: { classPropertyName: \"separator\", publicName: \"separator\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, spacer: { classPropertyName: \"spacer\", publicName: \"spacer\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, group: { classPropertyName: \"group\", publicName: \"group\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, expanded: { classPropertyName: \"expanded\", publicName: \"expanded\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, selected: { classPropertyName: \"selected\", publicName: \"selected\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n NavigationService,\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemComponent\n },\n {\n provide: FdbNavigationListItemCmp,\n useExisting: NavigationListItemComponent\n }\n ], queries: [{ propertyName: \"link\", first: true, predicate: FdbNavigationItemLink, descendants: true }, { propertyName: \"linkRef\", first: true, predicate: NavigationLinkRefDirective, descendants: true }, { propertyName: \"listItems\", predicate: FdbNavigationListItem }], viewQueries: [{ propertyName: \"renderer\", first: true, predicate: [\"renderer\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<!-- General renderer. -->\\n<ng-template #renderer>\\n @if (!separator) {\\n <div\\n class=\\\"fd-navigation__item\\\"\\n [class.fd-navigation__item--group]=\\\"isGroup$()\\\"\\n [class.fd-navigation__item--create]=\\\"quickCreate$()\\\"\\n [class.fd-navigation__item--child]=\\\"normalizedLevel$() > 2\\\"\\n [class.fd-navigation__item--overflow]=\\\"isOverflow$()\\\"\\n [class.fd-navigation__item--with-expander]=\\\"!!link$()?.routerLink && hasChildren$()\\\"\\n [class.fd-navigation__item--disabled]=\\\"disabled$()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.role]=\\\"roleAttr$()\\\"\\n [attr.aria-level]=\\\"ariaLevelAttr$()\\\"\\n [attr.aria-label]=\\\"ariaLabelAttr$()\\\"\\n [attr.aria-selected]=\\\"ariaSelectedAttr$()\\\"\\n [attr.aria-checked]=\\\"ariaCheckedAttr$()\\\"\\n [attr.aria-expanded]=\\\"expandedAttr$()\\\"\\n [attr.aria-disabled]=\\\"disabled$()\\\"\\n [attr.aria-owns]=\\\"ariaOwnsAttr$()\\\"\\n [attr.aria-haspopup]=\\\"ariaHasPopupAttr$()\\\"\\n [attr.aria-current]=\\\"ariaCurrentAttr$()\\\"\\n [attr.normalized-level]=\\\"normalizedLevel$()\\\"\\n (focusin)=\\\"_focusInHandler()\\\"\\n (click)=\\\"handleItemClick()\\\"\\n (keydown)=\\\"handleItemKeydown($event)\\\"\\n fdbNavigationListItemMarker\\n #itemContainer\\n >\\n @if (!navigation.isSnapped$() || !hasChildren$()) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"snappedNavigationItemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: itemContainer }\\\"\\n ></ng-template>\\n }\\n </div>\\n @if (isOverflow$() && hasChildren$()) {\\n <ng-template [ngTemplateOutlet]=\\\"overflowItemListRenderer\\\"></ng-template>\\n }\\n @if (!navigation.isSnapped$()) {\\n <ng-template [ngTemplateOutlet]=\\\"listRenderer\\\"></ng-template>\\n }\\n }\\n</ng-template>\\n<!-- Snapped navigation list item renderer. Implicit context points to the popover trigger element. -->\\n<ng-template #snappedNavigationItemRenderer let-itemContainer>\\n <ng-template [ngTemplateOutlet]=\\\"linkRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"></ng-template>\\n @if (!isOverflow$()) {\\n <fd-popover\\n #popover\\n [noArrow]=\\\"true\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"_onPopoverOpen($event, popover)\\\"\\n [trigger]=\\\"itemContainer\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [restoreFocusOnClose]=\\\"false\\\"\\n [focusTrapped]=\\\"true\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"navigation.classList$()\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n </fd-popover-body>\\n </fd-popover>\\n }\\n</ng-template>\\n<!-- Generic link renderer. -->\\n<ng-template #linkRenderer let-showToggleButton>\\n <ng-template [ngTemplateOutlet]=\\\"linkRef?.templateRef || null\\\"></ng-template>\\n @if (!!link$()?.routerLink && hasChildren$()) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"button\\\"\\n [attr.aria-label]=\\\"expanderAriaLabelAttr$()\\\"\\n (click)=\\\"toggleExpanded()\\\"\\n ></span>\\n }\\n</ng-template>\\n<!-- Generic list renderer. Used when navigation is not snapped. -->\\n<ng-template #listRenderer>\\n @if (isGroup$() && normalizedLevel$() === 1) {\\n <ul\\n fdb-navigation-list\\n [listItems]=\\\"listItems$()\\\"\\n parentItems\\n [moreButtonRef]=\\\"_moreButtonRef$()\\\"\\n [attr.id]=\\\"id() + '-list'\\\"\\n ></ul>\\n } @else if (hasChildren$()) {\\n <div class=\\\"fd-navigation__list-container\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n</ng-template>\\n<!-- Template used for rendering sublist of items for the list item that is currently in overflow menu. -->\\n<ng-template #overflowItemListRenderer>\\n <div class=\\\"fd-navigation__list-container fd-navigation__list-container--submenu fd-menu__sublist\\\">\\n <ng-template [ngTemplateOutlet]=\\\"wrapperRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"></ng-template>\\n </div>\\n</ng-template>\\n<!-- Generic list renderer. Implicit context defines whether the inner list should handle keyboard navigation by its own. -->\\n<ng-template #wrapperRenderer let-keyboardNavigation>\\n <div\\n class=\\\"fd-navigation__list-wrapper\\\"\\n [attr.role]=\\\"wrapperRoleAttr$()\\\"\\n [attr.aria-roledescription]=\\\"wrapperAriaRoleDescriptionAttr$()\\\"\\n >\\n @if (navigation.isSnapped$() && !isOverflow$()) {\\n <!-- If opener link itself is active, project aria-checked attribute to link repeater too for snapped mode. -->\\n <div\\n class=\\\"fd-navigation__item fd-navigation__item--title fd-navigation__item--child\\\"\\n [attr.role]=\\\"titleItemRoleAttr$()\\\"\\n [attr.aria-selected]=\\\"titleItemAriaSelectedAttr$()\\\"\\n [attr.tabindex]=\\\"titleItemFocusable$() ? 0 : -1\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n <ul\\n fdb-navigation-list\\n [listItems]=\\\"listItems$() || []\\\"\\n [childItems]=\\\"true\\\"\\n [role]=\\\"isOverflow$() ? 'menu' : 'group'\\\"\\n (keydown)=\\\"(false)\\\"\\n (focusBefore)=\\\"_focusBeforeList()\\\"\\n [withKeyboardNavigation]=\\\"keyboardNavigation\\\"\\n [moreButtonRef]=\\\"_moreButtonRef$()\\\"\\n [attr.id]=\\\"childListIdAttr$()\\\"\\n ></ul>\\n </div>\\n</ng-template>\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"ariaLabel\", \"ariaRoleDescription\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\", \"moreButtonRef\"], outputs: [\"focusBefore\", \"focusAfter\"] }, { kind: \"component\", type: PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: PopoverBodyComponent, selector: \"fd-popover-body\", inputs: [\"minWidth\", \"maxWidth\", \"minHeight\", \"maxHeight\"] }, { kind: \"directive\", type: NavigationListItemMarkerDirective, selector: \"[fdbNavigationListItemMarker]\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdb-navigation-list-item', imports: [\n NgTemplateOutlet,\n NavigationListComponent,\n PopoverComponent,\n PopoverBodyComponent,\n NavigationListItemMarkerDirective,\n NgClass\n ], providers: [\n NavigationService,\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationListItemComponent\n },\n {\n provide: FdbNavigationListItemCmp,\n useExisting: NavigationListItemComponent\n }\n ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"<!-- General renderer. -->\\n<ng-template #renderer>\\n @if (!separator) {\\n <div\\n class=\\\"fd-navigation__item\\\"\\n [class.fd-navigation__item--group]=\\\"isGroup$()\\\"\\n [class.fd-navigation__item--create]=\\\"quickCreate$()\\\"\\n [class.fd-navigation__item--child]=\\\"normalizedLevel$() > 2\\\"\\n [class.fd-navigation__item--overflow]=\\\"isOverflow$()\\\"\\n [class.fd-navigation__item--with-expander]=\\\"!!link$()?.routerLink && hasChildren$()\\\"\\n [class.fd-navigation__item--disabled]=\\\"disabled$()\\\"\\n [attr.id]=\\\"id()\\\"\\n [attr.role]=\\\"roleAttr$()\\\"\\n [attr.aria-level]=\\\"ariaLevelAttr$()\\\"\\n [attr.aria-label]=\\\"ariaLabelAttr$()\\\"\\n [attr.aria-selected]=\\\"ariaSelectedAttr$()\\\"\\n [attr.aria-checked]=\\\"ariaCheckedAttr$()\\\"\\n [attr.aria-expanded]=\\\"expandedAttr$()\\\"\\n [attr.aria-disabled]=\\\"disabled$()\\\"\\n [attr.aria-owns]=\\\"ariaOwnsAttr$()\\\"\\n [attr.aria-haspopup]=\\\"ariaHasPopupAttr$()\\\"\\n [attr.aria-current]=\\\"ariaCurrentAttr$()\\\"\\n [attr.normalized-level]=\\\"normalizedLevel$()\\\"\\n (focusin)=\\\"_focusInHandler()\\\"\\n (click)=\\\"handleItemClick()\\\"\\n (keydown)=\\\"handleItemKeydown($event)\\\"\\n fdbNavigationListItemMarker\\n #itemContainer\\n >\\n @if (!navigation.isSnapped$() || !hasChildren$()) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"snappedNavigationItemRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: itemContainer }\\\"\\n ></ng-template>\\n }\\n </div>\\n @if (isOverflow$() && hasChildren$()) {\\n <ng-template [ngTemplateOutlet]=\\\"overflowItemListRenderer\\\"></ng-template>\\n }\\n @if (!navigation.isSnapped$()) {\\n <ng-template [ngTemplateOutlet]=\\\"listRenderer\\\"></ng-template>\\n }\\n }\\n</ng-template>\\n<!-- Snapped navigation list item renderer. Implicit context points to the popover trigger element. -->\\n<ng-template #snappedNavigationItemRenderer let-itemContainer>\\n <ng-template [ngTemplateOutlet]=\\\"linkRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"></ng-template>\\n @if (!isOverflow$()) {\\n <fd-popover\\n #popover\\n [noArrow]=\\\"true\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"_onPopoverOpen($event, popover)\\\"\\n [trigger]=\\\"itemContainer\\\"\\n [focusAutoCapture]=\\\"true\\\"\\n [restoreFocusOnClose]=\\\"false\\\"\\n [focusTrapped]=\\\"true\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"navigation.classList$()\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"\\n ></ng-template>\\n </fd-popover-body>\\n </fd-popover>\\n }\\n</ng-template>\\n<!-- Generic link renderer. -->\\n<ng-template #linkRenderer let-showToggleButton>\\n <ng-template [ngTemplateOutlet]=\\\"linkRef?.templateRef || null\\\"></ng-template>\\n @if (!!link$()?.routerLink && hasChildren$()) {\\n <span\\n class=\\\"fd-navigation__has-children-indicator\\\"\\n role=\\\"button\\\"\\n [attr.aria-label]=\\\"expanderAriaLabelAttr$()\\\"\\n (click)=\\\"toggleExpanded()\\\"\\n ></span>\\n }\\n</ng-template>\\n<!-- Generic list renderer. Used when navigation is not snapped. -->\\n<ng-template #listRenderer>\\n @if (isGroup$() && normalizedLevel$() === 1) {\\n <ul\\n fdb-navigation-list\\n [listItems]=\\\"listItems$()\\\"\\n parentItems\\n [moreButtonRef]=\\\"_moreButtonRef$()\\\"\\n [attr.id]=\\\"id() + '-list'\\\"\\n ></ul>\\n } @else if (hasChildren$()) {\\n <div class=\\\"fd-navigation__list-container\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"wrapperRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n</ng-template>\\n<!-- Template used for rendering sublist of items for the list item that is currently in overflow menu. -->\\n<ng-template #overflowItemListRenderer>\\n <div class=\\\"fd-navigation__list-container fd-navigation__list-container--submenu fd-menu__sublist\\\">\\n <ng-template [ngTemplateOutlet]=\\\"wrapperRenderer\\\" [ngTemplateOutletContext]=\\\"{ $implicit: true }\\\"></ng-template>\\n </div>\\n</ng-template>\\n<!-- Generic list renderer. Implicit context defines whether the inner list should handle keyboard navigation by its own. -->\\n<ng-template #wrapperRenderer let-keyboardNavigation>\\n <div\\n class=\\\"fd-navigation__list-wrapper\\\"\\n [attr.role]=\\\"wrapperRoleAttr$()\\\"\\n [attr.aria-roledescription]=\\\"wrapperAriaRoleDescriptionAttr$()\\\"\\n >\\n @if (navigation.isSnapped$() && !isOverflow$()) {\\n <!-- If opener link itself is active, project aria-checked attribute to link repeater too for snapped mode. -->\\n <div\\n class=\\\"fd-navigation__item fd-navigation__item--title fd-navigation__item--child\\\"\\n [attr.role]=\\\"titleItemRoleAttr$()\\\"\\n [attr.aria-selected]=\\\"titleItemAriaSelectedAttr$()\\\"\\n [attr.tabindex]=\\\"titleItemFocusable$() ? 0 : -1\\\"\\n >\\n <ng-template\\n [ngTemplateOutlet]=\\\"linkRenderer\\\"\\n [ngTemplateOutletContext]=\\\"{ $implicit: false }\\\"\\n ></ng-template>\\n </div>\\n }\\n <ul\\n fdb-navigation-list\\n [listItems]=\\\"listItems$() || []\\\"\\n [childItems]=\\\"true\\\"\\n [role]=\\\"isOverflow$() ? 'menu' : 'group'\\\"\\n (keydown)=\\\"(false)\\\"\\n (focusBefore)=\\\"_focusBeforeList()\\\"\\n [withKeyboardNavigation]=\\\"keyboardNavigation\\\"\\n [moreButtonRef]=\\\"_moreButtonRef$()\\\"\\n [attr.id]=\\\"childListIdAttr$()\\\"\\n ></ul>\\n </div>\\n</ng-template>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { class: [{\n type: Input\n }], home: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], quickCreate: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], separator: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], spacer: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], group: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], expanded: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], selected: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], disabled: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], listItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: false }]\n }], link: [{\n type: ContentChild,\n args: [FdbNavigationItemLink]\n }], linkRef: [{\n type: ContentChild,\n args: [NavigationLinkRefDirective]\n }], renderer: [{\n type: ViewChild,\n args: ['renderer']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbS9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1pdGVtL25hdmlnYXRpb24tbGlzdC1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQWlCLE9BQU8sRUFBWSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RixP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Z0JBQWdCLEVBQUU7Z0JBV2xDLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFXbEMsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVd0QyxTQUFTO3NCQURSLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFO2dCQUsxRCxJQUFJO3NCQURQLFlBQVk7dUJBQUMscUJBQXFCO2dCQVNuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsMEJBQTBCO2dCQUtwQyxRQUFRO3NCQURYLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERPV05fQVJST1csIEVOVEVSLCBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVywgU1BBQ0UsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgY29tcHV0ZWQsXG4gICAgZWZmZWN0LFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiwgS2V5VXRpbCwgTnVsbGFibGUsIFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBQb3BvdmVyQm9keUNvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgRkRfTEFOR1VBR0UsIEZkTGFuZ3VhZ2UsIFRyYW5zbGF0aW9uUmVzb2x2ZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgYXN5bmNTY2hlZHVsZXIsIGZpbHRlciwgbWFwLCBvYnNlcnZlT24sIHN0YXJ0V2l0aCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkl0ZW1MaW5rIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24taXRlbS1saW5rLmNsYXNzJztcbmltcG9ydCB7XG4gICAgRmRiTmF2aWdhdGlvbkxpc3RJdGVtLFxuICAgIEZkYk5hdmlnYXRpb25MaXN0SXRlbUNtcCxcbiAgICBMSVNUX0lURU1fQ0xBU1Ncbn0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaW5rUmVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saW5rL25hdmlnYXRpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5cbmxldCBuYXZMaXN0SXRlbVVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRiTmF2aWdhdGlvbkxpc3RJdGVtTWFya2VyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlzdEl0ZW1NYXJrZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBIYXNFbGVtZW50UmVmIHtcbiAgICAvKiogRWxlbWVudCByZWZlcmVuY2UuICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpbmplY3QoTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50KS5tYXJrZXIgPSB0aGlzO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZGItbmF2aWdhdGlvbi1saXN0LWl0ZW0nLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5Q29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdEl0ZW1NYXJrZXJEaXJlY3RpdmUsXG4gICAgICAgIE5nQ2xhc3NcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZkYk5hdmlnYXRpb25MaXN0SXRlbSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ21wLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCBleHRlbmRzIEZkYk5hdmlnYXRpb25MaXN0SXRlbSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjbGFzcyh2YWx1ZTogTnVsbGFibGU8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9jbGFzcyQuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgY2xhc3MoKTogTnVsbGFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzcyQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIHJlcHJlc2VudHMgXCJIb21lXCIgaXRlbS4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgaG9tZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9ob21lJC5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBob21lKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faG9tZSQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIHJlcHJlc2VudHMgXCJRdWljayBjcmVhdGVcIiBidXR0b24uICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHF1aWNrQ3JlYXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMucXVpY2tDcmVhdGUkLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IHF1aWNrQ3JlYXRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWlja0NyZWF0ZSQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIHNob3VsZCBiZSByZW5kZXJlZCBhcyBhIHNlcGFyYXRvciAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBzZXBhcmF0b3IodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2VwYXJhdG9yJC5zZXQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgc2VwYXJhdG9yKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VwYXJhdG9yJCgpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW0gc2hvdWxkIGJlIHJlbmRlcmVkIGFzIGEgc3BhY2VyICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IHNwYWNlcih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zcGFjZXIkLnNldCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzcGFjZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zcGFjZXIkKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3QgaXRlbSBzaG91bGQgYmUgcmVuZGVyZWQgYXMgYSBncm91cC4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgZ3JvdXAoZ3JvdXA6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0dyb3VwJC5zZXQoZ3JvdXApO1xuICAgIH1cblxuICAgIGdldCBncm91cCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNHcm91cCQoKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGlzdCBpdGVtIGlzIGV4cGFuZGVkLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBleHBhbmRlZChleHBhbmRlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmV4cGFuZGVkJC5zZXQoZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kZWQkKCk7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gc2hvdWxkIGJlIG1hcmtlZCBhcyBzZWxlY3RlZC4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fbWFudWFsbHlTZWxlY3RlZCQuc2V0KHNlbGVjdGVkKTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkJCgpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkJC5zZXQoZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZkYk5hdmlnYXRpb25MaXN0SXRlbSwgeyBkZXNjZW5kYW50czogZmFsc2UgfSlcbiAgICBsaXN0SXRlbXM6IFF1ZXJ5TGlzdDxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+O1xuXG4gICAgLyoqIExpbmsgcmVmZXJlbmNlLiAqL1xuICAgIEBDb250ZW50Q2hpbGQoRmRiTmF2aWdhdGlvbkl0ZW1MaW5rKVxuICAgIHNldCBsaW5rKHZhbHVlOiBOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uSXRlbUxpbms+KSB7XG4gICAgICAgIHRoaXMubGluayQuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMaW5rIHRlbXBsYXRlIHJlZmVyZW5jZS5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKE5hdmlnYXRpb25MaW5rUmVmRGlyZWN0aXZlKVxuICAgIGxpbmtSZWY6IE51bGxhYmxlPE5hdmlnYXRpb25MaW5rUmVmRGlyZWN0aXZlPjtcblxuICAgIC8qKiBSZW5kZXJlciB0ZW1wbGF0ZSByZWZlcmVuY2UuICovXG4gICAgQFZpZXdDaGlsZCgncmVuZGVyZXInKVxuICAgIHNldCByZW5kZXJlcihyZW5kZXJlcjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl9vblpvbmVTdGFibGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlciQuc2V0KHJlbmRlcmVyIHx8IG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogSUQgZm9yIHRoZSBuYXZpZ2F0aW9uIGxpc3QgaXRlbS4gRGVmYXVsdCBvbmUgaXMgYXNzaWduZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICAgIGlkID0gaW5wdXQoYGZkYi1uYXYtbGlzdC1pdGVtLSR7KytuYXZMaXN0SXRlbVVuaXF1ZUlkfWApO1xuXG4gICAgLyoqIFR5cGUgb2YgdGhlIGxpc3QgaXRlbS4gV2hldGhlciBpdHMgYSBzdGFuZGFyZCBpdGVtIG9yIGEgXCJzaG93IG1vcmVcIiBidXR0b24gY29udGFpbmVyLiAqL1xuICAgIHJlYWRvbmx5IHR5cGU6ICdpdGVtJyB8ICdzaG93TW9yZScgPSAnaXRlbSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF90b2dnbGVJY29uJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWRBdHRyJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3NsaW0tYXJyb3ctZG93bic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bCQoKSA/ICdzbGltLWFycm93LWxlZnQnIDogJ3NsaW0tYXJyb3ctcmlnaHQnO1xuICAgIH0pO1xuXG4gICAgLyoqIExpc3QgaXRlbSBwbGFjZW1lbnQgY29udGFpbmVyLiAqL1xuICAgIHJlYWRvbmx5IHBsYWNlbWVudENvbnRhaW5lciA9XG4gICAgICAgIGluamVjdChGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciwge1xuICAgICAgICAgICAgc2tpcFNlbGY6IHRydWUsXG4gICAgICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgICAgICB9KSB8fCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBsaXN0IGl0ZW0gaXMgdmlzaWJsZSBpbiB0aGUgbWFpbiBuYXZpZ2F0aW9uIGxpc3QgY29udGFpbmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlzVmlzaWJsZSQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRMaXN0SXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNHcm91cCQoKSA/ICF0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpIDogdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVkTGV2ZWwkKCkgPCAzO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50TGlzdEl0ZW0uaXNWaXNpYmxlJCgpICYmIHRoaXMucGFyZW50TGlzdEl0ZW0uZXhwYW5kZWQkKCk7XG4gICAgfSk7XG5cbiAgICAvKiogV2hldGhlciB0aGUgaXRlbSBpcyBkaXNhYmxlZC4gQ2FjaGVkIHRvIGF2b2lkIHJlcGVhdGVkIHNpZ25hbCBjYWxscy4gKi9cbiAgICByZWFkb25seSBfaXNEaXNhYmxlZENhY2hlZCQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRpc2FibGVkJCgpKTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgbmF2aWdhdGFibGUgdmlhIHRoZSBrZXlib2FyZC5cbiAgICAgKi9cbiAgICBnZXQgc2tpcE5hdmlnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNwYWNlciB8fCB0aGlzLnNlcGFyYXRvciB8fCB0aGlzLl9pc0Rpc2FibGVkQ2FjaGVkJCgpO1xuICAgIH1cblxuICAgIC8qKiBhcmlhLWV4cGFuZGVkIGF0dHJpYnV0ZSB2YWx1ZS4gKi9cbiAgICByZWFkb25seSBleHBhbmRlZEF0dHIkID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSA/IHRoaXMucG9wb3Zlck9wZW4kKCkgJiYgIXRoaXMuaXNPdmVyZmxvdyQoKSA6IHRoaXMuZXhwYW5kZWQkKClcbiAgICApO1xuXG4gICAgLyoqIFJvbGUgYXR0cmlidXRlIHZhbHVlIGJhc2VkIG9uIG5hdmlnYXRpb24gc3RhdGUuICovXG4gICAgcmVhZG9ubHkgcm9sZUF0dHIkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSkge1xuICAgICAgICAgICAgLy8gSW4gcG9wb3ZlciBjb250ZXh0ICh3aGVuIHBhcmVudCBsaXN0IGl0ZW0gZXhpc3RzKSwgY2hpbGQgaXRlbXMgc2hvdWxkIGJlIHRyZWVpdGVtXG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnRMaXN0SXRlbSAmJiB0aGlzLnBhcmVudExpc3RJdGVtLnBvcG92ZXJPcGVuJCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0cmVlaXRlbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJbiBvdmVyZmxvdyBtZW51IGNvbnRleHQgKE1vcmUgYnV0dG9uIHBvcG92ZXIpLCBpdGVtcyBzaG91bGQgYmUgbWVudWl0ZW1cbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21lbnVpdGVtJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAnbWVudWl0ZW1yYWRpbyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICd0cmVlaXRlbSc7XG4gICAgfSk7XG5cbiAgICAvKiogYXJpYS1jaGVja2VkIGF0dHJpYnV0ZSB2YWx1ZSBmb3IgbWVudWl0ZW1yYWRpbyByb2xlLiAqL1xuICAgIHJlYWRvbmx5IGFyaWFDaGVja2VkQXR0ciQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmIHRoaXMucm9sZUF0dHIkKCkgPT09ICdtZW51aXRlbXJhZGlvJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNBY3RpdmVBdHRyJCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG5cbiAgICAvKiogYXJpYS1zZWxlY3RlZCBhdHRyaWJ1dGUgdmFsdWUgLSBrZXB0IGluIGJvdGggZXhwYW5kZWQgYW5kIHNuYXBwZWQgbW9kZXMuICovXG4gICAgcmVhZG9ubHkgYXJpYVNlbGVjdGVkQXR0ciQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlzQWN0aXZlQXR0ciQoKSk7XG5cbiAgICAvKiogYXJpYS1sZXZlbCBhdHRyaWJ1dGUgdmFsdWUgLSBvbmx5IGZvciB0cmVlaXRlbSByb2xlLiAqL1xuICAgIHJlYWRvbmx5IGFyaWFMZXZlbEF0dHIkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxldmVsJCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG5cbiAgICAvKiogYXJpYS1vd25zIGF0dHJpYnV0ZSB2YWx1ZSBmb3IgaXRlbXMgd2l0aCBjaGlsZHJlbi4gKi9cbiAgICByZWFkb25seSBhcmlhT3duc0F0dHIkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuaWQoKX0tbGlzdGA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIC8qKiBJRCBhdHRyaWJ1dGUgZm9yIGNoaWxkIGxpc3RzLiAqL1xuICAgIHJlYWRvbmx5IGNoaWxkTGlzdElkQXR0ciQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7dGhpcy5pZCgpfS1saXN0YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgLyoqIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlIGZvciBzbmFwcGVkIG1vZGUgbWVudWl0ZW1yYWRpby4gKi9cbiAgICByZWFkb25seSBhcmlhTGFiZWxBdHRyJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkgJiYgdGhpcy5yb2xlQXR0ciQoKSA9PT0gJ21lbnVpdGVtcmFkaW8nKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5rID0gdGhpcy5saW5rJCgpO1xuICAgICAgICAgICAgaWYgKGxpbms/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rRWxlbWVudCA9IGxpbmsuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHRDb250ZW50ID0gbGlua0VsZW1lbnQudGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgICAgICAgICBpZiAodGV4dENvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRleHRDb250ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgLyoqIEV4cGFuZGVyIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlLiAqL1xuICAgIHJlYWRvbmx5IGV4cGFuZGVyQXJpYUxhYmVsQXR0ciQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9leHBhbmRlckFyaWFMYWJlbCQoKSk7XG5cbiAgICAvKiogYXJpYS1oYXNwb3B1cCBhdHRyaWJ1dGUgdmFsdWUgZm9yIHNuYXBwZWQgbW9kZSBpdGVtcyB3aXRoIGNoaWxkcmVuLiAqL1xuICAgIHJlYWRvbmx5IGFyaWFIYXNQb3B1cEF0dHIkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSAmJiB0aGlzLmhhc0NoaWxkcmVuJCgpKSB7XG4gICAgICAgICAgICAvLyBJbiBvdmVyZmxvdyBtZW51LCBpdGVtcyB3aXRoIHN1Ym1lbnVzIHNob3VsZCBoYXZlIGFyaWEtaGFzcG9wdXA9XCJtZW51XCJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ21lbnUnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVndWxhciBuYXZpZ2F0aW9uIGl0ZW1zIHNob3VsZCBoYXZlIGFyaWEtaGFzcG9wdXA9XCJkaWFsb2dcIlxuICAgICAgICAgICAgcmV0dXJuICdkaWFsb2cnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG5cbiAgICAvKiogYXJpYS1jdXJyZW50IGF0dHJpYnV0ZSB2YWx1ZSBmb3Igc25hcHBlZCBtb2RlIGl0ZW1zIHdpdGggY2hpbGRyZW4uICovXG4gICAgcmVhZG9ubHkgYXJpYUN1cnJlbnRBdHRyJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkgJiYgdGhpcy5oYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuICdwYWdlJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgLyoqIFdyYXBwZXIgcm9sZSBhdHRyaWJ1dGUgZm9yIHNuYXBwZWQgbW9kZSBwb3BvdmVycy4gKi9cbiAgICByZWFkb25seSB3cmFwcGVyUm9sZUF0dHIkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSAmJiB0aGlzLmhhc0NoaWxkcmVuJCgpICYmICF0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAndHJlZSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIC8qKiBXcmFwcGVyIGFyaWEtcm9sZWRlc2NyaXB0aW9uIGZvciBzbmFwcGVkIG1vZGUgcG9wb3ZlcnMuICovXG4gICAgcmVhZG9ubHkgd3JhcHBlckFyaWFSb2xlRGVzY3JpcHRpb25BdHRyJCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkgJiYgdGhpcy5oYXNDaGlsZHJlbiQoKSAmJiAhdGhpcy5pc092ZXJmbG93JCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc25hcHBlZFBvcG92ZXJSb2xlRGVzY3JpcHRpb24kKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcblxuICAgIC8qKiBUaXRsZSBpdGVtIHJvbGUgZm9yIHNuYXBwZWQgbW9kZSAtIHNob3VsZCBiZSB0cmVlaXRlbSBpbiBwb3BvdmVycy4gKi9cbiAgICByZWFkb25seSB0aXRsZUl0ZW1Sb2xlQXR0ciQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmICF0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHJldHVybiAndHJlZWl0ZW0nO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnJvbGVBdHRyJCgpO1xuICAgIH0pO1xuXG4gICAgLyoqIFRpdGxlIGl0ZW0gYXJpYS1zZWxlY3RlZCBmb3Igc25hcHBlZCBtb2RlIC0gc2hvdWxkIG5vdCBiZSBzZWxlY3RlZCBpZiBjaGlsZHJlbiBhcmUgc2VsZWN0ZWQuICovXG4gICAgcmVhZG9ubHkgdGl0bGVJdGVtQXJpYVNlbGVjdGVkQXR0ciQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmICF0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIC8vIEluIHBvcG92ZXIsIGlmIGFueSBjaGlsZCBpcyBzZWxlY3RlZCwgdGhlIHBhcmVudCBzaG91bGQgbm90IGhhdmUgYXJpYS1zZWxlY3RlZFxuICAgICAgICAgICAgY29uc3QgaGFzU2VsZWN0ZWRDaGlsZCA9IHRoaXMubGlzdEl0ZW1zJCgpLnNvbWUoKGl0ZW0pID0+IGl0ZW0/LmlzQWN0aXZlQXR0ciQoKSk7XG4gICAgICAgICAgICBpZiAoaGFzU2VsZWN0ZWRDaGlsZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIG5vcm1hbCBzZWxlY3RlZCBzdGF0ZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXJpYVNlbGVjdGVkQXR0ciQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcmlhU2VsZWN0ZWRBdHRyJCgpO1xuICAgIH0pO1xuICAgIHJlYWRvbmx5IHRpdGxlSXRlbUZvY3VzYWJsZSQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpICYmICF0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBwYXJlbnQgaXRlbSBoYXMgdGhlIHdpdGgtZXhwYW5kZXIgY2xhc3MgKHR3by1jbGljayBhcmVhKVxuICAgICAgICAgICAgY29uc3QgcGFyZW50SXRlbUVsZW1lbnQgPSB0aGlzLm1hcmtlcj8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChwYXJlbnRJdGVtRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnRJdGVtRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ZkLW5hdmlnYXRpb25fX2l0ZW0tLXdpdGgtZXhwYW5kZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gRGVmYXVsdCB0byBub3QgZm9jdXNhYmxlIGZvciBvbmUtY2xpY2sgYXJlYXNcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcblxuICAgIC8qKiBDU1MgQ2xhc3Mgc2lnbmFsLiAqL1xuICAgIHJlYWRvbmx5IGNsYXNzJCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIFtcbiAgICAgICAgICAgIExJU1RfSVRFTV9DTEFTUyxcbiAgICAgICAgICAgIHRoaXMuX2NsYXNzJCgpLFxuICAgICAgICAgICAgdGhpcy5fc2VwYXJhdG9yJCgpID8gYCR7TElTVF9JVEVNX0NMQVNTfS0tc2VwYXJhdG9yYCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5fc3BhY2VyJCgpID8gYCR7TElTVF9JVEVNX0NMQVNTfS0tc3BhY2VyYCA6ICcnLFxuICAgICAgICAgICAgdGhpcy5faG9tZSQoKSA/IGAke0xJU1RfSVRFTV9DTEFTU30tLWhvbWVgIDogJydcbiAgICAgICAgXVxuICAgICAgICAgICAgLmZpbHRlcigoaykgPT4gISFrKVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICk7XG5cbiAgICAvKiogQ29tYmluZWQgc2VsZWN0ZWQgc3RhdGUgLSBjb25zaWRlcnMgYm90aCBtYW51YWwgc2VsZWN0aW9uIGFuZCBzZXJ2aWNlIHNlbGVjdGlvbi4gKi9cbiAgICByZWFkb25seSBzZWxlY3RlZCQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIC8vIEluIHJvdXRlciBtb2RlLCBvbmx5IGNvbnNpZGVyIG1hbnVhbCBzZWxlY3Rpb25cbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbi5zZWxlY3Rpb25Nb2RlID09PSAncm91dGVyJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21hbnVhbGx5U2VsZWN0ZWQkKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbiBjbGljayBtb2RlLCBjaGVjayBib3RoIG1hbnVhbCBzZWxlY3Rpb24gYW5kIHNlcnZpY2Ugc2VsZWN0aW9uXG4gICAgICAgIC8vIEJ1dCBtYW51YWwgc2VsZWN0aW9uIHNob3VsZCBvbmx5IGJlIGNvbnNpZGVyZWQgaWYgbm8gaXRlbSBpcyBzZWxlY3RlZCB2aWEgc2VydmljZVxuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLnNlbGVjdGlvbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlcnZpY2VTZWxlY3RlZCA9IHRoaXMubmF2aWdhdGlvbi5zZXJ2aWNlLnNlbGVjdGVkSXRlbSQoKSA9PT0gdGhpcztcbiAgICAgICAgICAgIGNvbnN0IG1hbnVhbGx5U2VsZWN0ZWQgPSB0aGlzLl9tYW51YWxseVNlbGVjdGVkJCgpICYmIHRoaXMubmF2aWdhdGlvbi5zZXJ2aWNlLnNlbGVjdGVkSXRlbSQoKSA9PT0gbnVsbDtcblxuICAgICAgICAgICAgcmV0dXJuIHNlcnZpY2VTZWxlY3RlZCB8fCBtYW51YWxseVNlbGVjdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBxdWlja0NyZWF0ZSQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFBvcG92ZXIgcG9zaXRpb24uIENoYW5nZXMgYmFzZWQgb24gcnRsIHZhbHVlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9wb3BvdmVyUGxhY2VtZW50JCA9IGNvbXB1dGVkPFBsYWNlbWVudD4oKCkgPT4gKHRoaXMuX3J0bCQoKSA/ICdsZWZ0LXN0YXJ0JyA6ICdyaWdodC1zdGFydCcpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX21vcmVCdXR0b25SZWYkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fcGFyZW50TmF2aWdhdGlvbkxpc3Q/Lm1vcmVCdXR0b25SZWYgfHwgbnVsbCk7XG5cbiAgICAvKiogT3B0aW9uYWwgcGFyZW50IGxpc3QgY29tcG9uZW50LiAqL1xuICAgIHJlYWRvbmx5IHBhcmVudExpc3RJdGVtQ29tcG9uZW50ID0gaW5qZWN0KEZkYk5hdmlnYXRpb25MaXN0SXRlbUNtcCwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICAgICAgc2tpcFNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IHBhcmVudExpc3RJdGVtKCk6IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB8IG51bGwge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5fcGFyZW50TmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlPy5wYXJlbnROYXZMaXN0SXRlbURpcmVjdGl2ZT8uX2l0ZW0gfHwgdGhpcy5wYXJlbnRMaXN0SXRlbUNvbXBvbmVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG9tZSQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIE1hbnVhbCBzZWxlY3Rpb24gc3RhdGUgc2lnbmFsIChmb3Igcm91dGVyLWJhc2VkIHNlbGVjdGlvbiBtb2RlKS4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tYW51YWxseVNlbGVjdGVkJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NsYXNzJCA9IHNpZ25hbDxOdWxsYWJsZTxzdHJpbmc+PihudWxsKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2VwYXJhdG9yJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NwYWNlciQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saW5rczogRmRiTmF2aWdhdGlvbkl0ZW1MaW5rW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2hpbGRMaXN0czogTmF2aWdhdGlvbkxpc3RDb21wb25lbnRbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBOdWxsYWJsZTxGb2N1c0tleU1hbmFnZXI8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGFuZyQgPSBpbmplY3QoRkRfTEFOR1VBR0UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmFuc2xhdGlvblJlc29sdmVyID0gaW5qZWN0KFRyYW5zbGF0aW9uUmVzb2x2ZXIpO1xuXG4gICAgLyoqIFRyYW5zbGF0aW9uIHNpZ25hbCBmb3Igc25hcHBlZCBwb3BvdmVyIHJvbGUgZGVzY3JpcHRpb24uICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc25hcHBlZFBvcG92ZXJSb2xlRGVzY3JpcHRpb24kID0gdG9TaWduYWwoXG4gICAgICAgIHRoaXMuX2xhbmckLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGxhbmc6IEZkTGFuZ3VhZ2UpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRpb25SZXNvbHZlci5yZXNvbHZlKGxhbmcsICdidHBOYXZpZ2F0aW9uLnNuYXBwZWRQb3BvdmVyUm9sZURlc2NyaXB0aW9uJylcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgeyBpbml0aWFsVmFsdWU6ICdOYXZpZ2F0aW9uIExpc3QgVHJlZScgfVxuICAgICk7XG5cbiAgICAvKiogVHJhbnNsYXRpb24gc2lnbmFsIGZvciBleHBhbmRlciBhcmlhLWxhYmVsLiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V4cGFuZGVyQXJpYUxhYmVsJCA9IHRvU2lnbmFsKFxuICAgICAgICB0aGlzLl9sYW5nJC5waXBlKFxuICAgICAgICAgICAgbWFwKChsYW5nOiBGZExhbmd1YWdlKSA9PiB0aGlzLl90cmFuc2xhdGlvblJlc29sdmVyLnJlc29sdmUobGFuZywgJ2J0cE5hdmlnYXRpb24uZXhwYW5kZXJBcmlhTGFiZWwnKSlcbiAgICAgICAgKSxcbiAgICAgICAgeyBpbml0aWFsVmFsdWU6ICdleHBhbmQvY29sbGFwc2Ugc3ViLWl0ZW1zJyB9XG4gICAgKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3J0bFNlcnZpY2UgPSBpbmplY3QoUnRsU2VydmljZSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGwkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gISF0aGlzLl9ydGxTZXJ2aWNlPy5ydGxTaWduYWwoKSk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRGlyZWN0aXZlIHRoYXQgdXNlZCBkdXJpbmcgZGF0YS1kcml2ZW4gcmVuZGVyaW5nLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZSA9IGluamVjdChOYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE5hdmlnYXRpb25TZXJ2aWNlID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlLCB7XG4gICAgICAgIHNraXBTZWxmOiB0cnVlLFxuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnROYXZpZ2F0aW9uTGlzdCA9IGluamVjdChOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCwge1xuICAgICAgICBza2lwU2VsZjogdHJ1ZSxcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3RJdGVtcyA9IHRoaXMubGlzdEl0ZW1zJCgpLmZpbHRlcihCb29sZWFuKSBhcyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXTtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcihsaXN0SXRlbXMpXG4gICAgICAgICAgICAgICAgICAgIC53aXRoVmVydGljYWxPcmllbnRhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgIC5za2lwUHJlZGljYXRlKChpdGVtKSA9PiBpdGVtLnNraXBOYXZpZ2F0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHRyYWNrIGNoaWxkIGRpcmVjdGl2ZXMgY2hhbmdlIGFuZCBzZXQgbGlzdCBpdGVtcyBiYXNlZCBvbiB0aGF0LlxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9wYXJlbnROYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmU/LmNoaWxkRGlyZWN0aXZlcygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuX3BhcmVudE5hdmlnYXRpb25MaXN0SXRlbURpcmVjdGl2ZS5jaGlsZERpcmVjdGl2ZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcHBlZEl0ZW1zID0gQXJyYXkuZnJvbShjaGlsZHJlbikubWFwKChjaGlsZCkgPT4gY2hpbGQuX2l0ZW0pO1xuXG4gICAgICAgICAgICB0aGlzLmxpc3RJdGVtcyQuc2V0KG1hcHBlZEl0ZW1zKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fcGFyZW50TmF2aWdhdGlvbkxpc3RJdGVtRGlyZWN0aXZlPy5yZWdpc3Rlckl0ZW0odGhpcyk7XG5cbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLmNsb3NlQWxsUG9wdXBzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KGZhbHNlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTGlzdGVuIGZvciBzZWxlY3Rpb24gY2hhbmdlcyB0byBpbXBsZW1lbnQgc2luZ2xlLXNlbGVjdGlvbiBiZWhhdmlvclxuICAgICAgICB0aGlzLm5hdmlnYXRpb24uc2VydmljZS5zZWxlY3Rpb25DaGFuZ2VkJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSWYgYW5vdGhlciBpdGVtIHdhcyBzZWxlY3RlZCBhbmQgd2UncmUgaW4gY2xpY2sgbW9kZSwgY2xlYXIgb3VyIG1hbnVhbCBzZWxlY3Rpb25cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uLnNlbGVjdGlvbk1vZGUgPT09ICdjbGljaycgJiYgc2VsZWN0ZWRJdGVtICE9PSB0aGlzICYmIHRoaXMuX21hbnVhbGx5U2VsZWN0ZWQkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbWFudWFsbHlTZWxlY3RlZCQuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZm9jdXNCZWZvcmVMaXN0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNQb3BvdmVyTGluaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFdoZW4gaXRlbSBpcyBmb2N1c2VkLCB3ZSBub3RpZnkgbGlzdCBjb250YWluZXIgYWJvdXQgaXQgdG8gdXBkYXRlIGFjdGl2ZSBpbmRleCBpbiBGb2N1c0tleU1hbmFnZXIuXG4gICAgICovXG4gICAgX2ZvY3VzSW5IYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50TGlzdEl0ZW0/LnBvcG92ZXJPcGVuJCgpICYmICF0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbi5zZXRBY3RpdmVJdGVtKHRoaXMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3BhcmVudE5hdmlnYXRpb25TZXJ2aWNlPy5jdXJyZW50SXRlbSQubmV4dCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saXN0SXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLl9wYXJlbnROYXZpZ2F0aW9uTGlzdEl0ZW1EaXJlY3RpdmUpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zJC5zZXQodGhpcy5saXN0SXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJMaW5rKGxpbms6IEZkYk5hdmlnYXRpb25JdGVtTGluayk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fbGlua3MuaW5kZXhPZihsaW5rKSA9PT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpbmtzLnB1c2gobGluayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVucmVnaXN0ZXJMaW5rKGxpbms6IEZkYk5hdmlnYXRpb25JdGVtTGluayk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saW5rcy5zcGxpY2UodGhpcy5fbGlua3MuaW5kZXhPZihsaW5rKSwgMSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3RlckNoaWxkTGlzdChsaXN0OiBOYXZpZ2F0aW9uTGlzdENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRMaXN0cy5pbmNsdWRlcyhsaXN0KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoaWxkTGlzdHMucHVzaChsaXN0KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVucmVnaXN0ZXJDaGlsZExpc3QobGlzdDogTmF2aWdhdGlvbkxpc3RDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jaGlsZExpc3RzLmluY2x1ZGVzKGxpc3QpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2hpbGRMaXN0cy5zcGxpY2UodGhpcy5fY2hpbGRMaXN0cy5pbmRleE9mKGxpc3QpLCAxKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGhhbmRsZUhvcml6b250YWxOYXZpZ2F0aW9uKGlzRXhwYW5kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGNvbnNvbGUubG9nKGlzRXhwYW5kKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayBtZXRob2Qgd2hlbiBBcnJvdyBkb3duIGlzIHByZXNzZWQgb24gdGhlIGxpbmsgaW4gcG9wb3Zlci5cbiAgICAgKi9cbiAgICBwb3BvdmVyTGlua0Fycm93RG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbSgwKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9pbm5lckxpc3RLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBVUF9BUlJPVykgJiYgdGhpcy5fa2V5TWFuYWdlcj8uYWN0aXZlSXRlbUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c1BvcG92ZXJMaW5rKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtVUF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0xFRlRfQVJST1csIFJJR0hUX0FSUk9XXSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzR29CYWNrID0gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIHRoaXMuX3J0bCQoKSA/IExFRlRfQVJST1cgOiBSSUdIVF9BUlJPVyk7XG5cbiAgICAgICAgaWYgKCFpc0dvQmFjaykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc25hcHBlZEl0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqIFRvZ2dsZXMgZXhwYW5kZWQgc3RhdGUgb2YgdGhlIGl0ZW0uICovXG4gICAgdG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaGFzQ2hpbGRyZW4kKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4cGFuZGVkJC51cGRhdGUoKGV4cGFuZGVkKSA9PiAhZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIGl0ZW0gY2xpY2sgZm9yIGJvdGggc2VsZWN0aW9uIGFuZCBleHBhbnNpb24gYmFzZWQgb24gaXRlbSB0eXBlIGFuZCBuYXZpZ2F0aW9uIG1vZGUuICovXG4gICAgaGFuZGxlSXRlbUNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGV0IHRoZSBuYXZpZ2F0aW9uIGxpbmsgaGFuZGxlIGV4cGFuc2lvbiBmb3IgaXRlbXMgd2l0aCBsaW5rc1xuICAgICAgICAvLyBPbmx5IGhhbmRsZSBleHBhbnNpb24gaGVyZSBmb3IgaXRlbXMgd2l0aG91dCBhbnkgbGlua3NcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4kKCkgJiYgIXRoaXMubGluayQoKSkge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGFuZGxlIHNlbGVjdGlvbiBpbiBjbGljayBtb2RlIGZvciBzZWxlY3RhYmxlIGl0ZW1zXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb24uc2VsZWN0aW9uTW9kZSA9PT0gJ2NsaWNrJyAmJiB0aGlzLmNhbkl0ZW1CZVNlbGVjdGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbi5zZXJ2aWNlLnNldFNlbGVjdGVkSXRlbSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIGtleWRvd24gZXZlbnRzIGZvciBuYXZpZ2F0aW9uIGl0ZW0gYWN0aW9ucy4gKi9cbiAgICBoYW5kbGVJdGVtS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBGb3IgcXVpY2sgY3JlYXRlIGl0ZW1zLCBleGVjdXRlIHRoZSBjbGljayBhY3Rpb24gb24gRW50ZXIvU3BhY2VcbiAgICAgICAgaWYgKHRoaXMucXVpY2tDcmVhdGUkKCkgJiYgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICAvLyBUcmlnZ2VyIGNsaWNrIG9uIHRoZSBsaW5rIGVsZW1lbnQgaWYgaXQgZXhpc3RzXG4gICAgICAgICAgICBjb25zdCBsaW5rRWxlbWVudCA9IHRoaXMubGluayQoKT8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChsaW5rRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2FsbGJhY2sgbWV0aG9kIHdoZW4gdXNlciB1c2VkIGtleWJvYXJkIGFycm93cyB0byBleHBhbmQvY29sbGFwc2UgbGlzdCBpdGVtLiAqL1xuICAgIGtleWJvYXJkRXhwYW5kZWQoc2hvdWxkRXhwYW5kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93SXRlbUtleWJvYXJkRXhwYW5kZWRIYW5kbGVyKHNob3VsZEV4cGFuZCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSkge1xuICAgICAgICAgICAgdGhpcy5fc25hcHBlZEl0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihzaG91bGRFeHBhbmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUl0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihzaG91bGRFeHBhbmQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXMgbWV0aG9kIGltcGxlbWVudGF0aW9uLlxuICAgICAqIFVzZWQgYnkgbWFpbiBuYXZpZ2F0aW9uIGNvbXBvbmVudCBGb2N1c0tleU1hbmFnZXIuXG4gICAgICogQHBhcmFtIG9yaWdpblxuICAgICAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICAvLyBJZiBwb3BvdmVyIGlzIG9wZW4sIGZvY3VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBzaGlmdGVkIHRvIGNsb25lZCBsaW5rLlxuICAgICAgICBpZiAodGhpcy5wb3BvdmVyT3BlbiQoKSAmJiAhdGhpcy5pc092ZXJmbG93JCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb2N1c0xpbmsoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1c2VzIGlubmVyIGxpbmsgZWxlbWVudC5cbiAgICAgKiBPcHRpb25hbGx5IGNsb3NlcyB0aGUgcG9wb3Zlci5cbiAgICAgKi9cbiAgICBmb2N1c0xpbmsoY2xvc2VQb3BvdmVyID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5saW5rJCgpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblxuICAgICAgICBpZiAoY2xvc2VQb3BvdmVyKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25Qb3BvdmVyT3Blbihpc09wZW46IGJvb2xlYW4sIHBvcG92ZXI6IFBvcG92ZXJDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KGlzT3Blbik7XG4gICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX29uWm9uZVN0YWJsZSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gRm9yY2UgdXBkYXRlIG9mIHRhYmluZGV4IGZvciBhbGwgY2hpbGQgbGlua3MgYmVmb3JlIGZvY3VzaW5nXG4gICAgICAgICAgICAgICAgdGhpcy5fZW5zdXJlQ2hpbGRUYWJpbmRleFVwZGF0ZWQoKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVHJ5IHRvIHVzZSB0aGUgRm9jdXNLZXlNYW5hZ2VyIGZpcnN0XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBGYWxsYmFjazogVXNlIGNvbXBvbmVudCBkYXRhIHN0cnVjdHVyZXMgdG8gZmluZCB0aGUgZmlyc3QgZm9jdXNhYmxlIGxpbmtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVMaW5rID0gdGhpcy5fbGlua3MuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChsaW5rKSA9PiBsaW5rLmluUG9wb3ZlciAmJiBsaW5rLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RGb2N1c2FibGVMaW5rKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEZvY3VzYWJsZUxpbmsuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBBbHRlcm5hdGl2ZTogVXNlIGxpc3RJdGVtcyB0byBmaW5kIGZpcnN0IGl0ZW0ncyBsaW5rXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0TGlzdEl0ZW0gPSB0aGlzLmxpc3RJdGVtcyQoKS5maW5kKChpdGVtKSA9PiBpdGVtICYmICFpdGVtLnNraXBOYXZpZ2F0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0TGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBmaXJzdExpc3RJdGVtLmxpbmskKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobGluaz8uZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTGFzdCByZXNvcnQ6IHVzZSB0aGUgcG9wb3ZlcidzIGJ1aWx0LWluIGZvY3VzIG1hbmFnZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXIucG9wb3ZlckJvZHkuX2ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmb2N1c2luZyBpbiBwb3BvdmVyOicsIGVycm9yKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9wb3ZlckJvZHlFbGVtZW50ID0gcG9wb3Zlci5wb3BvdmVyQm9keT8uX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocG9wb3ZlckJvZHlFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVFbGVtZW50ID0gcG9wb3ZlckJvZHlFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhLCBidXR0b24sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEZvY3VzYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFdoZW4gcG9wb3ZlciBjbG9zZXMsIHJldHVybiBmb2N1cyB0byB0aGUgcGFyZW50IGxpbmsgKGZvciBzbmFwcGVkIHN0YXRlKVxuICAgICAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vblpvbmVTdGFibGUoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTGluaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBpZiB0aGlzIGl0ZW0gY2FuIGJlIHNlbGVjdGVkIGJhc2VkIG9uIGl0cyB0eXBlIGFuZCBzdHJ1Y3R1cmUuXG4gICAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgaXRlbSBjYW4gYmUgc2VsZWN0ZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgICAqL1xuICAgIGNhbkl0ZW1CZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBHcm91cCBpdGVtcyAoaGVhZGVycykgY2Fubm90IGJlIHNlbGVjdGVkXG4gICAgICAgIGlmICh0aGlzLmlzR3JvdXAkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFF1aWNrIGNyZWF0ZSBpdGVtcyBjYW5ub3QgYmUgc2VsZWN0ZWQgKHRoZXkgZXhlY3V0ZSBhY3Rpb25zIGluc3RlYWQpXG4gICAgICAgIGlmICh0aGlzLnF1aWNrQ3JlYXRlJCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJdGVtcyB3aXRoIGNoaWxkcmVuIHRoYXQgZG9uJ3QgaGF2ZSBhIHJvdXRlciBsaW5rIGNhbm5vdCBiZSBzZWxlY3RlZFxuICAgICAgICAvLyAodGhleSBzaG91bGQgb25seSBleHBhbmQvY29sbGFwc2UpXG4gICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuJCgpICYmICF0aGlzLmxpbmskKCk/LnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlcGFyYXRvciBhbmQgc3BhY2VyIGl0ZW1zIGNhbm5vdCBiZSBzZWxlY3RlZFxuICAgICAgICBpZiAodGhpcy5zZXBhcmF0b3IgfHwgdGhpcy5zcGFjZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFsbCBvdGhlciBpdGVtcyAobGVhZiBpdGVtcyBhbmQgaXRlbXMgd2l0aCBib3RoIGxpbmtzIGFuZCBjaGlsZHJlbikgY2FuIGJlIHNlbGVjdGVkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ZvY3VzUG9wb3ZlckxpbmsoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpbmtzLmZpbmQoKGxpbmspID0+IGxpbmsuaW5Qb3BvdmVyKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9lbnN1cmVDaGlsZFRhYmluZGV4VXBkYXRlZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gV2hlbiBwb3BvdmVyIGlzIG9wZW4sIGFsbCBsaW5rcyBzaG91bGQgYmUgZm9jdXNhYmxlXG4gICAgICAgIHRoaXMuX2xpbmtzLmZvckVhY2goKGxpbmspID0+IHtcbiAgICAgICAgICAgIGlmIChsaW5rLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAvLyBTaW1wbGUgbG9naWM6IGlmIGFueSBwb3BvdmVyIGlzIG9wZW4gaW4gdGhlIGhpZXJhcmNoeSwgYWxsIGxpbmtzIGFyZSBmb2N1c2FibGVcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJJbmRleCA9IHRoaXMucG9wb3Zlck9wZW4kKCkgPyAwIDogLTE7XG4gICAgICAgICAgICAgICAgbGluay5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsIHRhYkluZGV4LnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVJdGVtS2V5Ym9hcmRFeHBhbmRlZEhhbmRsZXIoc2hvdWxkRXhwYW5kOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5oYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICAgICAgaWYgKCFzaG91bGRFeHBhbmQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudExpc3RJdGVtPy5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFzaG91bGRFeHBhbmQpIHtcbiAgICAgICAgICAgIC8vIElmIGl0ZW0gYWxyZWFkeSBjb2xsYXBzZWQsIHNoaWZ0IGZvY3VzIHRvIHBhcmVudCBsaW5rXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudExpc3RJdGVtPy5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQkLnNldChmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5leHBhbmRlZCQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zLmZpcnN0Py5mb2N1cygpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQkLnNldCh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc25hcHBlZEl0ZW1LZXlib2FyZEV4cGFuZGVkSGFuZGxlcihzaG91bGRFeHBhbmQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkcmVuJCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3VsZEV4cGFuZCAmJiAhdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2hvdWxkRXhwYW5kICYmIHRoaXMucG9wb3Zlck9wZW4kKCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmxpbmskKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB1c2VkIHRvIGhhbmRsZSBrZXlib2FyZCBuYXZpZ2F0aW9uIGZvciBsaXN0IGl0ZW0gdGhhdCBpcyBpbnNpZGUgb3ZlcmZsb3cgY29udGFpbmVyLlxuICAgICAqL1xuICAgIHByaXZhdGUgX292ZXJmbG93SXRlbUtleWJvYXJkRXhwYW5kZWRIYW5kbGVyKHNob3VsZEV4cGFuZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoc2hvdWxkRXhwYW5kICYmIHRoaXMuX2NoaWxkTGlzdHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RMaXN0ID0gdGhpcy5fY2hpbGRMaXN0c1swXTtcbiAgICAgICAgICAgIGZpcnN0TGlzdC5zZXRBY3RpdmVJdGVtSW5kZXgoMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNob3VsZEV4cGFuZCAmJiAhdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghc2hvdWxkRXhwYW5kICYmIHRoaXMucG9wb3Zlck9wZW4kKCkpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmxpbms/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9vblpvbmVTdGFibGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl96b25lLm9uU3RhYmxlLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodGhpcy5fem9uZS5pc1N0YWJsZSksXG4gICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjwhLS0gR2VuZXJhbCByZW5kZXJlci4gLS0+XG48bmctdGVtcGxhdGUgI3JlbmRlcmVyPlxuICAgIEBpZiAoIXNlcGFyYXRvcikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2l0ZW1cIlxuICAgICAgICAgICAgW2NsYXNzLmZkLW5hdmlnYXRpb25fX2l0ZW0tLWdyb3VwXT1cImlzR3JvdXAkKClcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLW5hdmlnYXRpb25fX2l0ZW0tLWNyZWF0ZV09XCJxdWlja0NyZWF0ZSQoKVwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtbmF2aWdhdGlvbl9faXRlbS0tY2hpbGRdPVwibm9ybWFsaXplZExldmVsJCgpID4gMlwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtbmF2aWdhdGlvbl9faXRlbS0tb3ZlcmZsb3ddPVwiaXNPdmVyZmxvdyQoKVwiXG4gICAgICAgICAgICBbY2xhc3MuZmQtbmF2aWdhdGlvbl9faXRlbS0td2l0aC1leHBhbmRlcl09XCIhIWxpbmskKCk/LnJvdXRlckxpbmsgJiYgaGFzQ2hpbGRyZW4kKClcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLW5hdmlnYXRpb25fX2l0ZW0tLWRpc2FibGVkXT1cImRpc2FibGVkJCgpXCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImlkKClcIlxuICAgICAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlQXR0ciQoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImFyaWFMZXZlbEF0dHIkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxBdHRyJCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiYXJpYVNlbGVjdGVkQXR0ciQoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiYXJpYUNoZWNrZWRBdHRyJCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiZXhwYW5kZWRBdHRyJCgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImFyaWFPd25zQXR0ciQoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cEF0dHIkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50QXR0ciQoKVwiXG4gICAgICAgICAgICBbYXR0ci5ub3JtYWxpemVkLWxldmVsXT1cIm5vcm1hbGl6ZWRMZXZlbCQoKVwiXG4gICAgICAgICAgICAoZm9jdXNpbik9XCJfZm9jdXNJbkhhbmRsZXIoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlSXRlbUNsaWNrKClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlSXRlbUtleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICBmZGJOYXZpZ2F0aW9uTGlzdEl0ZW1NYXJrZXJcbiAgICAgICAgICAgICNpdGVtQ29udGFpbmVyXG4gICAgICAgID5cbiAgICAgICAgICAgIEBpZiAoIW5hdmlnYXRpb24uaXNTbmFwcGVkJCgpIHx8ICFoYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsaW5rUmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic25hcHBlZE5hdmlnYXRpb25JdGVtUmVuZGVyZXJcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW1Db250YWluZXIgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGlzT3ZlcmZsb3ckKCkgJiYgaGFzQ2hpbGRyZW4kKCkpIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvdmVyZmxvd0l0ZW1MaXN0UmVuZGVyZXJcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoIW5hdmlnYXRpb24uaXNTbmFwcGVkJCgpKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdFJlbmRlcmVyXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48IS0tIFNuYXBwZWQgbmF2aWdhdGlvbiBsaXN0IGl0ZW0gcmVuZGVyZXIuIEltcGxpY2l0IGNvbnRleHQgcG9pbnRzIHRvIHRoZSBwb3BvdmVyIHRyaWdnZXIgZWxlbWVudC4gLS0+XG48bmctdGVtcGxhdGUgI3NuYXBwZWROYXZpZ2F0aW9uSXRlbVJlbmRlcmVyIGxldC1pdGVtQ29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaW5rUmVuZGVyZXJcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGZhbHNlIH1cIj48L25nLXRlbXBsYXRlPlxuICAgIEBpZiAoIWlzT3ZlcmZsb3ckKCkpIHtcbiAgICAgICAgPGZkLXBvcG92ZXJcbiAgICAgICAgICAgICNwb3BvdmVyXG4gICAgICAgICAgICBbbm9BcnJvd109XCJ0cnVlXCJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxCb2R5Q2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19saXN0LWNvbnRhaW5lclwiXG4gICAgICAgICAgICBbaXNPcGVuXT1cInBvcG92ZXJPcGVuJCgpXCJcbiAgICAgICAgICAgIChpc09wZW5DaGFuZ2UpPVwiX29uUG9wb3Zlck9wZW4oJGV2ZW50LCBwb3BvdmVyKVwiXG4gICAgICAgICAgICBbdHJpZ2dlcl09XCJpdGVtQ29udGFpbmVyXCJcbiAgICAgICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICAgICAgW3Jlc3RvcmVGb2N1c09uQ2xvc2VdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZW1lbnRdPVwiX3BvcG92ZXJQbGFjZW1lbnQkKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5IFtuZ0NsYXNzXT1cIm5hdmlnYXRpb24uY2xhc3NMaXN0JCgpXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndyYXBwZXJSZW5kZXJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgICAgICA8L2ZkLXBvcG92ZXI+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbjwhLS0gR2VuZXJpYyBsaW5rIHJlbmRlcmVyLiAtLT5cbjxuZy10ZW1wbGF0ZSAjbGlua1JlbmRlcmVyIGxldC1zaG93VG9nZ2xlQnV0dG9uPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsaW5rUmVmPy50ZW1wbGF0ZVJlZiB8fCBudWxsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICBAaWYgKCEhbGluayQoKT8ucm91dGVyTGluayAmJiBoYXNDaGlsZHJlbiQoKSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19oYXMtY2hpbGRyZW4taW5kaWNhdG9yXCJcbiAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJleHBhbmRlckFyaWFMYWJlbEF0dHIkKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIlxuICAgICAgICA+PC9zcGFuPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48IS0tIEdlbmVyaWMgbGlzdCByZW5kZXJlci4gVXNlZCB3aGVuIG5hdmlnYXRpb24gaXMgbm90IHNuYXBwZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNsaXN0UmVuZGVyZXI+XG4gICAgQGlmIChpc0dyb3VwJCgpICYmIG5vcm1hbGl6ZWRMZXZlbCQoKSA9PT0gMSkge1xuICAgICAgICA8dWxcbiAgICAgICAgICAgIGZkYi1uYXZpZ2F0aW9uLWxpc3RcbiAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwibGlzdEl0ZW1zJCgpXCJcbiAgICAgICAgICAgIHBhcmVudEl0ZW1zXG4gICAgICAgICAgICBbbW9yZUJ1dHRvblJlZl09XCJfbW9yZUJ1dHRvblJlZiQoKVwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJpZCgpICsgJy1saXN0J1wiXG4gICAgICAgID48L3VsPlxuICAgIH0gQGVsc2UgaWYgKGhhc0NoaWxkcmVuJCgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19saXN0LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid3JhcHBlclJlbmRlcmVyXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGZhbHNlIH1cIlxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG48IS0tIFRlbXBsYXRlIHVzZWQgZm9yIHJlbmRlcmluZyBzdWJsaXN0IG9mIGl0ZW1zIGZvciB0aGUgbGlzdCBpdGVtIHRoYXQgaXMgY3VycmVudGx5IGluIG92ZXJmbG93IG1lbnUuIC0tPlxuPG5nLXRlbXBsYXRlICNvdmVyZmxvd0l0ZW1MaXN0UmVuZGVyZXI+XG4gICAgPGRpdiBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2xpc3QtY29udGFpbmVyIGZkLW5hdmlnYXRpb25fX2xpc3QtY29udGFpbmVyLS1zdWJtZW51IGZkLW1lbnVfX3N1Ymxpc3RcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIndyYXBwZXJSZW5kZXJlclwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdHJ1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48IS0tIEdlbmVyaWMgbGlzdCByZW5kZXJlci4gSW1wbGljaXQgY29udGV4dCBkZWZpbmVzIHdoZXRoZXIgdGhlIGlubmVyIGxpc3Qgc2hvdWxkIGhhbmRsZSBrZXlib2FyZCBuYXZpZ2F0aW9uIGJ5IGl0cyBvd24uIC0tPlxuPG5nLXRlbXBsYXRlICN3cmFwcGVyUmVuZGVyZXIgbGV0LWtleWJvYXJkTmF2aWdhdGlvbj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fbGlzdC13cmFwcGVyXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJ3cmFwcGVyUm9sZUF0dHIkKClcIlxuICAgICAgICBbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl09XCJ3cmFwcGVyQXJpYVJvbGVEZXNjcmlwdGlvbkF0dHIkKClcIlxuICAgID5cbiAgICAgICAgQGlmIChuYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSAmJiAhaXNPdmVyZmxvdyQoKSkge1xuICAgICAgICAgICAgPCEtLSBJZiBvcGVuZXIgbGluayBpdHNlbGYgaXMgYWN0aXZlLCBwcm9qZWN0IGFyaWEtY2hlY2tlZCBhdHRyaWJ1dGUgdG8gbGluayByZXBlYXRlciB0b28gZm9yIHNuYXBwZWQgbW9kZS4gLS0+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19pdGVtIGZkLW5hdmlnYXRpb25fX2l0ZW0tLXRpdGxlIGZkLW5hdmlnYXRpb25fX2l0ZW0tLWNoaWxkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cInRpdGxlSXRlbVJvbGVBdHRyJCgpXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInRpdGxlSXRlbUFyaWFTZWxlY3RlZEF0dHIkKClcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRpdGxlSXRlbUZvY3VzYWJsZSQoKSA/IDAgOiAtMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpbmtSZW5kZXJlclwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8dWxcbiAgICAgICAgICAgIGZkYi1uYXZpZ2F0aW9uLWxpc3RcbiAgICAgICAgICAgIFtsaXN0SXRlbXNdPVwibGlzdEl0ZW1zJCgpIHx8IFtdXCJcbiAgICAgICAgICAgIFtjaGlsZEl0ZW1zXT1cInRydWVcIlxuICAgICAgICAgICAgW3JvbGVdPVwiaXNPdmVyZmxvdyQoKSA/ICdtZW51JyA6ICdncm91cCdcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwiKGZhbHNlKVwiXG4gICAgICAgICAgICAoZm9jdXNCZWZvcmUpPVwiX2ZvY3VzQmVmb3JlTGlzdCgpXCJcbiAgICAgICAgICAgIFt3aXRoS2V5Ym9hcmROYXZpZ2F0aW9uXT1cImtleWJvYXJkTmF2aWdhdGlvblwiXG4gICAgICAgICAgICBbbW9yZUJ1dHRvblJlZl09XCJfbW9yZUJ1dHRvblJlZiQoKVwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJjaGlsZExpc3RJZEF0dHIkKClcIlxuICAgICAgICA+PC91bD5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=","import { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Input, ViewChild, ViewEncapsulation, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { KeyUtil, RtlService } from '@fundamental-ngx/cdk';\nimport { PopoverBodyComponent, PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { map } from 'rxjs';\nimport { FdbNavigationItemLink } from '../../models/navigation-item-link.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationLinkComponent } from '../navigation-link/navigation-link.component';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport * as i0 from \"@angular/core\";\nexport class NavigationMoreButtonComponent {\n /** @hidden */\n constructor() {\n /** @hidden */\n this.listItems = [];\n /** Whether the show more is visible. */\n this.isVisible$ = signal(true, ...(ngDevMode ? [{ debugName: \"isVisible$\" }] : []));\n /** Whether popover is open. Applicable for snapped navigation state. */\n this.popoverOpen$ = signal(false, ...(ngDevMode ? [{ debugName: \"popoverOpen$\" }] : []));\n /** ID for the more button. */\n this.id = signal('fdb-navigation-more-button', ...(ngDevMode ? [{ debugName: \"id\" }] : []));\n /** @hidden */\n this.type = 'showMore';\n /** @hidden */\n this.placementContainer = undefined;\n /**\n * Whether the item is in overflow menu.\n */\n this.isOverflow$ = signal(false, ...(ngDevMode ? [{ debugName: \"isOverflow$\" }] : []));\n /** Whether item has child items. */\n this.hasChildren$ = signal(false, ...(ngDevMode ? [{ debugName: \"hasChildren$\" }] : []));\n /** @hidden */\n this._navigation = inject(FdbNavigation);\n /**\n * Link reference.\n */\n this.link$ = signal(null, ...(ngDevMode ? [{ debugName: \"link$\" }] : []));\n /** More button aria-label attribute value. */\n this.moreButtonAriaLabelAttr$ = computed(() => this._moreButtonAriaLabel$(), ...(ngDevMode ? [{ debugName: \"moreButtonAriaLabelAttr$\" }] : []));\n /** Overflow menu aria-label attribute value. */\n this.overflowMenuAriaLabelAttr$ = computed(() => this._overflowMenuAriaLabel$() || '', ...(ngDevMode ? [{ debugName: \"overflowMenuAriaLabelAttr$\" }] : []));\n /**\n * @hidden\n * Popover position. Changes based on rtl value.\n */\n this._popoverPlacement$ = computed(() => (this._rtl$() ? 'left-start' : 'right-start'), ...(ngDevMode ? [{ debugName: \"_popoverPlacement$\" }] : []));\n /** @hidden */\n this._popoverClicked = false;\n /** @hidden */\n this._rtlService = inject(RtlService, {\n optional: true\n });\n /** @hidden */\n this.elementRef = inject(ElementRef);\n /** @hidden */\n this._rtl$ = computed(() => !!this._rtlService?.rtlSignal(), ...(ngDevMode ? [{ debugName: \"_rtl$\" }] : []));\n /** @hidden */\n this._lang$ = inject(FD_LANGUAGE);\n /** @hidden */\n this._translationResolver = inject(TranslationResolver);\n /** Translation signal for more button aria-label. */\n this._moreButtonAriaLabel$ = toSignal(this._lang$.pipe(map((lang) => this._translationResolver.resolve(lang, 'btpNavigation.moreButtonAriaLabel'))), { initialValue: 'Displays additional navigation items that are hidden due to limited screen space' });\n /** Translation signal for overflow menu aria-label. */\n this._overflowMenuAriaLabel$ = toSignal(this._lang$.pipe(map((lang) => this._translationResolver.resolve(lang, 'btpNavigation.overflowMenuAriaLabel'))), { initialValue: 'Additional Navigation Items' });\n this._navigation.closeAllPopups.pipe(takeUntilDestroyed(inject(DestroyRef))).subscribe(() => {\n this.popoverOpen$.set(false);\n });\n }\n /** @hidden */\n _onPopoverOpenChange(isOpen) {\n this.popoverOpen$.set(isOpen);\n // When popover opens, focus the first item\n if (isOpen) {\n // Use a short timeout to ensure the DOM is updated\n setTimeout(() => {\n if (this._navigationList) {\n let firstValidIndex = 0;\n const items = this._navigationList._listItems || [];\n for (let i = 0; i < items.length; i++) {\n if (items[i] && items[i]?.link$()?.elementRef?.nativeElement) {\n firstValidIndex = i;\n break;\n }\n }\n this._navigationList.setActiveItemIndex(firstValidIndex);\n return;\n }\n // Fallback: Focus the first item using the listItems array\n if (this.listItems && this.listItems.length > 0) {\n const firstItem = this.listItems[0];\n const link = firstItem.link$();\n if (link?.elementRef?.nativeElement) {\n link.elementRef.nativeElement.focus();\n return;\n }\n }\n // Last resort fallback: if direct access fails, try to focus any focusable element in the popover\n const popoverBodyElement = this._popover?.popoverBody?._elementRef?.nativeElement;\n if (popoverBodyElement) {\n const firstFocusableElement = popoverBodyElement.querySelector('a, button, [tabindex]:not([tabindex=\"-1\"])');\n if (firstFocusableElement) {\n firstFocusableElement.focus();\n }\n }\n }, 150);\n }\n }\n /** @hidden */\n togglePopover(withClick = false) {\n this._popoverClicked = withClick;\n this.popoverOpen$.update((value) => !value);\n }\n /** @hidden */\n registerLink() { }\n /** @hidden */\n unregisterLink() { }\n /** @hidden */\n registerChildList() { }\n /** @hidden */\n unregisterChildList() { }\n /** @hidden */\n focus() {\n this.focusLink();\n }\n /**\n * Focuses inner link element.\n * Optionally closes the popover.\n */\n focusLink(closePopover = false) {\n this._link?.elementRef.nativeElement.focus();\n if (closePopover) {\n this.popoverOpen$.set(false);\n }\n }\n /** @hidden */\n toggleExpanded() { }\n /** @hidden */\n keyboardExpanded(shouldExpand) {\n if (shouldExpand && !this.popoverOpen$()) {\n this.popoverOpen$.set(true);\n }\n else if (!shouldExpand && this.popoverOpen$()) {\n this.popoverOpen$.set(false);\n }\n }\n /** @hidden */\n _keydownPopoverToggle(event) {\n if (!KeyUtil.isKeyCode(event, [LEFT_ARROW, RIGHT_ARROW])) {\n return;\n }\n const isRtl = this._rtl$() || false;\n if (KeyUtil.isKeyCode(event, isRtl ? LEFT_ARROW : RIGHT_ARROW)) {\n // Open popover only if not already open\n if (!this.popoverOpen$()) {\n this.popoverOpen$.set(true);\n }\n }\n }\n /** @hidden */\n canItemBeSelected() {\n return false; // More button cannot be selected\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationMoreButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationMoreButtonComponent, isStandalone: true, selector: \"li[fdb-navigation-more-button]\", inputs: { listItems: \"listItems\" }, host: { classAttribute: \"fd-navigation__list-item\" }, providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationMoreButtonComponent\n }\n ], viewQueries: [{ propertyName: \"_link\", first: true, predicate: FdbNavigationItemLink, descendants: true }, { propertyName: \"_popover\", first: true, predicate: PopoverComponent, descendants: true }, { propertyName: \"_navigationList\", first: true, predicate: NavigationListComponent, descendants: true }], ngImport: i0, template: \"<div\\n role=\\\"menuitem\\\"\\n class=\\\"fd-navigation__item\\\"\\n [attr.aria-expanded]=\\\"popoverOpen$()\\\"\\n [attr.aria-haspopup]=\\\"'menu'\\\"\\n [attr.aria-label]=\\\"moreButtonAriaLabelAttr$()\\\"\\n aria-level=\\\"1\\\"\\n (click)=\\\"togglePopover(true)\\\"\\n (keydown)=\\\"_keydownPopoverToggle($event)\\\"\\n #trigger\\n>\\n <a fdb-navigation-link glyph=\\\"overflow\\\">More Items</a>\\n <fd-popover\\n [trigger]=\\\"trigger\\\"\\n [triggers]=\\\"[]\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"_onPopoverOpenChange($event)\\\"\\n [focusTrapped]=\\\"true\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container fd-navigation__list-container--menu\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"_navigation.classList$()\\\" role=\\\"menu\\\">\\n <ul\\n fdb-navigation-list\\n withKeyboardNavigation\\n [parentItems]=\\\"true\\\"\\n [ariaLabel]=\\\"overflowMenuAriaLabelAttr$()\\\"\\n class=\\\"fd-menu__list\\\"\\n [listItems]=\\\"listItems\\\"\\n [moreButtonRef]=\\\"this\\\"\\n ></ul>\\n </fd-popover-body>\\n </fd-popover>\\n</div>\\n\", dependencies: [{ kind: \"component\", type: NavigationLinkComponent, selector: \"a[fdb-navigation-link], button[fdb-navigation-link]\", inputs: [\"class\", \"glyph\", \"glyphFont\", \"external\", \"quickCreate\"] }, { kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"ariaLabel\", \"ariaRoleDescription\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\", \"moreButtonRef\"], outputs: [\"focusBefore\", \"focusAfter\"] }, { kind: \"component\", type: PopoverComponent, selector: \"fd-popover\", inputs: [\"title\", \"trigger\", \"fixedPosition\", \"id\", \"mobile\", \"mobileConfig\", \"preventSpaceKeyScroll\"] }, { kind: \"component\", type: PopoverBodyComponent, selector: \"fd-popover-body\", inputs: [\"minWidth\", \"maxWidth\", \"minHeight\", \"maxHeight\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationMoreButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'li[fdb-navigation-more-button]', imports: [NavigationLinkComponent, NavigationListComponent, PopoverComponent, PopoverBodyComponent, NgClass], providers: [\n {\n provide: FdbNavigationListItem,\n useExisting: NavigationMoreButtonComponent\n }\n ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n class: 'fd-navigation__list-item'\n }, template: \"<div\\n role=\\\"menuitem\\\"\\n class=\\\"fd-navigation__item\\\"\\n [attr.aria-expanded]=\\\"popoverOpen$()\\\"\\n [attr.aria-haspopup]=\\\"'menu'\\\"\\n [attr.aria-label]=\\\"moreButtonAriaLabelAttr$()\\\"\\n aria-level=\\\"1\\\"\\n (click)=\\\"togglePopover(true)\\\"\\n (keydown)=\\\"_keydownPopoverToggle($event)\\\"\\n #trigger\\n>\\n <a fdb-navigation-link glyph=\\\"overflow\\\">More Items</a>\\n <fd-popover\\n [trigger]=\\\"trigger\\\"\\n [triggers]=\\\"[]\\\"\\n [isOpen]=\\\"popoverOpen$()\\\"\\n (isOpenChange)=\\\"_onPopoverOpenChange($event)\\\"\\n [focusTrapped]=\\\"true\\\"\\n additionalBodyClass=\\\"fd-navigation__list-container fd-navigation__list-container--menu\\\"\\n [placement]=\\\"_popoverPlacement$()\\\"\\n >\\n <fd-popover-body [ngClass]=\\\"_navigation.classList$()\\\" role=\\\"menu\\\">\\n <ul\\n fdb-navigation-list\\n withKeyboardNavigation\\n [parentItems]=\\\"true\\\"\\n [ariaLabel]=\\\"overflowMenuAriaLabelAttr$()\\\"\\n class=\\\"fd-menu__list\\\"\\n [listItems]=\\\"listItems\\\"\\n [moreButtonRef]=\\\"this\\\"\\n ></ul>\\n </fd-popover-body>\\n </fd-popover>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { listItems: [{\n type: Input\n }], _link: [{\n type: ViewChild,\n args: [FdbNavigationItemLink]\n }], _popover: [{\n type: ViewChild,\n args: [PopoverComponent]\n }], _navigationList: [{\n type: ViewChild,\n args: [NavigationListComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uL25hdmlnYXRpb24tbW9yZS1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBWSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV2RixPQUFPLEVBQUUsV0FBVyxFQUFjLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckYsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVB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Z0JBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUI7UUFDYixPQUFPLEtBQUssQ0FBQyxDQUFDLGlDQUFpQztJQUNuRCxDQUFDOzhHQTFOUSw2QkFBNkI7a0dBQTdCLDZCQUE2Qix1S0FiM0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixXQUFXLEVBQUUsNkJBQTZCO2FBQzdDO1NBQ0osaUVBY1UscUJBQXFCLDJFQUlyQixnQkFBZ0Isa0ZBSWhCLHVCQUF1QixnREM5RHRDLG9zQ0FrQ0EsNENEQWMsdUJBQXVCLG9LQUFFLHVCQUF1QixpUUFBRSxnQkFBZ0IsK0pBQUUsb0JBQW9CLHdIQUFFLE9BQU87OzJGQWNsRyw2QkFBNkI7a0JBakJ6QyxTQUFTOytCQUVJLGdDQUFnQyxXQUNqQyxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE9BQU8sQ0FBQyxhQUNqRzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUscUJBQXFCOzRCQUM5QixXQUFXLCtCQUErQjt5QkFDN0M7cUJBQ0osaUJBRWMsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsMEJBQTBCO3FCQUNwQzt3REFLRCxTQUFTO3NCQURSLEtBQUs7Z0JBS1csS0FBSztzQkFEckIsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBS2YsUUFBUTtzQkFEeEIsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBS1YsZUFBZTtzQkFEL0IsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMRUZUX0FSUk9XLCBSSUdIVF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgY29tcHV0ZWQsXG4gICAgaW5qZWN0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBLZXlVdGlsLCBOdWxsYWJsZSwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrJztcbmltcG9ydCB7IFBvcG92ZXJCb2R5Q29tcG9uZW50LCBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgUGxhY2VtZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBGRF9MQU5HVUFHRSwgRmRMYW5ndWFnZSwgVHJhbnNsYXRpb25SZXNvbHZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25JdGVtTGluayB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWl0ZW0tbGluay5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaW5rQ29tcG9uZW50IH0gZnJvbSAnLi4vbmF2aWdhdGlvbi1saW5rL25hdmlnYXRpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbk1vcmVCdXR0b25SZWZDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6ICgpID0+IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdsaVtmZGItbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbl0nLFxuICAgIGltcG9ydHM6IFtOYXZpZ2F0aW9uTGlua0NvbXBvbmVudCwgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQsIFBvcG92ZXJDb21wb25lbnQsIFBvcG92ZXJCb2R5Q29tcG9uZW50LCBOZ0NsYXNzXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IE5hdmlnYXRpb25Nb3JlQnV0dG9uQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZC1uYXZpZ2F0aW9uX19saXN0LWl0ZW0nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTW9yZUJ1dHRvbkNvbXBvbmVudCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGxpc3RJdGVtczogRmRiTmF2aWdhdGlvbkxpc3RJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChGZGJOYXZpZ2F0aW9uSXRlbUxpbmspXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGluazogTnVsbGFibGU8RmRiTmF2aWdhdGlvbkl0ZW1MaW5rPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3BvcG92ZXI6IE51bGxhYmxlPFBvcG92ZXJDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE5hdmlnYXRpb25MaXN0Q29tcG9uZW50KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25MaXN0OiBOdWxsYWJsZTxOYXZpZ2F0aW9uTGlzdENvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGN1c3RvbU1vcmVSZW5kZXJlcjogTnVsbGFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2hvdyBtb3JlIGlzIHZpc2libGUuICovXG4gICAgaXNWaXNpYmxlJCA9IHNpZ25hbCh0cnVlKTtcblxuICAgIC8qKiBXaGV0aGVyIHBvcG92ZXIgaXMgb3Blbi4gQXBwbGljYWJsZSBmb3Igc25hcHBlZCBuYXZpZ2F0aW9uIHN0YXRlLiAqL1xuICAgIHJlYWRvbmx5IHBvcG92ZXJPcGVuJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogSUQgZm9yIHRoZSBtb3JlIGJ1dHRvbi4gKi9cbiAgICByZWFkb25seSBpZCA9IHNpZ25hbCgnZmRiLW5hdmlnYXRpb24tbW9yZS1idXR0b24nKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgdHlwZSA9ICdzaG93TW9yZSc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IHBsYWNlbWVudENvbnRhaW5lciA9IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgaW4gb3ZlcmZsb3cgbWVudS5cbiAgICAgKi9cbiAgICByZWFkb25seSBpc092ZXJmbG93JCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogV2hldGhlciBpdGVtIGhhcyBjaGlsZCBpdGVtcy4gKi9cbiAgICByZWFkb25seSBoYXNDaGlsZHJlbiQgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfbmF2aWdhdGlvbiA9IGluamVjdChGZGJOYXZpZ2F0aW9uKTtcblxuICAgIC8qKlxuICAgICAqIExpbmsgcmVmZXJlbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxpbmskID0gc2lnbmFsPE51bGxhYmxlPEZkYk5hdmlnYXRpb25JdGVtTGluaz4+KG51bGwpO1xuXG4gICAgLyoqIE1vcmUgYnV0dG9uIGFyaWEtbGFiZWwgYXR0cmlidXRlIHZhbHVlLiAqL1xuICAgIHJlYWRvbmx5IG1vcmVCdXR0b25BcmlhTGFiZWxBdHRyJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX21vcmVCdXR0b25BcmlhTGFiZWwkKCkpO1xuXG4gICAgLyoqIE92ZXJmbG93IG1lbnUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdmFsdWUuICovXG4gICAgcmVhZG9ubHkgb3ZlcmZsb3dNZW51QXJpYUxhYmVsQXR0ciQgPSBjb21wdXRlZCgoKTogc3RyaW5nID0+IHRoaXMuX292ZXJmbG93TWVudUFyaWFMYWJlbCQoKSB8fCAnJyk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUG9wb3ZlciBwb3NpdGlvbi4gQ2hhbmdlcyBiYXNlZCBvbiBydGwgdmFsdWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgX3BvcG92ZXJQbGFjZW1lbnQkID0gY29tcHV0ZWQ8UGxhY2VtZW50PigoKSA9PiAodGhpcy5fcnRsJCgpID8gJ2xlZnQtc3RhcnQnIDogJ3JpZ2h0LXN0YXJ0JykpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wb3BvdmVyQ2xpY2tlZCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlID0gaW5qZWN0KFJ0bFNlcnZpY2UsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9ydGwkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gISF0aGlzLl9ydGxTZXJ2aWNlPy5ydGxTaWduYWwoKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xhbmckID0gaW5qZWN0KEZEX0xBTkdVQUdFKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRpb25SZXNvbHZlciA9IGluamVjdChUcmFuc2xhdGlvblJlc29sdmVyKTtcblxuICAgIC8qKiBUcmFuc2xhdGlvbiBzaWduYWwgZm9yIG1vcmUgYnV0dG9uIGFyaWEtbGFiZWwuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbW9yZUJ1dHRvbkFyaWFMYWJlbCQgPSB0b1NpZ25hbChcbiAgICAgICAgdGhpcy5fbGFuZyQucGlwZShcbiAgICAgICAgICAgIG1hcCgobGFuZzogRmRMYW5ndWFnZSkgPT4gdGhpcy5fdHJhbnNsYXRpb25SZXNvbHZlci5yZXNvbHZlKGxhbmcsICdidHBOYXZpZ2F0aW9uLm1vcmVCdXR0b25BcmlhTGFiZWwnKSlcbiAgICAgICAgKSxcbiAgICAgICAgeyBpbml0aWFsVmFsdWU6ICdEaXNwbGF5cyBhZGRpdGlvbmFsIG5hdmlnYXRpb24gaXRlbXMgdGhhdCBhcmUgaGlkZGVuIGR1ZSB0byBsaW1pdGVkIHNjcmVlbiBzcGFjZScgfVxuICAgICk7XG5cbiAgICAvKiogVHJhbnNsYXRpb24gc2lnbmFsIGZvciBvdmVyZmxvdyBtZW51IGFyaWEtbGFiZWwuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmZsb3dNZW51QXJpYUxhYmVsJCA9IHRvU2lnbmFsKFxuICAgICAgICB0aGlzLl9sYW5nJC5waXBlKFxuICAgICAgICAgICAgbWFwKChsYW5nOiBGZExhbmd1YWdlKSA9PiB0aGlzLl90cmFuc2xhdGlvblJlc29sdmVyLnJlc29sdmUobGFuZywgJ2J0cE5hdmlnYXRpb24ub3ZlcmZsb3dNZW51QXJpYUxhYmVsJykpXG4gICAgICAgICksXG4gICAgICAgIHsgaW5pdGlhbFZhbHVlOiAnQWRkaXRpb25hbCBOYXZpZ2F0aW9uIEl0ZW1zJyB9XG4gICAgKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb24uY2xvc2VBbGxQb3B1cHMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoaW5qZWN0KERlc3Ryb3lSZWYpKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uUG9wb3Zlck9wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChpc09wZW4pO1xuXG4gICAgICAgIC8vIFdoZW4gcG9wb3ZlciBvcGVucywgZm9jdXMgdGhlIGZpcnN0IGl0ZW1cbiAgICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICAgICAgLy8gVXNlIGEgc2hvcnQgdGltZW91dCB0byBlbnN1cmUgdGhlIERPTSBpcyB1cGRhdGVkXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fbmF2aWdhdGlvbkxpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpcnN0VmFsaWRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fbmF2aWdhdGlvbkxpc3QuX2xpc3RJdGVtcyB8fCBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zW2ldICYmIGl0ZW1zW2ldPy5saW5rJCgpPy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RWYWxpZEluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25MaXN0LnNldEFjdGl2ZUl0ZW1JbmRleChmaXJzdFZhbGlkSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gRmFsbGJhY2s6IEZvY3VzIHRoZSBmaXJzdCBpdGVtIHVzaW5nIHRoZSBsaXN0SXRlbXMgYXJyYXlcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saXN0SXRlbXMgJiYgdGhpcy5saXN0SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSB0aGlzLmxpc3RJdGVtc1swXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGluayA9IGZpcnN0SXRlbS5saW5rJCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChsaW5rPy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gTGFzdCByZXNvcnQgZmFsbGJhY2s6IGlmIGRpcmVjdCBhY2Nlc3MgZmFpbHMsIHRyeSB0byBmb2N1cyBhbnkgZm9jdXNhYmxlIGVsZW1lbnQgaW4gdGhlIHBvcG92ZXJcbiAgICAgICAgICAgICAgICBjb25zdCBwb3BvdmVyQm9keUVsZW1lbnQgPSB0aGlzLl9wb3BvdmVyPy5wb3BvdmVyQm9keT8uX2VsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHBvcG92ZXJCb2R5RWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsZW1lbnQgPSBwb3BvdmVyQm9keUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICdhLCBidXR0b24sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSdcbiAgICAgICAgICAgICAgICAgICAgKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RGb2N1c2FibGVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAxNTApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICB0b2dnbGVQb3BvdmVyKHdpdGhDbGljayA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcG92ZXJDbGlja2VkID0gd2l0aENsaWNrO1xuICAgICAgICB0aGlzLnBvcG92ZXJPcGVuJC51cGRhdGUoKHZhbHVlKSA9PiAhdmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJMaW5rKCk6IHZvaWQge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdW5yZWdpc3RlckxpbmsoKTogdm9pZCB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3RlckNoaWxkTGlzdCgpOiB2b2lkIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHVucmVnaXN0ZXJDaGlsZExpc3QoKTogdm9pZCB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb2N1c0xpbmsoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb2N1c2VzIGlubmVyIGxpbmsgZWxlbWVudC5cbiAgICAgKiBPcHRpb25hbGx5IGNsb3NlcyB0aGUgcG9wb3Zlci5cbiAgICAgKi9cbiAgICBmb2N1c0xpbmsoY2xvc2VQb3BvdmVyID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGluaz8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIGlmIChjbG9zZVBvcG92ZXIpIHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW4kLnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRvZ2dsZUV4cGFuZGVkKCk6IHZvaWQge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAga2V5Ym9hcmRFeHBhbmRlZChzaG91bGRFeHBhbmQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHNob3VsZEV4cGFuZCAmJiAhdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKCFzaG91bGRFeHBhbmQgJiYgdGhpcy5wb3BvdmVyT3BlbiQoKSkge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2tleWRvd25Qb3BvdmVyVG9nZ2xlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtMRUZUX0FSUk9XLCBSSUdIVF9BUlJPV10pKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1J0bCA9IHRoaXMuX3J0bCQoKSB8fCBmYWxzZTtcblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIGlzUnRsID8gTEVGVF9BUlJPVyA6IFJJR0hUX0FSUk9XKSkge1xuICAgICAgICAgICAgLy8gT3BlbiBwb3BvdmVyIG9ubHkgaWYgbm90IGFscmVhZHkgb3BlblxuICAgICAgICAgICAgaWYgKCF0aGlzLnBvcG92ZXJPcGVuJCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3BvdmVyT3BlbiQuc2V0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjYW5JdGVtQmVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBNb3JlIGJ1dHRvbiBjYW5ub3QgYmUgc2VsZWN0ZWRcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2l0ZW1cIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwicG9wb3Zlck9wZW4kKClcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiJ21lbnUnXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vcmVCdXR0b25BcmlhTGFiZWxBdHRyJCgpXCJcbiAgICBhcmlhLWxldmVsPVwiMVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVBvcG92ZXIodHJ1ZSlcIlxuICAgIChrZXlkb3duKT1cIl9rZXlkb3duUG9wb3ZlclRvZ2dsZSgkZXZlbnQpXCJcbiAgICAjdHJpZ2dlclxuPlxuICAgIDxhIGZkYi1uYXZpZ2F0aW9uLWxpbmsgZ2x5cGg9XCJvdmVyZmxvd1wiPk1vcmUgSXRlbXM8L2E+XG4gICAgPGZkLXBvcG92ZXJcbiAgICAgICAgW3RyaWdnZXJdPVwidHJpZ2dlclwiXG4gICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXG4gICAgICAgIFtpc09wZW5dPVwicG9wb3Zlck9wZW4kKClcIlxuICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9vblBvcG92ZXJPcGVuQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fbGlzdC1jb250YWluZXIgZmQtbmF2aWdhdGlvbl9fbGlzdC1jb250YWluZXItLW1lbnVcIlxuICAgICAgICBbcGxhY2VtZW50XT1cIl9wb3BvdmVyUGxhY2VtZW50JCgpXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHkgW25nQ2xhc3NdPVwiX25hdmlnYXRpb24uY2xhc3NMaXN0JCgpXCIgcm9sZT1cIm1lbnVcIj5cbiAgICAgICAgICAgIDx1bFxuICAgICAgICAgICAgICAgIGZkYi1uYXZpZ2F0aW9uLWxpc3RcbiAgICAgICAgICAgICAgICB3aXRoS2V5Ym9hcmROYXZpZ2F0aW9uXG4gICAgICAgICAgICAgICAgW3BhcmVudEl0ZW1zXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwib3ZlcmZsb3dNZW51QXJpYUxhYmVsQXR0ciQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1tZW51X19saXN0XCJcbiAgICAgICAgICAgICAgICBbbGlzdEl0ZW1zXT1cImxpc3RJdGVtc1wiXG4gICAgICAgICAgICAgICAgW21vcmVCdXR0b25SZWZdPVwidGhpc1wiXG4gICAgICAgICAgICA+PC91bD5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XG4gICAgPC9mZC1wb3BvdmVyPlxuPC9kaXY+XG4iXX0=","import { PortalModule } from '@angular/cdk/portal';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, Input, NgZone, QueryList, ViewChild, ViewEncapsulation, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { resizeObservable } from '@fundamental-ngx/cdk';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { asyncScheduler, debounceTime, filter, merge, observeOn, startWith, switchMap, take } from 'rxjs';\nimport { FdbNavigationContentContainer } from '../../models/navigation-content-container.class';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationListComponent } from '../navigation-list/navigation-list.component';\nimport { NavigationMoreButtonComponent } from '../navigation-more-button/navigation-more-button.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/scrollbar\";\nconst FD_NAVIGATION_OVERFLOW_ITEM_CLASS = 'fd-navigation__container--hidden-overflow';\nexport class NavigationContentStartComponent extends FdbNavigationContentContainer {\n constructor() {\n super(...arguments);\n /** Whether the list items are content-projected. Used only with data-driven navigation. */\n this.contentProjected = true;\n /**\n * aria-label for the navigation list.\n */\n this.ariaLabel = null;\n /**\n * aria-roledescription for the navigation list.\n */\n this.ariaRoleDescription = null;\n /** Whether the container is placed on the start position, or the end position of the navigation. */\n this.placement = 'start';\n /** Navigation component reference. */\n this.navigation = inject(FdbNavigation);\n /** Inner List items that should be rendered. */\n this.listItems$ = computed(() => {\n const isSnapped = this.navigation.isSnapped$();\n const totalItems = this.allListItems$().filter((item) => item.normalizedLevel$() < 3);\n return totalItems.filter((item) => {\n const normalizedLevel = item.normalizedLevel$();\n const level = item.level$();\n return isSnapped ? normalizedLevel === 2 : level === 1;\n });\n }, ...(ngDevMode ? [{ debugName: \"listItems$\" }] : []));\n /** @hidden */\n this._showMoreButton$ = signal(false, ...(ngDevMode ? [{ debugName: \"_showMoreButton$\" }] : []));\n /** @hidden */\n this.visibleItems$ = signal(this.listItems$(), ...(ngDevMode ? [{ debugName: \"visibleItems$\" }] : []));\n /** @hidden */\n this.hiddenItems$ = signal([], ...(ngDevMode ? [{ debugName: \"hiddenItems$\" }] : []));\n /** @hidden */\n this._calculationInProgress = false;\n /** @hidden */\n this._elementRef = inject(ElementRef);\n /** @hidden */\n this._isSnappedObservable = toObservable(this.navigation.isSnapped$).pipe(startWith(this.navigation.isSnapped$()));\n /** @hidden */\n this._listItemsObservable = toObservable(this.listItems$);\n /** @hidden */\n this._cdr = inject(ChangeDetectorRef);\n /** @hidden */\n this._zone = inject(NgZone);\n }\n /** @hidden */\n ngAfterContentInit() {\n this._listItems.changes\n .pipe(startWith(null), observeOn(asyncScheduler), filter(() => this.contentProjected), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this.allListItems$.set(this._listItems.toArray());\n });\n const resize = resizeObservable(this._elementRef.nativeElement).pipe(debounceTime(30));\n merge(this._isSnappedObservable, this._listItemsObservable, resize)\n .pipe(switchMap(() => this._zone.onStable.pipe(startWith(this._zone.isStable), take(1))))\n .subscribe(() => {\n this._calculateVisibleItems();\n });\n // Listen for overflow item selections to promote them to visible\n this.navigation.service.overflowItemSelected$\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((selectedItem) => {\n this._promoteOverflowItem(selectedItem);\n });\n }\n /**\n * @hidden\n * Calculates available space to fit the items.\n * Determines whether to show the \"More\" button if available space is not enough to fit all list items.\n */\n _calculateVisibleItems() {\n if (this._calculationInProgress) {\n return;\n }\n const items = [...this.listItems$()];\n items.forEach((item) => item.hidden$.set(false));\n this.visibleItems$.set([...items]);\n this._cdr.detectChanges();\n if (!this.navigation.isSnapped$()) {\n this._showMoreButton$.set(false);\n this._calculationInProgress = false;\n this.navigation.showMoreButton$.set(null);\n return;\n }\n this._elementRef.nativeElement.classList.add(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);\n let availableSpace = this._elementRef.nativeElement.clientHeight - this._elementRef.nativeElement.scrollHeight;\n if (availableSpace >= 0) {\n this._showMoreButton$.set(false);\n this._calculationInProgress = false;\n this.navigation.showMoreButton$.set(null);\n this._elementRef.nativeElement.classList.remove(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);\n this._cdr.detectChanges();\n return;\n }\n this._showMoreButton$.set(true);\n this._cdr.detectChanges();\n availableSpace = availableSpace - (this._moreContainer?.nativeElement.clientHeight || 0);\n const hiddenItems = [];\n // We are going from the bottom to the top and checking whether the available space is enough to fit the items.\n while (availableSpace < 0 && items.length > 0) {\n const item = items.pop();\n if (!item) {\n continue;\n }\n // Since we are going from the bottom to the top, we need to add item to the list as the first item of the array.\n hiddenItems.unshift(item);\n const itemHeight = item?.marker?.elementRef?.nativeElement?.clientHeight || 0;\n availableSpace = availableSpace + itemHeight;\n item.hidden$.set(true);\n }\n this._elementRef.nativeElement.classList.remove(FD_NAVIGATION_OVERFLOW_ITEM_CLASS);\n this.visibleItems$.set([...items]);\n this.hiddenItems$.set([...hiddenItems]);\n this._showMoreButton$.set(hiddenItems.length > 0);\n this._cdr.detectChanges();\n this.navigation.showMoreButton$.set(this._showMoreButton);\n this._calculationInProgress = false;\n }\n /**\n * @hidden\n * Promotes an overflow item to be the last visible item.\n * Moves the current last visible item to overflow while preserving overflow order.\n */\n _promoteOverflowItem(selectedItem) {\n if (!this.navigation.isSnapped$() || !this._showMoreButton$()) {\n return;\n }\n const currentVisible = [...this.visibleItems$()];\n const currentHidden = [...this.hiddenItems$()];\n const allItems = [...this.listItems$()]; // Original order\n // Find the selected item in hidden items\n const hiddenIndex = currentHidden.findIndex((item) => item === selectedItem);\n // If not found by object reference, try text-based matching\n let fallbackIndex = -1;\n if (hiddenIndex === -1) {\n const selectedText = selectedItem.link$()?.elementRef?.nativeElement?.textContent?.trim();\n fallbackIndex = currentHidden.findIndex((item) => item?.link$()?.elementRef?.nativeElement?.textContent?.trim() === selectedText);\n }\n const finalIndex = hiddenIndex !== -1 ? hiddenIndex : fallbackIndex;\n if (finalIndex === -1) {\n return; // Item not found in hidden items\n }\n // Remove the selected item from hidden items\n const [itemToPromote] = currentHidden.splice(finalIndex, 1);\n // Move the last visible item to overflow, but insert it in the correct position\n // to maintain the original order\n const lastVisibleItem = currentVisible.pop();\n if (lastVisibleItem) {\n lastVisibleItem.hidden$.set(true);\n // Find the correct position in the original order\n const lastVisibleIndex = allItems.findIndex((item) => item === lastVisibleItem);\n // Insert the item in the correct position in hidden items to maintain order\n let insertPosition = 0;\n for (let i = 0; i < currentHidden.length; i++) {\n const hiddenItemIndex = allItems.findIndex((item) => item === currentHidden[i]);\n if (hiddenItemIndex > lastVisibleIndex) {\n break;\n }\n insertPosition++;\n }\n currentHidden.splice(insertPosition, 0, lastVisibleItem);\n }\n // Add the promoted item as the last visible item\n currentVisible.push(itemToPromote);\n itemToPromote.hidden$.set(false);\n // Update the signals\n this.visibleItems$.set(currentVisible);\n this.hiddenItems$.set(currentHidden);\n // Update the \"More\" button visibility\n this._showMoreButton$.set(currentHidden.length > 0);\n this.navigation.showMoreButton$.set(currentHidden.length > 0 ? this._showMoreButton : null);\n // Trigger change detection to ensure navigation items are properly updated\n this._cdr.detectChanges();\n // Focus the More button after promotion to maintain standard accessibility pattern\n // (focus returns to trigger when popover closes)\n setTimeout(() => {\n if (this._showMoreButton) {\n this._showMoreButton.focus();\n }\n }, 50);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentStartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: NavigationContentStartComponent, isStandalone: true, selector: \"fdb-navigation-content-start\", inputs: { contentProjected: \"contentProjected\", ariaLabel: \"ariaLabel\", ariaRoleDescription: \"ariaRoleDescription\" }, host: { properties: { \"style.flex-grow\": \"1\" }, classAttribute: \"fd-navigation__container fd-navigation__container--top\" }, providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentStartComponent\n }\n ], queries: [{ propertyName: \"_listItems\", predicate: FdbNavigationListItem, descendants: true }], viewQueries: [{ propertyName: \"_moreContainer\", first: true, predicate: [\"moreContainer\"], descendants: true, read: ElementRef }, { propertyName: \"_showMoreButton\", first: true, predicate: NavigationMoreButtonComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ScrollbarDirective }], ngImport: i0, template: \"<ul\\n fdb-navigation-list\\n [listItems]=\\\"visibleItems$()\\\"\\n [ariaLabel]=\\\"ariaLabel\\\"\\n [ariaRoleDescription]=\\\"ariaRoleDescription\\\"\\n></ul>\\n@if (_showMoreButton$()) {\\n <ul noGrow fdb-navigation-list role=\\\"menubar\\\" #moreContainer>\\n <li fdb-navigation-more-button [listItems]=\\\"hiddenItems$()\\\"></li>\\n </ul>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: PortalModule }, { kind: \"component\", type: NavigationListComponent, selector: \"ul[fdb-navigation-list]\", inputs: [\"listItems\", \"role\", \"ariaLabel\", \"ariaRoleDescription\", \"parentItems\", \"childItems\", \"noGrow\", \"withKeyboardNavigation\", \"moreButtonRef\"], outputs: [\"focusBefore\", \"focusAfter\"] }, { kind: \"component\", type: NavigationMoreButtonComponent, selector: \"li[fdb-navigation-more-button]\", inputs: [\"listItems\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationContentStartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdb-navigation-content-start', imports: [PortalModule, NavigationListComponent, NavigationMoreButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'fd-navigation__container fd-navigation__container--top',\n '[style.flex-grow]': '1'\n }, providers: [\n {\n provide: FdbNavigationContentContainer,\n useExisting: NavigationContentStartComponent\n }\n ], hostDirectives: [ScrollbarDirective], template: \"<ul\\n fdb-navigation-list\\n [listItems]=\\\"visibleItems$()\\\"\\n [ariaLabel]=\\\"ariaLabel\\\"\\n [ariaRoleDescription]=\\\"ariaRoleDescription\\\"\\n></ul>\\n@if (_showMoreButton$()) {\\n <ul noGrow fdb-navigation-list role=\\\"menubar\\\" #moreContainer>\\n <li fdb-navigation-more-button [listItems]=\\\"hiddenItems$()\\\"></li>\\n </ul>\\n}\\n\" }]\n }], propDecorators: { contentProjected: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], ariaRoleDescription: [{\n type: Input\n }], _listItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: true }]\n }], _moreContainer: [{\n type: ViewChild,\n args: ['moreContainer', { read: ElementRef, static: false }]\n }], _showMoreButton: [{\n type: ViewChild,\n args: [NavigationMoreButtonComponent, { static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uLXN0YXJ0L25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1zdGFydC9uYXZpZ2F0aW9uLWNvbnRlbnQtc3RhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBWSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8s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LEVBQUUsdUJBQXVCLEVBQUUsNkJBQTZCLENBQUMsbUJBQzlELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsS0FBSyxFQUFFLHdEQUF3RDt3QkFDL0QsbUJBQW1CLEVBQUUsR0FBRztxQkFDM0IsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNkJBQTZCOzRCQUN0QyxXQUFXLGlDQUFpQzt5QkFDL0M7cUJBQ0osa0JBQ2UsQ0FBQyxrQkFBa0IsQ0FBQzs4QkFLcEMsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBT04sU0FBUztzQkFEUixLQUFLO2dCQU9OLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLVyxVQUFVO3NCQUQxQixlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFLNUMsY0FBYztzQkFEOUIsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBSzlDLGVBQWU7c0JBRC9CLFNBQVM7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE51bGxhYmxlLCByZXNpemVPYnNlcnZhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1lcmdlLCBvYnNlcnZlT24sIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uQ29udGVudENvbnRhaW5lciB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWNvbnRlbnQtY29udGFpbmVyLmNsYXNzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25MaXN0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jbGFzcyc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL25hdmlnYXRpb24uY2xhc3MnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTW9yZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL25hdmlnYXRpb24tbW9yZS1idXR0b24vbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi5jb21wb25lbnQnO1xuXG5jb25zdCBGRF9OQVZJR0FUSU9OX09WRVJGTE9XX0lURU1fQ0xBU1MgPSAnZmQtbmF2aWdhdGlvbl9fY29udGFpbmVyLS1oaWRkZW4tb3ZlcmZsb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkYi1uYXZpZ2F0aW9uLWNvbnRlbnQtc3RhcnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLWNvbnRlbnQtc3RhcnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIE5hdmlnYXRpb25MaXN0Q29tcG9uZW50LCBOYXZpZ2F0aW9uTW9yZUJ1dHRvbkNvbXBvbmVudF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbmF2aWdhdGlvbl9fY29udGFpbmVyIGZkLW5hdmlnYXRpb25fX2NvbnRhaW5lci0tdG9wJyxcbiAgICAgICAgJ1tzdHlsZS5mbGV4LWdyb3ddJzogJzEnXG4gICAgfSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRmRiTmF2aWdhdGlvbkNvbnRlbnRDb250YWluZXIsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0RGlyZWN0aXZlczogW1Njcm9sbGJhckRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudCBleHRlbmRzIEZkYk5hdmlnYXRpb25Db250ZW50Q29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpc3QgaXRlbXMgYXJlIGNvbnRlbnQtcHJvamVjdGVkLiBVc2VkIG9ubHkgd2l0aCBkYXRhLWRyaXZlbiBuYXZpZ2F0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGVudFByb2plY3RlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBhcmlhLWxhYmVsIGZvciB0aGUgbmF2aWdhdGlvbiBsaXN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIGFyaWEtcm9sZWRlc2NyaXB0aW9uIGZvciB0aGUgbmF2aWdhdGlvbiBsaXN0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYVJvbGVEZXNjcmlwdGlvbjogTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRmRiTmF2aWdhdGlvbkxpc3RJdGVtLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEl0ZW1zOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnbW9yZUNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21vcmVDb250YWluZXI6IE51bGxhYmxlPEVsZW1lbnRSZWY+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKE5hdmlnYXRpb25Nb3JlQnV0dG9uQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zaG93TW9yZUJ1dHRvbjogTnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBjb250YWluZXIgaXMgcGxhY2VkIG9uIHRoZSBzdGFydCBwb3NpdGlvbiwgb3IgdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgbmF2aWdhdGlvbi4gKi9cbiAgICByZWFkb25seSBwbGFjZW1lbnQ6ICdzdGFydCcgfCAnZW5kJyA9ICdzdGFydCc7XG5cbiAgICAvKiogTmF2aWdhdGlvbiBjb21wb25lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IG5hdmlnYXRpb24gPSBpbmplY3QoRmRiTmF2aWdhdGlvbik7XG5cbiAgICAvKiogSW5uZXIgTGlzdCBpdGVtcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZC4gKi9cbiAgICByZWFkb25seSBsaXN0SXRlbXMkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBpc1NuYXBwZWQgPSB0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpO1xuICAgICAgICBjb25zdCB0b3RhbEl0ZW1zID0gdGhpcy5hbGxMaXN0SXRlbXMkKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLm5vcm1hbGl6ZWRMZXZlbCQoKSA8IDMpO1xuICAgICAgICByZXR1cm4gdG90YWxJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRMZXZlbCA9IGl0ZW0ubm9ybWFsaXplZExldmVsJCgpO1xuICAgICAgICAgICAgY29uc3QgbGV2ZWwgPSBpdGVtLmxldmVsJCgpO1xuICAgICAgICAgICAgcmV0dXJuIGlzU25hcHBlZCA/IG5vcm1hbGl6ZWRMZXZlbCA9PT0gMiA6IGxldmVsID09PSAxO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3Nob3dNb3JlQnV0dG9uJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IHZpc2libGVJdGVtcyQgPSBzaWduYWw8RmRiTmF2aWdhdGlvbkxpc3RJdGVtW10+KHRoaXMubGlzdEl0ZW1zJCgpKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgaGlkZGVuSXRlbXMkID0gc2lnbmFsPEZkYk5hdmlnYXRpb25MaXN0SXRlbVtdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NhbGN1bGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaXNTbmFwcGVkT2JzZXJ2YWJsZSA9IHRvT2JzZXJ2YWJsZSh0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCkucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMubmF2aWdhdGlvbi5pc1NuYXBwZWQkKCkpXG4gICAgKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGlzdEl0ZW1zT2JzZXJ2YWJsZSA9IHRvT2JzZXJ2YWJsZSh0aGlzLmxpc3RJdGVtcyQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdEl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmNvbnRlbnRQcm9qZWN0ZWQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGxMaXN0SXRlbXMkLnNldCh0aGlzLl9saXN0SXRlbXMudG9BcnJheSgpKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlc2l6ZSA9IHJlc2l6ZU9ic2VydmFibGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5waXBlKGRlYm91bmNlVGltZSgzMCkpO1xuXG4gICAgICAgIG1lcmdlKHRoaXMuX2lzU25hcHBlZE9ic2VydmFibGUsIHRoaXMuX2xpc3RJdGVtc09ic2VydmFibGUsIHJlc2l6ZSlcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLl96b25lLm9uU3RhYmxlLnBpcGUoc3RhcnRXaXRoKHRoaXMuX3pvbmUuaXNTdGFibGUpLCB0YWtlKDEpKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIExpc3RlbiBmb3Igb3ZlcmZsb3cgaXRlbSBzZWxlY3Rpb25zIHRvIHByb21vdGUgdGhlbSB0byB2aXNpYmxlXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbi5zZXJ2aWNlLm92ZXJmbG93SXRlbVNlbGVjdGVkJFxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvbW90ZU92ZXJmbG93SXRlbShzZWxlY3RlZEl0ZW0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENhbGN1bGF0ZXMgYXZhaWxhYmxlIHNwYWNlIHRvIGZpdCB0aGUgaXRlbXMuXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIHNob3cgdGhlIFwiTW9yZVwiIGJ1dHRvbiBpZiBhdmFpbGFibGUgc3BhY2UgaXMgbm90IGVub3VnaCB0byBmaXQgYWxsIGxpc3QgaXRlbXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fY2FsY3VsYXRpb25JblByb2dyZXNzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXRlbXMgPSBbLi4udGhpcy5saXN0SXRlbXMkKCldO1xuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmhpZGRlbiQuc2V0KGZhbHNlKSk7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zJC5zZXQoWy4uLml0ZW1zXSk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICghdGhpcy5uYXZpZ2F0aW9uLmlzU25hcHBlZCQoKSkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd01vcmVCdXR0b24kLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbi5zaG93TW9yZUJ1dHRvbiQuc2V0KG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoRkRfTkFWSUdBVElPTl9PVkVSRkxPV19JVEVNX0NMQVNTKTtcblxuICAgICAgICBsZXQgYXZhaWxhYmxlU3BhY2UgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcblxuICAgICAgICBpZiAoYXZhaWxhYmxlU3BhY2UgPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5fc2hvd01vcmVCdXR0b24kLnNldChmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbi5zaG93TW9yZUJ1dHRvbiQuc2V0KG51bGwpO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoRkRfTkFWSUdBVElPTl9PVkVSRkxPV19JVEVNX0NMQVNTKTtcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zaG93TW9yZUJ1dHRvbiQuc2V0KHRydWUpO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBhdmFpbGFibGVTcGFjZSA9IGF2YWlsYWJsZVNwYWNlIC0gKHRoaXMuX21vcmVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IDApO1xuXG4gICAgICAgIGNvbnN0IGhpZGRlbkl0ZW1zOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIC8vIFdlIGFyZSBnb2luZyBmcm9tIHRoZSBib3R0b20gdG8gdGhlIHRvcCBhbmQgY2hlY2tpbmcgd2hldGhlciB0aGUgYXZhaWxhYmxlIHNwYWNlIGlzIGVub3VnaCB0byBmaXQgdGhlIGl0ZW1zLlxuICAgICAgICB3aGlsZSAoYXZhaWxhYmxlU3BhY2UgPCAwICYmIGl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtcy5wb3AoKTtcbiAgICAgICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2luY2Ugd2UgYXJlIGdvaW5nIGZyb20gdGhlIGJvdHRvbSB0byB0aGUgdG9wLCB3ZSBuZWVkIHRvIGFkZCBpdGVtIHRvIHRoZSBsaXN0IGFzIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBhcnJheS5cbiAgICAgICAgICAgIGhpZGRlbkl0ZW1zLnVuc2hpZnQoaXRlbSk7XG4gICAgICAgICAgICBjb25zdCBpdGVtSGVpZ2h0ID0gaXRlbT8ubWFya2VyPy5lbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5jbGllbnRIZWlnaHQgfHwgMDtcbiAgICAgICAgICAgIGF2YWlsYWJsZVNwYWNlID0gYXZhaWxhYmxlU3BhY2UgKyBpdGVtSGVpZ2h0O1xuICAgICAgICAgICAgaXRlbS5oaWRkZW4kLnNldCh0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyk7XG5cbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMkLnNldChbLi4uaXRlbXNdKTtcbiAgICAgICAgdGhpcy5oaWRkZW5JdGVtcyQuc2V0KFsuLi5oaWRkZW5JdGVtc10pO1xuXG4gICAgICAgIHRoaXMuX3Nob3dNb3JlQnV0dG9uJC5zZXQoaGlkZGVuSXRlbXMubGVuZ3RoID4gMCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uLnNob3dNb3JlQnV0dG9uJC5zZXQodGhpcy5fc2hvd01vcmVCdXR0b24pO1xuXG4gICAgICAgIHRoaXMuX2NhbGN1bGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBQcm9tb3RlcyBhbiBvdmVyZmxvdyBpdGVtIHRvIGJlIHRoZSBsYXN0IHZpc2libGUgaXRlbS5cbiAgICAgKiBNb3ZlcyB0aGUgY3VycmVudCBsYXN0IHZpc2libGUgaXRlbSB0byBvdmVyZmxvdyB3aGlsZSBwcmVzZXJ2aW5nIG92ZXJmbG93IG9yZGVyLlxuICAgICAqL1xuICAgIHByaXZhdGUgX3Byb21vdGVPdmVyZmxvd0l0ZW0oc2VsZWN0ZWRJdGVtOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm5hdmlnYXRpb24uaXNTbmFwcGVkJCgpIHx8ICF0aGlzLl9zaG93TW9yZUJ1dHRvbiQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFZpc2libGUgPSBbLi4udGhpcy52aXNpYmxlSXRlbXMkKCldO1xuICAgICAgICBjb25zdCBjdXJyZW50SGlkZGVuID0gWy4uLnRoaXMuaGlkZGVuSXRlbXMkKCldO1xuICAgICAgICBjb25zdCBhbGxJdGVtcyA9IFsuLi50aGlzLmxpc3RJdGVtcyQoKV07IC8vIE9yaWdpbmFsIG9yZGVyXG5cbiAgICAgICAgLy8gRmluZCB0aGUgc2VsZWN0ZWQgaXRlbSBpbiBoaWRkZW4gaXRlbXNcbiAgICAgICAgY29uc3QgaGlkZGVuSW5kZXggPSBjdXJyZW50SGlkZGVuLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbSA9PT0gc2VsZWN0ZWRJdGVtKTtcblxuICAgICAgICAvLyBJZiBub3QgZm91bmQgYnkgb2JqZWN0IHJlZmVyZW5jZSwgdHJ5IHRleHQtYmFzZWQgbWF0Y2hpbmdcbiAgICAgICAgbGV0IGZhbGxiYWNrSW5kZXggPSAtMTtcbiAgICAgICAgaWYgKGhpZGRlbkluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gc2VsZWN0ZWRJdGVtLmxpbmskKCk/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnRleHRDb250ZW50Py50cmltKCk7XG4gICAgICAgICAgICBmYWxsYmFja0luZGV4ID0gY3VycmVudEhpZGRlbi5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0/LmxpbmskKCk/LmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LnRleHRDb250ZW50Py50cmltKCkgPT09IHNlbGVjdGVkVGV4dFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpbmFsSW5kZXggPSBoaWRkZW5JbmRleCAhPT0gLTEgPyBoaWRkZW5JbmRleCA6IGZhbGxiYWNrSW5kZXg7XG5cbiAgICAgICAgaWYgKGZpbmFsSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIEl0ZW0gbm90IGZvdW5kIGluIGhpZGRlbiBpdGVtc1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBzZWxlY3RlZCBpdGVtIGZyb20gaGlkZGVuIGl0ZW1zXG4gICAgICAgIGNvbnN0IFtpdGVtVG9Qcm9tb3RlXSA9IGN1cnJlbnRIaWRkZW4uc3BsaWNlKGZpbmFsSW5kZXgsIDEpO1xuXG4gICAgICAgIC8vIE1vdmUgdGhlIGxhc3QgdmlzaWJsZSBpdGVtIHRvIG92ZXJmbG93LCBidXQgaW5zZXJ0IGl0IGluIHRoZSBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICAgIC8vIHRvIG1haW50YWluIHRoZSBvcmlnaW5hbCBvcmRlclxuICAgICAgICBjb25zdCBsYXN0VmlzaWJsZUl0ZW0gPSBjdXJyZW50VmlzaWJsZS5wb3AoKTtcblxuICAgICAgICBpZiAobGFzdFZpc2libGVJdGVtKSB7XG4gICAgICAgICAgICBsYXN0VmlzaWJsZUl0ZW0uaGlkZGVuJC5zZXQodHJ1ZSk7XG5cbiAgICAgICAgICAgIC8vIEZpbmQgdGhlIGNvcnJlY3QgcG9zaXRpb24gaW4gdGhlIG9yaWdpbmFsIG9yZGVyXG4gICAgICAgICAgICBjb25zdCBsYXN0VmlzaWJsZUluZGV4ID0gYWxsSXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtID09PSBsYXN0VmlzaWJsZUl0ZW0pO1xuXG4gICAgICAgICAgICAvLyBJbnNlcnQgdGhlIGl0ZW0gaW4gdGhlIGNvcnJlY3QgcG9zaXRpb24gaW4gaGlkZGVuIGl0ZW1zIHRvIG1haW50YWluIG9yZGVyXG4gICAgICAgICAgICBsZXQgaW5zZXJ0UG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjdXJyZW50SGlkZGVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGlkZGVuSXRlbUluZGV4ID0gYWxsSXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtID09PSBjdXJyZW50SGlkZGVuW2ldKTtcbiAgICAgICAgICAgICAgICBpZiAoaGlkZGVuSXRlbUluZGV4ID4gbGFzdFZpc2libGVJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaW5zZXJ0UG9zaXRpb24rKztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3VycmVudEhpZGRlbi5zcGxpY2UoaW5zZXJ0UG9zaXRpb24sIDAsIGxhc3RWaXNpYmxlSXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgdGhlIHByb21vdGVkIGl0ZW0gYXMgdGhlIGxhc3QgdmlzaWJsZSBpdGVtXG4gICAgICAgIGN1cnJlbnRWaXNpYmxlLnB1c2goaXRlbVRvUHJvbW90ZSk7XG4gICAgICAgIGl0ZW1Ub1Byb21vdGUuaGlkZGVuJC5zZXQoZmFsc2UpO1xuXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgc2lnbmFsc1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtcyQuc2V0KGN1cnJlbnRWaXNpYmxlKTtcbiAgICAgICAgdGhpcy5oaWRkZW5JdGVtcyQuc2V0KGN1cnJlbnRIaWRkZW4pO1xuXG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgXCJNb3JlXCIgYnV0dG9uIHZpc2liaWxpdHlcbiAgICAgICAgdGhpcy5fc2hvd01vcmVCdXR0b24kLnNldChjdXJyZW50SGlkZGVuLmxlbmd0aCA+IDApO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb24uc2hvd01vcmVCdXR0b24kLnNldChjdXJyZW50SGlkZGVuLmxlbmd0aCA+IDAgPyB0aGlzLl9zaG93TW9yZUJ1dHRvbiA6IG51bGwpO1xuXG4gICAgICAgIC8vIFRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiB0byBlbnN1cmUgbmF2aWdhdGlvbiBpdGVtcyBhcmUgcHJvcGVybHkgdXBkYXRlZFxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIC8vIEZvY3VzIHRoZSBNb3JlIGJ1dHRvbiBhZnRlciBwcm9tb3Rpb24gdG8gbWFpbnRhaW4gc3RhbmRhcmQgYWNjZXNzaWJpbGl0eSBwYXR0ZXJuXG4gICAgICAgIC8vIChmb2N1cyByZXR1cm5zIHRvIHRyaWdnZXIgd2hlbiBwb3BvdmVyIGNsb3NlcylcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fc2hvd01vcmVCdXR0b24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TW9yZUJ1dHRvbi5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCA1MCk7XG4gICAgfVxufVxuIiwiPHVsXG4gICAgZmRiLW5hdmlnYXRpb24tbGlzdFxuICAgIFtsaXN0SXRlbXNdPVwidmlzaWJsZUl0ZW1zJCgpXCJcbiAgICBbYXJpYUxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2FyaWFSb2xlRGVzY3JpcHRpb25dPVwiYXJpYVJvbGVEZXNjcmlwdGlvblwiXG4+PC91bD5cbkBpZiAoX3Nob3dNb3JlQnV0dG9uJCgpKSB7XG4gICAgPHVsIG5vR3JvdyBmZGItbmF2aWdhdGlvbi1saXN0IHJvbGU9XCJtZW51YmFyXCIgI21vcmVDb250YWluZXI+XG4gICAgICAgIDxsaSBmZGItbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbiBbbGlzdEl0ZW1zXT1cImhpZGRlbkl0ZW1zJCgpXCI+PC9saT5cbiAgICA8L3VsPlxufVxuIl19","import { __decorate, __metadata } from \"tslib\";\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { DOWN_ARROW, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, ElementRef, HostBinding, HostListener, Input, QueryList, ViewEncapsulation, booleanAttribute, computed, effect, inject, signal } from '@angular/core';\nimport { KeyUtil, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport { Subject } from 'rxjs';\nimport { NavigationListItemRefDirective } from '../../directives/navigation-list-item-ref.directive';\nimport { FdbNavigationListItem } from '../../models/navigation-list-item.class';\nimport { FdbNavigation } from '../../models/navigation.class';\nimport { NavigationService } from '../../services/navigation.service';\nimport * as i0 from \"@angular/core\";\nexport class NavigationComponent extends FdbNavigation {\n /**\n * Navigation state.\n */\n set state(value) {\n this.state$.set(value);\n }\n get state() {\n return this.state$();\n }\n /** @hidden */\n set _navigationItemRef(value) {\n this._navigationItemRenderer.set(value || null);\n }\n /** @hidden */\n constructor() {\n super();\n /**\n * aria-label for the navigation.\n */\n this.ariaLabel = null;\n /**\n * aria-roledescription for the navigation.\n */\n this.ariaRoleDescription = null;\n /**\n * Navigation mode.\n */\n this.mode = '';\n /**\n * Whether the navigation is rendered as an overlay.\n */\n this.isOverlay = false;\n /**\n * Navigation type.\n */\n this.type = 'vertical';\n /**\n * Selection mode for navigation items.\n * - 'router': Selection is handled by router link activation (default)\n * - 'click': Selection is handled by click events\n */\n this.selectionMode = 'router';\n /**\n * State signal.\n */\n this.state$ = signal('expanded', ...(ngDevMode ? [{ debugName: \"state$\" }] : []));\n /**\n * Whether the navigation is in snapped mode.\n */\n this.isSnapped$ = computed(() => this.state$() === 'snapped', ...(ngDevMode ? [{ debugName: \"isSnapped$\" }] : []));\n /**\n * Whether to show \"More\" button. Applicable for `snapped` state only.\n */\n this.showMoreButton$ = signal(null, ...(ngDevMode ? [{ debugName: \"showMoreButton$\" }] : []));\n /**\n * Signal for navigation classList.\n * Used by popover-based submenus.\n */\n this.classList$ = signal([], ...(ngDevMode ? [{ debugName: \"classList$\" }] : []));\n /** @hidden */\n this.elementRef = inject(ElementRef);\n /** Navigation service for managing selection state. */\n this.service = inject(NavigationService);\n /** @hidden */\n this._navigationItemRenderer = signal(null, ...(ngDevMode ? [{ debugName: \"_navigationItemRenderer\" }] : []));\n /** Stream notifies to close all popups in child list items. */\n this.closeAllPopups = new Subject();\n /** @hidden */\n this._viewInitiated$ = signal(false, ...(ngDevMode ? [{ debugName: \"_viewInitiated$\" }] : []));\n // When show more button is shown, reset items list with added \"More button\".\n effect(() => {\n if (this._viewInitiated$()) {\n this._resetItemsList(this.showMoreButton$());\n }\n });\n }\n /** @hidden */\n buildComponentCssClass() {\n this.classList$.set([\n this.class,\n 'fd-navigation',\n this.mode === '' ? 'fd-navigation--compact' : '',\n `fd-navigation--${this.state}`,\n this.isOverlay && this.state === 'expanded' ? 'is-overlay' : ''\n ].filter((k) => !!k));\n return [...this.classList$(), `fd-navigation--${this.type}`];\n }\n /**\n * @hidden\n * Main keyboard navigation handler.\n */\n _keyDownHandler(event) {\n if (!KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n return;\n }\n event.preventDefault();\n this._keyManager.onKeydown(event);\n }\n /** @hidden */\n ngOnInit() {\n this.buildComponentCssClass();\n }\n /** @hidden */\n ngOnChanges() {\n this.buildComponentCssClass();\n }\n /** @hidden */\n ngAfterViewInit() {\n this._keyManager = new FocusKeyManager(this._navigationItems)\n .withVerticalOrientation()\n .skipPredicate((item) => !item.isVisible$() || item.skipNavigation);\n this._keyManager.setActiveItem(0);\n this._viewInitiated$.set(true);\n }\n /** @hidden */\n ngOnDestroy() {\n this._keyManager?.destroy();\n }\n /**\n * Returns currently focused list item.\n */\n getActiveItem() {\n return this._keyManager.activeItem;\n }\n /**\n * Sets focused item.\n */\n setActiveItem(item) {\n this._keyManager.setActiveItem(item);\n }\n /** Notifies child list items that all popups should be closed. */\n closePopups() {\n this.closeAllPopups.next();\n }\n /**\n * Get the currently selected item when in click selection mode.\n * @returns The currently selected item, or null if none is selected.\n */\n getSelectedItem() {\n return this.service.getSelectedItem();\n }\n /**\n * Set the selected item when in click selection mode.\n * @param item The item to select, or null to clear selection.\n */\n setSelectedItem(item) {\n this.service.setSelectedItem(item);\n }\n /**\n * Clear the current selection when in click selection mode.\n */\n clearSelection() {\n this.service.setSelectedItem(null);\n }\n /**\n * Get a navigation item by its ID.\n * @param id The ID of the navigation item to find.\n * @returns The navigation item with the specified ID, or null if not found.\n */\n getNavigationItemById(id) {\n const items = this._navigationItems.toArray();\n return this._findItemById(items, id);\n }\n /**\n * Set the selected item by its ID when in click selection mode.\n * @param id The ID of the navigation item to select.\n * @returns True if the item was found and selected, false otherwise.\n */\n setSelectedItemById(id) {\n const item = this.getNavigationItemById(id);\n if (item) {\n this.setSelectedItem(item);\n return true;\n }\n return false;\n }\n /**\n * Helper method to find an item by ID recursively through the navigation tree.\n * @param items Array of navigation items to search through.\n * @param id The ID to search for.\n * @returns The found item or null.\n */\n _findItemById(items, id) {\n for (const item of items) {\n if (item.id() === id) {\n return item;\n }\n if (item.listItems$().length > 0) {\n const childItems = item.listItems$().filter((child) => child !== null);\n const found = this._findItemById(childItems, id);\n if (found) {\n return found;\n }\n }\n }\n return null;\n }\n /**\n * Updates the list of items.\n * Optionally inserts \"More\" button if overflow menu should be rendered.\n * @param showMoreButton Whether to add \"More\" button.\n */\n _resetItemsList(showMoreButton) {\n const items = [...this._navigationItems.toArray()];\n const showMoreButtonIndex = items.findIndex((item) => item.type === 'showMore');\n if (!showMoreButton) {\n if (showMoreButtonIndex === -1) {\n return;\n }\n items.splice(showMoreButtonIndex, 1);\n this._navigationItems.reset(items);\n }\n else {\n if (showMoreButtonIndex > -1) {\n return;\n }\n // Find last list item from the `Start` container.\n const insertionIndex = items.findIndex((item) => {\n const listItems = item.placementContainer?.listItems$();\n if (!listItems) {\n return;\n }\n return item.placementContainer?.placement === 'start' && listItems[listItems.length - 1] === item;\n });\n if (insertionIndex === -1) {\n return;\n }\n items.splice(insertionIndex, 0, showMoreButton);\n this._navigationItems.reset(items);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"20.1.4\", type: NavigationComponent, isStandalone: true, selector: \"fdb-navigation\", inputs: { class: \"class\", ariaLabel: \"ariaLabel\", ariaRoleDescription: \"ariaRoleDescription\", mode: \"mode\", isOverlay: [\"isOverlay\", \"isOverlay\", booleanAttribute], state: \"state\", type: \"type\", selectionMode: \"selectionMode\" }, host: { attributes: { \"role\": \"navigation\" }, listeners: { \"keydown\": \"_keyDownHandler($event)\" }, properties: { \"attr.aria-label\": \"this.ariaLabel\", \"attr.aria-roledescription\": \"this.ariaRoleDescription\" } }, providers: [\n NavigationService,\n {\n provide: FdbNavigation,\n useExisting: NavigationComponent\n }\n ], queries: [{ propertyName: \"_navigationItemRef\", first: true, predicate: NavigationListItemRefDirective, descendants: true }, { propertyName: \"_navigationItems\", predicate: FdbNavigationListItem, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"<ng-content></ng-content>\\n\", styles: [\"@charset \\\"UTF-8\\\";.fd-navigation{--fdNavigation_Height:100%;--fdNavigation_Padding_X:.5rem;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Item_Spacing:.25rem;--fdNavigation_Padding_Bottom:.5rem;--fdNavigation_Horizontal_Height:3.5rem;--fdNavigation_Expander_Position_Right:.5rem;--fdNavigation_Border_Radius:0;--fdNavigation_Box_Shadow:var(--sapContent_Shadow0);--fdNavigation_Link_Icon_Size:1rem;--fdNavigation_Link_Icon_Color:var(--sapList_TextColor);--fdNavigation_Link_Min_Height:var(--sapElement_LineHeight);--fdNavigation_Link_Font_Family:var(--sapFontBoldFamily);--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Text_Color:inherit;--fdNavigation_Link_Shift_Left:1rem;--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left);--fdNavigation_Link_Padding_Right:.375rem;--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:var(--sapList_SelectionBackgroundColor);--fdNavigation_List_Container_Display:none;--fdNavigation_List_Parent_Items_Display:none;--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Controls_Height:2.25rem;--fdNavigation_Quick_Create_Border_Color:var(--sapButton_BorderColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation:after,.fd-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__container{position:relative}.fd-navigation__container--top{height:100%;overflow:scroll;padding-inline:var(--fdNavigation_Padding_X);position:relative;-webkit-padding-after:.25rem;padding-block-end:.25rem}.fd-navigation__container--bottom{padding-inline:var(--fdNavigation_Padding_X)}.fd-navigation__container--bottom:before{background:var(--sapToolbar_SeparatorColor);content:\\\"\\\";display:inline-block;height:.0625rem;margin-block:.5625rem;width:100%}.fd-navigation__list-container{border:0;-webkit-box-sizing:border-box;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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation__list-container:after,.fd-navigation__list-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list-wrapper{width:100%}.fd-navigation__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing);height:100%;list-style-type:none;position:relative}.fd-navigation__list:after,.fd-navigation__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list--parent-items{display:var(--fdNavigation_List_Parent_Items_Display)}.fd-navigation__list-item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing)}.fd-navigation__list-item:after,.fd-navigation__list-item:before{-webkit-box-sizing:inherit;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:.625rem;max-height:.625rem;min-height:.625rem}.fd-navigation__list-item--overflow{position:relative}.fd-navigation__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:var(--fdNavigation_Link_Padding_Left) var(--fdNavigation_Link_Padding_Right);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--fdNavigation_Link_Background);border-radius:var(--fdNavigation_Link_Border_Radius);color:var(--fdNavigation_Link_Text_Color);cursor:pointer;gap:var(--fdNavigation_Link_Spacing);min-height:var(--fdNavigation_Link_Min_Height);overflow:hidden;position:relative;text-align:start;text-decoration:none;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);width:100%}.fd-navigation__link:after,.fd-navigation__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__link:before{border-bottom:.0625rem solid var(--fdNavigation_Link_Border_Color);border:.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_Background:var(--sapList_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_Background:var(--sapList_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{z-index:5;--fdNavigation_Link_Border_Color:transparent;--fdNavigation_Link_Border_Bottom_Color:transparent;--fdNavigation_Link_Background:var(--sapList_Background);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:-.125rem}.fd-navigation__link.is-focus.is-hover,.fd-navigation__link.is-focus:hover,.fd-navigation__link:focus.is-hover,.fd-navigation__link:focus:hover{--fdNavigation_Link_Background:var(--sapList_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:focus-visible{outline-offset:-.125rem}.fd-navigation__link.is-disabled,.fd-navigation__link:disabled,.fd-navigation__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-navigation__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--fdNavigation_Link_Border_Radius);height:100%;position:relative}.fd-navigation__item:after,.fd-navigation__item:before{-webkit-box-sizing:inherit;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(--sapList_SelectionBackgroundColor);--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{z-index:5;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--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-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(--sapList_Hover_SelectionBackground);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Padding_Left:2.5rem}.fd-navigation__item--group{display:var(--fdNavigation_Item_Group_Display)}.fd-navigation__item--group .fd-navigation__link{--fdNavigation_Link_Text_Color:var(--sapContent_LabelColor);--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Font_Size:var(--sapFontSize)}.fd-navigation__item--title{height:auto;-webkit-margin-after:var(--fdNavigation_Item_Title_Margin_Bottom,0);display:var(--fdNavigation_Item_Title_Display);margin-block-end:var(--fdNavigation_Item_Title_Margin_Bottom,0)}.fd-navigation__item--title .fd-navigation__text{font-weight:700;--fdNavigation_Item_Title_Display:block}.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_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:var(--fdNavigation_Link_Shift_Left)}.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:flex;cursor:pointer;position:absolute;right:var(--fdNavigation_Link_Has_Child_Indicator_Pos_Right,.375rem);z-index:20}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator:after{background:var(--sapTextColor);content:\\\"\\\";display:var(--fdNavigation_Link_Has_Child_Indicator_Div_Display,inline-block);height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fd-navigation__item--with-expander.is-hover .fd-navigation__link,.fd-navigation__item--with-expander:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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__item--with-expander.is-active .fd-navigation__link,.fd-navigation__item--with-expander:active .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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--with-expander.is-selected.is-hover .fd-navigation__link,.fd-navigation__item--with-expander.is-selected:hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation__item--create{--fdNavigation_Link_Text_Color:var(--sapButton_TextColor);--fdNavigation_Link_Icon_Color:var(--sapButton_TextColor)}.fd-navigation__item--create .fd-navigation__link{border:var(--sapButton_BorderWidth) solid var(--fdNavigation_Quick_Create_Border_Color)}.fd-navigation__item--create .fd-navigation__link.is-active,.fd-navigation__item--create .fd-navigation__link:active{--fdNavigation_Quick_Create_Border_Color:var(--sapButton_Active_BorderColor);--fdNavigation_Link_Background:var(--sapButton_Active_Background)}.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]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdNavigation_Link_Icon_Color);font-family:var(--sapFontBoldFamily);font-size:var(--fdNavigation_Link_Icon_Size)}.fd-navigation__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdNavigation_Link_Text_Color);display:var(--fdNavigation_Item_Text_Display);font-family:var(--sapFontFamily);font-family:var(--fdNavigation_Link_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdNavigation_Link_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap;width:100%}.fd-navigation__text:after,.fd-navigation__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator{background:var(--sapList_SelectionBorderColor);border:0;-webkit-box-sizing:border-box;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:100%;left:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:0;width:.188rem}.fd-navigation__selection-indicator:after,.fd-navigation__selection-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator[dir=rtl],[dir=rtl] .fd-navigation__selection-indicator{left:auto;right:0}.fd-navigation__has-children-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_Has_Child_Indicator_Display);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:var(--fdNavigation_Controls_Width)}.fd-navigation__has-children-indicator:after,.fd-navigation__has-children-indicator:before{-webkit-box-sizing:inherit;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:1rem}[dir=rtl] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ee\\\"}.fd-navigation__external-link-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_External_Link_Indicator_Display,flex);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);width:var(--fdNavigation_Controls_Width)}.fd-navigation__external-link-indicator:after,.fd-navigation__external-link-indicator:before{-webkit-box-sizing:inherit;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:1rem}.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{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);height:.75rem;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;width:.75rem}.fd-navigation__back-indicator:after,.fd-navigation__back-indicator:before{-webkit-box-sizing:inherit;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--snapped .fd-navigation__container--bottom,.fd-navigation--snapped .fd-navigation__container--top{overflow:visible}.fd-navigation--snapped .fd-navigation__list-wrapper{padding-block:.5rem;padding-inline:.5rem}.fd-navigation--snapped .fd-navigation__list-container{background:var(--sapGroup_ContentBackground);border:none;border-radius:var(--sapPopover_BorderCornerRadius);-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:calc(100% + .1875rem);padding-block:.5rem;padding-inline:.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-block:0;padding-inline:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem;-webkit-box-shadow:none;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--submenu{left:calc(100% + .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.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-container .fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.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:1rem}.fd-navigation--snapped .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:.5rem;height:auto}.fd-navigation--snapped .fd-navigation__item--title{--fdNavigation_Item_Title_Display:block;--fdNavigation_Item_Title_Margin_Bottom:.5rem}.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_Background:var(--sapList_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active)}.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_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link{--fdNavigation_Link_Spacing:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:0;--fdNavigation_Link_External_Link_Indicator_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:1rem;--fdNavigation_Link_Spacing:.5rem;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:.375rem;--fdNavigation_Link_External_Link_Indicator_Display:flex}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow)>.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__item--overflow)>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link .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__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:.375rem;--fdNavigation_Link_Has_Child_Indicator_Div_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation.fd-navigation--vertical{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--sapList_Background);border-radius:var(--fdNavigation_Border_Radius);-webkit-box-shadow:var(--fdNavigation_Box_Shadow);box-shadow:var(--fdNavigation_Box_Shadow);height:var(--fdNavigation_Height);justify-content:space-between;min-width:16rem;padding-block:var(--fdNavigation_Padding_Top) var(--fdNavigation_Padding_Bottom)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Height:auto;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Border_Radius:.5rem;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow2)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--bottom,.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation.fd-navigation--vertical.fd-navigation--snapped{max-width:4rem;min-width:4rem;width:4rem}.fd-navigation.fd-navigation--horizontal{background:var(--sapNavigation_Background);height:var(--fdNavigation_Horizontal_Height);padding-block:calc((var(--fdNavigation_Horizontal_Height) - var(--fdNavigation_Link_Min_Height))*.5);padding-inline:1.5rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:1rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__link:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Selection_Indicator_Display:inline-block}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{z-index:5;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation.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.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.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.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.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.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:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items){--fdNavigation_Item_Spacing:.75rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list-item--spacer{height:.75rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu){--fdPopover_Offset: calc(100% + .3875rem) ;background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;-webkit-box-shadow:var(--sapMenu_Shadow2);box-shadow:var(--sapMenu_Shadow2);padding-block:.05rem;padding-inline:.05rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);padding-block:.5rem;padding-inline:.5rem;position:absolute;right:-.5rem;top:calc(100% + .3875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{left:-.5rem;right:auto}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding-block:0;padding-inline:0}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.25rem;-webkit-box-shadow:none;box-shadow:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.fd-navigation__item--overflow .fd-navigation__has-children-indicator{display:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);left:calc(-100% - .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{left:auto;right:calc(-100% - .1875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-wrapper{padding-block:.7rem;padding-inline:.7rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link{--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:focus{z-index:5;--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(1.6875rem + var(--fdNavigation_Controls_Width))}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--child:not(.fd-navigation__item--submenu-child) .fd-navigation__link{--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander{border:none;margin-block:0;margin-inline:.0625rem;outline-offset:-.0625rem;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:after{border-bottom:.0625rem solid var(--fdNavigation_Expander_Border_Color);border:.0625rem solid var(--fdNavigation_Expander_Border_Color);border-bottom-color:var(--fdNavigation_Expander_Border_Bottom_Color);content:\\\"\\\";inset:0;position:absolute}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:hover{--fdButton_Nested_Background:var(--sapList_Hover_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Hover);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Hover)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active{--fdButton_Nested_Background:var(--sapList_Active_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{z-index:5;--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander.is-expanded .fd-navigation__expander,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander[aria-expanded=true] .fd-navigation__expander{--fdButton_Nested_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem}.fd-navigation[class*=-compact],[class*=-compact] .fd-navigation:not([class*=-cozy]){--fdNavigation_Link_Min_Height:2rem;--fdNavigation_Controls_Width:2rem;--fdNavigation_Controls_Height:1.5625rem}.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__item--disabled{opacity:.6;cursor:default}.fd-navigation__item--disabled .fd-navigation__link{pointer-events:none;-webkit-user-select:none;user-select:none}.fd-navigation__item--disabled .fd-navigation__has-children-indicator{pointer-events:none;cursor:default}.fd-navigation__item--disabled:hover{background:transparent}.fd-navigation__list-item--spacer--hidden{display:none!important}.fd-navigation .fd-navigation__list-item--home-without-separator{margin-bottom:.125rem}.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}.fd-navigation__item .fd-popover-custom{max-width:none}.fd-navigation__item.fd-navigation__item--title .fd-navigation__has-children-indicator{display:none}.fd-navigation__item .fd-navigation__icon,.fd-navigation__item .fd-navigation__text{font-family:var(--sapFontSemiboldDuplexFamily)}.fd-navigation__item.fd-navigation__item--child .fd-navigation__icon,.fd-navigation__item.fd-navigation__item--child .fd-navigation__text{font-family:var(--sapFontFamily)}.fd-navigation.fd-navigation--expanded{width:16rem;min-width:16rem;max-width:16rem}.fd-navigation.fd-navigation--expanded .fd-navigation__item:not(.fd-navigation__item--create) .fd-navigation__text{white-space:normal}.fd-popover__body.fd-navigation__list-container.fd-navigation__list-wrapper{max-width:40rem}.fd-navigation__text{margin-block:.5rem}.fd-navigation.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Border_Radius: 0;--fdNavigation_Box_Shadow: none;--fdNavigation_Height: 100%}.fd-navigation.is-overlay{position:absolute;top:0;left:0}.fd-navigation.fd-navigation--expanded.is-overlay{position:absolute;top:0;left:0;right:0;width:100%;min-width:100%;max-width:100%}.fd-navigation__item.fd-navigation__item--create .fd-navigation__link{border:none;box-shadow:0 0 0 var(--sapButton_BorderWidth) var(--fdNavigation_Quick_Create_Border_Color)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:auto}.fd-navigation__list.fd-menu__list.fd-navigation__list--parent-items .fd-navigation__list-item.fd-navigation__list-item--separator:is(:first-child,:last-child){height:0;min-height:0;max-height:0}.fd-navigation__container.fd-navigation__container--bottom:before{display:flex;margin-block:0 .25rem}[dir=rtl] .fd-navigation__item--with-expander .fd-navigation__has-children-indicator{left:var(--fdNavigation_Link_Has_Child_Indicator_Pos_Right, .375rem);right:auto}[dir=rtl] .fd-navigation__item--with-expander .fd-navigation__has-children-indicator:after{right:-.25rem;left:auto}[dir=rtl] .fd-navigation__has-children-indicator:before{--fdNavigation_Link_Has_Child_Indicator_Icon: \\\"\\\\e1ee\\\"}[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{right:auto}[dir=rtl] .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator:before{--fdNavigation_Link_Has_Child_Indicator_Icon: \\\"\\\\e1ef\\\"}[dir=rtl] .fd-navigation.fd-navigation--snapped .fd-navigation__has-children-indicator:before{--fdNavigation_Link_Has_Child_Indicator_Icon: \\\"\\\\e1ee\\\"}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/navigation.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\n__decorate([\n applyCssClass,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", Array)\n], NavigationComponent.prototype, \"buildComponentCssClass\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdb-navigation', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n NavigationService,\n {\n provide: FdbNavigation,\n useExisting: NavigationComponent\n }\n ], host: {\n role: 'navigation'\n }, template: \"<ng-content></ng-content>\\n\", styles: [\"@charset \\\"UTF-8\\\";.fd-navigation{--fdNavigation_Height:100%;--fdNavigation_Padding_X:.5rem;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Item_Spacing:.25rem;--fdNavigation_Padding_Bottom:.5rem;--fdNavigation_Horizontal_Height:3.5rem;--fdNavigation_Expander_Position_Right:.5rem;--fdNavigation_Border_Radius:0;--fdNavigation_Box_Shadow:var(--sapContent_Shadow0);--fdNavigation_Link_Icon_Size:1rem;--fdNavigation_Link_Icon_Color:var(--sapList_TextColor);--fdNavigation_Link_Min_Height:var(--sapElement_LineHeight);--fdNavigation_Link_Font_Family:var(--sapFontBoldFamily);--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Text_Color:inherit;--fdNavigation_Link_Shift_Left:1rem;--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left);--fdNavigation_Link_Padding_Right:.375rem;--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:var(--sapList_SelectionBackgroundColor);--fdNavigation_List_Container_Display:none;--fdNavigation_List_Parent_Items_Display:none;--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Controls_Height:2.25rem;--fdNavigation_Quick_Create_Border_Color:var(--sapButton_BorderColor);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation:after,.fd-navigation:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__container{position:relative}.fd-navigation__container--top{height:100%;overflow:scroll;padding-inline:var(--fdNavigation_Padding_X);position:relative;-webkit-padding-after:.25rem;padding-block-end:.25rem}.fd-navigation__container--bottom{padding-inline:var(--fdNavigation_Padding_X)}.fd-navigation__container--bottom:before{background:var(--sapToolbar_SeparatorColor);content:\\\"\\\";display:inline-block;height:.0625rem;margin-block:.5625rem;width:100%}.fd-navigation__list-container{border:0;-webkit-box-sizing:border-box;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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-navigation__list-container:after,.fd-navigation__list-container:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list-wrapper{width:100%}.fd-navigation__list{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing);height:100%;list-style-type:none;position:relative}.fd-navigation__list:after,.fd-navigation__list:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__list--parent-items{display:var(--fdNavigation_List_Parent_Items_Display)}.fd-navigation__list-item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:var(--fdNavigation_Item_Spacing)}.fd-navigation__list-item:after,.fd-navigation__list-item:before{-webkit-box-sizing:inherit;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:.625rem;max-height:.625rem;min-height:.625rem}.fd-navigation__list-item--overflow{position:relative}.fd-navigation__link{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;padding-inline:var(--fdNavigation_Link_Padding_Left) var(--fdNavigation_Link_Padding_Right);-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--fdNavigation_Link_Background);border-radius:var(--fdNavigation_Link_Border_Radius);color:var(--fdNavigation_Link_Text_Color);cursor:pointer;gap:var(--fdNavigation_Link_Spacing);min-height:var(--fdNavigation_Link_Min_Height);overflow:hidden;position:relative;text-align:start;text-decoration:none;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);width:100%}.fd-navigation__link:after,.fd-navigation__link:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__link:before{border-bottom:.0625rem solid var(--fdNavigation_Link_Border_Color);border:.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_Background:var(--sapList_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_Background:var(--sapList_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{z-index:5;--fdNavigation_Link_Border_Color:transparent;--fdNavigation_Link_Border_Bottom_Color:transparent;--fdNavigation_Link_Background:var(--sapList_Background);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);outline-offset:-.125rem}.fd-navigation__link.is-focus.is-hover,.fd-navigation__link.is-focus:hover,.fd-navigation__link:focus.is-hover,.fd-navigation__link:focus:hover{--fdNavigation_Link_Background:var(--sapList_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:focus-visible{outline-offset:-.125rem}.fd-navigation__link.is-disabled,.fd-navigation__link:disabled,.fd-navigation__link[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-navigation__item{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-radius:var(--fdNavigation_Link_Border_Radius);height:100%;position:relative}.fd-navigation__item:after,.fd-navigation__item:before{-webkit-box-sizing:inherit;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(--sapList_SelectionBackgroundColor);--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{z-index:5;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--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-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(--sapList_Hover_SelectionBackground);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Link_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation__item--child .fd-navigation__link{--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Padding_Left:2.5rem}.fd-navigation__item--group{display:var(--fdNavigation_Item_Group_Display)}.fd-navigation__item--group .fd-navigation__link{--fdNavigation_Link_Text_Color:var(--sapContent_LabelColor);--fdNavigation_Link_Font_Family:var(--sapFontFamily);--fdNavigation_Link_Font_Size:var(--sapFontSize)}.fd-navigation__item--title{height:auto;-webkit-margin-after:var(--fdNavigation_Item_Title_Margin_Bottom,0);display:var(--fdNavigation_Item_Title_Display);margin-block-end:var(--fdNavigation_Item_Title_Margin_Bottom,0)}.fd-navigation__item--title .fd-navigation__text{font-weight:700;--fdNavigation_Item_Title_Display:block}.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_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:var(--fdNavigation_Link_Shift_Left)}.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Display:flex;cursor:pointer;position:absolute;right:var(--fdNavigation_Link_Has_Child_Indicator_Pos_Right,.375rem);z-index:20}.fd-navigation__item--with-expander .fd-navigation__has-children-indicator:after{background:var(--sapTextColor);content:\\\"\\\";display:var(--fdNavigation_Link_Has_Child_Indicator_Div_Display,inline-block);height:var(--sapElement_Condensed_Height);left:-.25rem;position:absolute;width:.0625rem}.fd-navigation__item--with-expander.is-hover .fd-navigation__link,.fd-navigation__item--with-expander:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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__item--with-expander.is-active .fd-navigation__link,.fd-navigation__item--with-expander:active .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_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--with-expander.is-selected.is-hover .fd-navigation__link,.fd-navigation__item--with-expander.is-selected:hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation__item--with-expander[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation__item--create{--fdNavigation_Link_Text_Color:var(--sapButton_TextColor);--fdNavigation_Link_Icon_Color:var(--sapButton_TextColor)}.fd-navigation__item--create .fd-navigation__link{border:var(--sapButton_BorderWidth) solid var(--fdNavigation_Quick_Create_Border_Color)}.fd-navigation__item--create .fd-navigation__link.is-active,.fd-navigation__item--create .fd-navigation__link:active{--fdNavigation_Quick_Create_Border_Color:var(--sapButton_Active_BorderColor);--fdNavigation_Link_Background:var(--sapButton_Active_Background)}.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]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdNavigation_Link_Icon_Color);font-family:var(--sapFontBoldFamily);font-size:var(--fdNavigation_Link_Icon_Size)}.fd-navigation__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:var(--fdNavigation_Link_Text_Color);display:var(--fdNavigation_Item_Text_Display);font-family:var(--sapFontFamily);font-family:var(--fdNavigation_Link_Font_Family);font-size:var(--sapFontSize);font-size:var(--fdNavigation_Link_Font_Size);font-weight:400;forced-color-adjust:none;line-height:normal;line-height:1rem;margin-block:0;margin-inline:0;overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap;width:100%}.fd-navigation__text:after,.fd-navigation__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator{background:var(--sapList_SelectionBorderColor);border:0;-webkit-box-sizing:border-box;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:100%;left:0;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:absolute;top:0;width:.188rem}.fd-navigation__selection-indicator:after,.fd-navigation__selection-indicator:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-navigation__selection-indicator[dir=rtl],[dir=rtl] .fd-navigation__selection-indicator{left:auto;right:0}.fd-navigation__has-children-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_Has_Child_Indicator_Display);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);-webkit-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;width:var(--fdNavigation_Controls_Width)}.fd-navigation__has-children-indicator:after,.fd-navigation__has-children-indicator:before{-webkit-box-sizing:inherit;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:1rem}[dir=rtl] .fd-navigation__has-children-indicator{--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ee\\\"}.fd-navigation__external-link-indicator{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapList_TextColor);display:var(--fdNavigation_Link_External_Link_Indicator_Display,flex);height:var(--fdNavigation_Controls_Height);max-height:var(--fdNavigation_Controls_Height);max-width:var(--fdNavigation_Controls_Width);min-height:var(--fdNavigation_Controls_Height);min-width:var(--fdNavigation_Controls_Width);width:var(--fdNavigation_Controls_Width)}.fd-navigation__external-link-indicator:after,.fd-navigation__external-link-indicator:before{-webkit-box-sizing:inherit;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:1rem}.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{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--sapContent_LabelColor);height:.75rem;max-height:.75rem;max-width:.75rem;min-height:.75rem;min-width:.75rem;width:.75rem}.fd-navigation__back-indicator:after,.fd-navigation__back-indicator:before{-webkit-box-sizing:inherit;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--snapped .fd-navigation__container--bottom,.fd-navigation--snapped .fd-navigation__container--top{overflow:visible}.fd-navigation--snapped .fd-navigation__list-wrapper{padding-block:.5rem;padding-inline:.5rem}.fd-navigation--snapped .fd-navigation__list-container{background:var(--sapGroup_ContentBackground);border:none;border-radius:var(--sapPopover_BorderCornerRadius);-webkit-box-shadow:var(--sapContent_Shadow2);box-shadow:var(--sapContent_Shadow2)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:calc(100% + .1875rem);padding-block:.5rem;padding-inline:.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-block:0;padding-inline:0}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem;-webkit-box-shadow:none;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--submenu{left:calc(100% + .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.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-container .fd-navigation__list--parent-items{--fdNavigation_List_Parent_Items_Display:flex}.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:1rem}.fd-navigation--snapped .fd-navigation__list--child-items{--fdNavigation_Item_Spacing:.5rem;height:auto}.fd-navigation--snapped .fd-navigation__item--title{--fdNavigation_Item_Title_Display:block;--fdNavigation_Item_Title_Margin_Bottom:.5rem}.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_Background:var(--sapList_Active_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Active)}.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_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--sapList_SelectionBackgroundColor);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation--snapped .fd-navigation__item:not(.fd-navigation__item--title)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link{--fdNavigation_Link_Spacing:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:0;--fdNavigation_Link_External_Link_Indicator_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:1rem;--fdNavigation_Link_Spacing:.5rem;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link.is-hover:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:focus:has(.fd-navigation__external-link-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.fd-navigation__link:hover:has(.fd-navigation__external-link-indicator){--fdNavigation_Link_Padding_Right:.375rem;--fdNavigation_Link_External_Link_Indicator_Display:flex}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow)>.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__item--overflow)>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)>.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__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover{min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:calc(var(--fdNavigation_Controls_Width) + 1.3125rem)}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link .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__item--overflow).fd-navigation__item--with-expander.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:2.25rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:.375rem;--fdNavigation_Link_Has_Child_Indicator_Div_Display:inline-block}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link{--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded.is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander.is-expanded:hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true].is-hover>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:focus-within>.fd-navigation__link+.fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).fd-navigation__item--with-expander[aria-expanded=true]:hover>.fd-navigation__link+.fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\";--fdNavigation_Link_Has_Child_Indicator_Pos_Right:0;--fdNavigation_Link_Has_Child_Indicator_Div_Display:none}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem;--fdNavigation_Link_Has_Child_Indicator_Icon:\\\"\\\\e1ed\\\"}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover{--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator),.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Spacing:0;--fdNavigation_Link_Padding_Right:0}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link.is-hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover:has(.fd-navigation__has-children-indicator) .fd-navigation__has-children-indicator{--fdNavigation_Controls_Width:1rem}.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).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,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow).is-expanded>.fd-navigation__link:hover .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[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,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:focus .fd-navigation__text,.fd-navigation--snapped .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child,.fd-navigation__item--overflow)[aria-expanded=true]>.fd-navigation__link:hover .fd-navigation__text{--fdNavigation_Item_Text_Display:none}.fd-navigation.fd-navigation--vertical{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--sapList_Background);border-radius:var(--fdNavigation_Border_Radius);-webkit-box-shadow:var(--fdNavigation_Box_Shadow);box-shadow:var(--fdNavigation_Box_Shadow);height:var(--fdNavigation_Height);justify-content:space-between;min-width:16rem;padding-block:var(--fdNavigation_Padding_Top) var(--fdNavigation_Padding_Bottom)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Height:auto;--fdNavigation_Padding_Top:.5rem;--fdNavigation_Border_Radius:.5rem;--fdNavigation_Box_Shadow:var(--sapNavigation_Shadow2)}.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--bottom,.fd-navigation.fd-navigation--vertical.fd-navigation--popup .fd-navigation__container--top{--fdNavigation_Padding_X:.5rem}.fd-navigation.fd-navigation--vertical.fd-navigation--snapped{max-width:4rem;min-width:4rem;width:4rem}.fd-navigation.fd-navigation--horizontal{background:var(--sapNavigation_Background);height:var(--fdNavigation_Horizontal_Height);padding-block:calc((var(--fdNavigation_Horizontal_Height) - var(--fdNavigation_Link_Min_Height))*.5);padding-inline:1.5rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__link{--fdNavigation_Link_Spacing:.5rem;--fdNavigation_Link_Padding_Right:1rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__link:has(.fd-navigation__has-children-indicator){--fdNavigation_Link_Padding_Right:.375rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]{--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Selection_Indicator_Display:inline-block}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:focus,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true] .fd-navigation__link:focus{z-index:5;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected .fd-navigation__link:hover,.fd-navigation.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.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.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.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.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.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:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_Selected_Background)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow)[aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link.is-hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow) .fd-navigation__link:hover:before,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--child):not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:before,.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list:not(.fd-navigation__list--parent-items):not(.fd-navigation__list--child-items){--fdNavigation_Item_Spacing:.75rem;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.fd-navigation.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.fd-navigation--horizontal .fd-navigation__list-item--spacer{height:.75rem;width:100%}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu){--fdPopover_Offset: calc(100% + .3875rem) ;background:var(--sapGroup_ContentBackground);border:none;border-radius:.75rem;-webkit-box-shadow:var(--sapMenu_Shadow2);box-shadow:var(--sapMenu_Shadow2);padding-block:.05rem;padding-inline:.05rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);padding-block:.5rem;padding-inline:.5rem;position:absolute;right:-.5rem;top:calc(100% + .3875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu{left:-.5rem;right:auto}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-wrapper{padding-block:0;padding-inline:0}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list{--fdNavigation_Item_Spacing:.25rem;-webkit-box-shadow:none;box-shadow:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.is-expanded .fd-navigation__has-children-indicator,[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__item.fd-navigation__item--overflow .fd-navigation__has-children-indicator{display:none}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--menu .fd-navigation__list-item>.fd-navigation__item:not(.fd-navigation__item--child)>.fd-navigation__link.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).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.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{-webkit-box-shadow:var(--sapMenu_Shadow1);box-shadow:var(--sapMenu_Shadow1);left:calc(-100% - .1875rem);margin-block:0;margin-inline:0;padding-block:.5rem;padding-inline:.5rem;top:calc(var(--fdNavigation_Link_Min_Height) - .5rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu[dir=rtl],[dir=rtl] .fd-navigation.fd-navigation--horizontal .fd-navigation__list-container:not(.fd-navigation__list-container--submenu).fd-navigation__list-container--submenu{left:auto;right:calc(-100% - .1875rem)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list-wrapper{padding-block:.7rem;padding-inline:.7rem}.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link{--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded .fd-navigation__link:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true] .fd-navigation__link:focus{z-index:5;--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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true] .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true] .fd-navigation__link{--fdNavigation_Link_Selection_Indicator_Display:inline-block;--fdNavigation_Link_Background:var(--fdNavigation_Item_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.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded.is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow).is-expanded[aria-selected=true]:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected.is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true].is-selected:hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true].is-hover .fd-navigation__link,.fd-navigation.fd-navigation--horizontal .fd-navigation__item:not(.fd-navigation__item--overflow)[aria-expanded=true][aria-selected=true]:hover .fd-navigation__link{--fdNavigation_Link_Background:var(--sapList_Hover_SelectionBackground)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item.fd-navigation__item--with-expander .fd-navigation__link{--fdNavigation_Link_Padding_Right:calc(1.6875rem + var(--fdNavigation_Controls_Width))}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--child:not(.fd-navigation__item--submenu-child) .fd-navigation__link{--fdNavigation_Link_Padding_Left:var(--fdNavigation_Link_Shift_Left)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander{border:none;margin-block:0;margin-inline:.0625rem;outline-offset:-.0625rem;-webkit-transition:var(--fdNavigation_Link_Transition);transition:var(--fdNavigation_Link_Transition);--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:after{border-bottom:.0625rem solid var(--fdNavigation_Expander_Border_Color);border:.0625rem solid var(--fdNavigation_Expander_Border_Color);border-bottom-color:var(--fdNavigation_Expander_Border_Bottom_Color);content:\\\"\\\";inset:0;position:absolute}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-hover,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:hover{--fdButton_Nested_Background:var(--sapList_Hover_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Hover);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Hover)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active{--fdButton_Nested_Background:var(--sapList_Active_Background);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander.is-active:focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active.is-focus,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{z-index:5;--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Active);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Active)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander .fd-navigation__expander:active:focus{--fdButton_Nested_Border_Radius:var(--fdNavigation_Link_Border_Radius)}.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander.is-expanded .fd-navigation__expander,.fd-navigation.fd-navigation--horizontal .fd-navigation__item--with-expander[aria-expanded=true] .fd-navigation__expander{--fdButton_Nested_Background:var(--fdNavigation_Item_Selected_Background);--fdNavigation_Link_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Color:var(--fdNavigation_Link_Border_Color_Selected);--fdNavigation_Expander_Border_Bottom_Color:var(--fdNavigation_Link_Border_Color_Selected)}.fd-navigation.fd-navigation--horizontal .fd-navigation__list{--fdNavigation_Item_Spacing:.5rem}.fd-navigation[class*=-compact],[class*=-compact] .fd-navigation:not([class*=-cozy]){--fdNavigation_Link_Min_Height:2rem;--fdNavigation_Controls_Width:2rem;--fdNavigation_Controls_Height:1.5625rem}.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__item--disabled{opacity:.6;cursor:default}.fd-navigation__item--disabled .fd-navigation__link{pointer-events:none;-webkit-user-select:none;user-select:none}.fd-navigation__item--disabled .fd-navigation__has-children-indicator{pointer-events:none;cursor:default}.fd-navigation__item--disabled:hover{background:transparent}.fd-navigation__list-item--spacer--hidden{display:none!important}.fd-navigation .fd-navigation__list-item--home-without-separator{margin-bottom:.125rem}.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}.fd-navigation__item .fd-popover-custom{max-width:none}.fd-navigation__item.fd-navigation__item--title .fd-navigation__has-children-indicator{display:none}.fd-navigation__item .fd-navigation__icon,.fd-navigation__item .fd-navigation__text{font-family:var(--sapFontSemiboldDuplexFamily)}.fd-navigation__item.fd-navigation__item--child .fd-navigation__icon,.fd-navigation__item.fd-navigation__item--child .fd-navigation__text{font-family:var(--sapFontFamily)}.fd-navigation.fd-navigation--expanded{width:16rem;min-width:16rem;max-width:16rem}.fd-navigation.fd-navigation--expanded .fd-navigation__item:not(.fd-navigation__item--create) .fd-navigation__text{white-space:normal}.fd-popover__body.fd-navigation__list-container.fd-navigation__list-wrapper{max-width:40rem}.fd-navigation__text{margin-block:.5rem}.fd-navigation.fd-navigation--vertical.fd-navigation--popup{--fdNavigation_Border_Radius: 0;--fdNavigation_Box_Shadow: none;--fdNavigation_Height: 100%}.fd-navigation.is-overlay{position:absolute;top:0;left:0}.fd-navigation.fd-navigation--expanded.is-overlay{position:absolute;top:0;left:0;right:0;width:100%;min-width:100%;max-width:100%}.fd-navigation__item.fd-navigation__item--create .fd-navigation__link{border:none;box-shadow:0 0 0 var(--sapButton_BorderWidth) var(--fdNavigation_Quick_Create_Border_Color)}.fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{left:auto}.fd-navigation__list.fd-menu__list.fd-navigation__list--parent-items .fd-navigation__list-item.fd-navigation__list-item--separator:is(:first-child,:last-child){height:0;min-height:0;max-height:0}.fd-navigation__container.fd-navigation__container--bottom:before{display:flex;margin-block:0 .25rem}[dir=rtl] .fd-navigation__item--with-expander .fd-navigation__has-children-indicator{left:var(--fdNavigation_Link_Has_Child_Indicator_Pos_Right, .375rem);right:auto}[dir=rtl] .fd-navigation__item--with-expander .fd-navigation__has-children-indicator:after{right:-.25rem;left:auto}[dir=rtl] .fd-navigation__has-children-indicator:before{--fdNavigation_Link_Has_Child_Indicator_Icon: \\\"\\\\e1ee\\\"}[dir=rtl] .fd-navigation--snapped .fd-navigation__list-container.fd-navigation__list-container--menu{right:auto}[dir=rtl] .fd-navigation__item[aria-expanded=true] .fd-navigation__has-children-indicator:before{--fdNavigation_Link_Has_Child_Indicator_Icon: \\\"\\\\e1ef\\\"}[dir=rtl] .fd-navigation.fd-navigation--snapped .fd-navigation__has-children-indicator:before{--fdNavigation_Link_Has_Child_Indicator_Icon: \\\"\\\\e1ee\\\"}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/navigation.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { class: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.aria-label']\n }], ariaRoleDescription: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['attr.aria-roledescription']\n }], mode: [{\n type: Input\n }], isOverlay: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], state: [{\n type: Input\n }], type: [{\n type: Input\n }], selectionMode: [{\n type: Input\n }], _navigationItemRef: [{\n type: ContentChild,\n args: [NavigationListItemRefDirective]\n }], _navigationItems: [{\n type: ContentChildren,\n args: [FdbNavigationListItem, { descendants: true }]\n }], buildComponentCssClass: [], _keyDownHandler: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQW1CLE9BQU8sRUFBWSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFtQnRFLE1BQU0sT0FBTyxtQkFDVCxTQUFRLGFBQWE7SUFpQ3JCOztPQUVHO0lBQ0gsSUFDSSxLQUFLLENB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QUFLO3NCQURSLEtBQUs7Z0JBWU4sSUFBSTtzQkFESCxLQUFLO2dCQVNOLGFBQWE7c0JBRFosS0FBSztnQkFLRixrQkFBa0I7c0JBRHJCLFlBQVk7dUJBQUMsOEJBQThCO2dCQU8zQixnQkFBZ0I7c0JBRGhDLGVBQWU7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQXVEN0Qsc0JBQXNCLE1Ba0J0QixlQUFlO3NCQURkLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgVVBfQVJST1cgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmRiVmlld01vZGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2J0cC9zaGFyZWQnO1xuaW1wb3J0IHsgQ3NzQ2xhc3NCdWlsZGVyLCBLZXlVdGlsLCBOdWxsYWJsZSwgYXBwbHlDc3NDbGFzcyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvbmF2aWdhdGlvbi1saXN0LWl0ZW0tcmVmLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY2xhc3MnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9uYXZpZ2F0aW9uLmNsYXNzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25TdGF0ZSwgRmRiTmF2aWdhdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbmF2aWdhdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRiLW5hdmlnYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZkYk5hdmlnYXRpb24sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkNvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICduYXZpZ2F0aW9uJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkNvbXBvbmVudFxuICAgIGV4dGVuZHMgRmRiTmF2aWdhdGlvblxuICAgIGltcGxlbWVudHMgQ3NzQ2xhc3NCdWlsZGVyLCBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBhcmlhLWxhYmVsIGZvciB0aGUgbmF2aWdhdGlvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJylcbiAgICBhcmlhTGFiZWw6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogYXJpYS1yb2xlZGVzY3JpcHRpb24gZm9yIHRoZSBuYXZpZ2F0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uJylcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIE5hdmlnYXRpb24gbW9kZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG1vZGU6IEZkYlZpZXdNb2RlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBuYXZpZ2F0aW9uIGlzIHJlbmRlcmVkIGFzIGFuIG92ZXJsYXkuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgaXNPdmVybGF5ID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBOYXZpZ2F0aW9uIHN0YXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXRlKHZhbHVlOiBGZGJOYXZpZ2F0aW9uU3RhdGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSQuc2V0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHN0YXRlKCk6IEZkYk5hdmlnYXRpb25TdGF0ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlJCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5hdmlnYXRpb24gdHlwZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHR5cGU6IEZkYk5hdmlnYXRpb25UeXBlID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKlxuICAgICAqIFNlbGVjdGlvbiBtb2RlIGZvciBuYXZpZ2F0aW9uIGl0ZW1zLlxuICAgICAqIC0gJ3JvdXRlcic6IFNlbGVjdGlvbiBpcyBoYW5kbGVkIGJ5IHJvdXRlciBsaW5rIGFjdGl2YXRpb24gKGRlZmF1bHQpXG4gICAgICogLSAnY2xpY2snOiBTZWxlY3Rpb24gaXMgaGFuZGxlZCBieSBjbGljayBldmVudHNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbk1vZGU6ICdyb3V0ZXInIHwgJ2NsaWNrJyA9ICdyb3V0ZXInO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSlcbiAgICBzZXQgX25hdmlnYXRpb25JdGVtUmVmKHZhbHVlOiBOdWxsYWJsZTxOYXZpZ2F0aW9uTGlzdEl0ZW1SZWZEaXJlY3RpdmU+KSB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtUmVuZGVyZXIuc2V0KHZhbHVlIHx8IG51bGwpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0sIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uSXRlbXM6IFF1ZXJ5TGlzdDxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+O1xuXG4gICAgLyoqXG4gICAgICogU3RhdGUgc2lnbmFsLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0YXRlJCA9IHNpZ25hbDxGZGJOYXZpZ2F0aW9uU3RhdGU+KCdleHBhbmRlZCcpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgbmF2aWdhdGlvbiBpcyBpbiBzbmFwcGVkIG1vZGUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXNTbmFwcGVkJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdGUkKCkgPT09ICdzbmFwcGVkJyk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIHNob3cgXCJNb3JlXCIgYnV0dG9uLiBBcHBsaWNhYmxlIGZvciBgc25hcHBlZGAgc3RhdGUgb25seS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzaG93TW9yZUJ1dHRvbiQgPSBzaWduYWw8TnVsbGFibGU8RmRiTmF2aWdhdGlvbkxpc3RJdGVtPj4obnVsbCk7XG5cbiAgICAvKipcbiAgICAgKiBTaWduYWwgZm9yIG5hdmlnYXRpb24gY2xhc3NMaXN0LlxuICAgICAqIFVzZWQgYnkgcG9wb3Zlci1iYXNlZCBzdWJtZW51cy5cbiAgICAgKi9cbiAgICByZWFkb25seSBjbGFzc0xpc3QkID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogTmF2aWdhdGlvbiBzZXJ2aWNlIGZvciBtYW5hZ2luZyBzZWxlY3Rpb24gc3RhdGUuICovXG4gICAgcmVhZG9ubHkgc2VydmljZSA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9uYXZpZ2F0aW9uSXRlbVJlbmRlcmVyID0gc2lnbmFsPE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIFN0cmVhbSBub3RpZmllcyB0byBjbG9zZSBhbGwgcG9wdXBzIGluIGNoaWxkIGxpc3QgaXRlbXMuICovXG4gICAgcmVhZG9ubHkgY2xvc2VBbGxQb3B1cHMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3SW5pdGlhdGVkJCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2tleU1hbmFnZXI6IEZvY3VzS2V5TWFuYWdlcjxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgLy8gV2hlbiBzaG93IG1vcmUgYnV0dG9uIGlzIHNob3duLCByZXNldCBpdGVtcyBsaXN0IHdpdGggYWRkZWQgXCJNb3JlIGJ1dHRvblwiLlxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3ZpZXdJbml0aWF0ZWQkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEl0ZW1zTGlzdCh0aGlzLnNob3dNb3JlQnV0dG9uJCgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICB0aGlzLmNsYXNzTGlzdCQuc2V0KFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIHRoaXMuY2xhc3MsXG4gICAgICAgICAgICAgICAgJ2ZkLW5hdmlnYXRpb24nLFxuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9PT0gJycgPyAnZmQtbmF2aWdhdGlvbi0tY29tcGFjdCcgOiAnJyxcbiAgICAgICAgICAgICAgICBgZmQtbmF2aWdhdGlvbi0tJHt0aGlzLnN0YXRlfWAsXG4gICAgICAgICAgICAgICAgdGhpcy5pc092ZXJsYXkgJiYgdGhpcy5zdGF0ZSA9PT0gJ2V4cGFuZGVkJyA/ICdpcy1vdmVybGF5JyA6ICcnXG4gICAgICAgICAgICBdLmZpbHRlcigoaykgPT4gISFrKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMuY2xhc3NMaXN0JCgpLCBgZmQtbmF2aWdhdGlvbi0tJHt0aGlzLnR5cGV9YF07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1haW4ga2V5Ym9hcmQgbmF2aWdhdGlvbiBoYW5kbGVyLlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9rZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIUtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbVVBfQVJST1csIERPV05fQVJST1ddKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyKHRoaXMuX25hdmlnYXRpb25JdGVtcylcbiAgICAgICAgICAgIC53aXRoVmVydGljYWxPcmllbnRhdGlvbigpXG4gICAgICAgICAgICAuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gIWl0ZW0uaXNWaXNpYmxlJCgpIHx8IGl0ZW0uc2tpcE5hdmlnYXRpb24pO1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oMCk7XG4gICAgICAgIHRoaXMuX3ZpZXdJbml0aWF0ZWQkLnNldCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBjdXJyZW50bHkgZm9jdXNlZCBsaXN0IGl0ZW0uXG4gICAgICovXG4gICAgZ2V0QWN0aXZlSXRlbSgpOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2tleU1hbmFnZXIuYWN0aXZlSXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGZvY3VzZWQgaXRlbS5cbiAgICAgKi9cbiAgICBzZXRBY3RpdmVJdGVtKGl0ZW06IEZkYk5hdmlnYXRpb25MaXN0SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIE5vdGlmaWVzIGNoaWxkIGxpc3QgaXRlbXMgdGhhdCBhbGwgcG9wdXBzIHNob3VsZCBiZSBjbG9zZWQuICovXG4gICAgY2xvc2VQb3B1cHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2VBbGxQb3B1cHMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gd2hlbiBpbiBjbGljayBzZWxlY3Rpb24gbW9kZS5cbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0sIG9yIG51bGwgaWYgbm9uZSBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBnZXRTZWxlY3RlZEl0ZW0oKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0U2VsZWN0ZWRJdGVtKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBzZWxlY3RlZCBpdGVtIHdoZW4gaW4gY2xpY2sgc2VsZWN0aW9uIG1vZGUuXG4gICAgICogQHBhcmFtIGl0ZW0gVGhlIGl0ZW0gdG8gc2VsZWN0LCBvciBudWxsIHRvIGNsZWFyIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3RlZEl0ZW0oaXRlbTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0U2VsZWN0ZWRJdGVtKGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIHRoZSBjdXJyZW50IHNlbGVjdGlvbiB3aGVuIGluIGNsaWNrIHNlbGVjdGlvbiBtb2RlLlxuICAgICAqL1xuICAgIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0U2VsZWN0ZWRJdGVtKG51bGwpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBhIG5hdmlnYXRpb24gaXRlbSBieSBpdHMgSUQuXG4gICAgICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgbmF2aWdhdGlvbiBpdGVtIHRvIGZpbmQuXG4gICAgICogQHJldHVybnMgVGhlIG5hdmlnYXRpb24gaXRlbSB3aXRoIHRoZSBzcGVjaWZpZWQgSUQsIG9yIG51bGwgaWYgbm90IGZvdW5kLlxuICAgICAqL1xuICAgIGdldE5hdmlnYXRpb25JdGVtQnlJZChpZDogc3RyaW5nKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLnRvQXJyYXkoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmRJdGVtQnlJZChpdGVtcywgaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgc2VsZWN0ZWQgaXRlbSBieSBpdHMgSUQgd2hlbiBpbiBjbGljayBzZWxlY3Rpb24gbW9kZS5cbiAgICAgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBuYXZpZ2F0aW9uIGl0ZW0gdG8gc2VsZWN0LlxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIGl0ZW0gd2FzIGZvdW5kIGFuZCBzZWxlY3RlZCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIHNldFNlbGVjdGVkSXRlbUJ5SWQoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXROYXZpZ2F0aW9uSXRlbUJ5SWQoaWQpO1xuICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5zZXRTZWxlY3RlZEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB0byBmaW5kIGFuIGl0ZW0gYnkgSUQgcmVjdXJzaXZlbHkgdGhyb3VnaCB0aGUgbmF2aWdhdGlvbiB0cmVlLlxuICAgICAqIEBwYXJhbSBpdGVtcyBBcnJheSBvZiBuYXZpZ2F0aW9uIGl0ZW1zIHRvIHNlYXJjaCB0aHJvdWdoLlxuICAgICAqIEBwYXJhbSBpZCBUaGUgSUQgdG8gc2VhcmNoIGZvci5cbiAgICAgKiBAcmV0dXJucyBUaGUgZm91bmQgaXRlbSBvciBudWxsLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZpbmRJdGVtQnlJZChpdGVtczogRmRiTmF2aWdhdGlvbkxpc3RJdGVtW10sIGlkOiBzdHJpbmcpOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW0gfCBudWxsIHtcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoaXRlbS5pZCgpID09PSBpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaXRlbS5saXN0SXRlbXMkKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkSXRlbXMgPSBpdGVtLmxpc3RJdGVtcyQoKS5maWx0ZXIoKGNoaWxkKTogY2hpbGQgaXMgRmRiTmF2aWdhdGlvbkxpc3RJdGVtID0+IGNoaWxkICE9PSBudWxsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZCA9IHRoaXMuX2ZpbmRJdGVtQnlJZChjaGlsZEl0ZW1zLCBpZCk7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgbGlzdCBvZiBpdGVtcy5cbiAgICAgKiBPcHRpb25hbGx5IGluc2VydHMgXCJNb3JlXCIgYnV0dG9uIGlmIG92ZXJmbG93IG1lbnUgc2hvdWxkIGJlIHJlbmRlcmVkLlxuICAgICAqIEBwYXJhbSBzaG93TW9yZUJ1dHRvbiBXaGV0aGVyIHRvIGFkZCBcIk1vcmVcIiBidXR0b24uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVzZXRJdGVtc0xpc3Qoc2hvd01vcmVCdXR0b246IE51bGxhYmxlPEZkYk5hdmlnYXRpb25MaXN0SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBbLi4udGhpcy5fbmF2aWdhdGlvbkl0ZW1zLnRvQXJyYXkoKV07XG4gICAgICAgIGNvbnN0IHNob3dNb3JlQnV0dG9uSW5kZXggPSBpdGVtcy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0udHlwZSA9PT0gJ3Nob3dNb3JlJyk7XG4gICAgICAgIGlmICghc2hvd01vcmVCdXR0b24pIHtcbiAgICAgICAgICAgIGlmIChzaG93TW9yZUJ1dHRvbkluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaXRlbXMuc3BsaWNlKHNob3dNb3JlQnV0dG9uSW5kZXgsIDEpO1xuXG4gICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uSXRlbXMucmVzZXQoaXRlbXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNob3dNb3JlQnV0dG9uSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRmluZCBsYXN0IGxpc3QgaXRlbSBmcm9tIHRoZSBgU3RhcnRgIGNvbnRhaW5lci5cbiAgICAgICAgICAgIGNvbnN0IGluc2VydGlvbkluZGV4ID0gaXRlbXMuZmluZEluZGV4KChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdEl0ZW1zID0gaXRlbS5wbGFjZW1lbnRDb250YWluZXI/Lmxpc3RJdGVtcyQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWxpc3RJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucGxhY2VtZW50Q29udGFpbmVyPy5wbGFjZW1lbnQgPT09ICdzdGFydCcgJiYgbGlzdEl0ZW1zW2xpc3RJdGVtcy5sZW5ndGggLSAxXSA9PT0gaXRlbTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaW5zZXJ0aW9uSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpdGVtcy5zcGxpY2UoaW5zZXJ0aW9uSW5kZXgsIDAsIHNob3dNb3JlQnV0dG9uKTtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5yZXNldChpdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=","import { BaseDataSource, DataProvider, isDataSource } from '@fundamental-ngx/cdk/data-source';\nimport { isObservable } from 'rxjs';\nexport class FdbNavigationDataSource extends BaseDataSource {\n /** @hidden */\n constructor(dataProvider) {\n super(dataProvider);\n this.dataProvider = dataProvider;\n /** @hidden */\n this.limitless = false;\n }\n}\nexport class ArrayNavigationDataSource extends FdbNavigationDataSource {\n /** @hidden */\n constructor(data) {\n super(new DataProvider(data));\n }\n}\nexport class ObservableNavigationDataSDataSource extends FdbNavigationDataSource {\n /** @hidden */\n constructor(data) {\n super(new DataProvider(data));\n }\n}\nexport class NavigationDataSourceParser {\n /**\n * Transforms plain array or observable into DataSource class.\n * @param source\n */\n parse(source) {\n if (isDataSource(source)) {\n return source;\n }\n if (Array.isArray(source)) {\n return new ArrayNavigationDataSource(source);\n }\n if (isObservable(source)) {\n return new ObservableNavigationDataSDataSource(source);\n }\n return undefined;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9tb2RlbHMvbmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxjQUFjLEVBQ2QsWUFBWSxFQUVaLFlBQVksRUFDZixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFPaEQsTUFBTSxPQUFPLHVCQUE0RCxTQUFRLGNBQWlCO0lBRzlGLGNBQWM7SUFDZCxZQUFtQixZQUFxQztRQUNwRCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFETCxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFIeEQsY0FBYztRQUNkLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFJbEIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHlCQUE4RCxTQUFRLHVCQUEwQjtJQUN6RyxjQUFjO0lBQ2QsWUFBWSxJQUFTO1FBQ2pCLEtBQUssQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxtQ0FFWCxTQUFRLHVCQUEwQjtJQUNoQyxjQUFjO0lBQ2QsWUFBWSxJQUFxQjtRQUM3QixLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBQ0o7QUFVRCxNQUFNLE9BQU8sMEJBQTBCO0lBR25DOzs7T0FHRztJQUNILEtBQUssQ0FBQyxNQUFpRDtRQUNuRCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sTUFBb0MsQ0FBQztRQUNoRCxDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLHlCQUF5QixDQUFJLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxtQ0FBbUMsQ0FBSSxNQUFNLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBYnN0cmFjdERhdGFQcm92aWRlcixcbiAgICBCYXNlRGF0YVNvdXJjZSxcbiAgICBEYXRhUHJvdmlkZXIsXG4gICAgRGF0YVNvdXJjZVBhcnNlcixcbiAgICBpc0RhdGFTb3VyY2Vcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICAgIHBsYWNlbWVudDogJ3N0YXJ0JyB8ICdlbmQnO1xuICAgIGNoaWxkcmVuPzogTmF2aWdhdGlvbkRhdGFTb3VyY2VJdGVtPFQ+W107XG59ICYgVDtcblxuZXhwb3J0IGNsYXNzIEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQgZXh0ZW5kcyBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW0+IGV4dGVuZHMgQmFzZURhdGFTb3VyY2U8VD4ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbGltaXRsZXNzID0gZmFsc2U7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YVByb3ZpZGVyOiBBYnN0cmFjdERhdGFQcm92aWRlcjxUPikge1xuICAgICAgICBzdXBlcihkYXRhUHJvdmlkZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFycmF5TmF2aWdhdGlvbkRhdGFTb3VyY2U8VCBleHRlbmRzIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbT4gZXh0ZW5kcyBGZGJOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBUW10pIHtcbiAgICAgICAgc3VwZXIobmV3IERhdGFQcm92aWRlcihkYXRhKSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2JzZXJ2YWJsZU5hdmlnYXRpb25EYXRhU0RhdGFTb3VyY2U8XG4gICAgVCBleHRlbmRzIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbVxuPiBleHRlbmRzIEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQ+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IE9ic2VydmFibGU8VFtdPikge1xuICAgICAgICBzdXBlcihuZXcgRGF0YVByb3ZpZGVyKGRhdGEpKTtcbiAgICB9XG59XG5cbi8qKlxuICogVHlwZSBvZiBhY2NlcHRhYmxlIG9iamVjdHMgYXMgYSBkYXRhc291cmNlIGZvciB0aGUgTmF2aWdhdGlvbiBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIEZkYk5hdmlnYXRpb25EYXRhU0FjY2VwdGFibGVEYXRhU291cmNlPFQgZXh0ZW5kcyBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW0+ID1cbiAgICB8IEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQ+XG4gICAgfCBPYnNlcnZhYmxlPFRbXT5cbiAgICB8IFRbXTtcblxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25EYXRhU291cmNlUGFyc2VyPFQgZXh0ZW5kcyBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW0+XG4gICAgaW1wbGVtZW50cyBEYXRhU291cmNlUGFyc2VyPFQsIEZkYk5hdmlnYXRpb25EYXRhU291cmNlPFQ+Plxue1xuICAgIC8qKlxuICAgICAqIFRyYW5zZm9ybXMgcGxhaW4gYXJyYXkgb3Igb2JzZXJ2YWJsZSBpbnRvIERhdGFTb3VyY2UgY2xhc3MuXG4gICAgICogQHBhcmFtIHNvdXJjZVxuICAgICAqL1xuICAgIHBhcnNlKHNvdXJjZTogRmRiTmF2aWdhdGlvbkRhdGFTQWNjZXB0YWJsZURhdGFTb3VyY2U8VD4pOiBGZGJOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChpc0RhdGFTb3VyY2Uoc291cmNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBGZGJOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQXJyYXlOYXZpZ2F0aW9uRGF0YVNvdXJjZTxUPihzb3VyY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVOYXZpZ2F0aW9uRGF0YVNEYXRhU291cmNlPFQ+KHNvdXJjZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==","import { Directive } from '@angular/core';\nimport { DataSourceDirective, FD_DATA_SOURCE_TRANSFORMER } from '@fundamental-ngx/cdk/data-source';\nimport { NavigationDataSourceParser } from '../models/navigation-data-source-item.model';\nimport * as i0 from \"@angular/core\";\nexport class NavigationListDataSourceDirective extends DataSourceDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListDataSourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: NavigationListDataSourceDirective, isStandalone: true, selector: \"fdb-navigation[dataSource]\", providers: [\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: NavigationDataSourceParser\n }\n ], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: NavigationListDataSourceDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fdb-navigation[dataSource]',\n standalone: true,\n providers: [\n {\n provide: FD_DATA_SOURCE_TRANSFORMER,\n useClass: NavigationDataSourceParser\n }\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saXN0LWRhdGEtc291cmNlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkcsT0FBTyxFQUdILDBCQUEwQixFQUM3QixNQUFNLDZDQUE2QyxDQUFDOztBQWFyRCxNQUFNLE9BQU8saUNBQWlFLFNBQVEsbUJBR3JGOzhHQUhZLGlDQUFpQztrR0FBakMsaUNBQWlDLHlFQVAvQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSwwQkFBMEI7Z0JBQ25DLFFBQVEsRUFBRSwwQkFBMEI7YUFDdkM7U0FDSjs7MkZBRVEsaUNBQWlDO2tCQVg3QyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxRQUFRLEVBQUUsMEJBQTBCO3lCQUN2QztxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURpcmVjdGl2ZSwgRkRfREFUQV9TT1VSQ0VfVFJBTlNGT1JNRVIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1xuICAgIEZkYk5hdmlnYXRpb25EYXRhU291cmNlLFxuICAgIE5hdmlnYXRpb25EYXRhU291cmNlSXRlbSxcbiAgICBOYXZpZ2F0aW9uRGF0YVNvdXJjZVBhcnNlclxufSBmcm9tICcuLi9tb2RlbHMvbmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2ZkYi1uYXZpZ2F0aW9uW2RhdGFTb3VyY2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9EQVRBX1NPVVJDRV9UUkFOU0ZPUk1FUixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBOYXZpZ2F0aW9uRGF0YVNvdXJjZVBhcnNlclxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTGlzdERhdGFTb3VyY2VEaXJlY3RpdmU8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+IGV4dGVuZHMgRGF0YVNvdXJjZURpcmVjdGl2ZTxcbiAgICBOYXZpZ2F0aW9uRGF0YVNvdXJjZUl0ZW08VD4sXG4gICAgRmRiTmF2aWdhdGlvbkRhdGFTb3VyY2U8TmF2aWdhdGlvbkRhdGFTb3VyY2VJdGVtPFQ+PlxuPiB7fVxuIl19","import { NavigationContentEndComponent } from './components/navigation-end/navigation-content-end.component';\nimport { NavigationListItemComponent } from './components/navigation-item/navigation-list-item.component';\nimport { NavigationLinkComponent, NavigationLinkRefDirective } from './components/navigation-link/navigation-link.component';\nimport { NavigationContentStartComponent } from './components/navigation-start/navigation-content-start.component';\nimport { NavigationComponent } from './components/navigation/navigation.component';\nimport { NavigationListDataSourceDirective } from './directives/navigation-list-data-source.directive';\nimport { NavigationListItemRefDirective } from './directives/navigation-list-item-ref.directive';\nexport * from './components/navigation-end/navigation-content-end.component';\nexport * from './components/navigation-item/navigation-list-item.component';\nexport * from './components/navigation-link/navigation-link.component';\nexport * from './components/navigation-start/navigation-content-start.component';\nexport * from './components/navigation/navigation.component';\nexport * from './directives/navigation-list-data-source.directive';\nexport * from './directives/navigation-list-item-ref.directive';\nexport * from './models/navigation-content-container.class';\nexport * from './models/navigation-data-source-item.model';\nexport * from './models/navigation-list-item.class';\nexport * from './models/navigation.types';\nexport * from './components/navigation-list/navigation-list.component';\nexport * from './components/navigation-more-button/navigation-more-button.component';\nexport const FDB_NAVIGATION = [\n NavigationComponent,\n NavigationContentStartComponent,\n NavigationContentEndComponent,\n NavigationLinkComponent,\n NavigationLinkRefDirective,\n NavigationListItemComponent,\n NavigationListItemRefDirective,\n NavigationListDataSourceDirective\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9uYXZpZ2F0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzFHLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsMEJBQTBCLEVBQzdCLE1BQU0sd0RBQXdELENBQUM7QUFDaEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFakcsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyxzRUFBc0UsQ0FBQztBQUVyRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsbUJBQW1CO0lBQ25CLCtCQUErQjtJQUMvQiw2QkFBNkI7SUFDN0IsdUJBQXVCO0lBQ3ZCLDBCQUEwQjtJQUMxQiwyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLGlDQUFpQztDQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRlbnRFbmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1lbmQvbmF2aWdhdGlvbi1jb250ZW50LWVuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdmlnYXRpb24taXRlbS9uYXZpZ2F0aW9uLWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBOYXZpZ2F0aW9uTGlua0NvbXBvbmVudCxcbiAgICBOYXZpZ2F0aW9uTGlua1JlZkRpcmVjdGl2ZVxufSBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1saW5rL25hdmlnYXRpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLXN0YXJ0L25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0RGF0YVNvdXJjZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL25hdmlnYXRpb24tZW5kL25hdmlnYXRpb24tY29udGVudC1lbmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWl0ZW0vbmF2aWdhdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uLWxpbmsvbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1zdGFydC9uYXZpZ2F0aW9uLWNvbnRlbnQtc3RhcnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtZGF0YS1zb3VyY2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1yZWYuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24tY29udGVudC1jb250YWluZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvbmF2aWdhdGlvbi1kYXRhLXNvdXJjZS1pdGVtLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24tbGlzdC1pdGVtLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hdmlnYXRpb24udHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1saXN0L25hdmlnYXRpb24tbGlzdC5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbmF2aWdhdGlvbi1tb3JlLWJ1dHRvbi9uYXZpZ2F0aW9uLW1vcmUtYnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjb25zdCBGREJfTkFWSUdBVElPTiA9IFtcbiAgICBOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgIE5hdmlnYXRpb25Db250ZW50U3RhcnRDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbkNvbnRlbnRFbmRDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQsXG4gICAgTmF2aWdhdGlvbkxpbmtSZWZEaXJlY3RpdmUsXG4gICAgTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50LFxuICAgIE5hdmlnYXRpb25MaXN0SXRlbVJlZkRpcmVjdGl2ZSxcbiAgICBOYXZpZ2F0aW9uTGlzdERhdGFTb3VyY2VEaXJlY3RpdmVcbl0gYXMgY29uc3Q7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWJ0cC1uYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9idHAvbmF2aWdhdGlvbi9mdW5kYW1lbnRhbC1uZ3gtYnRwLW5hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["RtlService","KeyUtil","i1"],"mappings":"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"}