{"version":3,"file":"fundamental-ngx-core-shellbar.mjs","sources":["../../../../libs/core/shellbar/product-menu/product-menu.component.ts","../../../../libs/core/shellbar/product-menu/product-menu.component.html","../../../../libs/core/shellbar/tokens.ts","../../../../libs/core/shellbar/shellbar-action/shellbar-action.component.ts","../../../../libs/core/shellbar/shellbar-action/shellbar-action.component.html","../../../../libs/core/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.ts","../../../../libs/core/shellbar/shellbar-actions-mobile/shellbar-actions-mobile.component.html","../../../../libs/core/shellbar/user-menu/shellbar-user-menu-button.directive.ts","../../../../libs/core/shellbar/user-menu/shellbar-user-menu.component.ts","../../../../libs/core/shellbar/user-menu/shellbar-user-menu.component.html","../../../../libs/core/shellbar/shellbar-actions/shellbar-actions.component.ts","../../../../libs/core/shellbar/shellbar-actions/shellbar-actions.component.html","../../../../libs/core/shellbar/shellbar-branding/shellbar-branding.component.ts","../../../../libs/core/shellbar/shellbar-context-area/shellbar-context-area.component.ts","../../../../libs/core/shellbar/shellbar-hide-priority.directive.ts","../../../../libs/core/shellbar/shellbar-logo/shellbar-logo.component.ts","../../../../libs/core/shellbar/shellbar-separator/shellbar-separator.component.ts","../../../../libs/core/shellbar/shellbar-sidenav.directive.ts","../../../../libs/core/shellbar/shellbar-subtitle/shellbar-subtitle.component.ts","../../../../libs/core/shellbar/shellbar-subtitle/shellbar-subtitle.component.html","../../../../libs/core/shellbar/shellbar-title/shellbar-title.component.ts","../../../../libs/core/shellbar/shellbar-title/shellbar-title.component.html","../../../../libs/core/shellbar/shellbar.component.ts","../../../../libs/core/shellbar/shellbar.component.html","../../../../libs/core/shellbar/shellbar.module.ts","../../../../libs/core/shellbar/fundamental-ngx-core-shellbar.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n    MenuComponent,\n    MenuInteractiveComponent,\n    MenuItemComponent,\n    MenuTitleDirective,\n    MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\nimport { ShellbarMenuItem } from '../model/shellbar-menu-item';\n\n/**\n * The component that represents a product menu.\n * Product menu is used for navigating to applications within the product.\n * ```html\n * <fd-product-menu [control]=\"productMenuControl\"\n *                  [items]=\"productMenuItems\">\n * </fd-product-menu>\n * ```\n */\n@Component({\n    selector: 'fd-product-menu',\n    templateUrl: './product-menu.component.html',\n    styleUrl: './product-menu.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        ButtonComponent,\n        ContentDensityDirective,\n        MenuComponent,\n        MenuItemComponent,\n        MenuInteractiveComponent,\n        MenuTitleDirective,\n        MenuTriggerDirective,\n        IconComponent\n    ]\n})\nexport class ProductMenuComponent {\n    /** Whether the popover should close when the escape key is pressed. */\n    @Input()\n    closeOnEscapeKey = true;\n\n    /** Whether the popover should close when a click is made outside its boundaries. */\n    @Input()\n    closeOnOutsideClick = true;\n\n    /** The trigger events that will open/close the popover.\n     *  Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n    @Input()\n    triggers: string[] = ['click'];\n\n    /** The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n     *  bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end. */\n    @Input()\n    placement: Placement = 'bottom-end';\n\n    /** Whether the popover is disabled. */\n    @Input()\n    disabled = false;\n\n    /**\n     * Preset options for the popover body width.\n     * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n     * * `equal` will apply a width to the body equivalent to the width of the control.\n     * * Leave blank for no effect.\n     */\n    @Input()\n    fillControlMode: PopoverFillMode | null;\n\n    /**\n     * The control element to toggle the product menu,\n     * represented by the name of the current application.\n     */\n    @Input()\n    control: string;\n\n    /**\n     *  The items in the product menu. If the value is not passed or there is empty array,\n     * the template changes and shows only control\n     */\n    @Input()\n    items: ShellbarMenuItem[];\n\n    /** When set to true, popover list will be closed after selecting the option */\n    @Input()\n    closePopoverOnSelect = false;\n\n    /** @hidden */\n    @ViewChild(MenuComponent)\n    menu: MenuComponent;\n\n    /** @hidden */\n    itemClicked(item: ShellbarMenuItem, event: MouseEvent): void {\n        if (this.closePopoverOnSelect) {\n            this.menu.close();\n        }\n        if (item.callback) {\n            item.callback(event);\n        }\n    }\n}\n","@if (items && items.length > 0) {\n    <div class=\"fd-shellbar__product\">\n        <h1 class=\"fd-sr-only\">{{ control }}</h1>\n        <button\n            fd-button\n            fdType=\"transparent\"\n            class=\"fd-shellbar__button fd-shellbar__button--menu\"\n            glyph=\"slim-arrow-down\"\n            glyphPosition=\"after\"\n            fdCozy\n            [disabled]=\"disabled\"\n            [fdMenuTrigger]=\"menu\"\n        >\n            <span class=\"fd-shellbar__title\">{{ control }}</span>\n        </button>\n        <fd-menu\n            #menu\n            [placement]=\"placement\"\n            [triggers]=\"triggers\"\n            [fillControlMode]=\"fillControlMode\"\n            [closeOnEscapeKey]=\"closeOnEscapeKey\"\n            [closeOnOutsideClick]=\"closeOnOutsideClick\"\n        >\n            @for (item of items; track item) {\n                <li (click)=\"itemClicked(item, $event)\" fd-menu-item>\n                    <a\n                        [attr.href]=\"item.link ? item.link : null\"\n                        [attr.target]=\"item.newTab ? '_blank' : null\"\n                        fd-menu-interactive\n                    >\n                        <span fd-menu-title>{{ item.name }}</span>\n                        @if (item.glyph) {\n                            <fd-icon fd-menu-addon position=\"after\" [glyph]=\"item.glyph\"></fd-icon>\n                        }\n                    </a>\n                </li>\n            }\n        </fd-menu>\n    </div>\n} @else {\n    <div class=\"fd-shellbar__product\">\n        <h1 class=\"fd-shellbar__title fd-product-menu__title\">\n            {{ control }}\n        </h1>\n    </div>\n}\n","import { InjectionToken } from '@angular/core';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { Shellbar } from './model/shellbar';\n\nexport const FD_SHELLBAR_SEARCH_CONFIG = new InjectionToken('FdShellbarSearchConfig');\n\nexport const FD_SHELLBAR_SEARCH_COMPONENT = new InjectionToken<SearchComponent>('FdShellbarSearchComponent');\n\nexport const FD_SHELLBAR_ACTION_COMPONENT = new InjectionToken('FdShellbarActionComponent');\n\nexport const FD_SHELLBAR_COMPONENT = new InjectionToken<Shellbar>('FdShellbarComponent');\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent, ButtonType } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconFont } from '@fundamental-ngx/core/icon';\nimport { FD_SHELLBAR_ACTION_COMPONENT } from '../tokens';\n\n/**\n * The component that represents a shellbar action.\n * ```html\n *  <fd-shellbar-action *ngFor=\"let action of actions\"\n *                      [glyph]=\"action.glyph\"\n *                      [callback]=\"action.callback\"\n *                      [label]=\"action.label\"\n *                      [ariaLabel]=\"action.ariaLabel\"\n *                      [title]=\"action.title\"\n *                      [notificationCount]=\"action.notificationCount\"\n *                      [notificationLabel]=\"action.notificationLabel\">\n *  </fd-shellbar-action>\n * ```\n */\n@Component({\n    selector: 'fd-shellbar-action',\n    templateUrl: './shellbar-action.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: FD_SHELLBAR_ACTION_COMPONENT,\n            useExisting: ShellbarActionComponent\n        }\n    ],\n    imports: [ButtonComponent, ContentDensityDirective]\n})\nexport class ShellbarActionComponent {\n    /** Icon name for the button. */\n    readonly glyph = input<string>();\n\n    /** Icon font family. */\n    readonly glyphFont = input<IconFont>(FD_DEFAULT_ICON_FONT_FAMILY);\n\n    /** Function to call when the action is clicked. */\n    readonly callback = input<Nullable<(event: MouseEvent) => void>>(null);\n\n    /** Accessible label for the action. */\n    readonly label = input<string>('');\n\n    /** ARIA label for screen readers. */\n    readonly ariaLabel = input<string>('');\n\n    /** Tooltip text shown on hover. */\n    readonly title = input<string>('');\n\n    /** ARIA label for the notification badge. */\n    readonly notificationLabel = input<string>();\n\n    /** Number of notifications to display in badge. */\n    readonly notificationCount = input<number>();\n\n    /** The button type for styling (e.g., 'transparent', 'emphasized'). */\n    readonly fdType = input<ButtonType>('transparent');\n\n    /** Whether the button is in toggled state. */\n    readonly toggled = input<boolean | undefined | null>();\n\n    /** @hidden */\n    _elRef = inject(ElementRef);\n\n    /** @hidden */\n    protected _handleClick(event: MouseEvent): void {\n        const callbackFn = this.callback();\n        if (callbackFn) {\n            callbackFn(event);\n        }\n    }\n}\n","<div class=\"fd-shellbar__action fd-shellbar__action--desktop\">\n    <button\n        fd-button\n        [fdType]=\"fdType() ?? 'transparent'\"\n        [class.fd-shellbar__button]=\"!fdType()\"\n        fdCozy\n        [ariaLabel]=\"ariaLabel()\"\n        [title]=\"title() || ariaLabel()\"\n        [glyph]=\"glyph()\"\n        [glyphFont]=\"glyphFont()\"\n        [toggled]=\"toggled()\"\n        (click)=\"_handleClick($event)\"\n    >\n        @if (notificationCount()) {\n            <span class=\"fd-button__badge\" [attr.aria-label]=\"notificationLabel()\">\n                {{ notificationCount() }}\n            </span>\n        }\n    </button>\n</div>\n","import {\n    AfterContentChecked,\n    ChangeDetectionStrategy,\n    Component,\n    EventEmitter,\n    input,\n    Input,\n    Output,\n    QueryList,\n    ViewEncapsulation\n} from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n    ActionSheetBodyComponent,\n    ActionSheetComponent,\n    ActionSheetControlComponent,\n    ActionSheetItemComponent\n} from '@fundamental-ngx/core/action-sheet';\nimport { ButtonComponent, ButtonType, defaultButtonType } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ShellbarActionComponent } from '../shellbar-action/shellbar-action.component';\n\n@Component({\n    selector: 'fd-shellbar-actions-mobile',\n    templateUrl: './shellbar-actions-mobile.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true,\n    imports: [\n        ActionSheetComponent,\n        ActionSheetControlComponent,\n        ActionSheetItemComponent,\n        ActionSheetBodyComponent,\n        ButtonComponent,\n        ContentDensityDirective,\n        FdTranslatePipe\n    ]\n})\nexport class ShellbarActionsMobileComponent implements AfterContentChecked {\n    /** @hidden */\n    @Input()\n    shellbarActions: QueryList<ShellbarActionComponent>;\n\n    /**\n     * Whether the search is present in the shellbar.\n     */\n    @Input()\n    searchExists = false;\n\n    /** @hidden */\n    @Input()\n    assistiveToolsCallback: Nullable<(event: MouseEvent) => void>;\n\n    /** @hidden */\n    @Output()\n    showSearch = new EventEmitter<void>();\n\n    /** @hidden */\n    totalNotifications: number;\n\n    /** The button type for styling (e.g., 'transparent', 'emphasized'). */\n    readonly fdType = input<ButtonType>(defaultButtonType);\n\n    /** Whether the button is in toggled state. */\n    readonly toggled = input<boolean | undefined | null>();\n\n    /** @hidden */\n    actionClicked(item: ShellbarActionComponent, event: MouseEvent): void {\n        const callbackFn = item.callback();\n        if (callbackFn) {\n            callbackFn(event);\n        }\n    }\n\n    /** @hidden */\n    ngAfterContentChecked(): void {\n        this.totalNotifications = 0;\n\n        this.shellbarActions?.forEach((action) => {\n            const count = action.notificationCount();\n            if (count && typeof count === 'number') {\n                this.totalNotifications = this.totalNotifications + count;\n            }\n        });\n    }\n}\n","@if (shellbarActions.length > 0 || searchExists) {\n    <div class=\"fd-shellbar-collapse\">\n        <fd-action-sheet placement=\"bottom-end\" #actionSheet>\n            <fd-action-sheet-control>\n                <button\n                    fd-button\n                    [fdType]=\"fdType()\"\n                    [class.fd-shellbar__button]=\"fdType() === 'standard'\"\n                    [toggled]=\"toggled()\"\n                    glyph=\"overflow\"\n                    [attr.aria-label]=\"('coreShellbar.collapsedItemMenuLabel' | fdTranslate)()\"\n                    [title]=\"('coreShellbar.collapsedItemMenuLabel' | fdTranslate)()\"\n                    fdCozy\n                >\n                    @if (totalNotifications) {\n                        <span class=\"fd-button__badge\">\n                            {{ totalNotifications }}\n                        </span>\n                    }\n                </button>\n            </fd-action-sheet-control>\n            <fd-action-sheet-body>\n                @if (searchExists) {\n                    <li\n                        fd-action-sheet-item\n                        tabindex=\"-1\"\n                        glyph=\"search\"\n                        [label]=\"('coreShellbar.search' | fdTranslate)()\"\n                        (click)=\"showSearch.emit(); actionSheet.close()\"\n                        fdCozy\n                    ></li>\n                }\n                @for (action of shellbarActions; track action) {\n                    <li\n                        fd-action-sheet-item\n                        tabindex=\"-1\"\n                        [fdType]=\"action.fdType()\"\n                        [toggled]=\"action.toggled()\"\n                        [glyph]=\"action.glyph() || ''\"\n                        [label]=\"action.label()\"\n                        (click)=\"actionClicked(action, $event)\"\n                        fdCozy\n                    >\n                        @if (action.notificationCount()) {\n                            <span class=\"fd-button__badge\">{{ action.notificationCount() }}</span>\n                        }\n                    </li>\n                }\n                @if (!!assistiveToolsCallback) {\n                    <li\n                        fd-action-sheet-item\n                        tabindex=\"-1\"\n                        glyph=\"sys-help\"\n                        [label]=\"('coreShellbar.assistiveTools' | fdTranslate)()\"\n                        (click)=\"assistiveToolsCallback($event)\"\n                        fdCozy\n                    ></li>\n                }\n            </fd-action-sheet-body>\n        </fd-action-sheet>\n    </div>\n}\n","import { Directive, inject, Input, isDevMode, OnInit } from '@angular/core';\nimport { defaultButtonType, FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\n\n@Directive({\n    selector: '[fd-button][fdShellbarUserMenuButton]',\n    host: {\n        '[class.fd-shellbar__button]': 'true',\n        '[class.fd-shellbar__button--user-menu]': 'true'\n    },\n    standalone: true\n})\nexport class ShellbarUserMenuButtonDirective implements OnInit {\n    /** The type of the button. In case of the ShellbarUserMenuButtonDirective, the type is always 'transparent'. */\n    @Input()\n    fdType = 'transparent' as const;\n\n    /** @hidden */\n    private _hostButton = inject(FD_BUTTON_COMPONENT, { host: true });\n\n    /** @hidden */\n    ngOnInit(): void {\n        if (\n            this._hostButton.getFdType() !== 'transparent' &&\n            this._hostButton.getFdType() !== defaultButtonType &&\n            isDevMode()\n        ) {\n            console.warn(\n                'ShellbarUserMenuButtonDirective should be used with transparent button type. Overriding button type to transparent.'\n            );\n        }\n        this._hostButton.setFdType('transparent');\n    }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    EventEmitter,\n    Input,\n    Output,\n    ViewChild\n} from '@angular/core';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n    MenuComponent,\n    MenuInteractiveComponent,\n    MenuItemComponent,\n    MenuTitleDirective,\n    MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport { Placement, PopoverFillMode } from '@fundamental-ngx/core/shared';\nimport { ShellbarUser } from '../model/shellbar-user';\nimport { ShellbarUserMenu } from '../model/shellbar-user-menu';\nimport { ShellbarUserMenuButtonDirective } from './shellbar-user-menu-button.directive';\n\n/**\n * This Component extends popover component and passes all the options and events from outside to popover component\n * and Vice Versa\n * */\n@Component({\n    selector: 'fd-shellbar-user-menu',\n    templateUrl: './shellbar-user-menu.component.html',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        ButtonComponent,\n        PortalModule,\n        MenuComponent,\n        MenuItemComponent,\n        MenuInteractiveComponent,\n        MenuTitleDirective,\n        MenuTriggerDirective,\n        AvatarComponent,\n        ShellbarUserMenuButtonDirective\n    ],\n    host: {\n        '[style.order]': '1' // ensures the user menu is placed at the end of the shellbar\n    }\n})\nexport class ShellbarUserMenuComponent {\n    /** The user data. */\n    @Input()\n    user: ShellbarUser;\n\n    /** The user menu data. */\n    @Input()\n    userMenu: ShellbarUserMenu[];\n\n    /**\n     * Preset options for the popover body width.\n     * * `at-least` will apply a minimum width to the body equivalent to the width of the control.\n     * * `equal` will apply a width to the body equivalent to the width of the control.\n     * * Leave blank for no effect.\n     */\n    @Input()\n    fillControlMode: PopoverFillMode | null;\n\n    /** The placement of the popover. It can be one of: top, top-start, top-end, bottom,\n     *  bottom-start, bottom-end, right, right-start, right-end, left, left-start, left-end. */\n    @Input()\n    placement: Placement = 'bottom-end';\n\n    /** The trigger events that will open/close the popover.\n     *  Accepts any [HTML DOM Events](https://www.w3schools.com/jsref/dom_obj_event.asp). */\n    @Input()\n    triggers: string[] = ['click'];\n\n    /** Whether the popover should close when the escape key is pressed. */\n    @Input()\n    closeOnEscapeKey = true;\n\n    /** Whether the popover should close when a click is made outside its boundaries. */\n    @Input()\n    closeOnOutsideClick = true;\n\n    /** Whether the popover is disabled. */\n    @Input()\n    disabled = false;\n\n    /** Whether or not to show the popover arrow */\n    @Input()\n    noArrow = false;\n\n    /** Event emitted on item click */\n    @Output()\n    itemClicked: EventEmitter<void> = new EventEmitter<void>();\n\n    /** @hidden */\n    @ViewChild(MenuComponent)\n    _menu: MenuComponent;\n\n    /** @hidden */\n    @ContentChild(MenuComponent)\n    _contentPassedMenu: MenuComponent;\n\n    /** @hidden */\n    @ContentChild(ShellbarUserMenuButtonDirective)\n    _shellbarUserMenuButton: ShellbarUserMenuButtonDirective;\n\n    /** Reference to Menu Component */\n    get menu(): MenuComponent {\n        return this._contentPassedMenu || this._menu;\n    }\n\n    /**\n     * @hidden\n     */\n    itemClick(item: ShellbarUserMenu, event: MouseEvent): void {\n        this.itemClicked.emit();\n        if (item.callback) {\n            item.callback(event);\n        }\n    }\n}\n","@if (user || _shellbarUserMenuButton) {\n    <div class=\"fd-shellbar__action fd-shellbar__action--show-always\">\n        <div class=\"fd-user-menu\">\n            @if (!_shellbarUserMenuButton) {\n                <button\n                    fd-button\n                    fdType=\"transparent\"\n                    fdShellbarUserMenuButton\n                    [disabled]=\"disabled\"\n                    [fdMenuTrigger]=\"menu\"\n                >\n                    @if (!user.image) {\n                        <fd-avatar size=\"xs\" [colorAccent]=\"user.colorAccent\" [circle]=\"true\" [label]=\"user.fullName\">\n                        </fd-avatar>\n                    } @else {\n                        <fd-avatar\n                            [colorAccent]=\"user.colorAccent\"\n                            [circle]=\"true\"\n                            size=\"xs\"\n                            image=\"{{ user.image }}\"\n                        ></fd-avatar>\n                    }\n                </button>\n            } @else {\n                <ng-content select=\"[fdShellbarUserMenuButton]\"></ng-content>\n            }\n            @if (userMenu) {\n                <fd-menu\n                    [triggers]=\"triggers\"\n                    [placement]=\"placement\"\n                    [fillControlMode]=\"fillControlMode\"\n                    [closeOnEscapeKey]=\"closeOnEscapeKey\"\n                    [noArrow]=\"noArrow\"\n                    [closeOnOutsideClick]=\"closeOnOutsideClick\"\n                >\n                    @for (item of userMenu; track item) {\n                        <li fd-menu-item (click)=\"itemClick(item, $event)\">\n                            <div fd-menu-interactive>\n                                <span fd-menu-title>{{ item.text }}</span>\n                            </div>\n                        </li>\n                    }\n                </fd-menu>\n            }\n        </div>\n    </div>\n}\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewEncapsulation,\n    inject\n} from '@angular/core';\n\nimport { ComboboxInterface, FD_COMBOBOX_COMPONENT } from '@fundamental-ngx/core/combobox';\nimport { FD_PRODUCT_SWITCH_COMPONENT, ProductSwitchComponent } from '@fundamental-ngx/core/product-switch';\n\nimport { CdkPortalOutlet, DomPortal, PortalModule } from '@angular/cdk/portal';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { UserMenuComponent } from '@fundamental-ngx/core/user-menu';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ShellbarSizes } from '../model/shellbar-sizes';\nimport { ShellbarUser } from '../model/shellbar-user';\nimport { ShellbarUserMenu } from '../model/shellbar-user-menu';\nimport { ShellbarActionComponent } from '../shellbar-action/shellbar-action.component';\nimport { ShellbarActionsMobileComponent } from '../shellbar-actions-mobile/shellbar-actions-mobile.component';\nimport { FD_SHELLBAR_ACTION_COMPONENT, FD_SHELLBAR_COMPONENT } from '../tokens';\nimport { ShellbarUserMenuComponent } from '../user-menu/shellbar-user-menu.component';\n\n/**\n * The component that represents shellbar actions.\n * It is a container wrapper for all product actions and links (required element).\n * ```html\n * <fd-shellbar-actions [user]=\"user\"\n *                      [userMenu]=\"userMenu\"\n *                      [productSwitcher]=\"productSwitcher\">\n *        <button fd-button fdType=\"standard\">Custom Button</button>\n *\n *        <fd-shellbar-action *ngFor=\"let action of actions\"\n *                            [glyph]=\"action.glyph\"\n *                            [callback]=\"action.callback\"\n *                            [label]=\"action.label\"\n *                            [notificationCount]=\"action.notificationCount\"\n *                            [notificationLabel]=\"action.notificationLabel\">\n *        </fd-shellbar-action>\n * </fd-shellbar-actions>\n * ```\n */\n\n@Component({\n    selector: 'fd-shellbar-actions',\n    templateUrl: './shellbar-actions.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[class.fd-shellbar__group]': 'true',\n        '[class.fd-shellbar__group--actions]': 'true'\n    },\n    imports: [\n        PortalModule,\n        ShellbarActionsMobileComponent,\n        ShellbarActionComponent,\n        ShellbarUserMenuComponent,\n        FdTranslatePipe\n    ]\n})\nexport class ShellbarActionsComponent implements OnDestroy {\n    /** The user data. */\n    @Input()\n    user: ShellbarUser;\n\n    /** The user menu data. */\n    @Input()\n    userMenu: ShellbarUserMenu[];\n\n    /** When set to true, popover list will be closed after selecting the option */\n    @Input()\n    closePopoverOnSelect = false;\n\n    /** Whether to show the assistive tools icon. */\n    @Input()\n    assistiveTools = false;\n\n    /** @hidden */\n    @Input()\n    assistiveToolsCallback: Nullable<(event: MouseEvent) => void>;\n\n    /**\n     * Event emitted when search opened.\n     */\n    @Output()\n    searchOpen = new EventEmitter<boolean>();\n\n    /** @hidden */\n    @ContentChildren(FD_SHELLBAR_ACTION_COMPONENT)\n    shellbarActions: QueryList<ShellbarActionComponent>;\n\n    /** @hidden */\n    @ContentChild(ShellbarUserMenuComponent)\n    userComponent: ShellbarUserMenuComponent;\n\n    /** @hidden */\n    @ViewChild(ShellbarUserMenuComponent)\n    userComponentView: ShellbarUserMenuComponent;\n\n    /** @hidden */\n    @ContentChild(FD_COMBOBOX_COMPONENT)\n    comboboxComponent: ComboboxInterface;\n\n    /** @hidden */\n    @ContentChild(FD_PRODUCT_SWITCH_COMPONENT, { static: false })\n    productSwitchComponent: ProductSwitchComponent;\n\n    /** @hidden */\n    @ContentChild(UserMenuComponent, { static: false })\n    userMenuComponent: UserMenuComponent;\n\n    /** @hidden */\n    @ViewChild(CdkPortalOutlet)\n    _portalOutlet: Nullable<CdkPortalOutlet>;\n\n    /** @hidden */\n    _addSearchIcon = false;\n\n    /** @hidden */\n    _searchPortal: DomPortal;\n\n    /** @hidden */\n    _showMobileActions = false;\n\n    /**\n     * Whether to show the search field.\n     */\n    showSearch = false;\n\n    /** @hidden */\n    currentSize: ShellbarSizes;\n\n    /** @hidden */\n    _elRef = inject(ElementRef);\n\n    /** @hidden */\n    private readonly _cd = inject(ChangeDetectorRef);\n\n    /** @hidden */\n    private readonly _shellbar = inject(FD_SHELLBAR_COMPONENT);\n\n    /** @hidden */\n    private _searchComponent: Nullable<SearchComponent>;\n\n    /** @hidden */\n    _toggleSearch: () => void = () => {\n        this._setSearchVisibility(!this.showSearch);\n    };\n\n    /** @hidden */\n    public get userItem(): ShellbarUser {\n        if (this.userComponent) {\n            return this.userComponent.user;\n        } else {\n            return this.user;\n        }\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._portalOutlet?.dispose();\n    }\n\n    /** @hidden */\n    _handleOverflow(shouldOverflow: boolean): void {\n        this._showMobileActions = shouldOverflow;\n\n        this.shellbarActions.forEach((action) => {\n            action._elRef.nativeElement.style.display = shouldOverflow ? 'none' : 'flex';\n        });\n\n        this._cd.detectChanges();\n    }\n\n    /** @hidden */\n    _attachSearch(portal: DomPortal, searchComponent: Nullable<SearchComponent>, size: ShellbarSizes): void {\n        this._searchPortal = portal;\n        this._addSearchIcon = true;\n        this.currentSize = size;\n        this._searchComponent = searchComponent;\n        this._toggleSearchPortal(this.showSearch);\n        this._cd.detectChanges();\n    }\n\n    /** @hidden */\n    _detachSearch(): void {\n        if (this._portalOutlet?.hasAttached()) {\n            this._portalOutlet.detach();\n        }\n\n        this._addSearchIcon = false;\n\n        this._cd.detectChanges();\n    }\n\n    /** @hidden */\n    _triggerItems(): void {\n        if (!this.closePopoverOnSelect) {\n            return;\n        }\n        this.userComponentView?.menu.close();\n        this.userComponent?.menu.close();\n    }\n\n    /** @hidden */\n    _setSearchVisibility(visible: boolean): void {\n        this.showSearch = visible;\n        this.searchOpen.emit(this.showSearch);\n\n        if (this.currentSize === 's') {\n            return;\n        }\n\n        this._toggleSearchPortal(visible, visible);\n    }\n\n    /** @hidden */\n    private _toggleSearchPortal(visible: boolean, focusSearch = false): void {\n        if (visible) {\n            this._portalOutlet?.detach();\n            this._portalOutlet?.attach(this._searchPortal);\n        } else {\n            this._portalOutlet?.detach();\n        }\n        this._cd.detectChanges();\n        if (focusSearch) {\n            this._searchComponent?.focus();\n        }\n        if (this._shellbar) {\n            this._shellbar._searchToggledFromActions();\n        }\n    }\n}\n","@if (comboboxComponent) {\n    <div class=\"fd-shellbar__action\">\n        <ng-content select=\"fd-combobox\"></ng-content>\n    </div>\n}\n<!-- If portal outlet placed outside div, it will be added to the end of the root container. So this div actually keeps outlet in desired place. -->\n<div class=\"fd-shellbar__action\" cdkPortalOutlet></div>\n@if (_showMobileActions) {\n    <div class=\"fd-shellbar__action\">\n        <fd-shellbar-actions-mobile\n            [shellbarActions]=\"shellbarActions\"\n            [searchExists]=\"!!_searchPortal\"\n            (showSearch)=\"_toggleSearch()\"\n            [assistiveToolsCallback]=\"assistiveToolsCallback\"\n        ></fd-shellbar-actions-mobile>\n    </div>\n}\n<div class=\"fd-shellbar__action\">\n    <ng-content></ng-content>\n</div>\n@if (_addSearchIcon && !showSearch && !_showMobileActions) {\n    <fd-shellbar-action glyph=\"search\" [callback]=\"_toggleSearch\"></fd-shellbar-action>\n}\n<ng-content select=\"fd-shellbar-action\"></ng-content>\n@if (userComponent || userItem) {\n    @if (!userComponent) {\n        <fd-shellbar-user-menu\n            placement=\"bottom-end\"\n            [user]=\"user\"\n            [userMenu]=\"userMenu\"\n            (itemClicked)=\"_triggerItems()\"\n        ></fd-shellbar-user-menu>\n    } @else {\n        <ng-content select=\"fd-shellbar-user-menu\"></ng-content>\n    }\n}\n@if (userMenuComponent) {\n    <div class=\"fd-shellbar__action\">\n        <ng-content select=\"fd-user-menu\"></ng-content>\n    </div>\n}\n@if (productSwitchComponent) {\n    <div class=\"fd-shellbar__action\">\n        <ng-content select=\"fd-product-switch\"></ng-content>\n    </div>\n}\n@if (assistiveTools && !_showMobileActions) {\n    <fd-shellbar-action\n        glyph=\"sys-help\"\n        label=\"({{ ('coreShellbar.assistiveTools' | fdTranslate)() }})()\"\n        [notificationCount]=\"0\"\n        notificationLabel=\"({{ ('coreShellbar.assistiveTools' | fdTranslate)() }})()\"\n        [callback]=\"assistiveToolsCallback\"\n    >\n    </fd-shellbar-action>\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { FD_SHELLBAR_COMPONENT } from '../tokens';\n\n/**\n * The component for shellbar branding.\n */\n@Component({\n    selector: 'fd-shellbar-branding',\n    template: ` <div\n        class=\"fd-shellbar__branding\"\n        [class.fd-shellbar__branding--non-interactive]=\"!interactiveBranding\"\n    >\n        <ng-content></ng-content>\n    </div>`,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true,\n    styles: [\n        `\n            .fd-shellbar__branding {\n                padding-inline: 0;\n\n                .fd-shellbar__title {\n                    padding-inline: 0.25rem;\n                }\n            }\n        `\n    ]\n})\nexport class ShellbarBrandingComponent {\n    /** Whether the shellbar branding is interactive. */\n    @Input()\n    interactiveBranding = false;\n\n    /** @hidden */\n    private readonly _shellbar = inject(FD_SHELLBAR_COMPONENT);\n\n    /** @hidden */\n    constructor(private _elRef: ElementRef) {}\n\n    /** @hidden */\n    hideTitleIfNeeded(): void {\n        if (this._shellbar._actionsExceedShellbarWidth()) {\n            const titleEl = this._elRef.nativeElement.querySelector('fd-shellbar-title');\n            if (titleEl) {\n                titleEl.style.display = 'none';\n            }\n        }\n    }\n\n    /** @hidden */\n    showTitle(): void {\n        const titleEl = this._elRef.nativeElement.querySelector('fd-shellbar-title');\n        if (titleEl) {\n            titleEl.style.display = 'flex';\n        }\n    }\n}\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    DestroyRef,\n    ElementRef,\n    inject,\n    output\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@fundamental-ngx/cdk/utils';\nimport { FD_SHELLBAR_COMPONENT } from '../tokens';\n\n/**\n * Component representing the context area of the shellbar.\n * It manages the visibility of its child elements based on the available width.\n */\n@Component({\n    selector: 'fd-shellbar-context-area',\n    standalone: true,\n    template: ` <ng-content></ng-content>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        '[class.fd-shellbar__group]': 'true',\n        '[class.fd-shellbar__group--context-area]': 'true'\n    },\n    styles: [\n        `\n            :host {\n                min-width: 0;\n            }\n        `\n    ]\n})\nexport class ShellbarContextAreaComponent implements AfterViewInit {\n    /** Event emitted when items in the context area are hidden or shown. Event parameter is an array of all the items that are hidden. */\n    contentItemVisibilityChange = output<HTMLElement[]>();\n\n    /** @hidden */\n    el: ElementRef = inject(ElementRef);\n\n    /** @hidden */\n    private readonly _shellbar = inject(FD_SHELLBAR_COMPONENT);\n\n    /** @hidden */\n    private _resizeObserverService = inject(ResizeObserverService);\n\n    /** @hidden */\n    private readonly _destroyRef = inject(DestroyRef);\n\n    /** @hidden */\n    private _hiddenItems: HTMLElement[];\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        this._resizeObserverService\n            .observe(this.el.nativeElement)\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe(() => {\n                this.showElements();\n                this.hideElementsIfNeeded();\n            });\n    }\n\n    /**\n     * Iteratively hides elements if the end of the actions exceed the end of the shellbar.\n     */\n    hideElementsIfNeeded(): void {\n        const newHiddenItems: HTMLElement[] = [];\n        const contextAreaItems: { el: HTMLElement; priority: number }[] = this._getContextAreaItemsWithPriority();\n        while (this._shellbar._actionsExceedShellbarWidth()) {\n            const shownElements = contextAreaItems.filter((item) => item?.el?.style?.display !== 'none');\n            if (shownElements.length === 0) {\n                break;\n            }\n            const lastItem = shownElements[shownElements.length - 1];\n            if (lastItem?.el?.style) {\n                newHiddenItems.push(lastItem.el);\n                lastItem.el.style.display = 'none';\n            }\n        }\n        if (!this._arraysEqual(this._hiddenItems, newHiddenItems)) {\n            this._hiddenItems = newHiddenItems;\n            this.contentItemVisibilityChange.emit(newHiddenItems);\n        }\n    }\n\n    /**\n     * Iteratively shows elements if they can be displayed in the shellbar without causing the actions\n     * to exceed the end of th eshellbar.\n     */\n    showElements(): void {\n        this._getContextAreaItemsWithPriority().forEach((item) => {\n            if (item?.el?.style) {\n                item.el.style.display = '';\n            }\n        });\n    }\n\n    /**\n     * Retrieves the child elements with their respective priority values.\n     * The elements are sorted based on their priority, with elements having\n     * higher priority shown first.\n     */\n    private _getContextAreaItemsWithPriority(): { el: HTMLElement; priority: number }[] {\n        return [...this.el.nativeElement.children]\n            .map((element: HTMLElement, index) => {\n                const hasPriorityAttribute = element.hasAttribute && element.hasAttribute('fdShellbarHidePriority');\n                const priority = hasPriorityAttribute\n                    ? parseInt(element.getAttribute('fdShellbarHidePriority')!, 10)\n                    : index + 1;\n\n                return { el: element, priority };\n            })\n            .sort((a, b) => a.priority - b.priority);\n    }\n\n    /**\n     * Compares two arrays of HTMLElements for equality.\n     * Sorts both arrays and checks if all elements are the same.\n     */\n    private _arraysEqual(arr1: HTMLElement[] | undefined, arr2: HTMLElement[]): boolean {\n        if (!arr1 && arr2.length === 0) {\n            return true;\n        }\n        if (!arr1 || arr1.length !== arr2.length) {\n            return false;\n        }\n        const sorted1 = [...arr1].sort();\n        const sorted2 = [...arr2].sort();\n        return sorted1.every((el, index) => el === sorted2[index]);\n    }\n}\n","import { Directive, ElementRef, inject, Input } from '@angular/core';\n\n@Directive({\n    selector: '[fdShellbarHidePriority]',\n    standalone: true,\n    host: {\n        '[style.flex-shrink]': '0'\n    }\n})\nexport class ShellbarHidePriorityDirective {\n    /** @hidden */\n    @Input('fdShellbarHidePriority') priority: any;\n\n    /** @hidden */\n    elRef = inject(ElementRef);\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * The component that represents a shellbar logo.\n * The logo is a required element and is used for company branding.\n * ```html\n *   <fd-shellbar-logo>\n *      <a href=\"#\" class=\"fd-shellbar__logo fd-shellbar__logo--image-replaced\" aria-label=\"SAP\"></a>\n *   </fd-shellbar-logo>\n * ```\n */\n@Component({\n    selector: 'fd-shellbar-logo',\n    template: `<ng-content></ng-content>`,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class ShellbarLogoComponent {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * The shellbar separator component.\n */\n@Component({\n    selector: 'fd-shellbar-separator',\n    template: ``,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true,\n    styles: [\n        `\n            :host {\n                display: flex;\n            }\n        `\n    ],\n    host: {\n        class: 'fd-shellbar__separator'\n    }\n})\nexport class ShellbarSeparatorComponent {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n    selector: '[fdShellbarSidenav], [fd-shellbar-side-nav]',\n    host: {\n        class: 'fd-shellbar__button'\n    },\n    standalone: true\n})\nexport class ShellbarSidenavDirective {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * @deprecated The shellbar subtitle component has been deprecated as of 0.54.2.\n *\n * The component that represents a shellbar subtitle.\n * The subtitle is optional and should be used rarely.\n * ```html\n *   <fd-shellbar-subtitle>\n *      Corporate Portal\n *   </fd-shellbar-subtitle>\n * ```\n */\n@Component({\n    selector: 'fd-shellbar-subtitle',\n    templateUrl: './shellbar-subtitle.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    styles: [\n        `\n            fd-shellbar-subtitle {\n                display: flex;\n            }\n        `\n    ],\n    standalone: true\n})\nexport class ShellbarSubtitleComponent {}\n","<div class=\"fd-shellbar__subtitle\">\n    <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * The component that represents a shellbar title.\n * The title is a required element and displays the current application name.\n * ```html\n *   <fd-shellbar-title>\n *      Corporate Portal\n *   </fd-shellbar-title>\n * ```\n */\n@Component({\n    selector: 'fd-shellbar-title',\n    templateUrl: './shellbar-title.component.html',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: true\n})\nexport class ShellbarTitleComponent {}\n","<h1 class=\"fd-shellbar__title\">\n    <ng-content></ng-content>\n</h1>\n","import { CdkPortalOutlet, DomPortal, PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n    AfterContentInit,\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    ContentChild,\n    ContentChildren,\n    DestroyRef,\n    ElementRef,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    Output,\n    QueryList,\n    TemplateRef,\n    ViewChild,\n    ViewEncapsulation,\n    computed,\n    inject\n} from '@angular/core';\nimport { outputToObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ClickedDirective, Nullable, ResizeObserverService, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent, FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\nimport { ComboboxInterface, FD_COMBOBOX_COMPONENT } from '@fundamental-ngx/core/combobox';\nimport { ContentDensityDirective, ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { ProductSwitchComponent } from '@fundamental-ngx/core/product-switch';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { SideNavigationInterface } from '@fundamental-ngx/core/side-navigation';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { shallowEqual } from 'fast-equals';\nimport { BehaviorSubject, Subscription, distinctUntilChanged } from 'rxjs';\nimport { Breakpoints, NormalizedBreakpoint, ShellbarGroupFlexOptions, ShellbarSizes } from './model/shellbar-sizes';\nimport { ShellbarActionsComponent } from './shellbar-actions/shellbar-actions.component';\nimport { ShellbarBrandingComponent } from './shellbar-branding/shellbar-branding.component';\nimport { ShellbarContextAreaComponent } from './shellbar-context-area/shellbar-context-area.component';\nimport { FD_SHELLBAR_COMPONENT, FD_SHELLBAR_SEARCH_COMPONENT } from './tokens';\n\n/**\n * The shellbar offers consistent, responsive navigation across all products and applications.\n * Includes support for branding, product navigation, search, notifications, and user settings.\n * Shellbar is a composite component comprised of mandatory and optional elements.\n */\n@Component({\n    selector: 'fd-shellbar',\n    templateUrl: './shellbar.component.html',\n    styleUrls: ['./shellbar.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: FD_SHELLBAR_COMPONENT,\n            useExisting: ShellbarComponent\n        }\n    ],\n    imports: [\n        PortalModule,\n        FdTranslatePipe,\n        ButtonComponent,\n        ClickedDirective,\n        NgTemplateOutlet,\n        ContentDensityDirective\n    ]\n})\nexport class ShellbarComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n    /** Size of Shellbar component 's' | 'm' | 'l' | 'xl' */\n    @Input()\n    set size(value: ShellbarSizes | undefined) {\n        this._size = value;\n        this._currentSize$.next(this._currentSize);\n    }\n    get size(): ShellbarSizes | undefined {\n        return this._size;\n    }\n\n    /**\n     * Responsive breakpoints.\n     */\n    @Input()\n    set breakpoints(breakpoints: Breakpoints) {\n        this._breakpoints = this._normalizeBreakpoints(breakpoints);\n        this._setCurrentBreakpoint();\n    }\n\n    /**\n     * Whether the Shellbar is used with Side Navigation.\n     * When set to true, the responsive paddings are not applied.\n     * Can also accept a template variable referring to a SideNavigationInterface (fd-side-nav or fdx-side-nav), and\n     * will add the corresponding class.\n     */\n    @Input()\n    sideNav: boolean | SideNavigationInterface = false;\n\n    /**\n     * Shellbar group flex configuration.\n     */\n    @Input()\n    set groupFlex(value: Nullable<ShellbarGroupFlexOptions>) {\n        if (shallowEqual(value, this._groupFlex)) {\n            return;\n        }\n\n        this._groupFlex = value;\n        this._cd.detectChanges();\n    }\n\n    get groupFlex(): Nullable<ShellbarGroupFlexOptions> {\n        return this._groupFlex;\n    }\n\n    /** Whether to show the navigation button. */\n    @Input()\n    showNavigationButton = false;\n\n    /**\n     * Custom template for navigation button. When provided, this template will be rendered instead of the default button.\n     * Use this when you need to render a complex component like a popover with a button inside.\n     * The template should handle its own click events and accessibility attributes.\n     */\n    @Input()\n    navigationButtonTemplate: TemplateRef<any> | null = null;\n\n    /** Whether to show the back button. */\n    @Input()\n    showBackButton = false;\n\n    /** Label for the navigation button. */\n    @Input()\n    navigationButtonLabel: string;\n\n    /** Label for the back button. */\n    @Input()\n    backButtonLabel: string;\n\n    /** Whether to show the search when the shellbar size is set to small. */\n    @Input()\n    showSearchFieldOnSizeSmall = false;\n\n    /** Emitted event when navigation button is clicked. */\n    @Output()\n    navigationButtonClicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n    /** Emitted event when back button is clicked. */\n    @Output()\n    backButtonClicked: EventEmitter<Event> = new EventEmitter<Event>();\n\n    /** @hidden */\n    @ContentChild(FD_COMBOBOX_COMPONENT, { static: false })\n    comboboxComponent: ComboboxInterface;\n\n    /** @hidden */\n    @ContentChildren(FD_BUTTON_COMPONENT, { read: ElementRef })\n    buttons: QueryList<ElementRef>;\n\n    /** @hidden */\n    @ContentChildren(ProductSwitchComponent, { descendants: true })\n    productSwitches: QueryList<ProductSwitchComponent>;\n\n    /** @hidden */\n    @ContentChild(ShellbarContextAreaComponent)\n    contextArea: ShellbarContextAreaComponent;\n\n    /** @hidden */\n    @ContentChild(ShellbarBrandingComponent)\n    branding: ShellbarBrandingComponent;\n\n    /** @hidden */\n    @ContentChild(ShellbarActionsComponent)\n    private _actions?: ShellbarActionsComponent;\n\n    /** @hidden */\n    @ViewChild('searchPortalOutlet', { static: false, read: CdkPortalOutlet })\n    private readonly _searchPortalOutlet: CdkPortalOutlet;\n\n    /** @hidden */\n    @ViewChild('shellbar')\n    private readonly _shellbar: ElementRef<HTMLElement>;\n\n    /** @hidden */\n    _showMobileSearch = false;\n\n    protected readonly navigationIcon = computed<string>(() => (this.isRtl() ? 'slim-arrow-right' : 'nav-back'));\n\n    /** @hidden */\n    private readonly isRtl = computed<boolean>(() => this._rtlService?.rtl() ?? false);\n\n    /**\n     * Search component placed inside the shellbar\n     */\n    @ContentChild(FD_SHELLBAR_SEARCH_COMPONENT, { descendants: true, static: false })\n    set searchComponent(component: Nullable<SearchComponent>) {\n        const shouldAttach = !this._searchComponent && !!component;\n        this._searchComponent = component;\n        if (!component) {\n            this._searchPortal?.detach();\n            return;\n        }\n\n        if (this._searchPortal?.isAttached) {\n            this._searchPortal.detach();\n        }\n\n        this._searchPortal = new DomPortal(component.elementRef.nativeElement);\n        component.categoryMode.set('select');\n        component.disableRefresh.set(true);\n        component.forceSearchButton.set(true);\n        component.appearance?.set({\n            searchClass: 'fd-shellbar__search-field is-cozy',\n            searchFieldClass: 'fd-shellbar__search-field-input is-cozy',\n            searchCategoryClass: 'fd-shellbar__search-field-category',\n            searchSubmitClass: 'fd-shellbar__search-submit',\n            buttonClass: 'fd-shellbar__button',\n            addonClass: 'fd-shellbar__search-field-addon',\n            categoryButtonClass: 'fd-shellbar__search-category',\n            categoryDropdownButtonClass: 'fd-shellbar__search-dropdown',\n            removeGroupButtonClass: true,\n            helperClass: 'fd-shellbar__search-field-helper'\n        });\n\n        this._searchSubmitSubscription?.unsubscribe();\n\n        this._searchSubmitSubscription = outputToObservable(component.searchSubmit)\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe((state) => {\n                if (!state.text) {\n                    this._showMobileSearch = false;\n                    this._actions?._setSearchVisibility(false);\n                    this._cd.detectChanges();\n                }\n            });\n\n        if (shouldAttach) {\n            this._placeSearch();\n        }\n\n        this._cd.detectChanges();\n    }\n\n    get searchComponent(): Nullable<SearchComponent> {\n        return this._searchComponent;\n    }\n\n    /** @hidden */\n    get _hideTitleComponents(): boolean {\n        return this._currentSize !== 'xl' && this._currentSize !== 'l' && this._showMobileSearch;\n    }\n\n    /** @hidden */\n    get _hideAllComponents(): boolean {\n        return this._currentSize === 's' && this._showMobileSearch;\n    }\n\n    /** @hidden */\n    get _currentSize(): ShellbarSizes {\n        return this._size || this._breakpointSize;\n    }\n\n    /** @hidden */\n    private _groupFlex: Nullable<ShellbarGroupFlexOptions>;\n\n    /** @hidden */\n    private _searchPortal: DomPortal;\n\n    /** @hidden */\n    private _searchComponent: Nullable<SearchComponent>;\n\n    /** @hidden */\n    private readonly _currentSize$ = new BehaviorSubject<ShellbarSizes>(this._currentSize);\n\n    /** @hidden */\n    private _size: ShellbarSizes | undefined;\n\n    /** @hidden */\n    private _breakpointSize: ShellbarSizes = 'm';\n\n    /** @hidden */\n    private readonly _cd = inject(ChangeDetectorRef);\n\n    /** @hidden */\n    private readonly _destroyRef = inject(DestroyRef);\n\n    /** @hidden */\n    private _breakpoints: NormalizedBreakpoint[] = this._normalizeBreakpoints({\n        s: 0,\n        m: 320,\n        l: 600,\n        xl: 1240\n    });\n\n    /** @hidden */\n    private _searchSubmitSubscription: Nullable<Subscription>;\n\n    /** @hidden */\n    private _resizeObserverService = inject(ResizeObserverService);\n\n    /** @hidden */\n    private readonly _rtlService = inject(RtlService, {\n        optional: true\n    });\n\n    /** @hidden */\n    ngAfterContentInit(): void {\n        this.applyShellbarModeToCombobox();\n        this.applyShellbarModeToButtons();\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        this._resizeObserverService\n            .observe(this._shellbar.nativeElement)\n            .pipe(takeUntilDestroyed(this._destroyRef))\n            .subscribe(() => this._setCurrentBreakpoint());\n        requestAnimationFrame(() => this._setCurrentBreakpoint());\n\n        this._setSearchComponentListeners();\n\n        this.productSwitches.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n            this._setProductSwitchDensities();\n        });\n\n        this._setProductSwitchDensities();\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        this._searchSubmitSubscription?.unsubscribe();\n        this._searchPortalOutlet?.dispose();\n    }\n\n    /** @hidden */\n    applyShellbarModeToCombobox(): void {\n        if (this.comboboxComponent) {\n            this.comboboxComponent.inShellbar = true;\n        }\n    }\n\n    /** @hidden */\n    applyShellbarModeToButtons(): void {\n        this.buttons?.forEach((button) => {\n            button.nativeElement.classList.add('fd-shellbar__button');\n        });\n    }\n\n    /** @hidden */\n    _closeMobileSearch(): void {\n        this._showMobileSearch = false;\n        this._actions?._setSearchVisibility(false);\n        this._cd.detectChanges();\n    }\n\n    /** @hidden */\n    _getSideNavClass(): string {\n        let retVal = ' ';\n\n        if (this.sideNav && (this.sideNav as SideNavigationInterface).additionalShellbarCssClass) {\n            retVal += (this.sideNav as SideNavigationInterface).additionalShellbarCssClass;\n        }\n\n        return retVal;\n    }\n\n    /** @hidden */\n    _getShellbarEnd(): number {\n        const shellbarEl = this._shellbar.nativeElement;\n        const end = this.isRtl() ? shellbarEl.getBoundingClientRect().left : shellbarEl.getBoundingClientRect().right;\n        let shellbarPadding = parseInt(window.getComputedStyle(shellbarEl).paddingInline, 10);\n        if (this.isRtl()) {\n            shellbarPadding = shellbarPadding * -1;\n        }\n        return end - shellbarPadding;\n    }\n\n    /** @hidden */\n    _getActionsEnd(): number {\n        const end = this.isRtl()\n            ? this._actions?._elRef.nativeElement.getBoundingClientRect().left\n            : this._actions?._elRef.nativeElement.getBoundingClientRect().right;\n        return end;\n    }\n\n    /** @hidden */\n    _actionsExceedShellbarWidth(): boolean {\n        return this.isRtl()\n            ? this._getActionsEnd() < this._getShellbarEnd()\n            : this._getActionsEnd() > this._getShellbarEnd();\n    }\n\n    /** @hidden */\n    _searchToggledFromActions(): void {\n        this._setCurrentBreakpoint();\n    }\n\n    /** @hidden */\n    _navigationClicked(event: Event): void {\n        event.preventDefault();\n        event.stopPropagation();\n        this.navigationButtonClicked.emit(event);\n    }\n\n    /** @hidden */\n    _backClicked(event: Event): void {\n        event.preventDefault();\n        event.stopPropagation();\n        this.backButtonClicked.emit(event);\n    }\n\n    /** @hidden */\n    private _setSearchComponentListeners(): void {\n        this._actions?.searchOpen.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((showSearch) => {\n            this._showMobileSearch = showSearch;\n            this._cd.detectChanges();\n            if (this._currentSize !== 's') {\n                return;\n            }\n\n            if (showSearch) {\n                this._attachSearch(true);\n            } else {\n                this._detachSearch();\n            }\n        });\n        this._currentSize$.pipe(distinctUntilChanged(), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n            if (!this._searchPortal) {\n                return;\n            }\n\n            this._placeSearch();\n        });\n    }\n\n    private _placeSearch(): void {\n        const size = this._currentSize$.value;\n\n        if ((size === 'xl' && !this.contextArea) || (size === 's' && this._showMobileSearch)) {\n            this._attachSearch();\n        } else {\n            this._detachSearch();\n        }\n    }\n\n    /** @hidden */\n    private _setCurrentBreakpoint(): void {\n        if (this._shellbar) {\n            this._handleOverflow();\n\n            const width = this._shellbar.nativeElement.getBoundingClientRect().width;\n            const breakpoint = this._breakpoints.find((item) => width >= item.min && width < item.max + 1);\n\n            if (breakpoint && breakpoint.size !== this._currentSize) {\n                this._breakpointSize = breakpoint.size;\n                this._currentSize$.next(this._currentSize);\n            }\n            this._cd.detectChanges();\n        }\n    }\n\n    /** @hidden */\n    private _handleOverflow(): void {\n        if (this._shellbar) {\n            this._resetOverflow();\n\n            if (this._actions) {\n                if (this._actionsExceedShellbarWidth()) {\n                    this._actions._handleOverflow(true);\n                }\n                if (this.branding) {\n                    this.branding.hideTitleIfNeeded();\n                }\n                if (this.contextArea) {\n                    this.contextArea.hideElementsIfNeeded();\n                }\n                if (this._showMobileSearch && this._actionsExceedShellbarWidth()) {\n                    this._closeMobileSearch();\n                }\n            }\n        }\n    }\n\n    /** @hidden */\n    private _resetOverflow(): void {\n        if (this.contextArea) {\n            this.contextArea.showElements();\n        }\n        if (this.branding) {\n            this.branding.showTitle();\n        }\n        if (this._actions) {\n            this._actions._handleOverflow(this._currentSize === 's' && this.showSearchFieldOnSizeSmall);\n        }\n    }\n\n    /** @hidden */\n    private _normalizeBreakpoints(breakpoints: Breakpoints): NormalizedBreakpoint[] {\n        const keys = Object.keys(breakpoints) as ShellbarSizes[];\n        const normalizedBreakpoints: NormalizedBreakpoint[] = [];\n\n        keys.forEach((key, index) => {\n            const breakpoint: NormalizedBreakpoint = {\n                size: key,\n                min: breakpoints[key],\n                max: keys[index + 1] ? breakpoints[keys[index + 1]] : Infinity\n            };\n\n            normalizedBreakpoints.push(breakpoint);\n        });\n\n        return normalizedBreakpoints;\n    }\n\n    /** @hidden */\n    private _attachSearch(shouldFocus = false): void {\n        if (this._searchPortalOutlet?.hasAttached()) {\n            return;\n        }\n\n        this._actions?._detachSearch();\n        this._searchPortalOutlet?.attach(this._searchPortal);\n\n        if (shouldFocus) {\n            this._searchComponent?.focus();\n        }\n    }\n\n    /** @hidden */\n    private _detachSearch(): void {\n        if (!this._searchPortalOutlet?.hasAttached()) {\n            this._actions?._attachSearch(this._searchPortal, this._searchComponent, this._currentSize);\n            return;\n        }\n\n        this._searchPortalOutlet.detach();\n\n        this._actions?._attachSearch(this._searchPortal, this._searchComponent, this._currentSize);\n    }\n\n    /** @hidden */\n    private _setProductSwitchDensities(): void {\n        this.productSwitches.forEach((productSwitch) => {\n            productSwitch.contentDensity.set(ContentDensityMode.COZY);\n        });\n    }\n}\n","<div\n    class=\"fd-shellbar\"\n    [class]=\"'fd-shellbar--' + _currentSize + _getSideNavClass()\"\n    [class.fd-shellbar--side-nav]=\"showNavigationButton === true\"\n    [class.fd-shellbar--has-context-area]=\"!!contextArea\"\n    #shellbar\n    fdCozy\n>\n    @if (!_hideAllComponents) {\n        <div\n            class=\"fd-shellbar__group fd-shellbar__group--product\"\n            [class.fd-shellbar__group--shrink]=\"groupFlex?.product?.shrink\"\n            [class.fd-shellbar__group--basis-auto]=\"groupFlex?.product?.flexBasisAuto\"\n        >\n            @if (showNavigationButton && !_showMobileSearch) {\n                @if (navigationButtonTemplate) {\n                    <ng-container [ngTemplateOutlet]=\"navigationButtonTemplate\"></ng-container>\n                } @else {\n                    <button\n                        class=\"fd-shellbar__button\"\n                        fd-button\n                        fdType=\"transparent\"\n                        glyph=\"menu2\"\n                        (fdkClicked)=\"_navigationClicked($event)\"\n                        [attr.title]=\"navigationButtonLabel || ('coreShellbar.navigationButtonLabel' | fdTranslate)()\"\n                        [attr.aria-label]=\"\n                            navigationButtonLabel || ('coreShellbar.navigationButtonLabel' | fdTranslate)()\n                        \"\n                        fdCozy\n                    ></button>\n                }\n            }\n            @if (showBackButton && !_showMobileSearch) {\n                <button\n                    class=\"fd-shellbar__button\"\n                    fd-button\n                    fdType=\"transparent\"\n                    [glyph]=\"navigationIcon()\"\n                    (fdkClicked)=\"_backClicked($event)\"\n                    [attr.title]=\"backButtonLabel || ('coreShellbar.backButtonLabel' | fdTranslate)\"\n                    [attr.aria-label]=\"backButtonLabel || ('coreShellbar.backButtonLabel' | fdTranslate)\"\n                    fdCozy\n                ></button>\n            }\n            <ng-content select=\"fd-shellbar-branding\"></ng-content>\n            <ng-content select=\"[fd-shellbar-side-nav]\"></ng-content>\n            <ng-content select=\"fd-shellbar-logo\"></ng-content>\n            @if (!_hideTitleComponents) {\n                <ng-content select=\"fd-shellbar-title\"></ng-content>\n                <ng-content select=\"fd-product-menu\"></ng-content>\n                <ng-content select=\"fd-shellbar-subtitle\"></ng-content>\n                <ng-content select=\"fd-shellbar-separator\"></ng-content>\n            }\n        </div>\n        <ng-content select=\"fd-shellbar-context-area\"></ng-content>\n    }\n    <div hidden>\n        <ng-content></ng-content>\n    </div>\n    @if (searchComponent) {\n        <div\n            class=\"fd-shellbar__group fd-shellbar__group--center fd-shellbar__group--mobile-flex\"\n            [class.fd-shellbar__group--shrink]=\"groupFlex?.search?.shrink\"\n            [class.fd-shellbar__group--basis-auto]=\"groupFlex?.search?.flexBasisAuto\"\n        >\n            <div class=\"fd-shellbar__action fd-shellbar__action--grow\">\n                <ng-container cdkPortalOutlet #searchPortalOutlet></ng-container>\n            </div>\n            @if (_hideAllComponents) {\n                <div class=\"fd-shellbar__action fd-shellbar__action--mobile fd-shellbar__action--shrink\">\n                    <button class=\"fd-button fd-button--transparent\" (click)=\"_closeMobileSearch()\">\n                        {{ ('coreShellbar.cancel' | fdTranslate)() }}\n                    </button>\n                </div>\n            }\n        </div>\n    }\n    @if (!_hideAllComponents) {\n        <ng-content select=\"fd-shellbar-actions\"></ng-content>\n    }\n</div>\n","import { NgModule } from '@angular/core';\nimport { ProductMenuComponent } from './product-menu/product-menu.component';\nimport { ShellbarComponent } from './shellbar.component';\n\nimport { ShellbarActionComponent } from './shellbar-action/shellbar-action.component';\nimport { ShellbarActionsComponent } from './shellbar-actions/shellbar-actions.component';\nimport { ShellbarLogoComponent } from './shellbar-logo/shellbar-logo.component';\nimport { ShellbarSubtitleComponent } from './shellbar-subtitle/shellbar-subtitle.component';\nimport { ShellbarTitleComponent } from './shellbar-title/shellbar-title.component';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { ShellbarActionsMobileComponent } from './shellbar-actions-mobile/shellbar-actions-mobile.component';\nimport { ShellbarBrandingComponent } from './shellbar-branding/shellbar-branding.component';\nimport { ShellbarContextAreaComponent } from './shellbar-context-area/shellbar-context-area.component';\nimport { ShellbarHidePriorityDirective } from './shellbar-hide-priority.directive';\nimport { ShellbarSeparatorComponent } from './shellbar-separator/shellbar-separator.component';\nimport { ShellbarSidenavDirective } from './shellbar-sidenav.directive';\nimport { ShellbarUserMenuButtonDirective } from './user-menu/shellbar-user-menu-button.directive';\nimport { ShellbarUserMenuComponent } from './user-menu/shellbar-user-menu.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [\n        ShellbarComponent,\n        ProductMenuComponent,\n        ShellbarSubtitleComponent,\n        ShellbarActionsComponent,\n        ShellbarActionsMobileComponent,\n        ShellbarActionComponent,\n        ShellbarLogoComponent,\n        ShellbarTitleComponent,\n        ShellbarUserMenuComponent,\n        ShellbarSidenavDirective,\n        ShellbarUserMenuButtonDirective,\n        ShellbarSidenavDirective,\n        ShellbarBrandingComponent,\n        ShellbarContextAreaComponent,\n        ShellbarSeparatorComponent,\n        ShellbarHidePriorityDirective\n    ],\n    exports: [\n        ShellbarComponent,\n        ProductMenuComponent,\n        ShellbarSubtitleComponent,\n        ShellbarActionsComponent,\n        ShellbarActionsMobileComponent,\n        ShellbarActionComponent,\n        ShellbarLogoComponent,\n        ShellbarTitleComponent,\n        ShellbarUserMenuComponent,\n        ShellbarSidenavDirective,\n        ShellbarUserMenuButtonDirective,\n        ShellbarSidenavDirective,\n        ShellbarBrandingComponent,\n        ShellbarContextAreaComponent,\n        ShellbarSeparatorComponent,\n        ShellbarHidePriorityDirective,\n        ContentDensityModule\n    ]\n})\nexport class ShellbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}