{"version":3,"file":"koobiq-components-navbar-ic.mjs","sources":["../../../packages/components/navbar-ic/navbar-ic.animation.ts","../../../packages/components/navbar-ic/navbar-ic-item.ts","../../../packages/components/navbar-ic/navbar-ic-item.html","../../../packages/components/navbar-ic/navbar-ic.ts","../../../packages/components/navbar-ic/navbar-ic-header.ts","../../../packages/components/navbar-ic/navbar-ic.module.ts","../../../packages/components/navbar-ic/koobiq-components-navbar-ic.ts"],"sourcesContent":["import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\nexport function toggleNavbarIcAnimation(): AnimationTriggerMetadata {\n    return trigger('toggle', [\n        state('0', style({ width: '64px' })),\n        state('1', style({ width: '240px' })),\n        transition('0 <=> 1', animate('200ms cubic-bezier(0.4, 0, 0.2, 1)'))\n    ]);\n}\n\nexport function toggleNavbarIcItemAnimation(): AnimationTriggerMetadata {\n    return trigger('toggle', [\n        state('expanded', style({ opacity: 1, marginLeft: 0 })),\n        state('collapsed', style({ opacity: 0, marginLeft: '-8px' })),\n        transition('collapsed => expanded', animate('200ms 150ms cubic-bezier(0.4, 0, 0.2, 1)')),\n        transition('expanded => collapsed', animate('200ms cubic-bezier(0.4, 0, 0.2, 1)'))\n    ]);\n}\n","import { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n    AfterContentInit,\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    Directive,\n    ElementRef,\n    inject,\n    Input,\n    NgZone,\n    OnDestroy,\n    ViewEncapsulation\n} from '@angular/core';\nimport { IFocusableOption } from '@koobiq/cdk/a11y';\nimport { ENTER, RIGHT_ARROW, SPACE } from '@koobiq/cdk/keycodes';\nimport { KbqButton, KbqButtonCssStyler } from '@koobiq/components/button';\nimport {\n    KBQ_WINDOW,\n    kbqInjectNativeElement,\n    KbqRectangleItem,\n    PopUpPlacements,\n    PopUpTriggers\n} from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqFormField } from '@koobiq/components/form-field';\nimport { KbqIcon } from '@koobiq/components/icon';\nimport { KbqTooltipTrigger, TooltipModifier } from '@koobiq/components/tooltip';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { KbqNavbarIc } from './navbar-ic';\nimport { toggleNavbarIcItemAnimation } from './navbar-ic.animation';\n\n/**\n * The maximum number of characters that can be placed in a title without being wrapped.\n */\nexport const kbqMaxSymbolsInHeaderTitle = 22;\n\nexport interface KbqNavbarFocusableItemEvent {\n    item: KbqNavbarIcFocusableItem;\n}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Directive({\n    selector: '[kbqNavbarIcLogo]',\n    host: {\n        class: 'kbq-navbar-ic-logo'\n    }\n})\nexport class KbqNavbarIcLogo {}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Directive({\n    selector: '[kbqNavbarIcTitle]',\n    host: {\n        class: 'kbq-navbar-ic-title',\n        '[class.kbq-navbar-ic-title_text-overflown]': 'isTextOverflown',\n\n        '(mouseenter)': 'hovered.next(true)',\n        '(mouseleave)': 'hovered.next(false)'\n    }\n})\nexport class KbqNavbarIcTitle implements AfterViewInit {\n    protected readonly isBrowser = inject(Platform).isBrowser;\n    protected readonly nativeElement = kbqInjectNativeElement();\n    private readonly window = inject(KBQ_WINDOW);\n\n    readonly hovered = new Subject<boolean>();\n\n    outerElementWidth: number;\n    isTextOverflown: boolean = false;\n\n    get text(): string {\n        return this.nativeElement.textContent || '';\n    }\n\n    get isOverflown() {\n        return this.nativeElement.scrollWidth > this.nativeElement.clientWidth;\n    }\n\n    ngAfterViewInit(): void {\n        this.outerElementWidth = this.getOuterElementWidth();\n\n        this.checkTextOverflown();\n    }\n\n    getOuterElementWidth(): number {\n        if (!this.isBrowser) return 0;\n\n        const { width, marginLeft, marginRight } = this.window.getComputedStyle(this.nativeElement);\n\n        return [width, marginLeft, marginRight].reduce((acc, item) => acc + parseInt(item) || 0, 0);\n    }\n\n    checkTextOverflown() {\n        this.isTextOverflown = this.text.length > kbqMaxSymbolsInHeaderTitle;\n    }\n}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Directive({\n    selector: '[kbqNavbarIcDivider]',\n    host: {\n        class: 'kbq-navbar-ic-divider'\n    }\n})\nexport class KbqNavbarIcDivider {}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Directive({\n    selector:\n        'kbq-navbar-ic-item, [kbq-navbar-ic-item], kbq-navbar-ic-header, [kbq-navbar-ic-header], kbq-navbar-ic-toggle',\n    host: {\n        '[attr.tabindex]': '-1',\n        '[attr.disabled]': 'disabled || null',\n\n        class: 'kbq-navbar-ic-focusable-item',\n        '[class.kbq-disabled]': 'disabled',\n\n        '(focus)': 'focusHandler()',\n        '(blur)': 'blurHandler()'\n    }\n})\nexport class KbqNavbarIcFocusableItem implements AfterContentInit, AfterViewInit, OnDestroy, IFocusableOption {\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    protected readonly changeDetector = inject(ChangeDetectorRef);\n    protected readonly focusMonitor = inject(FocusMonitor);\n    protected readonly ngZone = inject(NgZone);\n\n    /** @docs-private */\n    @ContentChild(KbqNavbarIcTitle) title: KbqNavbarIcTitle;\n    /** @docs-private */\n    @ContentChild(KbqButton) button: KbqButton;\n    /** @docs-private */\n    @ContentChild(KbqFormField) formField: KbqFormField;\n\n    get tooltip(): KbqTooltipTrigger {\n        return this._tooltip;\n    }\n\n    private _tooltip: KbqTooltipTrigger;\n\n    readonly onFocus = new Subject<KbqNavbarFocusableItemEvent>();\n\n    readonly onBlur = new Subject<KbqNavbarFocusableItemEvent>();\n\n    get hasFocus(): boolean {\n        return this._hasFocus;\n    }\n\n    set hasFocus(value: boolean) {\n        this._hasFocus = value;\n    }\n\n    private _hasFocus: boolean = false;\n\n    /** Whether the item is disabled. */\n    @Input({ transform: booleanAttribute })\n    get disabled() {\n        return this._disabled;\n    }\n\n    set disabled(value: boolean) {\n        if (value !== this._disabled) {\n            this._disabled = value;\n            this.changeDetector.markForCheck();\n        }\n    }\n\n    private _disabled = false;\n\n    ngAfterViewInit(): void {\n        this.focusMonitor.monitor(this.elementRef);\n    }\n\n    ngAfterContentInit(): void {\n        if (this.button) {\n            this.button.tabIndex = -1;\n        }\n    }\n\n    ngOnDestroy() {\n        this.focusMonitor.stopMonitoring(this.elementRef);\n    }\n\n    setTooltip(value: KbqTooltipTrigger) {\n        this._tooltip = value;\n    }\n\n    focus(origin?: FocusOrigin): void {\n        if (this.disabled || this.hasFocus) {\n            return;\n        }\n\n        if (origin === 'keyboard') {\n            this.focusMonitor.focusVia(this.elementRef, origin);\n        }\n\n        this.tooltip?.show();\n        this.focusHandler();\n    }\n\n    /** @docs-private */\n    focusHandler() {\n        if (this.disabled || this.hasFocus) return;\n\n        this.onFocus.next({ item: this });\n\n        this.hasFocus = true;\n\n        this.changeDetector.markForCheck();\n\n        this.elementRef.nativeElement.focus();\n    }\n\n    /** @docs-private */\n    blurHandler(): void {\n        // When animations are enabled, Angular may end up removing the option from the DOM a little\n        // earlier than usual, causing it to be blurred and throwing off the logic in the list\n        // that moves focus not the next item. To work around the issue, we defer marking the option\n        // as not focused until the next time the zone stabilizes.\n        this.ngZone.onStable\n            .asObservable()\n            .pipe(take(1))\n            .subscribe(() => {\n                this.ngZone.run(() => {\n                    this._hasFocus = false;\n\n                    this.tooltip?.hide();\n\n                    if (this.button?.hasFocus) {\n                        return;\n                    }\n\n                    this.onBlur.next({ item: this });\n                });\n            });\n    }\n\n    getLabel(): string {\n        return this.title?.text || '';\n    }\n}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Component({\n    selector: 'kbq-navbar-ic-item, [kbq-navbar-ic-item]',\n    imports: [KbqIcon],\n    templateUrl: './navbar-ic-item.html',\n    styleUrl: './navbar-ic-item.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'kbqNavbarIcItem',\n    host: {\n        class: 'kbq-navbar-ic-item',\n        '[class.kbq-navbar-ic-item_with-title]': '!!title',\n        '(keydown)': 'onKeyDown($event)'\n    },\n    hostDirectives: [KbqRectangleItem],\n    animations: [toggleNavbarIcItemAnimation()]\n})\nexport class KbqNavbarIcItem extends KbqTooltipTrigger implements AfterContentInit {\n    readonly rectangleElement = inject(KbqRectangleItem);\n    readonly navbar = inject(KbqNavbarIc);\n    readonly navbarFocusableItem = inject(KbqNavbarIcFocusableItem);\n\n    private changeDetectorRef = inject(ChangeDetectorRef);\n    private dropdownTrigger = inject(KbqDropdownTrigger, { optional: true });\n    private tooltip = inject(KbqTooltipTrigger, { optional: true });\n\n    /** @docs-private */\n    @ContentChild(KbqNavbarIcTitle) title: KbqNavbarIcTitle;\n    /** @docs-private */\n    @ContentChild(KbqIcon) icon: KbqIcon;\n    /** @docs-private */\n    @ContentChild(KbqButtonCssStyler) button: KbqButtonCssStyler;\n\n    @Input('kbqTrigger')\n    get trigger(): string {\n        return this._trigger;\n    }\n\n    set trigger(value: string) {\n        if (value) {\n            this._trigger = value;\n\n            this.initListeners();\n        }\n    }\n\n    set collapsed(value: boolean) {\n        if (this._collapsed !== value) {\n            this._collapsed = value;\n\n            this.updateTooltip();\n        }\n    }\n\n    private _collapsed = false;\n\n    get croppedText(): string {\n        return this.title?.isOverflown ? this.titleText : '';\n    }\n\n    get titleText(): string {\n        return this.title?.text;\n    }\n\n    get disabled(): boolean {\n        return this.collapsed || !this.hasCroppedText || this._disabled;\n    }\n\n    set disabled(value) {\n        this._disabled = coerceBooleanProperty(value);\n    }\n\n    get hasDropDownTrigger(): boolean {\n        return !!this.dropdownTrigger;\n    }\n\n    get showDropDownAngle(): boolean {\n        return this.hasDropDownTrigger && !this.collapsed;\n    }\n\n    get hasCroppedText(): boolean {\n        return !!this.title?.isOverflown;\n    }\n\n    constructor() {\n        super();\n\n        if (this.dropdownTrigger) {\n            this.dropdownTrigger.openByArrowDown = false;\n        }\n\n        this.rectangleElement.state.subscribe(() => {\n            this.disabled = this.collapsed = this.rectangleElement.collapsed;\n\n            this.changeDetectorRef.markForCheck();\n        });\n\n        this._trigger = `${PopUpTriggers.Hover}`;\n\n        this.navbarFocusableItem.setTooltip(this);\n\n        if (this.tooltip) {\n            this.tooltip.arrow = false;\n            this.tooltip.offset = 0;\n\n            this.tooltip['overlayConfig'].panelClass = 'kbq-tooltip-panel_horizontal-navbar';\n        }\n    }\n\n    ngAfterContentInit(): void {\n        if (this.dropdownTrigger?.dropdown) {\n            this.dropdownTrigger.dropdown.overlapTriggerX = false;\n            this.dropdownTrigger.dropdown.overlapTriggerY = true;\n            // needs to shift dropdown to the left by 8 pixels\n            this.dropdownTrigger.offsetX = -8;\n        }\n\n        this.updateTooltip();\n    }\n\n    /** @docs-private */\n    updateTooltip(): void {\n        if (!this.collapsed && this.hasCroppedText) {\n            this.content = this.croppedText;\n        }\n\n        this.placement = PopUpPlacements.Right;\n\n        this.changeDetectorRef.markForCheck();\n    }\n\n    /** @docs-private */\n    onKeyDown($event: KeyboardEvent) {\n        if (!this.hasDropDownTrigger) {\n            return;\n        }\n\n        if (this.dropdownTrigger && this.rectangleElement && $event.keyCode === RIGHT_ARROW) {\n            this.dropdownTrigger.openedBy = 'keyboard';\n            this.dropdownTrigger.open();\n\n            $event.stopPropagation();\n            $event.preventDefault();\n        }\n    }\n}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Component({\n    selector: 'kbq-navbar-ic-toggle',\n    imports: [KbqIcon],\n    template: `\n        <div class=\"kbq-navbar-ic-item__inner\">\n            @if (navbar.pinned) {\n                <i [kbq-icon]=\"navbar.expanded ? 'kbq-bars-arrow-left_16' : ''\"></i>\n                <ng-content select=\"[kbqNavbarIcTitle]\">{{ localeData.collapseButton }}</ng-content>\n            } @else if ((navbar.expandedByHoverOrFocus || navbar.expandedByToggle) && !navbar.pinned) {\n                <i [kbq-icon]=\"navbar.expanded ? 'kbq-bars-arrow-right_16' : ''\"></i>\n                {{ localeData.pinButton }}\n            } @else {\n                <i [kbq-icon]=\"!navbar.expanded ? 'kbq-bars-arrow-right_16' : ''\"></i>\n            }\n        </div>\n    `,\n    styleUrls: ['./navbar-ic.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        class: 'kbq-navbar-ic-item kbq-navbar-ic-toggle',\n        '[class.kbq-collapsed]': '!navbar.expanded',\n        '[class.kbq-expanded]': 'navbar.expanded',\n        '(keydown)': 'onKeydown($event)',\n        '(click)': 'toggle()'\n    },\n    hostDirectives: [KbqRectangleItem]\n})\nexport class KbqNavbarIcToggle {\n    readonly navbar = inject(KbqNavbarIc);\n    readonly rectangleElement = inject(KbqRectangleItem);\n\n    protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n    protected modifier: TooltipModifier = TooltipModifier.Default;\n\n    /** localized data\n     * @docs-private */\n    get localeData() {\n        return this.navbar?.configuration.toggle;\n    }\n\n    constructor() {\n        this.rectangleElement.state.subscribe(() => this.changeDetectorRef.markForCheck());\n    }\n\n    /** @docs-private */\n    onKeydown($event: KeyboardEvent) {\n        if ([SPACE, ENTER].includes($event.keyCode)) {\n            this.toggle();\n\n            $event.stopPropagation();\n            $event.preventDefault();\n        }\n    }\n\n    toggle = () => {\n        if ((this.navbar.expandedByHoverOrFocus || this.navbar.expandedByToggle) && !this.navbar.pinned) {\n            this.navbar.pinned = true;\n        } else {\n            this.navbar.pinned = false;\n            this.navbar.toggle();\n        }\n\n        this.changeDetectorRef.detectChanges();\n    };\n}\n","<div class=\"kbq-navbar-ic-item__inner\">\n    <ng-content select=\"[kbq-icon]\" />\n\n    @if (title && !collapsed) {\n        <div class=\"kbq-navbar-ic-item__title-container\" [@toggle]=\"navbar.state.value\">\n            <ng-content select=\"[kbqNavbarIcTitle]\" />\n\n            @if (showDropDownAngle) {\n                <i kbq-icon=\"kbq-chevron-right_16\" class=\"kbq-navbar-ic-item__arrow-icon\"></i>\n            }\n        </div>\n    }\n\n    <ng-content />\n</div>\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n    AfterContentInit,\n    AfterViewInit,\n    booleanAttribute,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    contentChildren,\n    ContentChildren,\n    DestroyRef,\n    Directive,\n    effect,\n    ElementRef,\n    forwardRef,\n    inject,\n    InjectionToken,\n    Input,\n    numberAttribute,\n    OnDestroy,\n    QueryList,\n    ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FocusKeyManager } from '@koobiq/cdk/a11y';\nimport { DOWN_ARROW, isVerticalMovement, TAB, UP_ARROW } from '@koobiq/cdk/keycodes';\nimport { KBQ_LOCALE_SERVICE, KbqRectangleItem, ruRULocaleData } from '@koobiq/components/core';\nimport { KbqDropdownTrigger } from '@koobiq/components/dropdown';\nimport { KbqNotificationCenterTrigger } from '@koobiq/components/notification-center';\nimport { KbqPopoverTrigger } from '@koobiq/components/popover';\nimport { BehaviorSubject, EMPTY, filter, merge, Observable, Subject, Subscription, timer } from 'rxjs';\nimport { delay, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport {\n    KbqNavbarFocusableItemEvent,\n    KbqNavbarIcFocusableItem,\n    KbqNavbarIcItem,\n    KbqNavbarIcToggle\n} from './navbar-ic-item';\nimport { toggleNavbarIcAnimation } from './navbar-ic.animation';\n\nexport enum KbqExpandEvents {\n    toggle,\n    hoverOrFocus\n}\n\n/** minimum timeout to use KBQ_ENTER_DELAY */\nexport const KBQ_MIN_TIMEOUT_FOR_ENTER_DELAY = 2000;\n\n/** delay before open navbar-ic */\nexport const KBQ_ENTER_DELAY = 400;\n\n/** default configuration of navbar-ic */\n/** @docs-private */\nexport const KBQ_NAVBAR_IC_DEFAULT_CONFIGURATION = ruRULocaleData.navbarIc;\n\n/** Injection Token for providing configuration of navbar-ic */\n/** @docs-private */\nexport const KBQ_NAVBAR_IC_CONFIGURATION = new InjectionToken('KbqNavbarIcConfiguration');\n\n@Directive()\nexport class KbqFocusable implements AfterContentInit, AfterViewInit, OnDestroy {\n    protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n    protected readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n    protected readonly destroyRef = inject(DestroyRef);\n    protected readonly focusMonitor = inject(FocusMonitor);\n\n    @ContentChildren(forwardRef(() => KbqNavbarIcFocusableItem), { descendants: true })\n    focusableItems: QueryList<KbqNavbarIcFocusableItem>;\n\n    keyManager: FocusKeyManager<KbqNavbarIcFocusableItem>;\n\n    @Input({ transform: numberAttribute })\n    get tabindex(): number {\n        return this._tabindex;\n    }\n\n    set tabindex(value: number) {\n        this._tabindex = value;\n    }\n\n    private _tabindex = 0;\n\n    get itemFocusChanges(): Observable<KbqNavbarFocusableItemEvent> {\n        return merge(...this.focusableItems.map((item) => item.onFocus));\n    }\n\n    get itemBlurChanges(): Observable<KbqNavbarFocusableItemEvent> {\n        return merge(...this.focusableItems.map((option) => option.onBlur));\n    }\n\n    private itemFocusSubscription: Subscription | null;\n    private itemBlurSubscription: Subscription | null;\n\n    ngAfterContentInit(): void {\n        this.keyManager = new FocusKeyManager<KbqNavbarIcFocusableItem>(this.focusableItems).withTypeAhead();\n\n        this.keyManager.tabOut.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n            this.tabindex = -1;\n\n            setTimeout(() => {\n                this.tabindex = 0;\n                this.changeDetectorRef.markForCheck();\n            });\n        });\n\n        this.focusableItems.changes.pipe(startWith(null), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n            this.resetOptions();\n\n            // Check to see if we need to update our tab index\n            this.updateTabIndex();\n        });\n    }\n\n    ngAfterViewInit(): void {\n        this.focusMonitor.monitor(this.elementRef).subscribe((focusOrigin) => {\n            this.keyManager.setFocusOrigin(focusOrigin);\n        });\n    }\n\n    ngOnDestroy() {\n        this.focusMonitor.stopMonitoring(this.elementRef);\n    }\n\n    /** @docs-private */\n    focusHandler(): void {\n        if (this.focusableItems.length === 0) return;\n\n        this.keyManager.setFirstItemActive();\n    }\n\n    /** @docs-private */\n    blurHandler() {\n        if (!this.hasFocusedItem()) {\n            this.keyManager.setActiveItem(-1);\n        }\n\n        this.changeDetectorRef.markForCheck();\n    }\n\n    protected resetOptions() {\n        this.dropSubscriptions();\n        this.listenToItemsFocus();\n    }\n\n    protected dropSubscriptions() {\n        this.itemFocusSubscription?.unsubscribe();\n        this.itemBlurSubscription?.unsubscribe();\n\n        this.itemFocusSubscription = null;\n        this.itemBlurSubscription = null;\n    }\n\n    protected listenToItemsFocus(): void {\n        this.itemFocusSubscription = this.itemFocusChanges.subscribe((event) => {\n            const index: number = this.focusableItems.toArray().indexOf(event.item);\n\n            if (this.isValidIndex(index)) {\n                this.keyManager.updateActiveItem(index);\n            }\n        });\n\n        this.itemBlurSubscription = this.itemBlurChanges.subscribe(() => this.blurHandler());\n    }\n\n    protected updateTabIndex(): void {\n        this.tabindex = this.focusableItems.length === 0 ? -1 : 0;\n    }\n\n    protected isValidIndex(index: number): boolean {\n        return index >= 0 && index < this.focusableItems.length;\n    }\n\n    protected hasFocusedItem() {\n        return this.focusableItems.some((item) => item.hasFocus);\n    }\n}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Directive({\n    selector: 'kbq-navbar-ic-container',\n    host: {\n        class: 'kbq-navbar-ic-container'\n    }\n})\nexport class KbqNavbarIcContainer {}\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Component({\n    selector: 'kbq-navbar-ic',\n    template: `\n        <div class=\"kbq-navbar-ic__top-layer\" [@toggle]=\"expanded\" (@toggle.done)=\"animationDone.next()\">\n            <ng-content select=\"[kbq-navbar-ic-container], kbq-navbar-ic-container\" />\n            <ng-content select=\"[kbq-navbar-ic-toggle], kbq-navbar-ic-toggle\" />\n        </div>\n    `,\n    styleUrls: [\n        './navbar-ic.scss',\n        './navbar-ic-divider.scss',\n        './navbar-ic-tokens.scss'\n    ],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'KbqNavbarIc',\n    host: {\n        class: 'kbq-navbar-ic',\n        '[class.kbq-collapsed]': '!expanded',\n        '[class.kbq-expanded]': 'expanded',\n        '[style.min-width.px]': 'pinned ? expandedWidth : collapsedWidth',\n        '[attr.tabindex]': 'tabindex',\n\n        '(focus)': 'focusHandler()',\n        '(blur)': 'blurHandler()',\n\n        '(keydown)': 'onKeyDown($event)',\n\n        '(mouseenter)': 'hovered.next(true)',\n        '(mouseleave)': 'hovered.next(false)'\n    },\n    animations: [toggleNavbarIcAnimation()]\n})\nexport class KbqNavbarIc extends KbqFocusable implements AfterContentInit {\n    /** @docs-private */\n    protected readonly localeService = inject(KBQ_LOCALE_SERVICE, { optional: true });\n\n    readonly externalConfiguration = inject(KBQ_NAVBAR_IC_CONFIGURATION, { optional: true });\n\n    readonly state = new BehaviorSubject<'expanded' | 'collapsed' | null>(null);\n\n    configuration;\n\n    /** @docs-private */\n    readonly rectangleElements = contentChildren(\n        forwardRef(() => KbqRectangleItem),\n        { descendants: true }\n    );\n\n    /** @docs-private */\n    readonly items = contentChildren(\n        forwardRef(() => KbqNavbarIcItem),\n        { descendants: true }\n    );\n\n    /** @docs-private */\n    readonly toggleElement = contentChildren(\n        forwardRef(() => KbqNavbarIcToggle),\n        { descendants: true }\n    );\n\n    /** @docs-private */\n    readonly dropdownTrigger = contentChildren(\n        forwardRef(() => KbqDropdownTrigger),\n        { descendants: true }\n    );\n\n    /** @docs-private */\n    readonly popoverTrigger = contentChildren(\n        forwardRef(() => KbqPopoverTrigger),\n        { descendants: true }\n    );\n\n    /** @docs-private */\n    readonly notificationCenterTrigger = contentChildren(\n        forwardRef(() => KbqNotificationCenterTrigger),\n        { descendants: true }\n    );\n\n    readonly hovered = new BehaviorSubject<boolean>(false);\n    readonly focused = new BehaviorSubject<boolean>(false);\n\n    readonly animationDone: Subject<void> = new Subject();\n\n    expandEvent: KbqExpandEvents | null = null;\n\n    @Input({ transform: booleanAttribute }) pinned = true;\n\n    @Input({ transform: numberAttribute }) collapsedWidth = 64;\n    @Input({ transform: numberAttribute }) expandedWidth = 240;\n\n    @Input({ transform: booleanAttribute })\n    get expanded(): boolean {\n        return this._expanded || this.pinned || this.hasOpenedPopUp;\n    }\n\n    set expanded(value: boolean) {\n        this._expanded = value;\n\n        this.state.next(value || this.pinned || this.hasOpenedPopUp ? 'expanded' : 'collapsed');\n\n        this.updateExpandedStateForItems();\n    }\n\n    private _expanded: boolean = true;\n\n    get hasOpenedPopUp() {\n        return [...this.dropdownTrigger(), ...this.popoverTrigger(), ...this.notificationCenterTrigger()].some(\n            (instance) => instance?.isOpen || instance?.opened\n        );\n    }\n\n    get expandedByToggle() {\n        return this.expanded && this.expandEvent === KbqExpandEvents.toggle;\n    }\n\n    get expandedByHoverOrFocus() {\n        return this.expanded && this.expandEvent === KbqExpandEvents.hoverOrFocus;\n    }\n\n    get currentWidth(): number {\n        return this.expanded ? this.expandedWidth : this.collapsedWidth;\n    }\n\n    private lastOpeningTime: number;\n\n    constructor() {\n        super();\n\n        effect(this.updateExpandedStateForItems);\n\n        this.focused\n            .pipe(\n                delay(0),\n                filter(() => !this.pinned || !this.hasOpenedPopUp),\n                takeUntilDestroyed()\n            )\n            .subscribe((focused) => {\n                if (this.hovered.value) return;\n\n                this.expandEvent = KbqExpandEvents.hoverOrFocus;\n                this.expanded = focused;\n\n                this.changeDetectorRef.markForCheck();\n            });\n\n        this.hovered\n            .pipe(\n                filter(() => !this.pinned),\n                switchMap((hovered) => {\n                    if (!hovered) {\n                        if (this.expanded) {\n                            this.lastOpeningTime = Date.now();\n                        }\n\n                        this.expanded = false;\n\n                        return EMPTY;\n                    }\n\n                    return timer(this.getExpandDelay()).pipe(\n                        tap(() => {\n                            this.expandEvent = KbqExpandEvents.hoverOrFocus;\n                            this.expanded = true;\n                            this.changeDetectorRef.markForCheck();\n                        }),\n                        takeUntil(this.hovered.pipe(filter((h) => !h)))\n                    );\n                }),\n                takeUntilDestroyed()\n            )\n            .subscribe();\n\n        this.focusMonitor.monitor(this.elementRef, true).subscribe((focusOrigin) => {\n            this.focused.next(focusOrigin === 'keyboard');\n        });\n\n        this.localeService?.changes.pipe(takeUntilDestroyed()).subscribe(this.updateLocaleParams);\n\n        if (!this.localeService) {\n            this.initDefaultParams();\n        }\n    }\n\n    /** @docs-private */\n    ngAfterContentInit(): void {\n        this.updateTooltipForItems();\n\n        super.ngAfterContentInit();\n\n        this.keyManager.withVerticalOrientation(true);\n    }\n\n    toggle(): void {\n        this.expanded = !this.expanded;\n\n        this.expandEvent = KbqExpandEvents.toggle;\n\n        this.changeDetectorRef.markForCheck();\n    }\n\n    /** @docs-private */\n    onKeyDown(event: KeyboardEvent) {\n        const keyCode = event.keyCode;\n\n        if (!(event.target as HTMLElement).attributes.getNamedItem('kbqinput') && isVerticalMovement(event)) {\n            event.preventDefault();\n        }\n\n        if (keyCode === TAB) {\n            this.keyManager.tabOut.next();\n\n            return;\n        } else if (keyCode === DOWN_ARROW) {\n            this.keyManager.setNextItemActive();\n        } else if (keyCode === UP_ARROW) {\n            this.keyManager.setPreviousItemActive();\n        } else {\n            this.keyManager.onKeydown(event);\n        }\n    }\n\n    private getExpandDelay() {\n        return Date.now() - this.lastOpeningTime < KBQ_MIN_TIMEOUT_FOR_ENTER_DELAY ? 0 : KBQ_ENTER_DELAY;\n    }\n\n    protected updateTooltipForItems = () => this.items().forEach((item) => item.updateTooltip());\n\n    protected updateExpandedStateForItems = () => this.rectangleElements().forEach(this.updateItemExpandedState);\n\n    protected updateItemExpandedState = (item: KbqNavbarIcItem): void => {\n        setTimeout(() => {\n            item.collapsed = !this.expanded;\n            item.button?.updateClassModifierForIcons();\n        });\n    };\n\n    private updateLocaleParams = () => {\n        this.configuration = this.externalConfiguration || this.localeService?.getParams('navbarIc');\n\n        this.changeDetectorRef.markForCheck();\n    };\n\n    private initDefaultParams() {\n        this.configuration = KBQ_NAVBAR_IC_DEFAULT_CONFIGURATION;\n    }\n}\n","import {\n    AfterContentInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    DestroyRef,\n    inject,\n    ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { kbqInjectNativeElement, PopUpPlacements, PopUpTriggers } from '@koobiq/components/core';\nimport { KbqTooltipTrigger } from '@koobiq/components/tooltip';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { KbqNavbarIc } from './navbar-ic';\nimport { KbqNavbarIcLogo, KbqNavbarIcTitle } from './navbar-ic-item';\nimport { toggleNavbarIcItemAnimation } from './navbar-ic.animation';\n\n/**\n * @deprecated Will be removed in the next major release.\n */\n@Component({\n    selector: 'kbq-navbar-ic-header, [kbq-navbar-ic-header]',\n    template: `\n        <div class=\"kbq-navbar-ic-header__inner\">\n            <ng-content select=\"[kbqNavbarIcLogo]\" />\n\n            <div [@toggle]=\"navbar.state.value\">\n                <ng-content select=\"[kbqNavbarIcTitle]\" />\n            </div>\n            <ng-content />\n        </div>\n    `,\n    styleUrl: './navbar-ic-header.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    exportAs: 'kbqNavbarIcHeader',\n    host: {\n        class: 'kbq-navbar-ic-header',\n        '[class.kbq-navbar-ic-header_interactive]': 'isLink'\n    },\n    animations: [toggleNavbarIcItemAnimation()]\n})\nexport class KbqNavbarIcHeader extends KbqTooltipTrigger implements AfterContentInit {\n    protected readonly navbar = inject(KbqNavbarIc);\n    protected readonly nativeElement = kbqInjectNativeElement();\n    protected readonly destroyRef = inject(DestroyRef);\n    protected readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n    @ContentChild(KbqNavbarIcLogo) logo: KbqNavbarIcLogo;\n    @ContentChild(KbqNavbarIcTitle) title: KbqNavbarIcTitle;\n\n    get titleText(): string {\n        return this.title?.text || '';\n    }\n\n    get isLink(): boolean {\n        return this.nativeElement.tagName === 'A';\n    }\n\n    constructor() {\n        super();\n\n        this._trigger = `${PopUpTriggers.Hover}`;\n\n        this.arrow = false;\n        this.offset = -8;\n        this.tooltipPlacement = PopUpPlacements.RightTop;\n    }\n\n    ngAfterContentInit(): void {\n        this.navbar?.animationDone\n            .pipe(takeUntilDestroyed(this.destroyRef))\n            .subscribe(() => this.title?.checkTextOverflown());\n\n        this.navbar.state.pipe(distinctUntilChanged(), takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n            this.changeDetectorRef.detectChanges();\n        });\n\n        this.title?.checkTextOverflown();\n\n        if (this.title?.isTextOverflown) {\n            this.content = this.titleText;\n        }\n    }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { PlatformModule } from '@angular/cdk/platform';\nimport { NgModule } from '@angular/core';\nimport { KbqRectangleItem } from '@koobiq/components/core';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqToolTipModule } from '@koobiq/components/tooltip';\nimport { KbqNavbarIc, KbqNavbarIcContainer } from './navbar-ic';\nimport { KbqNavbarIcHeader } from './navbar-ic-header';\nimport {\n    KbqNavbarIcDivider,\n    KbqNavbarIcFocusableItem,\n    KbqNavbarIcItem,\n    KbqNavbarIcLogo,\n    KbqNavbarIcTitle,\n    KbqNavbarIcToggle\n} from './navbar-ic-item';\n\n@NgModule({\n    imports: [\n        A11yModule,\n        PlatformModule,\n        KbqIconModule,\n        KbqToolTipModule,\n        KbqNavbarIc,\n        KbqNavbarIcTitle,\n        KbqNavbarIcItem,\n        KbqNavbarIcHeader,\n        KbqNavbarIcLogo,\n        KbqNavbarIcToggle,\n        KbqNavbarIcDivider,\n        KbqNavbarIcFocusableItem,\n        KbqNavbarIcContainer,\n        KbqRectangleItem\n    ],\n    exports: [\n        KbqNavbarIc,\n        KbqNavbarIcContainer,\n        KbqNavbarIcTitle,\n        KbqNavbarIcItem,\n        KbqNavbarIcHeader,\n        KbqNavbarIcLogo,\n        KbqNavbarIcToggle,\n        KbqNavbarIcDivider,\n        KbqNavbarIcFocusableItem\n    ]\n})\nexport class KbqNavbarIcModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}