{"version":3,"file":"fundamental-ngx-btp-tool-header.mjs","sources":["../../../../libs/btp/tool-header/src/tool-header-action.class.ts","../../../../libs/btp/tool-header/src/components/tool-header-action-separator.component.ts","../../../../libs/btp/tool-header/src/components/tool-header-product-switch.component.ts","../../../../libs/btp/tool-header/src/directives/tool-header-action-button.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-element.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-group.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-logo.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-user.directive.ts","../../../../libs/btp/tool-header/src/tool-header-component.class.ts","../../../../libs/btp/tool-header/src/components/tool-header/tool-header.component.ts","../../../../libs/btp/tool-header/src/components/tool-header/tool-header.component.html","../../../../libs/btp/tool-header/src/directives/tool-header-action.directive.ts","../../../../libs/btp/tool-header/src/directives/tool-header-auto-mode.directive.ts","../../../../libs/btp/tool-header/src/fundamental-ngx-btp-tool-header.ts"],"sourcesContent":["import { Directive, Input, TemplateRef, booleanAttribute } from '@angular/core';\n\n@Directive()\nexport class ToolHeaderActionClass<ActionTemplateContext = any> {\n    /** Whether the element is forced to be visible. */\n    @Input({ transform: booleanAttribute })\n    forceVisibility: boolean;\n\n    /** Template of the action section */\n    templateRef: TemplateRef<ActionTemplateContext>;\n\n    /** @hidden */\n    readonly isSeparator: boolean;\n}\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';\nimport { ToolHeaderActionClass } from '../tool-header-action.class';\n\n@Component({\n    selector: 'fdb-tool-header-action-separator',\n    template: `\n        <ng-template>\n            <div class=\"fd-tool-header__separator\"></div>\n        </ng-template>\n    `,\n    providers: [\n        {\n            provide: ToolHeaderActionClass,\n            useExisting: ToolHeaderActionSeparatorComponent\n        }\n    ],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToolHeaderActionSeparatorComponent extends ToolHeaderActionClass {\n    /** @hidden */\n    @ViewChild(TemplateRef)\n    templateRef: TemplateRef<void>;\n\n    /** @hidden */\n    readonly isSeparator = true;\n}\n","import { ChangeDetectionStrategy, Component, input, model, output } from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { TriggerConfig } from '@fundamental-ngx/core/popover';\nimport {\n    FD_PRODUCT_SWITCH_COMPONENT,\n    ProductSwitchButtonDirective,\n    ProductSwitchComponent\n} from '@fundamental-ngx/core/product-switch';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n    selector: 'fdb-tool-header-product-switch',\n    imports: [\n        ButtonComponent,\n        FdTranslatePipe,\n        ProductSwitchComponent,\n        ProductSwitchButtonDirective,\n        ToolHeaderButtonDirective\n    ],\n    template: `\n        <fd-product-switch\n            [placement]=\"placement()\"\n            [closeOnEscapeKey]=\"closeOnEscapeKey()\"\n            [closeOnOutsideClick]=\"closeOnOutsideClick()\"\n            [(isOpen)]=\"isOpen\"\n            [disabled]=\"disabled()\"\n            [triggers]=\"triggers()\"\n            [focusTrapped]=\"focusTrapped()\"\n            [focusAutoCapture]=\"focusAutoCapture()\"\n            [noArrow]=\"noArrow()\"\n            [disableScrollbar]=\"disableScrollbar()\"\n        >\n            <button\n                *fdProductSwitchButton\n                fd-button\n                fdbToolHeaderButton\n                [attr.aria-label]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n                [attr.title]=\"('coreProductSwitch.ariaLabel' | fdTranslate)()\"\n                glyph=\"grid\"\n            ></button>\n            <ng-content></ng-content>\n        </fd-product-switch>\n    `,\n    providers: [\n        {\n            provide: FD_PRODUCT_SWITCH_COMPONENT,\n            useExisting: ToolHeaderProductSwitchComponent\n        }\n    ],\n    host: {\n        '[class.fd-popover-custom--disabled]': 'disabled()'\n    },\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToolHeaderProductSwitchComponent {\n    /** Placement of a popover. */\n    readonly placement = input<Placement>('bottom-end');\n\n    /** Whether the product switch is disabled. */\n    readonly disabled = input(false);\n\n    /** Whether the popover should close when the escape key is pressed. */\n    readonly closeOnEscapeKey = input(true);\n\n    /** Whether the popover should close when a click is made outside its boundaries. */\n    readonly closeOnOutsideClick = input(true);\n\n    /** Whether the popover should have an arrow. */\n    readonly noArrow = input(true);\n\n    /** Whether to wrap content with fd-scrollbar directive. */\n    readonly disableScrollbar = input(true);\n\n    /** The trigger events that will open/close the popover. */\n    readonly triggers = input<(string | TriggerConfig)[]>(['click']);\n\n    /** Whether the popover should be focusTrapped. */\n    readonly focusTrapped = input(false);\n\n    /** Whether the popover should automatically move focus into the trapped region. */\n    readonly focusAutoCapture = input(true);\n\n    /** Two-way binding for isOpen state */\n    readonly isOpen = model(false);\n\n    /** Event emitted right before the popover is being opened. */\n    readonly beforeOpen = output<void>();\n}\n","import { Directive } from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport { FocusableItemDirective, IndirectFocusableItemDirective } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n    selector: '[fd-button][fdbToolHeaderActionButton]',\n    standalone: true,\n    hostDirectives: [\n        { directive: ToolHeaderButtonDirective, inputs: ['fdType'] },\n        IndirectFocusableItemDirective,\n        FocusableItemDirective\n    ],\n    host: {\n        '[class.fd-tool-header__action-button]': 'true'\n    }\n})\nexport class ToolHeaderActionButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n    selector: '[fdbToolHeaderElement]',\n    host: {\n        class: 'fd-tool-header__element'\n    },\n    standalone: true\n})\nexport class ToolHeaderElementDirective {}\n","import { Directive, ElementRef, Input, booleanAttribute, inject } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\n\n@Directive({\n    selector: '[fdbToolHeaderGroup]',\n    host: {\n        class: 'fd-tool-header__group',\n        '[class.fd-tool-header__group--center]': 'center',\n        '[class.fd-tool-header__group--actions]': 'actions'\n    },\n    standalone: true\n})\nexport class ToolHeaderGroupDirective implements HasElementRef {\n    /** @hidden */\n    @Input({ transform: booleanAttribute })\n    center = false;\n\n    /** @hidden */\n    @Input({ transform: booleanAttribute })\n    actions = false;\n\n    /** @hidden */\n    readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n    selector: '[fdbToolHeaderLogo]',\n    host: {\n        '[attr.role]': '\"button\"',\n        '[attr.tabindex]': '0',\n        class: 'fd-tool-header__logo'\n    },\n    standalone: true\n})\nexport class ToolHeaderLogoDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n    selector: '[fdbToolHeaderUser]',\n    standalone: true\n})\nexport class ToolHeaderUserDirective {}\n","import { computed, inject, Signal, signal } from '@angular/core';\nimport { SearchFieldComponent } from '@fundamental-ngx/btp/search-field';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport { RtlService } from '@fundamental-ngx/cdk/utils';\nimport { FdbToolHeaderState } from './tool-header-state.type';\n\nexport abstract class ToolHeaderComponentClass {\n    /** @hidden */\n    mode$: Signal<FdbViewMode>;\n\n    /** @hidden */\n    orientation$: Signal<'landscape' | 'portrait'>;\n\n    /** @hidden */\n    searchField$: Signal<SearchFieldComponent | null>;\n\n    /** @hidden */\n    searchFieldExpanded$: Signal<boolean>;\n\n    /** Mode signal */\n    protected _mode$ = signal<FdbViewMode>('');\n\n    /** @hidden */\n    protected _orientation$ = signal<'landscape' | 'portrait'>('landscape');\n\n    /** @hidden */\n    protected fdbToolHeaderState = computed<FdbToolHeaderState>(() => {\n        if (this._mode$() === 'phone') {\n            return {\n                backButtonVisible: this._searchFieldExpanded$(),\n                menuButtonVisible: !this._searchFieldExpanded$(),\n                logoVisible: !this._searchFieldExpanded$(),\n                productNameVisible: false,\n                secondTitleVisible: false,\n                searchFieldVisible: this._searchFieldExpanded$(),\n                searchFieldToggleActionVisible: !!this._searchField$() && !this._searchFieldExpanded$(),\n                providedActionsVisible: !this._searchFieldExpanded$(),\n                userAvatarVisible: !this._searchFieldExpanded$(),\n                productSwitchVisible: !this._searchFieldExpanded$(),\n                voiceInputVisible: this._searchFieldExpanded$(),\n                separatorsBetweenActionsVisible: false\n            };\n        }\n        if (this._mode$() === 'tablet') {\n            const isPortrait = this._orientation$() === 'portrait';\n            const isLandscape = !isPortrait;\n            const searchFieldVisible = this._searchFieldExpanded$() || isLandscape;\n            const searchFieldToggleActionVisible = !searchFieldVisible && !!this._searchField$();\n\n            return {\n                backButtonVisible: false,\n                menuButtonVisible: true,\n                logoVisible: true,\n                productNameVisible: isPortrait ? !this._searchFieldExpanded$() : true,\n                secondTitleVisible: false,\n                searchFieldVisible,\n                searchFieldToggleActionVisible,\n                providedActionsVisible: true,\n                userAvatarVisible: true,\n                productSwitchVisible: true,\n                voiceInputVisible: false,\n                separatorsBetweenActionsVisible: this._orientation$() === 'landscape'\n            };\n        }\n        return {\n            backButtonVisible: false,\n            menuButtonVisible: true,\n            logoVisible: true,\n            productNameVisible: true,\n            secondTitleVisible: true,\n            searchFieldVisible: true,\n            searchFieldToggleActionVisible: false,\n            providedActionsVisible: true,\n            userAvatarVisible: true,\n            productSwitchVisible: true,\n            voiceInputVisible: false,\n            separatorsBetweenActionsVisible: true\n        };\n    });\n\n    /** Search field signal */\n    protected _searchField$ = signal<SearchFieldComponent | null>(null);\n\n    /** @hidden */\n    protected _searchFieldExpanded$ = signal<boolean>(false);\n\n    /**\n     * RTL signal\n     * @hidden\n     */\n    protected rtl = computed<boolean>(() => this._rtlService?.rtl() ?? false);\n\n    /** @hidden */\n    private readonly _rtlService = inject(RtlService, { optional: true });\n\n    /** @hidden */\n    constructor() {\n        this.mode$ = this._mode$.asReadonly();\n        this.orientation$ = this._orientation$.asReadonly();\n        this.searchField$ = this._searchField$.asReadonly();\n        this.searchFieldExpanded$ = this._searchFieldExpanded$.asReadonly();\n    }\n}\n","/* eslint-disable @angular-eslint/no-input-rename */\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    EventEmitter,\n    Injector,\n    Input,\n    Output,\n    QueryList,\n    ViewEncapsulation,\n    afterNextRender,\n    booleanAttribute,\n    inject,\n    signal\n} from '@angular/core';\nimport { ToolHeaderButtonDirective } from '@fundamental-ngx/btp/button';\nimport {\n    NavigationMenuComponent,\n    NavigationMenuPopoverComponent,\n    NavigationMenuPopoverControlDirective\n} from '@fundamental-ngx/btp/navigation-menu';\nimport { SearchFieldComponent } from '@fundamental-ngx/btp/search-field';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport {\n    FDK_INDIRECT_FOCUSABLE_ITEM_ORDER,\n    FocusableItemDirective,\n    FocusableListDirective,\n    IndirectFocusableListDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport {\n    OverflowItemRef,\n    OverflowItemRefDirective,\n    OverflowLayoutComponent,\n    OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { FD_PRODUCT_SWITCH_COMPONENT } from '@fundamental-ngx/core/product-switch';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ToolHeaderActionButtonDirective } from '../../directives/tool-header-action-button.directive';\nimport { ToolHeaderActionDirective } from '../../directives/tool-header-action.directive';\nimport { ToolHeaderElementDirective } from '../../directives/tool-header-element.directive';\nimport { ToolHeaderGroupDirective } from '../../directives/tool-header-group.directive';\nimport { ToolHeaderLogoDirective } from '../../directives/tool-header-logo.directive';\nimport { ToolHeaderUserDirective } from '../../directives/tool-header-user.directive';\nimport { ToolHeaderActionClass } from '../../tool-header-action.class';\nimport { ToolHeaderComponentClass } from '../../tool-header-component.class';\n\n@Component({\n    selector: 'fdb-tool-header',\n    templateUrl: './tool-header.component.html',\n    styleUrls: ['./tool-header.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        class: 'fd-tool-header',\n        '[class.fd-tool-header--menu]': 'showMenuButton',\n        '(document:click)': '_onClick($event)',\n        '(document:keydown.control.k)': '_onKeyDown()',\n        '(document:keydown.meta.k)': '_onKeyDown()'\n    },\n    imports: [\n        ToolHeaderGroupDirective,\n        NgTemplateOutlet,\n        ToolHeaderElementDirective,\n        ButtonComponent,\n        ToolHeaderButtonDirective,\n        ToolHeaderLogoDirective,\n        FdTranslatePipe,\n        NavigationMenuComponent,\n        FocusableListDirective,\n        IndirectFocusableListDirective,\n        FocusableItemDirective,\n        NavigationMenuPopoverComponent,\n        NavigationMenuPopoverControlDirective,\n        OverflowLayoutComponent,\n        OverflowLayoutItemDirective,\n        OverflowItemRefDirective,\n        PortalModule,\n        ToolHeaderActionButtonDirective\n    ],\n    providers: [\n        contentDensityObserverProviders(),\n        {\n            provide: ToolHeaderComponentClass,\n            useExisting: ToolHeaderComponent\n        }\n    ]\n})\nexport class ToolHeaderComponent extends ToolHeaderComponentClass {\n    /**\n     * (required) the Product Name is the official name of the tool.\n     */\n    @Input({ required: true }) productName!: string;\n    /**\n     * Second Title is an optional second text identifier of the tool.\n     **/\n    @Input() secondTitle?: string;\n    /** Mode */\n    @Input('mode')\n    set _mode(mode: FdbViewMode) {\n        if (mode !== this._mode$()) {\n            this._mode$.set(mode);\n        }\n    }\n\n    /** @hidden */\n    @Input('orientation')\n    set _orientation(orientation: 'landscape' | 'portrait') {\n        if (orientation !== this._orientation$()) {\n            this._orientation$.set(orientation);\n        }\n    }\n\n    /**\n     * Whether to show the menu button\n     */\n    @Input({ transform: booleanAttribute })\n    showMenuButton = false;\n\n    /**\n     * Whether to show the voice input action button on\n     * the right side of the tool header, when the mode is mobile\n     * and the search input is expanded\n     */\n    @Input({ transform: booleanAttribute })\n    showVoiceInputAction = true;\n\n    /**\n     * Event emitted when the menu button is clicked\n     **/\n    @Output()\n    menuClick = new EventEmitter<void>();\n\n    /**\n     * Event emitted when user intends to expand the menu.\n     * Happens when user clicks `right arrow` key on the menu button\n     * if on ltr or `left arrow` key if on rtl.\n     **/\n    @Output()\n    menuExpand = new EventEmitter<void>();\n\n    /**\n     * Event emitted when user intends to collapse the menu.\n     * Happens when user clicks `left arrow` key on the menu button\n     * if on ltr or `right arrow` key if on rtl.\n     **/\n    @Output()\n    menuCollapse = new EventEmitter<void>();\n\n    /**\n     * Event emitted when the microphone button is clicked\n     **/\n    @Output()\n    microphoneClick = new EventEmitter<void>();\n\n    /**\n     * Event emitted when the default logo is clicked\n     */\n    @Output()\n    logoClick = new EventEmitter<void>();\n\n    /** @hidden */\n    @ContentChildren(ToolHeaderActionClass)\n    _contentActions: QueryList<ToolHeaderActionClass>;\n\n    /** @hidden */\n    @ContentChild(ToolHeaderLogoDirective)\n    _toolHeaderLogoDirective?: ToolHeaderLogoDirective;\n\n    /** @hidden */\n    @ContentChild(SearchFieldComponent)\n    set _searchField(searchField: SearchFieldComponent) {\n        this._searchField$.set(searchField);\n    }\n\n    /** @hidden */\n    @ContentChild(ToolHeaderUserDirective)\n    _toolHeaderUser?: ToolHeaderUserDirective;\n\n    /** @hidden */\n    @ContentChild(FD_PRODUCT_SWITCH_COMPONENT)\n    _toolHeaderProductSwitch?: unknown;\n\n    /** @hidden */\n    protected readonly _hiddenActions$ = signal<OverflowItemRef<ToolHeaderActionDirective>[]>([]);\n\n    /** @hidden */\n    private readonly _injector = inject(Injector);\n\n    /** @hidden */\n    private _mapOfItemsAndInjectors = new WeakMap<OverflowItemRef<ToolHeaderActionDirective>, Injector>();\n\n    /**\n     * The handler, responsible for closing the search field\n     * on outside click\n     * @hidden\n     **/\n    _onClick(event: MouseEvent): void {\n        if (this._searchFieldExpanded$()) {\n            if (\n                this._mode$() === 'tablet' &&\n                this._orientation$() === 'portrait' &&\n                this._searchField$() &&\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                !event.composedPath().includes(this._searchField$()!.elementRef.nativeElement)\n            ) {\n                this._searchFieldExpanded$.set(false);\n            }\n        }\n    }\n\n    /**\n     * The handler, responsible for the focusing on the search field,\n     * when the user presses `Ctrl + K` or `Cmd + K` keys\n     * @hidden\n     **/\n    _onKeyDown(): void {\n        if (this._mode$() === 'tablet' && this._orientation$() === 'portrait' && this._searchField$()) {\n            this._searchFieldExpanded$.set(true);\n            this._searchField$()?.focus();\n        }\n    }\n\n    /**\n     * Expand the search field\n     **/\n    expandSearchField(): void {\n        this._searchFieldExpanded$.set(true);\n        afterNextRender(() => this._searchField$()?.focus(), { injector: this._injector });\n    }\n\n    /** @hidden */\n    protected _handleMenuLeftArrowKey(): void {\n        if (this.rtl()) {\n            this.menuExpand.emit();\n        } else {\n            this.menuCollapse.emit();\n        }\n    }\n\n    /** @hidden */\n    protected _handleMenuRightArrowKey(): void {\n        if (this.rtl()) {\n            this.menuCollapse.emit();\n        } else {\n            this.menuExpand.emit();\n        }\n    }\n\n    /** @hidden */\n    protected _handleHiddenItemsChange($event: OverflowItemRef<ToolHeaderActionDirective>[]): void {\n        this._hiddenActions$.set(\n            $event.reduce((acc: OverflowItemRef<ToolHeaderActionDirective>[], i) => {\n                if (!i.item.isSeparator) {\n                    acc.push(i);\n                    this._mapOfItemsAndInjectors.delete(i);\n                }\n                return acc;\n            }, [])\n        );\n    }\n\n    /** @hidden */\n    protected _indirectFocusableItemInjector(\n        parent: Injector,\n        item: OverflowItemRef<ToolHeaderActionDirective>\n    ): Injector {\n        let injector = this._mapOfItemsAndInjectors.get(item);\n        if (!injector) {\n            injector = Injector.create({\n                parent,\n                providers: [\n                    {\n                        provide: FDK_INDIRECT_FOCUSABLE_ITEM_ORDER,\n                        useValue: item.globalIndex\n                    }\n                ]\n            });\n            this._mapOfItemsAndInjectors.set(item, injector);\n        }\n        return injector;\n    }\n}\n","<div fdbToolHeaderGroup [class.fd-tool-header--menu]=\"showMenuButton\">\n    @if (fdbToolHeaderState().backButtonVisible) {\n        <div fdbToolHeaderElement>\n            <button\n                fd-button\n                fdbToolHeaderButton\n                glyph=\"slim-arrow-left\"\n                (click)=\"_searchFieldExpanded$.set(false)\"\n            ></button>\n        </div>\n    }\n    @if (fdbToolHeaderState().menuButtonVisible && showMenuButton) {\n        <div fdbToolHeaderElement>\n            <button\n                fd-button\n                fdbToolHeaderButton\n                [title]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n                [ariaLabel]=\"('btpToolHeader.menuButtonAriaLabel' | fdTranslate)()\"\n                glyph=\"menu2\"\n                (keydown.arrowLeft)=\"_handleMenuLeftArrowKey()\"\n                (keydown.arrowRight)=\"_handleMenuRightArrowKey()\"\n                (click)=\"menuClick.emit()\"\n            ></button>\n        </div>\n    }\n    @if (fdbToolHeaderState().logoVisible) {\n        <div fdbToolHeaderElement>\n            @if (_toolHeaderLogoDirective) {\n                <ng-content select=\"[fdbToolHeaderLogo]\"></ng-content>\n            } @else {\n                <img\n                    fdbToolHeaderLogo\n                    (click)=\"logoClick.emit()\"\n                    src=\"https://unpkg.com/fundamental-styles/dist/images/sap-logo.png\"\n                    srcset=\"\n                        https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;2x.png 1x,\n                        https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;3x.png 2x,\n                        https://unpkg.com/fundamental-styles/dist/images/sap-logo&#64;4x.png 3x\n                    \"\n                    alt=\"SAP logo\"\n                    aria-label=\"SAP logo\"\n                    title=\"SAP logo\"\n                />\n            }\n        </div>\n    }\n    @if (fdbToolHeaderState().productNameVisible) {\n        <div fdbToolHeaderElement>\n            <h1 class=\"fd-tool-header__product-name\">\n                {{ productName }}\n            </h1>\n        </div>\n    }\n    @if (fdbToolHeaderState().secondTitleVisible && secondTitle) {\n        <div fdbToolHeaderElement>\n            <div class=\"fd-tool-header__second-title\">\n                {{ secondTitle }}\n            </div>\n        </div>\n    }\n</div>\n@if (fdbToolHeaderState().searchFieldVisible) {\n    <div fdbToolHeaderGroup center>\n        <ng-content select=\"fdb-search-field\"></ng-content>\n    </div>\n}\n<fd-overflow-layout\n    fdbToolHeaderGroup\n    actions\n    [style.justify-content]=\"'end'\"\n    (hiddenItemsChange)=\"_handleHiddenItemsChange($event)\"\n    [renderShowMoreButton]=\"false\"\n>\n    @if (fdbToolHeaderState().searchFieldToggleActionVisible) {\n        <ng-template fdOverflowItemRef>\n            <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                <button\n                    fd-button\n                    fdbToolHeaderActionButton\n                    glyph=\"search\"\n                    (click)=\"$event.stopPropagation(); expandSearchField()\"\n                ></button>\n            </div>\n        </ng-template>\n    }\n    @if (fdbToolHeaderState().providedActionsVisible) {\n        @for (action of _contentActions; track action) {\n            @if (action.isSeparator ? fdbToolHeaderState().separatorsBetweenActionsVisible : true) {\n                <ng-template [fdOverflowItemRef]=\"action\" let-hidden let-injector=\"injector\">\n                    @if (hidden === false) {\n                        <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"!!action.forceVisibility\">\n                            <ng-template [ngTemplateOutlet]=\"actionTemplate\"></ng-template>\n                        </div>\n                    } @else {\n                        <ng-template\n                            [ngTemplateOutlet]=\"action.templateRef\"\n                            [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n                            [ngTemplateOutletInjector]=\"injector\"\n                        >\n                        </ng-template>\n                    }\n                    <ng-template #actionTemplate>\n                        <ng-template\n                            [ngTemplateOutlet]=\"action.templateRef\"\n                            [ngTemplateOutletContext]=\"{ hidden: hidden }\"\n                            [ngTemplateOutletInjector]=\"injector\"\n                        >\n                        </ng-template>\n                    </ng-template>\n                </ng-template>\n            }\n        }\n    }\n    <!-- Custom overflow button used as overflow item START -->\n    @if (_hiddenActions$(); as hiddenActions) {\n        @if (hiddenActions.length > 0) {\n            <ng-template fdOverflowItemRef>\n                <fdb-navigation-menu-popover fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                    <button\n                        *fdbNavigationMenuPopoverControl\n                        fd-button\n                        fdbToolHeaderActionButton\n                        glyph=\"overflow\"\n                    ></button>\n                    <fdb-navigation-menu\n                        class=\"fd-tool-header__navigation-menu\"\n                        fdkIndirectFocusableList\n                        #indirectFocusableList=\"fdkIndirectFocusableList\"\n                    >\n                        @for (item of hiddenActions; track item.globalIndex) {\n                            <ng-template\n                                [ngTemplateOutlet]=\"item.templateRef\"\n                                [ngTemplateOutletContext]=\"{\n                                    $implicit: true,\n                                    index: item.index,\n                                    globalIndex: item.globalIndex,\n                                    first: item.first,\n                                    last: item.last,\n                                    injector: _indirectFocusableItemInjector(indirectFocusableList.injector, item)\n                                }\"\n                            >\n                            </ng-template>\n                        }\n                    </fdb-navigation-menu>\n                </fdb-navigation-menu-popover>\n            </ng-template>\n        }\n    }\n    <!-- Custom overflow button used as overflow item END -->\n    @if (fdbToolHeaderState().userAvatarVisible && _toolHeaderUser) {\n        @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n            <ng-template fdOverflowItemRef>\n                <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                    <div class=\"fd-tool-header__separator\"></div>\n                </div>\n            </ng-template>\n        }\n        <ng-template fdOverflowItemRef>\n            <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                <ng-content select=\"[fdbToolHeaderUser]\"></ng-content>\n            </div>\n        </ng-template>\n    }\n    @if (fdbToolHeaderState().productSwitchVisible && _toolHeaderProductSwitch) {\n        @if (fdbToolHeaderState().separatorsBetweenActionsVisible) {\n            <ng-template fdOverflowItemRef>\n                <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                    <div class=\"fd-tool-header__separator\"></div>\n                </div>\n            </ng-template>\n        }\n        <ng-template fdOverflowItemRef>\n            <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                <ng-content select=\"fdb-tool-header-product-switch, fd-product-switch\"></ng-content>\n            </div>\n        </ng-template>\n    }\n    @if (fdbToolHeaderState().voiceInputVisible) {\n        <ng-template fdOverflowItemRef>\n            <div fdbToolHeaderElement fdOverflowLayoutItem [forceVisibility]=\"true\">\n                <button\n                    fd-button\n                    fdbToolHeaderActionButton\n                    glyph=\"microphone\"\n                    [ariaLabel]=\"'Search with voice'\"\n                    (click)=\"microphoneClick.emit()\"\n                ></button>\n            </div>\n        </ng-template>\n    }\n</fd-overflow-layout>\n","import { ContentChild, Directive, inject, TemplateRef } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ToolHeaderActionClass } from '../tool-header-action.class';\n\nexport interface ToolHeaderActionContext {\n    hidden: boolean;\n}\n\n@Directive({\n    selector: '[fdbToolHeaderAction]',\n    providers: [\n        {\n            provide: ToolHeaderActionClass,\n            useExisting: ToolHeaderActionDirective\n        }\n    ],\n    standalone: true\n})\nexport class ToolHeaderActionDirective extends ToolHeaderActionClass {\n    /**\n     * Button component which will be used for the action\n     **/\n    @ContentChild(ButtonComponent, { descendants: true })\n    button: ButtonComponent;\n\n    /** @hidden */\n    templateRef = inject<TemplateRef<ToolHeaderActionContext>>(TemplateRef);\n\n    /** @hidden */\n    static ngTemplateContextGuard(dir: ToolHeaderActionDirective, ctx: unknown): ctx is ToolHeaderActionContext {\n        return !(dir.isSeparator || dir.forceVisibility);\n    }\n}\n","import {\n    computed,\n    DestroyRef,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    inject,\n    Input,\n    Output,\n    signal\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { FdbViewMode } from '@fundamental-ngx/btp/shared';\nimport { HasElementRef, ResizeObserverService, ResponsiveBreakpoints } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityDirective, ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { distinctUntilChanged, map, startWith } from 'rxjs';\nimport { ToolHeaderComponent } from '../components/tool-header/tool-header.component';\n\ninterface FdbToolHeaderModeConfig {\n    desktop: number;\n    tabletLandscape: [number, number];\n    tabletPortrait: [number, number];\n    phone: number;\n}\n\nconst DEFAULT_CONFIG: FdbToolHeaderModeConfig = {\n    desktop: ResponsiveBreakpoints.L + 1,\n    tabletLandscape: [ResponsiveBreakpoints.M + 1, ResponsiveBreakpoints.L],\n    tabletPortrait: [ResponsiveBreakpoints.S + 1, ResponsiveBreakpoints.M],\n    phone: ResponsiveBreakpoints.S\n};\n\n/**\n * Directive that automatically adjusts the ToolHeader's mode, orientation,\n * and content density based on the element's width.\n *\n * Content density is derived from the detected mode:\n * - Desktop mode (empty string): COMPACT density for mouse/keyboard interaction\n * - Tablet/Phone modes: COZY density for touch-friendly interaction\n *\n * @example\n * <fdb-tool-header fdbToolHeaderAutoMode>\n *   <!-- Content density automatically adjusts based on width -->\n * </fdb-tool-header>\n *\n * @example\n * <fdb-tool-header\n *   fdbToolHeaderAutoMode\n *   (modeChange)=\"onModeChange($event)\"\n *   (contentDensityChange)=\"onDensityChange($event)\">\n * </fdb-tool-header>\n */\n@Directive({\n    selector: 'fdb-tool-header[fdbToolHeaderAutoMode]',\n    exportAs: 'fdbToolHeaderAutoMode',\n    hostDirectives: [ContentDensityDirective],\n    standalone: true\n})\nexport class ToolHeaderAutoModeDirective implements HasElementRef {\n    /**\n     * What sizes should be used to determine mode.\n     * Sizes mean the width of the tool header, not the whole screen.\n     **/\n    @Input() set config(config: Partial<FdbToolHeaderModeConfig>) {\n        this._config.set({ ...DEFAULT_CONFIG, ...config });\n    }\n\n    /**\n     * Current mode of the ToolHeaderComponent\n     */\n    @Output()\n    modeChange = new EventEmitter<FdbViewMode>();\n\n    /**\n     * Current orientation of the ToolHeaderComponent\n     */\n    @Output()\n    orientationChange = new EventEmitter<'landscape' | 'portrait'>();\n\n    /**\n     * Current content density of the ToolHeaderComponent\n     */\n    @Output()\n    contentDensityChange = new EventEmitter<ContentDensityMode>();\n\n    /**\n     * Reference to the element on which the directive is applied.\n     */\n    readonly elementRef: ElementRef = inject(ElementRef);\n\n    /**\n     * Current configuration of the directive.\n     */\n    protected _config = signal(DEFAULT_CONFIG);\n\n    /**\n     * Reference to the ContentDensityDirective provided via hostDirectives.\n     * Used to programmatically set the content density based on the detected mode.\n     */\n    protected _contentDensity = inject(ContentDensityDirective);\n\n    /**\n     * Signal of the Width of the element\n     */\n    protected _elementWidth = toSignal(\n        inject(ResizeObserverService)\n            .observe(this.elementRef.nativeElement)\n            .pipe(\n                map((entries) => entries[0].contentRect.width),\n                startWith(this.elementRef.nativeElement.clientWidth)\n            ),\n        { requireSync: true }\n    );\n    /**\n     * Reference to the ToolHeaderComponent\n     */\n    protected _toolHeaderComponent = inject(ToolHeaderComponent, { host: true });\n\n    /**\n     * Computed signal that determines the current mode and orientation\n     * based on the element's width and configuration breakpoints.\n     *\n     * Returns a tuple of [mode, orientation] where mode is:\n     * - '' (empty): desktop mode, triggers COMPACT density\n     * - 'tablet': tablet mode, triggers COZY density\n     * - 'phone': phone mode, triggers COZY density\n     */\n    protected _currentMode = computed(() => this._getMode(this._elementWidth(), this._config()));\n\n    /**\n     * @hidden\n     */\n    private readonly _destroyRef = inject(DestroyRef);\n\n    /**\n     * @hidden\n     */\n    constructor() {\n        toObservable(this._currentMode)\n            .pipe(\n                distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n                takeUntilDestroyed(this._destroyRef)\n            )\n            .subscribe((_mode) => {\n                const [mode, orientation = 'landscape'] = _mode;\n                this._toolHeaderComponent._mode = mode;\n                this._toolHeaderComponent._orientation = orientation;\n\n                // Derive content density from mode:\n                // - Desktop (mode='') uses COMPACT for denser mouse/keyboard layouts\n                // - Tablet/Phone (mode='tablet'|'phone') uses COZY for touch-friendly spacing\n                const contentDensity = mode ? ContentDensityMode.COZY : ContentDensityMode.COMPACT;\n                this._contentDensity.setDensity(contentDensity);\n\n                this.modeChange.emit(mode);\n                this.orientationChange.emit(orientation);\n                this.contentDensityChange.emit(contentDensity);\n            });\n    }\n\n    /**\n     * Determines the mode and orientation based on width and configuration.\n     *\n     * @param width - Current width of the element in pixels\n     * @param config - Breakpoint configuration for mode detection\n     * @returns Tuple of [mode, orientation] where mode affects content density\n     */\n    private _getMode(width: number, config: FdbToolHeaderModeConfig): [FdbViewMode, 'landscape' | 'portrait'] {\n        if (width >= config.desktop) {\n            return ['', 'landscape'];\n        }\n        if (width <= config.phone) {\n            return ['phone', 'landscape'];\n        }\n        return [\n            'tablet',\n            width >= config.tabletLandscape[0] && width <= config.tabletLandscape[1] ? 'landscape' : 'portrait'\n        ];\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}