{"version":3,"file":"fundamental-ngx-core-vertical-navigation.mjs","sources":["../../../../libs/core/vertical-navigation/vertical-navigation-group-header.directive.ts","../../../../libs/core/vertical-navigation/vertical-navigation-main-navigation.component.ts","../../../../libs/core/vertical-navigation/vertical-navigation.component.ts","../../../../libs/core/vertical-navigation/vertical-navigation.component.html","../../../../libs/core/vertical-navigation/vertical-navigation.module.ts","../../../../libs/core/vertical-navigation/fundamental-ngx-core-vertical-navigation.ts"],"sourcesContent":["import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n    selector: '[fdVerticalNavigationGroupHeader], [fd-vertical-navigation-group-header]',\n    standalone: true\n})\nexport class VerticalNavigationGroupHeaderDirective {\n    /** @hidden */\n    @HostBinding('class.fd-vertical-nav__group-header')\n    fdVerticalNavigationGroupHeaderClass = true;\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, ViewEncapsulation } from '@angular/core';\nimport { FD_LIST_COMPONENT, ListComponent } from '@fundamental-ngx/core/list';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n    selector: 'fd-vertical-navigation-main-navigation',\n    template: `<nav\n        [attr.aria-label]=\"('coreNavigation.mainNavigation' | fdTranslate)()\"\n        class=\"fd-vertical-nav__main-navigation\"\n    >\n        <ng-content></ng-content>\n    </nav>`,\n    styleUrl: './vertical-navigation.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [FdTranslatePipe]\n})\nexport class VerticalNavigationMainNavigationComponent {\n    /** @hidden */\n    @ContentChild(FD_LIST_COMPONENT)\n    _list: ListComponent;\n}\n","import { FocusKeyManager } from '@angular/cdk/a11y';\nimport {\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChildren,\n    DestroyRef,\n    HostListener,\n    Input,\n    OnDestroy,\n    QueryList,\n    ViewEncapsulation,\n    effect,\n    inject,\n    signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { ListComponent, ListNavigationItemComponent } from '@fundamental-ngx/core/list';\nimport { Subject, delay, map, merge, startWith, takeUntil } from 'rxjs';\nimport { VerticalNavigationMainNavigationComponent } from './vertical-navigation-main-navigation.component';\n\n/**\n * @deprecated use the (btp)vertical navigation component instead.\n * The side-navigation is a wrapping component representing\n * a left navigation that can always display or expand/collapse using the menu icon within the global navigation.\n */\n@Component({\n    selector: 'fd-vertical-navigation',\n    templateUrl: './vertical-navigation.component.html',\n    styleUrl: './vertical-navigation.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [VerticalNavigationMainNavigationComponent, ListComponent]\n})\nexport class VerticalNavigationComponent implements AfterContentInit, OnDestroy {\n    /** Whether or not this component is to be shown in 'condensed' mode. */\n    @Input()\n    set condensed(value: boolean) {\n        this._condensed.set(value);\n    }\n\n    get condensed(): boolean {\n        return this._condensed();\n    }\n\n    /** @hidden */\n    @ContentChildren(ListNavigationItemComponent, { descendants: true })\n    private readonly _navigationItems: QueryList<ListNavigationItemComponent>;\n\n    /** @hidden\n     * Querylist of list-items in main navigation.\n     */\n    @ContentChildren(ListNavigationItemComponent)\n    private set _mainItems(items: QueryList<ListNavigationItemComponent>) {\n        this._mainNavItems.set(items?.toArray() ?? []);\n    }\n\n    /** @hidden */\n    private _keyManager: FocusKeyManager<ListNavigationItemComponent>;\n\n    /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)  */\n    private readonly _destroyRef = inject(DestroyRef);\n\n    /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing)  */\n    private readonly _onRefresh$ = new Subject<void>();\n\n    /** @hidden */\n    private readonly _condensed = signal(false);\n\n    /** @hidden */\n    private readonly _contentInited = signal(false);\n\n    /** @hidden */\n    private readonly _mainNavItems = signal<ListNavigationItemComponent[]>([]);\n\n    /** @hidden */\n    constructor() {\n        effect(() => {\n            if (!this._contentInited()) {\n                return;\n            }\n\n            const isCondensed = this._condensed();\n\n            this._mainNavItems().forEach((item) => {\n                item._condensed.set(isCondensed);\n            });\n        });\n    }\n\n    /** @hidden */\n    @HostListener('keydown', ['$event'])\n    keyDownHandler(event: KeyboardEvent): void {\n        this._keyManager.onKeydown(event);\n        event.stopPropagation();\n    }\n\n    /** @hidden */\n    ngAfterContentInit(): void {\n        this._contentInited.set(true);\n\n        this._keyManager?.destroy();\n        this._keyManager = new FocusKeyManager(this._navigationItems)\n            .withHomeAndEnd()\n            .skipPredicate((item) => !item._isItemVisible || (item._condensed() && item.expanded));\n        this._listenOnQueryChange();\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._keyManager?.destroy();\n        this._onRefresh$.next();\n        this._onRefresh$.complete();\n    }\n\n    /** Set fake focus on element with passed index */\n    setItemActive(index: number, updateOnly = false): void {\n        if (updateOnly) {\n            this._keyManager.updateActiveItem(index);\n        } else {\n            this._keyManager.setActiveItem(index);\n        }\n    }\n\n    /** @hidden */\n    private _listenOnQueryChange(): void {\n        this._navigationItems.changes\n            .pipe(delay(0), startWith(0), takeUntilDestroyed(this._destroyRef))\n            .subscribe(() => {\n                this._listenOnItemsClick();\n                setTimeout(() => {\n                    // using setTimeout to avoid ExpressionChangedAfterItHasBeenCheckedError\n                    this._navigationItems.forEach((navItem, index) => {\n                        index !== 0 && (navItem._tabIndex = -1);\n                    });\n                });\n            });\n    }\n\n    /** @hidden */\n    private _listenOnItemsClick(): void {\n        /** Finish all the streams, from before */\n        this._onRefresh$.next();\n\n        /** Merge refresh/destroy observables */\n        const completion$ = merge(this._onRefresh$, destroyObservable(this._destroyRef));\n        const interactionChangesIndexes = this._navigationItems.map((item, index) =>\n            merge(\n                item._clicked$.pipe(map(() => ({ index, updateOnly: false }))),\n                item._focused$.pipe(map((focusedOn) => ({ index, updateOnly: focusedOn })))\n            )\n        );\n        merge(...interactionChangesIndexes)\n            .pipe(takeUntil(completion$))\n            .subscribe(({ index, updateOnly }) => this.setItemActive(index, updateOnly));\n    }\n}\n","<div class=\"fd-vertical-nav\" [class.fd-vertical-nav--condensed]=\"condensed\">\n    <fd-vertical-navigation-main-navigation>\n        <ul fd-list role=\"tree\">\n            <ng-content></ng-content>\n        </ul>\n    </fd-vertical-navigation-main-navigation>\n</div>\n","import { NgModule } from '@angular/core';\nimport { VerticalNavigationGroupHeaderDirective } from './vertical-navigation-group-header.directive';\nimport { VerticalNavigationMainNavigationComponent } from './vertical-navigation-main-navigation.component';\nimport { VerticalNavigationComponent } from './vertical-navigation.component';\n\nconst components = [\n    VerticalNavigationComponent,\n    VerticalNavigationMainNavigationComponent,\n    VerticalNavigationGroupHeaderDirective\n];\n\n/**\n * @deprecated\n * Use direct imports of `VerticalNavigationComponent`, `VerticalNavigationMainNavigationComponent`, `VerticalNavigationGroupHeaderDirective`\n */\n@NgModule({\n    imports: [...components],\n    exports: [...components]\n})\nexport class VerticalNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}